From 81c72826ef7340e8ea64c874371afd394e902cde Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Sun, 19 Nov 2017 17:46:29 +0800 Subject: [PATCH] Move GetDNSIP to a "higher level" pkg. --- .../app/apis/kubeadm/v1alpha1/defaults.go | 3 +-- cmd/kubeadm/app/constants/constants.go | 19 +++++++++++++++ cmd/kubeadm/app/phases/addons/dns/dns.go | 24 ++----------------- cmd/kubeadm/app/phases/addons/dns/dns_test.go | 3 ++- 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go index e1c6987840e..f0020b84643 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go @@ -23,7 +23,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/cmd/kubeadm/app/constants" - "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns" kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" utilpointer "k8s.io/kubernetes/pkg/util/pointer" ) @@ -163,7 +162,7 @@ func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) { obj.KubeletConfiguration.BaseConfig.AllowPrivileged = utilpointer.BoolPtr(true) } if obj.KubeletConfiguration.BaseConfig.ClusterDNS == nil { - dnsIP, err := dns.GetDNSIP(obj.Networking.ServiceSubnet) + dnsIP, err := constants.GetDNSIP(obj.Networking.ServiceSubnet) if err != nil { obj.KubeletConfiguration.BaseConfig.ClusterDNS = []string{DefaultClusterDNSIP} } else { diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index c465d8aa36e..e3fc44601a3 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -19,11 +19,13 @@ package constants import ( "fmt" "io/ioutil" + "net" "os" "path/filepath" "time" "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/util/version" ) @@ -256,3 +258,20 @@ func CreateTempDirForKubeadm(dirName string) (string, error) { } return tempDir, nil } + +// GetDNSIP returns a dnsIP, which is 10th IP in svcSubnet CIDR range +func GetDNSIP(svcSubnet string) (net.IP, error) { + // Get the service subnet CIDR + _, svcSubnetCIDR, err := net.ParseCIDR(svcSubnet) + if err != nil { + return nil, fmt.Errorf("couldn't parse service subnet CIDR %q: %v", svcSubnet, err) + } + + // Selects the 10th IP in service subnet CIDR range as dnsIP + dnsIP, err := ipallocator.GetIndexedIP(svcSubnetCIDR, 10) + if err != nil { + return nil, fmt.Errorf("unable to get tenth IP address from service subnet CIDR %s: %v", svcSubnetCIDR.String(), err) + } + + return dnsIP, nil +} diff --git a/cmd/kubeadm/app/phases/addons/dns/dns.go b/cmd/kubeadm/app/phases/addons/dns/dns.go index 314b7e0da1a..b1866e584fa 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns.go @@ -18,7 +18,6 @@ package dns import ( "fmt" - "net" "runtime" apps "k8s.io/api/apps/v1beta2" @@ -34,7 +33,6 @@ import ( kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" "k8s.io/kubernetes/pkg/api/legacyscheme" - "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/util/version" ) @@ -60,7 +58,7 @@ func kubeDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interfac return err } - dnsip, err := GetDNSIP(cfg.Networking.ServiceSubnet) + dnsip, err := kubeadmconstants.GetDNSIP(cfg.Networking.ServiceSubnet) if err != nil { return err } @@ -149,7 +147,7 @@ func coreDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interfac return fmt.Errorf("error when parsing CoreDNS configMap template: %v", err) } - dnsip, err := GetDNSIP(cfg.Networking.ServiceSubnet) + dnsip, err := kubeadmconstants.GetDNSIP(cfg.Networking.ServiceSubnet) if err != nil { return err } @@ -244,21 +242,3 @@ func createDNSService(dnsService *v1.Service, serviceBytes []byte, client client } return nil } - -// GetDNSIP returns a dnsIP, which is 10th IP in svcSubnet CIDR range -func GetDNSIP(svcSubnet string) (net.IP, error) { - - // Get the service subnet CIDR - _, svcSubnetCIDR, err := net.ParseCIDR(svcSubnet) - if err != nil { - return nil, fmt.Errorf("couldn't parse service subnet CIDR %q: %v", svcSubnet, err) - } - - // Selects the 10th IP in service subnet CIDR range as dnsIP - dnsIP, err := ipallocator.GetIndexedIP(svcSubnetCIDR, 10) - if err != nil { - return nil, fmt.Errorf("unable to get tenth IP address from service subnet CIDR %s: %v", svcSubnetCIDR.String(), err) - } - - return dnsIP, nil -} diff --git a/cmd/kubeadm/app/phases/addons/dns/dns_test.go b/cmd/kubeadm/app/phases/addons/dns/dns_test.go index 92341e26ef4..40c0043436e 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns_test.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns_test.go @@ -23,6 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" clientsetfake "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" api "k8s.io/kubernetes/pkg/apis/core" ) @@ -159,7 +160,7 @@ func TestGetDNSIP(t *testing.T) { }, } for _, rt := range tests { - dnsIP, err := GetDNSIP(rt.svcSubnet) + dnsIP, err := kubeadmconstants.GetDNSIP(rt.svcSubnet) if err != nil { t.Fatalf("couldn't get dnsIP : %v", err) }