diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 9143bb86396b..8e05ea6165f1 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -923,11 +923,16 @@ func generateCfgFromFlags(cmd *cobra.Command, k8sVersion string, drvName string) out.T(out.SuccessType, "Using image repository {{.name}}", out.V{"name": repository}) } + var kubeNodeName string + if drvName != driver.None { + kubeNodeName = viper.GetString(config.MachineProfile) + } + // Create the initial node, which will necessarily be a control plane cp := config.Node{ Port: viper.GetInt(apiServerPort), KubernetesVersion: k8sVersion, - Name: constants.DefaultNodeName, + Name: kubeNodeName, ControlPlane: true, Worker: true, } @@ -965,6 +970,7 @@ func generateCfgFromFlags(cmd *cobra.Command, k8sVersion string, drvName string) NatNicType: viper.GetString(natNicType), KubernetesConfig: config.KubernetesConfig{ KubernetesVersion: k8sVersion, + ClusterName: viper.GetString(config.MachineProfile), APIServerName: viper.GetString(apiServerName), APIServerNames: apiServerNames, APIServerIPs: apiServerIPs, diff --git a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go index 3964e355a1a5..adf9d98ad711 100644 --- a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go +++ b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go @@ -48,7 +48,7 @@ kind: ClusterConfiguration {{$i}}: {{$val}}{{end}} {{end -}} certificatesDir: {{.CertDir}} -clusterName: kubernetes +clusterName: {{.ClusterName}} apiServerCertSANs: ["127.0.0.1", "localhost", "{{.AdvertiseAddress}}"] controlPlaneEndpoint: localhost:{{.APIServerPort}} etcd: diff --git a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go index 353bd6435706..ec1123a6f28b 100644 --- a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go +++ b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go @@ -51,7 +51,7 @@ kind: ClusterConfiguration {{range $i, $val := .FeatureArgs}}{{$i}}: {{$val}} {{end -}}{{end -}} certificatesDir: {{.CertDir}} -clusterName: kubernetes +clusterName: {{.ClusterName}} apiServer: certSANs: ["127.0.0.1", "localhost", "{{.AdvertiseAddress}}"] controlPlaneEndpoint: localhost:{{.APIServerPort}} diff --git a/pkg/minikube/bootstrapper/bsutil/kubeadm.go b/pkg/minikube/bootstrapper/bsutil/kubeadm.go index 22c0d368a321..8e40f3ab954f 100644 --- a/pkg/minikube/bootstrapper/bsutil/kubeadm.go +++ b/pkg/minikube/bootstrapper/bsutil/kubeadm.go @@ -71,6 +71,7 @@ func GenerateKubeadmYAML(mc config.MachineConfig, r cruntime.Manager) ([]byte, e APIServerPort int KubernetesVersion string EtcdDataDir string + ClusterName string NodeName string DNSDomain string CRISocket string @@ -86,6 +87,7 @@ func GenerateKubeadmYAML(mc config.MachineConfig, r cruntime.Manager) ([]byte, e APIServerPort: nodePort, KubernetesVersion: k8s.KubernetesVersion, EtcdDataDir: EtcdDataDir(), + ClusterName: k8s.ClusterName, NodeName: cp.Name, CRISocket: r.SocketPath(), ImageRepository: k8s.ImageRepository, diff --git a/pkg/minikube/bootstrapper/bsutil/kubeadm_test.go b/pkg/minikube/bootstrapper/bsutil/kubeadm_test.go index 4a94b9dc1e3d..be7bfabf0e64 100644 --- a/pkg/minikube/bootstrapper/bsutil/kubeadm_test.go +++ b/pkg/minikube/bootstrapper/bsutil/kubeadm_test.go @@ -127,6 +127,7 @@ func TestGenerateKubeadmYAMLDNS(t *testing.T) { }, } cfg.KubernetesConfig.KubernetesVersion = version + ".0" + cfg.KubernetesConfig.ClusterName = "kubernetes" got, err := GenerateKubeadmYAML(cfg, runtime) if err != nil && !tc.shouldErr { @@ -207,6 +208,7 @@ func TestGenerateKubeadmYAML(t *testing.T) { } } cfg.KubernetesConfig.KubernetesVersion = version + ".0" + cfg.KubernetesConfig.ClusterName = "kubernetes" got, err := GenerateKubeadmYAML(cfg, runtime) if err != nil && !tc.shouldErr { diff --git a/pkg/minikube/bootstrapper/bsutil/kubelet.go b/pkg/minikube/bootstrapper/bsutil/kubelet.go index 7368ca274862..f080a7eba758 100644 --- a/pkg/minikube/bootstrapper/bsutil/kubelet.go +++ b/pkg/minikube/bootstrapper/bsutil/kubelet.go @@ -30,7 +30,7 @@ import ( // NewKubeletConfig generates a new systemd unit containing a configured kubelet // based on the options present in the KubernetesConfig. -func NewKubeletConfig(mc config.MachineConfig, r cruntime.Manager) ([]byte, error) { +func NewKubeletConfig(mc config.MachineConfig, nc config.Node, r cruntime.Manager) ([]byte, error) { k8s := mc.KubernetesConfig version, err := ParseKubernetesVersion(k8s.KubernetesVersion) if err != nil { @@ -60,6 +60,9 @@ func NewKubeletConfig(mc config.MachineConfig, r cruntime.Manager) ([]byte, erro if _, ok := extraOpts["node-ip"]; !ok { extraOpts["node-ip"] = cp.IP } + if nc.Name != "" { + extraOpts["hostname-override"] = nc.Name + } pauseImage := images.Pause(k8s.ImageRepository) if _, ok := extraOpts["pod-infra-container-image"]; !ok && k8s.ImageRepository != "" && pauseImage != "" && k8s.ContainerRuntime != remoteContainerRuntime { diff --git a/pkg/minikube/bootstrapper/bsutil/kubelet_test.go b/pkg/minikube/bootstrapper/bsutil/kubelet_test.go index b50a4b89ef83..d4bf9af4827f 100644 --- a/pkg/minikube/bootstrapper/bsutil/kubelet_test.go +++ b/pkg/minikube/bootstrapper/bsutil/kubelet_test.go @@ -177,7 +177,7 @@ ExecStart=/var/lib/minikube/binaries/v1.17.2/kubelet --authorization-mode=Webhoo t.Fatalf("runtime: %v", err) } - got, err := NewKubeletConfig(tc.cfg, runtime) + got, err := NewKubeletConfig(tc.cfg, tc.cfg.Nodes[0], runtime) if err != nil && !tc.shouldErr { t.Errorf("got unexpected error generating config: %v", err) return diff --git a/pkg/minikube/bootstrapper/bsutil/versions.go b/pkg/minikube/bootstrapper/bsutil/versions.go index 39644abced92..bb6445ae44b7 100644 --- a/pkg/minikube/bootstrapper/bsutil/versions.go +++ b/pkg/minikube/bootstrapper/bsutil/versions.go @@ -23,7 +23,6 @@ import ( "github.com/blang/semver" "github.com/pkg/errors" "k8s.io/minikube/pkg/minikube/config" - "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/vmpath" "k8s.io/minikube/pkg/util" ) @@ -71,7 +70,6 @@ var versionSpecificOpts = []config.VersionedExtraOption{ }, LessThanOrEqual: semver.MustParse("1.9.10"), }, - config.NewUnversionedOption(Kubelet, "hostname-override", constants.DefaultNodeName), // System pods args config.NewUnversionedOption(Kubelet, "pod-manifest-path", vmpath.GuestManifestsDir), diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index d3801ddff8f8..e6b9505c44bb 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -464,7 +464,8 @@ func (k *Bootstrapper) UpdateCluster(cfg config.MachineConfig) error { return errors.Wrap(err, "generating kubeadm cfg") } - kubeletCfg, err := bsutil.NewKubeletConfig(cfg, r) + // TODO: multiple nodes + kubeletCfg, err := bsutil.NewKubeletConfig(cfg, cfg.Nodes[0], r) if err != nil { return errors.Wrap(err, "generating kubelet config") } diff --git a/pkg/minikube/config/types.go b/pkg/minikube/config/types.go index 248667477d8e..1b3b3b19c9d9 100644 --- a/pkg/minikube/config/types.go +++ b/pkg/minikube/config/types.go @@ -70,6 +70,7 @@ type MachineConfig struct { // KubernetesConfig contains the parameters used to configure the VM Kubernetes. type KubernetesConfig struct { KubernetesVersion string + ClusterName string APIServerName string APIServerNames []string APIServerIPs []net.IP