From 13813bc56084d0705d219e262e9106b05a3de67b Mon Sep 17 00:00:00 2001 From: Benjamin Elder Date: Wed, 3 Jul 2019 16:07:26 -0700 Subject: [PATCH] cleanup bespoke ipv6 checking in kubeadm --- cmd/kubeadm/app/phases/addons/dns/BUILD | 1 + cmd/kubeadm/app/phases/addons/dns/dns.go | 3 ++- cmd/kubeadm/app/phases/controlplane/BUILD | 1 + cmd/kubeadm/app/phases/controlplane/manifests.go | 3 ++- cmd/kubeadm/app/preflight/BUILD | 1 + cmd/kubeadm/app/preflight/checks.go | 5 +++-- 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/kubeadm/app/phases/addons/dns/BUILD b/cmd/kubeadm/app/phases/addons/dns/BUILD index 0d894569f2f..9ad17331be0 100644 --- a/cmd/kubeadm/app/phases/addons/dns/BUILD +++ b/cmd/kubeadm/app/phases/addons/dns/BUILD @@ -49,6 +49,7 @@ go_library( "//vendor/github.com/mholt/caddy/caddyfile:go_default_library", "//vendor/github.com/pkg/errors:go_default_library", "//vendor/k8s.io/klog:go_default_library", + "//vendor/k8s.io/utils/net:go_default_library", ], ) diff --git a/cmd/kubeadm/app/phases/addons/dns/dns.go b/cmd/kubeadm/app/phases/addons/dns/dns.go index ef3edae71df..1ae54b7cd41 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns.go @@ -39,6 +39,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/images" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" + utilsnet "k8s.io/utils/net" ) const ( @@ -95,7 +96,7 @@ func kubeDNSAddon(cfg *kubeadmapi.ClusterConfiguration, client clientset.Interfa } var dnsBindAddr, dnsProbeAddr string - if dnsip.To4() == nil { + if utilsnet.IsIPv6(dnsip) { dnsBindAddr = "::1" dnsProbeAddr = "[" + dnsBindAddr + "]" } else { diff --git a/cmd/kubeadm/app/phases/controlplane/BUILD b/cmd/kubeadm/app/phases/controlplane/BUILD index 76bfa1a8b40..d983af8bc67 100644 --- a/cmd/kubeadm/app/phases/controlplane/BUILD +++ b/cmd/kubeadm/app/phases/controlplane/BUILD @@ -46,6 +46,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//vendor/github.com/pkg/errors:go_default_library", "//vendor/k8s.io/klog:go_default_library", + "//vendor/k8s.io/utils/net:go_default_library", ], ) diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go index 9e183310dfc..6a431ee8b38 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests.go @@ -36,6 +36,7 @@ import ( kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" staticpodutil "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod" authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" + utilsnet "k8s.io/utils/net" ) // CreateInitStaticPodManifestFiles will write all static pod manifest files needed to bring up the control plane. @@ -240,7 +241,7 @@ func getAuthzModes(authzModeExtraArgs string) string { func calcNodeCidrSize(podSubnet string) string { maskSize := "24" if ip, podCidr, err := net.ParseCIDR(podSubnet); err == nil { - if ip.To4() == nil { + if utilsnet.IsIPv6(ip) { var nodeCidrSize int podNetSize, totalBits := podCidr.Mask.Size() switch { diff --git a/cmd/kubeadm/app/preflight/BUILD b/cmd/kubeadm/app/preflight/BUILD index 27483f300f6..901cbde89ed 100644 --- a/cmd/kubeadm/app/preflight/BUILD +++ b/cmd/kubeadm/app/preflight/BUILD @@ -35,6 +35,7 @@ go_library( "//vendor/github.com/pkg/errors:go_default_library", "//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/net:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:linux": [ "//cmd/kubeadm/app/util:go_default_library", diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index 0cf2d916cdf..c10cc697af2 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -51,6 +51,7 @@ import ( "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" ipvsutil "k8s.io/kubernetes/pkg/util/ipvs" utilsexec "k8s.io/utils/exec" + utilsnet "k8s.io/utils/net" ) const ( @@ -920,7 +921,7 @@ func RunInitNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.InitConfigura // Check if Bridge-netfilter and IPv6 relevant flags are set if ip := net.ParseIP(cfg.LocalAPIEndpoint.AdvertiseAddress); ip != nil { - if ip.To4() == nil && ip.To16() != nil { + if utilsnet.IsIPv6(ip) { checks = append(checks, FileContentCheck{Path: bridgenf6, Content: []byte{'1'}}, FileContentCheck{Path: ipv6DefaultForwarding, Content: []byte{'1'}}, @@ -986,7 +987,7 @@ func RunJoinNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.JoinConfigura ) if !addIPv6Checks { if ip := net.ParseIP(ipstr); ip != nil { - if ip.To4() == nil && ip.To16() != nil { + if utilsnet.IsIPv6(ip) { addIPv6Checks = true } }