From 33b980272ba56a126dfc7d5848478e59e559cf47 Mon Sep 17 00:00:00 2001 From: SataQiu Date: Tue, 25 Jun 2019 11:27:40 +0800 Subject: [PATCH] kubeadm: add --control-plane-endpoint flag --- cmd/kubeadm/app/cmd/alpha/kubeconfig.go | 2 +- cmd/kubeadm/app/cmd/init.go | 5 +++++ cmd/kubeadm/app/cmd/options/constant.go | 3 +++ cmd/kubeadm/app/cmd/phases/init/addons.go | 1 + cmd/kubeadm/app/cmd/phases/init/certs.go | 1 + cmd/kubeadm/app/cmd/phases/init/controlplane.go | 1 + cmd/kubeadm/app/cmd/phases/init/kubeconfig.go | 1 + 7 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/cmd/alpha/kubeconfig.go b/cmd/kubeadm/app/cmd/alpha/kubeconfig.go index 541d0e0f671..405dd9cbbde 100644 --- a/cmd/kubeadm/app/cmd/alpha/kubeconfig.go +++ b/cmd/kubeadm/app/cmd/alpha/kubeconfig.go @@ -99,7 +99,7 @@ func newCmdUserKubeConfig(out io.Writer) *cobra.Command { // Add ClusterConfiguration backed flags to the command cmd.Flags().StringVar(&clusterCfg.CertificatesDir, options.CertificatesDir, clusterCfg.CertificatesDir, "The path where certificates are stored") - // Add ClusterConfiguration backed flags to the command + // Add InitConfiguration backed flags to the command cmd.Flags().StringVar(&initCfg.LocalAPIEndpoint.AdvertiseAddress, options.APIServerAdvertiseAddress, initCfg.LocalAPIEndpoint.AdvertiseAddress, "The IP address the API server is accessible on") cmd.Flags().Int32Var(&initCfg.LocalAPIEndpoint.BindPort, options.APIServerBindPort, initCfg.LocalAPIEndpoint.BindPort, "The port the API server is accessible on") diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index c9aea3d6099..4e722d45518 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -230,6 +230,11 @@ func AddClusterConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1beta2.Cluster `Use alternative domain for services, e.g. "myorg.internal".`, ) + flagSet.StringVar( + &cfg.ControlPlaneEndpoint, options.ControlPlaneEndpoint, cfg.ControlPlaneEndpoint, + `Specify a stable IP address or DNS name for the control plane.`, + ) + options.AddKubernetesVersionFlag(flagSet, &cfg.KubernetesVersion) flagSet.StringVar( diff --git a/cmd/kubeadm/app/cmd/options/constant.go b/cmd/kubeadm/app/cmd/options/constant.go index 715dd7b85c4..24a8483d087 100644 --- a/cmd/kubeadm/app/cmd/options/constant.go +++ b/cmd/kubeadm/app/cmd/options/constant.go @@ -38,6 +38,9 @@ const ( // ControllerManagerExtraArgs flag sets extra flags to pass to the Controller Manager or override default ones in form of =. ControllerManagerExtraArgs = "controller-manager-extra-args" + // ControlPlaneEndpoint flag sets a stable IP address or DNS name for the control plane. + ControlPlaneEndpoint = "control-plane-endpoint" + // DryRun flag instruct kubeadm to don't apply any changes; just output what would be done. DryRun = "dry-run" diff --git a/cmd/kubeadm/app/cmd/phases/init/addons.go b/cmd/kubeadm/app/cmd/phases/init/addons.go index 4f1b1e7ec6f..005d7a713de 100644 --- a/cmd/kubeadm/app/cmd/phases/init/addons.go +++ b/cmd/kubeadm/app/cmd/phases/init/addons.go @@ -111,6 +111,7 @@ func getAddonPhaseFlags(name string) []string { if name == "all" || name == "kube-proxy" { flags = append(flags, options.APIServerAdvertiseAddress, + options.ControlPlaneEndpoint, options.APIServerBindPort, options.NetworkingPodSubnet, ) diff --git a/cmd/kubeadm/app/cmd/phases/init/certs.go b/cmd/kubeadm/app/cmd/phases/init/certs.go index 8688be33a1b..790c37baa31 100644 --- a/cmd/kubeadm/app/cmd/phases/init/certs.go +++ b/cmd/kubeadm/app/cmd/phases/init/certs.go @@ -140,6 +140,7 @@ func getCertPhaseFlags(name string) []string { if name == "all" || name == "apiserver" { flags = append(flags, options.APIServerAdvertiseAddress, + options.ControlPlaneEndpoint, options.APIServerCertSANs, options.NetworkingDNSDomain, options.NetworkingServiceSubnet, diff --git a/cmd/kubeadm/app/cmd/phases/init/controlplane.go b/cmd/kubeadm/app/cmd/phases/init/controlplane.go index ca2f5797cd4..39348a0cb0a 100644 --- a/cmd/kubeadm/app/cmd/phases/init/controlplane.go +++ b/cmd/kubeadm/app/cmd/phases/init/controlplane.go @@ -104,6 +104,7 @@ func getControlPlanePhaseFlags(name string) []string { if name == "all" || name == kubeadmconstants.KubeAPIServer { flags = append(flags, options.APIServerAdvertiseAddress, + options.ControlPlaneEndpoint, options.APIServerBindPort, options.APIServerExtraArgs, options.FeatureGatesString, diff --git a/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go b/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go index 374f3b1d74a..6c27e9c11a6 100644 --- a/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go +++ b/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go @@ -96,6 +96,7 @@ func NewKubeConfigFilePhase(kubeConfigFileName string) workflow.Phase { func getKubeConfigPhaseFlags(name string) []string { flags := []string{ options.APIServerAdvertiseAddress, + options.ControlPlaneEndpoint, options.APIServerBindPort, options.CertificatesDir, options.CfgPath,