Merge pull request #6189 from manuelbuil/flannel-external-ip1.24

[Release 1.24] Add flannel-external-ip when there is a k3s node-external-ip
pull/6227/head
Manuel Buil 2022-09-29 18:39:01 +02:00 committed by GitHub
commit 205ccc7ea9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -40,13 +40,19 @@ const (
subnetFile = "/run/flannel/subnet.env" 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 { func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kubeConfigFile string, flannelIPv6Masq bool, netMode int) error {
extIface, err := LookupExtInterface(flannelIface, netMode) extIface, err := LookupExtInterface(flannelIface, netMode)
if err != nil { if err != nil {
return err 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 { if err != nil {
return err return err
} }

View File

@ -399,6 +399,7 @@ func updateLegacyAddressLabels(agentConfig *daemonconfig.Agent, nodeLabels map[s
return nil, false 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) { func updateAddressAnnotations(agentConfig *daemonconfig.Agent, nodeAnnotations map[string]string) (map[string]string, bool) {
result := map[string]string{ result := map[string]string{
cp.InternalIPKey: util.JoinIPs(agentConfig.NodeIPs), cp.InternalIPKey: util.JoinIPs(agentConfig.NodeIPs),
@ -407,6 +408,14 @@ func updateAddressAnnotations(agentConfig *daemonconfig.Agent, nodeAnnotations m
if agentConfig.NodeExternalIP != "" { if agentConfig.NodeExternalIP != "" {
result[cp.ExternalIPKey] = util.JoinIPs(agentConfig.NodeExternalIPs) 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) result = labels.Merge(nodeAnnotations, result)