diff --git a/cmd/minikube/cmd/config/config.go b/cmd/minikube/cmd/config/config.go index a98d72bb13bd..88e6d69232b1 100644 --- a/cmd/minikube/cmd/config/config.go +++ b/cmd/minikube/cmd/config/config.go @@ -172,6 +172,10 @@ var settings = []Setting{ name: config.MaxAuditEntries, set: SetInt, }, + { + name: config.DefaultDNSDomain, + set: SetString, + }, } // ConfigCmd represents the config command diff --git a/cmd/minikube/cmd/root.go b/cmd/minikube/cmd/root.go index 0d35165d5d2b..c43d453c4f95 100644 --- a/cmd/minikube/cmd/root.go +++ b/cmd/minikube/cmd/root.go @@ -331,6 +331,7 @@ func setupViper() { viper.SetDefault(config.WantVirtualBoxDriverWarning, true) viper.SetDefault(config.MaxAuditEntries, 1000) viper.SetDefault(config.SkipAuditFlag, false) + viper.SetDefault(config.DefaultDNSDomain, constants.DefaultDNSDomain) } func addToPath(dir string) { diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 92546e3f9c90..c1927d618a03 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -223,7 +223,7 @@ func initKubernetesFlags() { Valid components are: kubelet, kubeadm, apiserver, controller-manager, etcd, proxy, scheduler Valid kubeadm parameters: `+fmt.Sprintf("%s, %s", strings.Join(bsutil.KubeadmExtraArgsAllowed[bsutil.KubeadmCmdParam], ", "), strings.Join(bsutil.KubeadmExtraArgsAllowed[bsutil.KubeadmConfigParam], ","))) startCmd.Flags().String(featureGates, "", "A set of key=value pairs that describe feature gates for alpha/experimental features.") - startCmd.Flags().String(dnsDomain, constants.ClusterDNSDomain, "The cluster dns domain name used in the Kubernetes cluster") + startCmd.Flags().String(dnsDomain, constants.DefaultDNSDomain, "The cluster dns domain name used in the Kubernetes cluster") startCmd.Flags().Int(apiServerPort, constants.APIServerPort, "The apiserver listening port") startCmd.Flags().String(apiServerName, constants.APIServerName, "The authoritative apiserver hostname for apiserver certificates and connectivity. This can be used if you want to make the apiserver available from outside the machine") startCmd.Flags().StringSliceVar(&apiServerNames, "apiserver-names", nil, "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine") @@ -562,6 +562,9 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str out.WarningT("--network flag is only valid with the docker/podman, qemu, kvm, and vfkit drivers, it will be ignored") } + clusterDNSDomain := viper.GetString(config.DefaultDNSDomain) + updateStringFromFlag(cmd, &clusterDNSDomain, dnsDomain) + validateHANodeCount(cmd) checkNumaCount(k8sVersion) @@ -638,7 +641,7 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str APIServerName: viper.GetString(apiServerName), APIServerNames: apiServerNames, APIServerIPs: apiServerIPs, - DNSDomain: viper.GetString(dnsDomain), + DNSDomain: clusterDNSDomain, FeatureGates: viper.GetString(featureGates), ContainerRuntime: rtime, CRISocket: viper.GetString(criSocket), diff --git a/pkg/minikube/bootstrapper/certs_test.go b/pkg/minikube/bootstrapper/certs_test.go index ec70bc0bd231..c250ed4734bc 100644 --- a/pkg/minikube/bootstrapper/certs_test.go +++ b/pkg/minikube/bootstrapper/certs_test.go @@ -36,7 +36,7 @@ func TestSetupCerts(t *testing.T) { CertExpiration: constants.DefaultCertExpiration, KubernetesConfig: config.KubernetesConfig{ APIServerName: constants.APIServerName, - DNSDomain: constants.ClusterDNSDomain, + DNSDomain: constants.DefaultDNSDomain, ServiceCIDR: constants.DefaultServiceCIDR, }, } diff --git a/pkg/minikube/config/config.go b/pkg/minikube/config/config.go index 1010d1fc1382..c95e5eca2957 100644 --- a/pkg/minikube/config/config.go +++ b/pkg/minikube/config/config.go @@ -58,6 +58,9 @@ const ( EmbedCerts = "EmbedCerts" // MaxAuditEntries is the maximum number of audit entries to retain MaxAuditEntries = "MaxAuditEntries" + // DefaultDnsDomain is the key for the default dns domain name when creating + // a cluster + DefaultDNSDomain = "default-dns-domain" ) var ( diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 7a4fdce1b3d4..a6d57f70b299 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -75,7 +75,7 @@ const ( // APIServerName is the default API server name APIServerName = "minikubeCA" // ClusterDNSDomain is the default DNS domain - ClusterDNSDomain = "cluster.local" + DefaultDNSDomain = "cluster.local" // DefaultServiceCIDR is The CIDR to be used for service cluster IPs DefaultServiceCIDR = "10.96.0.0/12" // HostAlias is a DNS alias to the container/VM host IP diff --git a/site/content/en/docs/commands/config.md b/site/content/en/docs/commands/config.md index 7ff4d43c2c5e..d2b9ed2e7b29 100644 --- a/site/content/en/docs/commands/config.md +++ b/site/content/en/docs/commands/config.md @@ -41,6 +41,7 @@ Configurable fields: * native-ssh * rootless * MaxAuditEntries + * default-dns-domain ```shell minikube config SUBCOMMAND [flags]