diff --git a/framework/.changeset/v0.14.2.md b/framework/.changeset/v0.14.2.md new file mode 100644 index 000000000..7da317602 --- /dev/null +++ b/framework/.changeset/v0.14.2.md @@ -0,0 +1 @@ +- Expose P2P only in K8s \ No newline at end of file diff --git a/framework/components/clnode/clnode.go b/framework/components/clnode/clnode.go index 3e1323eb3..6213c67b8 100644 --- a/framework/components/clnode/clnode.go +++ b/framework/components/clnode/clnode.go @@ -185,13 +185,15 @@ func generateEntryPoint() []string { // natPortsToK8sFormat transforms nat.PortMap // to Pods port pair format: $external_port:$internal_port -func natPortsToK8sFormat(nat nat.PortMap) []string { +func natPortsToK8sFormat(in *Input, nat nat.PortMap) []string { out := make([]string, 0) for port, portBinding := range nat { for _, b := range portBinding { out = append(out, fmt.Sprintf("%s:%s", b.HostPort, strconv.Itoa(port.Int()))) } } + // we are exposing P2P port in K8s via service + out = append(out, fmt.Sprintf("%d:%s", in.Node.P2PPort, DefaultP2PPort)) return out } @@ -200,8 +202,7 @@ func natPortsToK8sFormat(nat nat.PortMap) []string { // exposes custom_ports in format "host:docker" or map 1-to-1 if only "host" port is provided func generatePortBindings(in *Input) ([]string, nat.PortMap, error) { httpPort := fmt.Sprintf("%s/tcp", DefaultHTTPPort) - p2pPort := fmt.Sprintf("%s/udp", DefaultP2PPort) - exposedPorts := []string{httpPort, p2pPort} + exposedPorts := []string{httpPort} portBindings := nat.PortMap{ nat.Port(httpPort): []nat.PortBinding{ { @@ -209,12 +210,6 @@ func generatePortBindings(in *Input) ([]string, nat.PortMap, error) { HostPort: strconv.Itoa(in.Node.HTTPPort), }, }, - nat.Port(p2pPort): []nat.PortBinding{ - { - HostIP: "0.0.0.0", - HostPort: strconv.Itoa(in.Node.P2PPort), - }, - }, } if os.Getenv("CTF_CLNODE_DLV") == "true" { innerDebuggerPort := fmt.Sprintf("%d/tcp", DefaultDebuggerPort) @@ -328,7 +323,7 @@ func newNode(ctx context.Context, in *Input, pgOut *postgres.Output) (*NodeOut, Env: pods.EnvsFromMap(in.Node.EnvVars), Requests: pods.ResourcesMedium(), Limits: pods.ResourcesMedium(), - Ports: natPortsToK8sFormat(portBindings), + Ports: natPortsToK8sFormat(in, portBindings), ContainerSecurityContext: &v1.SecurityContext{ // these are specific things we need for staging cluster RunAsNonRoot: pods.Ptr(true), diff --git a/framework/examples/myproject/go.mod b/framework/examples/myproject/go.mod index 1fa2a325c..86fb0a29b 100644 --- a/framework/examples/myproject/go.mod +++ b/framework/examples/myproject/go.mod @@ -16,7 +16,7 @@ require ( github.com/go-resty/resty/v2 v2.16.5 github.com/jhump/protoreflect v1.17.0 github.com/smartcontractkit/chainlink-testing-framework/framework v0.12.6 - github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.0.0-20250707095700-c7855f06ddd1 + github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.14.1-0.20260213164828-895e6febd040 github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.10 github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.2 github.com/smartcontractkit/chainlink/v2 v2.20.0 diff --git a/framework/tmpl_gen_test.go b/framework/tmpl_gen_test.go index 9239746b2..1aec1770e 100644 --- a/framework/tmpl_gen_test.go +++ b/framework/tmpl_gen_test.go @@ -38,8 +38,8 @@ type TestCfg struct { NodeSets []*ns.Input `toml:"nodesets" validate:"required"` } -// TestSmokeGenerateDevEnv top-down approach tests until all the environment variations aren't stable -func TestSmokeGenerateDevEnv(t *testing.T) { +// TestGenerateDevEnv top-down approach tests until all the environment variations aren't stable +func TestGenerateDevEnv(t *testing.T) { tests := []struct { name string cliName string