diff --git a/pkg/agent/flannel/flannel.go b/pkg/agent/flannel/flannel.go index 9fd2ad9b9a..27173dcc97 100644 --- a/pkg/agent/flannel/flannel.go +++ b/pkg/agent/flannel/flannel.go @@ -40,13 +40,19 @@ const ( subnetFile = "/run/flannel/subnet.env" ) +var ( + FlannelBaseAnnotation = "flannel.alpha.coreos.com" + FlannelExternalIPv4Annotation = FlannelBaseAnnotation + "/public-ip-overwrite" + FlannelExternalIPv6Annotation = FlannelBaseAnnotation + "/public-ipv6-overwrite" +) + func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kubeConfigFile string, flannelIPv6Masq bool, netMode int) error { extIface, err := LookupExtInterface(flannelIface, netMode) if err != nil { return err } - sm, err := kube.NewSubnetManager(ctx, "", kubeConfigFile, "flannel.alpha.coreos.com", flannelConf, false) + sm, err := kube.NewSubnetManager(ctx, "", kubeConfigFile, FlannelBaseAnnotation, flannelConf, false) if err != nil { return err } diff --git a/pkg/agent/run.go b/pkg/agent/run.go index 76e3d373ac..084e0c8e99 100644 --- a/pkg/agent/run.go +++ b/pkg/agent/run.go @@ -399,6 +399,7 @@ func updateLegacyAddressLabels(agentConfig *daemonconfig.Agent, nodeLabels map[s return nil, false } +// updateAddressAnnotations updates the node annotations with important information about IP addresses of the node func updateAddressAnnotations(agentConfig *daemonconfig.Agent, nodeAnnotations map[string]string) (map[string]string, bool) { result := map[string]string{ cp.InternalIPKey: util.JoinIPs(agentConfig.NodeIPs), @@ -407,6 +408,14 @@ func updateAddressAnnotations(agentConfig *daemonconfig.Agent, nodeAnnotations m if agentConfig.NodeExternalIP != "" { result[cp.ExternalIPKey] = util.JoinIPs(agentConfig.NodeExternalIPs) + for _, ipAddress := range agentConfig.NodeExternalIPs { + if utilsnet.IsIPv4(ipAddress) { + result[flannel.FlannelExternalIPv4Annotation] = ipAddress.String() + } + if utilsnet.IsIPv6(ipAddress) { + result[flannel.FlannelExternalIPv6Annotation] = ipAddress.String() + } + } } result = labels.Merge(nodeAnnotations, result)