Move GetDNSIP to a "higher level" pkg.
This commit is contained in:
		| @@ -23,7 +23,6 @@ import ( | |||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"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" | 	kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" | ||||||
| 	utilpointer "k8s.io/kubernetes/pkg/util/pointer" | 	utilpointer "k8s.io/kubernetes/pkg/util/pointer" | ||||||
| ) | ) | ||||||
| @@ -163,7 +162,7 @@ func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) { | |||||||
| 		obj.KubeletConfiguration.BaseConfig.AllowPrivileged = utilpointer.BoolPtr(true) | 		obj.KubeletConfiguration.BaseConfig.AllowPrivileged = utilpointer.BoolPtr(true) | ||||||
| 	} | 	} | ||||||
| 	if obj.KubeletConfiguration.BaseConfig.ClusterDNS == nil { | 	if obj.KubeletConfiguration.BaseConfig.ClusterDNS == nil { | ||||||
| 		dnsIP, err := dns.GetDNSIP(obj.Networking.ServiceSubnet) | 		dnsIP, err := constants.GetDNSIP(obj.Networking.ServiceSubnet) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			obj.KubeletConfiguration.BaseConfig.ClusterDNS = []string{DefaultClusterDNSIP} | 			obj.KubeletConfiguration.BaseConfig.ClusterDNS = []string{DefaultClusterDNSIP} | ||||||
| 		} else { | 		} else { | ||||||
|   | |||||||
| @@ -19,11 +19,13 @@ package constants | |||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
|  | 	"net" | ||||||
| 	"os" | 	"os" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
| 	"k8s.io/api/core/v1" | 	"k8s.io/api/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/registry/core/service/ipallocator" | ||||||
| 	"k8s.io/kubernetes/pkg/util/version" | 	"k8s.io/kubernetes/pkg/util/version" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -256,3 +258,20 @@ func CreateTempDirForKubeadm(dirName string) (string, error) { | |||||||
| 	} | 	} | ||||||
| 	return tempDir, nil | 	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 | ||||||
|  | } | ||||||
|   | |||||||
| @@ -18,7 +18,6 @@ package dns | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"net" |  | ||||||
| 	"runtime" | 	"runtime" | ||||||
|  |  | ||||||
| 	apps "k8s.io/api/apps/v1beta2" | 	apps "k8s.io/api/apps/v1beta2" | ||||||
| @@ -34,7 +33,6 @@ import ( | |||||||
| 	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" | ||||||
| 	"k8s.io/kubernetes/pkg/api/legacyscheme" | 	"k8s.io/kubernetes/pkg/api/legacyscheme" | ||||||
| 	"k8s.io/kubernetes/pkg/registry/core/service/ipallocator" |  | ||||||
| 	"k8s.io/kubernetes/pkg/util/version" | 	"k8s.io/kubernetes/pkg/util/version" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -60,7 +58,7 @@ func kubeDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interfac | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	dnsip, err := GetDNSIP(cfg.Networking.ServiceSubnet) | 	dnsip, err := kubeadmconstants.GetDNSIP(cfg.Networking.ServiceSubnet) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		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) | 		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 { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @@ -244,21 +242,3 @@ func createDNSService(dnsService *v1.Service, serviceBytes []byte, client client | |||||||
| 	} | 	} | ||||||
| 	return nil | 	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 |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -23,6 +23,7 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
| 	clientsetfake "k8s.io/client-go/kubernetes/fake" | 	clientsetfake "k8s.io/client-go/kubernetes/fake" | ||||||
| 	core "k8s.io/client-go/testing" | 	core "k8s.io/client-go/testing" | ||||||
|  | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | ||||||
| 	api "k8s.io/kubernetes/pkg/apis/core" | 	api "k8s.io/kubernetes/pkg/apis/core" | ||||||
| ) | ) | ||||||
| @@ -159,7 +160,7 @@ func TestGetDNSIP(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	for _, rt := range tests { | 	for _, rt := range tests { | ||||||
| 		dnsIP, err := GetDNSIP(rt.svcSubnet) | 		dnsIP, err := kubeadmconstants.GetDNSIP(rt.svcSubnet) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			t.Fatalf("couldn't get dnsIP : %v", err) | 			t.Fatalf("couldn't get dnsIP : %v", err) | ||||||
| 		} | 		} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 xiangpengzhao
					xiangpengzhao