diff --git a/apis/kubekey/v1alpha2/cluster_types.go b/apis/kubekey/v1alpha2/cluster_types.go index 98cfdde3..d910fb80 100644 --- a/apis/kubekey/v1alpha2/cluster_types.go +++ b/apis/kubekey/v1alpha2/cluster_types.go @@ -216,7 +216,7 @@ type ExternalEtcd struct { // GenerateCertSANs is used to generate cert sans for cluster. func (cfg *ClusterSpec) GenerateCertSANs() []string { - clusterSvc := fmt.Sprintf("kubernetes.default.svc.%s", cfg.Kubernetes.ClusterName) + clusterSvc := fmt.Sprintf("kubernetes.default.svc.%s", cfg.Kubernetes.DNSDomain) defaultCertSANs := []string{"kubernetes", "kubernetes.default", "kubernetes.default.svc", clusterSvc, "localhost", "127.0.0.1"} extraCertSANs := make([]string, 0) @@ -225,7 +225,7 @@ func (cfg *ClusterSpec) GenerateCertSANs() []string { for _, host := range cfg.Hosts { extraCertSANs = append(extraCertSANs, host.Name) - extraCertSANs = append(extraCertSANs, fmt.Sprintf("%s.%s", host.Name, cfg.Kubernetes.ClusterName)) + extraCertSANs = append(extraCertSANs, fmt.Sprintf("%s.%s", host.Name, cfg.Kubernetes.DNSDomain)) if host.Address != cfg.ControlPlaneEndpoint.Address { extraCertSANs = append(extraCertSANs, host.Address) } diff --git a/apis/kubekey/v1alpha2/default.go b/apis/kubekey/v1alpha2/default.go index daad9029..daedfe67 100644 --- a/apis/kubekey/v1alpha2/default.go +++ b/apis/kubekey/v1alpha2/default.go @@ -34,6 +34,7 @@ const ( DefaultServiceCIDR = "10.233.0.0/18" DefaultKubeImageNamespace = "kubesphere" DefaultClusterName = "cluster.local" + DefaultDNSDomain = "cluster.local" DefaultArch = "amd64" DefaultEtcdVersion = "v3.4.13" DefaultEtcdPort = "2379" @@ -247,6 +248,9 @@ func SetDefaultClusterCfg(cfg *ClusterSpec) Kubernetes { if cfg.Kubernetes.ClusterName == "" { cfg.Kubernetes.ClusterName = DefaultClusterName } + if cfg.Kubernetes.DNSDomain == "" { + cfg.Kubernetes.DNSDomain = DefaultDNSDomain + } if cfg.Kubernetes.EtcdBackupDir == "" { cfg.Kubernetes.EtcdBackupDir = DefaultEtcdBackupDir } diff --git a/apis/kubekey/v1alpha2/kubernetes_types.go b/apis/kubekey/v1alpha2/kubernetes_types.go index ee4d04ca..be611dc5 100644 --- a/apis/kubekey/v1alpha2/kubernetes_types.go +++ b/apis/kubekey/v1alpha2/kubernetes_types.go @@ -22,6 +22,7 @@ type Kubernetes struct { Type string `yaml:"type" json:"type,omitempty"` Version string `yaml:"version" json:"version,omitempty"` ClusterName string `yaml:"clusterName" json:"clusterName,omitempty"` + DNSDomain string `yaml:"dnsDomain" json:"dnsDomain,omitempty"` MasqueradeAll bool `yaml:"masqueradeAll" json:"masqueradeAll,omitempty"` MaxPods int `yaml:"maxPods" json:"maxPods,omitempty"` NodeCidrMaskSize int `yaml:"nodeCidrMaskSize" json:"nodeCidrMaskSize,omitempty"` diff --git a/config/crd/bases/kubekey.kubesphere.io_clusters.yaml b/config/crd/bases/kubekey.kubesphere.io_clusters.yaml index f22df39f..a00c412e 100644 --- a/config/crd/bases/kubekey.kubesphere.io_clusters.yaml +++ b/config/crd/bases/kubekey.kubesphere.io_clusters.yaml @@ -482,6 +482,8 @@ spec: items: type: string type: array + dnsDomain: + type: string etcdBackupDir: type: string etcdBackupPeriod: @@ -637,7 +639,7 @@ spec: system: description: System defines the system config for each node in cluster. properties: - ntpservers: + ntpServers: items: type: string type: array diff --git a/pkg/common/kube_runtime.go b/pkg/common/kube_runtime.go index 107e0a9f..85939fb9 100644 --- a/pkg/common/kube_runtime.go +++ b/pkg/common/kube_runtime.go @@ -137,7 +137,7 @@ func generateHosts(hostGroups *kubekeyapiv1alpha2.HostGroups, cfg *kubekeyapiv1a for _, host := range cfg.Hosts { if host.Name != "" { - hostsList = append(hostsList, fmt.Sprintf("%s %s.%s %s", host.InternalAddress, host.Name, cfg.Kubernetes.ClusterName, host.Name)) + hostsList = append(hostsList, fmt.Sprintf("%s %s.%s %s", host.InternalAddress, host.Name, cfg.Kubernetes.DNSDomain, host.Name)) } } diff --git a/pkg/kubernetes/tasks.go b/pkg/kubernetes/tasks.go index d46da70f..723c9b1b 100644 --- a/pkg/kubernetes/tasks.go +++ b/pkg/kubernetes/tasks.go @@ -267,6 +267,7 @@ func (g *GenerateKubeadmConfig) Execute(runtime connector.Runtime) error { "CorednsTag": images.GetImage(runtime, g.KubeConf, "coredns").Tag, "Version": g.KubeConf.Cluster.Kubernetes.Version, "ClusterName": g.KubeConf.Cluster.Kubernetes.ClusterName, + "DNSDomain": g.KubeConf.Cluster.Kubernetes.DNSDomain, "AdvertiseAddress": host.GetInternalAddress(), "ControlPlanPort": g.KubeConf.Cluster.ControlPlaneEndpoint.Port, "ControlPlaneEndpoint": fmt.Sprintf("%s:%d", g.KubeConf.Cluster.ControlPlaneEndpoint.Domain, g.KubeConf.Cluster.ControlPlaneEndpoint.Port), diff --git a/pkg/kubernetes/templates/v1beta2/kubeadm_config.go b/pkg/kubernetes/templates/v1beta2/kubeadm_config.go index d686cf67..a3dbdf8f 100644 --- a/pkg/kubernetes/templates/v1beta2/kubeadm_config.go +++ b/pkg/kubernetes/templates/v1beta2/kubeadm_config.go @@ -58,7 +58,7 @@ certificatesDir: /etc/kubernetes/pki clusterName: {{ .ClusterName }} controlPlaneEndpoint: {{ .ControlPlaneEndpoint }} networking: - dnsDomain: {{ .ClusterName }} + dnsDomain: {{ .DNSDomain }} podSubnet: {{ .PodSubnet }} serviceSubnet: {{ .ServiceSubnet }} apiServer: @@ -175,7 +175,7 @@ func UpdateFeatureGatesConfiguration(args map[string]string, kubeConf *common.Ku func GetKubeletConfiguration(runtime connector.Runtime, kubeConf *common.KubeConf, criSock string) map[string]interface{} { defaultKubeletConfiguration := map[string]interface{}{ - "clusterDomain": kubeConf.Cluster.Kubernetes.ClusterName, + "clusterDomain": kubeConf.Cluster.Kubernetes.DNSDomain, "clusterDNS": []string{kubeConf.Cluster.ClusterDNS()}, "maxPods": kubeConf.Cluster.Kubernetes.MaxPods, "rotateCertificates": true, @@ -190,7 +190,7 @@ func GetKubeletConfiguration(runtime connector.Runtime, kubeConf *common.KubeCon "podPidsLimit": 1000, "evictionHard": map[string]string{ "memory.available": "5%", - "pid.available": "10%", + "pid.available": "10%", }, "evictionSoft": map[string]string{ "memory.available": "10%", diff --git a/pkg/plugins/dns/tasks.go b/pkg/plugins/dns/tasks.go index 0e7504d4..e3ad2f4d 100644 --- a/pkg/plugins/dns/tasks.go +++ b/pkg/plugins/dns/tasks.go @@ -74,7 +74,7 @@ func (g *GenerateNodeLocalDNSConfigMap) Execute(runtime connector.Runtime) error Dst: filepath.Join(common.KubeConfigDir, templates.NodeLocalDNSConfigMap.Name()), Data: util.Data{ "ForwardTarget": clusterIP, - "DndDomain": g.KubeConf.Cluster.Kubernetes.ClusterName, + "DNSDomain": g.KubeConf.Cluster.Kubernetes.DNSDomain, }, } diff --git a/pkg/plugins/dns/templates/nodelocaldns_configmap.go b/pkg/plugins/dns/templates/nodelocaldns_configmap.go index 63a1c0af..94a055b8 100644 --- a/pkg/plugins/dns/templates/nodelocaldns_configmap.go +++ b/pkg/plugins/dns/templates/nodelocaldns_configmap.go @@ -33,7 +33,7 @@ metadata: data: Corefile: | - {{ .DndDomain }}:53 { + {{ .DNSDomain }}:53 { errors cache { success 9984 30