From 08a27940eddb11c2cc8b4ec14c2364aa223d3b12 Mon Sep 17 00:00:00 2001 From: Blaine Gardner Date: Mon, 3 Jun 2024 17:17:29 -0600 Subject: [PATCH] multus: add and test ipv6 support for validation tool Add IPv6 support for multus validation tool. Also test that IPv6 support works by specifying one of the NetAttachDefs with an IPv6 address range. Signed-off-by: Blaine Gardner --- pkg/daemon/multus/nginx-config.yaml | 3 +++ pkg/daemon/multus/templates.go | 6 ++++++ tests/scripts/multus/default-public-cluster-nads.yaml | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/daemon/multus/nginx-config.yaml b/pkg/daemon/multus/nginx-config.yaml index 57793c1a7..27bde08a7 100644 --- a/pkg/daemon/multus/nginx-config.yaml +++ b/pkg/daemon/multus/nginx-config.yaml @@ -7,7 +7,10 @@ metadata: data: server.conf: | server { + # listen on all IPv4 addrs listen 8080; + # listen on all IPv6 addrs + listen [::]:8080; server_name localhost; # return the client ip upon connect diff --git a/pkg/daemon/multus/templates.go b/pkg/daemon/multus/templates.go index f7aab51f2..275e0f2a8 100644 --- a/pkg/daemon/multus/templates.go +++ b/pkg/daemon/multus/templates.go @@ -113,6 +113,12 @@ func (vt *ValidationTest) generateClientTemplateConfig( if attachCluster && serverClusterAddr != "" { netNamesAndAddresses["cluster"] = serverClusterAddr } + for name, addr := range netNamesAndAddresses { + if strings.Contains(addr, ":") { + // it's an IPv6 address and needs square brackets around it to support : addition + netNamesAndAddresses[name] = "[" + addr + "]" + } + } return clientTemplateConfig{ NodeType: nodeType, ClientType: clientType, diff --git a/tests/scripts/multus/default-public-cluster-nads.yaml b/tests/scripts/multus/default-public-cluster-nads.yaml index bfb5898b5..bd8e96b51 100644 --- a/tests/scripts/multus/default-public-cluster-nads.yaml +++ b/tests/scripts/multus/default-public-cluster-nads.yaml @@ -17,4 +17,4 @@ metadata: labels: annotations: spec: - config: '{ "cniVersion": "0.3.1", "type": "macvlan", "master": "eth0", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "192.168.30.0/24" } }' + config: '{ "cniVersion": "0.3.1", "type": "macvlan", "master": "eth0", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "fc00::/96" } }'