cleanup bespoke ipv6 checking in kubeadm

This commit is contained in:
Benjamin Elder 2019-07-03 16:07:26 -07:00
parent bbef01a202
commit 13813bc560
6 changed files with 10 additions and 4 deletions

View File

@ -49,6 +49,7 @@ go_library(
"//vendor/github.com/mholt/caddy/caddyfile:go_default_library", "//vendor/github.com/mholt/caddy/caddyfile:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/net:go_default_library",
], ],
) )

View File

@ -39,6 +39,7 @@ import (
"k8s.io/kubernetes/cmd/kubeadm/app/images" "k8s.io/kubernetes/cmd/kubeadm/app/images"
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient"
utilsnet "k8s.io/utils/net"
) )
const ( const (
@ -95,7 +96,7 @@ func kubeDNSAddon(cfg *kubeadmapi.ClusterConfiguration, client clientset.Interfa
} }
var dnsBindAddr, dnsProbeAddr string var dnsBindAddr, dnsProbeAddr string
if dnsip.To4() == nil { if utilsnet.IsIPv6(dnsip) {
dnsBindAddr = "::1" dnsBindAddr = "::1"
dnsProbeAddr = "[" + dnsBindAddr + "]" dnsProbeAddr = "[" + dnsBindAddr + "]"
} else { } else {

View File

@ -46,6 +46,7 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/net:go_default_library",
], ],
) )

View File

@ -36,6 +36,7 @@ import (
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
staticpodutil "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod" staticpodutil "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod"
authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" 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. // 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 { func calcNodeCidrSize(podSubnet string) string {
maskSize := "24" maskSize := "24"
if ip, podCidr, err := net.ParseCIDR(podSubnet); err == nil { if ip, podCidr, err := net.ParseCIDR(podSubnet); err == nil {
if ip.To4() == nil { if utilsnet.IsIPv6(ip) {
var nodeCidrSize int var nodeCidrSize int
podNetSize, totalBits := podCidr.Mask.Size() podNetSize, totalBits := podCidr.Mask.Size()
switch { switch {

View File

@ -35,6 +35,7 @@ go_library(
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
"//vendor/k8s.io/utils/net:go_default_library",
] + select({ ] + select({
"@io_bazel_rules_go//go/platform:linux": [ "@io_bazel_rules_go//go/platform:linux": [
"//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util:go_default_library",

View File

@ -51,6 +51,7 @@ import (
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
ipvsutil "k8s.io/kubernetes/pkg/util/ipvs" ipvsutil "k8s.io/kubernetes/pkg/util/ipvs"
utilsexec "k8s.io/utils/exec" utilsexec "k8s.io/utils/exec"
utilsnet "k8s.io/utils/net"
) )
const ( const (
@ -920,7 +921,7 @@ func RunInitNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.InitConfigura
// Check if Bridge-netfilter and IPv6 relevant flags are set // Check if Bridge-netfilter and IPv6 relevant flags are set
if ip := net.ParseIP(cfg.LocalAPIEndpoint.AdvertiseAddress); ip != nil { if ip := net.ParseIP(cfg.LocalAPIEndpoint.AdvertiseAddress); ip != nil {
if ip.To4() == nil && ip.To16() != nil { if utilsnet.IsIPv6(ip) {
checks = append(checks, checks = append(checks,
FileContentCheck{Path: bridgenf6, Content: []byte{'1'}}, FileContentCheck{Path: bridgenf6, Content: []byte{'1'}},
FileContentCheck{Path: ipv6DefaultForwarding, Content: []byte{'1'}}, FileContentCheck{Path: ipv6DefaultForwarding, Content: []byte{'1'}},
@ -986,7 +987,7 @@ func RunJoinNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.JoinConfigura
) )
if !addIPv6Checks { if !addIPv6Checks {
if ip := net.ParseIP(ipstr); ip != nil { if ip := net.ParseIP(ipstr); ip != nil {
if ip.To4() == nil && ip.To16() != nil { if utilsnet.IsIPv6(ip) {
addIPv6Checks = true addIPv6Checks = true
} }
} }