From db09cbbb6e7ca855bac271a6078c497a429cc156 Mon Sep 17 00:00:00 2001 From: yuyicai Date: Wed, 5 Mar 2025 23:14:57 +0800 Subject: [PATCH] feat: update tun cidr for `kubevpn-traffic-manager` Signed-off-by: yuyicai --- pkg/handler/connect.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/pkg/handler/connect.go b/pkg/handler/connect.go index 3c353459..5a315f49 100644 --- a/pkg/handler/connect.go +++ b/pkg/handler/connect.go @@ -905,6 +905,44 @@ func (c *ConnectOptions) upgradeDeploy(ctx context.Context) error { _, err = polymorphichelpers.UpdatePodSpecForObjectFn(obj, func(spec *v1.PodSpec) error { for i := range spec.Containers { spec.Containers[i].Image = clientImg + + // update tun cidr for vpn + if spec.Containers[i].Name == config.ContainerSidecarVPN { + innerIpv4CIDR := net.IPNet{IP: config.RouterIP, Mask: config.CIDR.Mask} + innerIpv6CIDR := net.IPNet{IP: config.RouterIP6, Mask: config.CIDR6.Mask} + envVars := []v1.EnvVar{ + { + Name: "CIDR4", + Value: config.CIDR.String(), + }, + { + Name: "CIDR6", + Value: config.CIDR6.String(), + }, + { + Name: config.EnvInboundPodTunIPv4, + Value: innerIpv4CIDR.String(), + }, + { + Name: config.EnvInboundPodTunIPv6, + Value: innerIpv6CIDR.String(), + }, + } + + for _, env := range envVars { + found := false + for j, existing := range spec.Containers[i].Env { + if existing.Name == env.Name { + spec.Containers[i].Env[j].Value = env.Value + found = true + break + } + } + if !found { + spec.Containers[i].Env = append(spec.Containers[i].Env, env) + } + } + } } return nil })