From 173bc31c25033939f4d9f807f63e96a136d4bf2d Mon Sep 17 00:00:00 2001 From: Jamie Hannaford Date: Mon, 7 Aug 2017 11:31:19 +0200 Subject: [PATCH] Enable selfHosted feature flag --- cmd/kubeadm/app/apis/kubeadm/types.go | 5 ----- cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go | 5 ----- cmd/kubeadm/app/cmd/BUILD | 1 + cmd/kubeadm/app/cmd/features/features.go | 6 ++++++ cmd/kubeadm/app/cmd/init.go | 7 ++----- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index 2e132f913c..b6baf01ee6 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -39,11 +39,6 @@ type MasterConfiguration struct { Token string TokenTTL time.Duration - // SelfHosted enables an alpha deployment type where the apiserver, scheduler, and - // controller manager are managed by Kubernetes itself. This option is likely to - // become the default in the future. - SelfHosted bool - APIServerExtraArgs map[string]string ControllerManagerExtraArgs map[string]string SchedulerExtraArgs map[string]string diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go index ca2b698f15..38c2e77b12 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -38,11 +38,6 @@ type MasterConfiguration struct { Token string `json:"token"` TokenTTL time.Duration `json:"tokenTTL"` - // SelfHosted enables an alpha deployment type where the apiserver, scheduler, and - // controller manager are managed by Kubernetes itself. This option is likely to - // become the default in the future. - SelfHosted bool `json:"selfHosted"` - APIServerExtraArgs map[string]string `json:"apiServerExtraArgs"` ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs"` SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs"` diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index 57d18294b2..d803edc9ae 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -24,6 +24,7 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library", + "//cmd/kubeadm/app/cmd/features:go_default_library", "//cmd/kubeadm/app/cmd/phases:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/discovery:go_default_library", diff --git a/cmd/kubeadm/app/cmd/features/features.go b/cmd/kubeadm/app/cmd/features/features.go index ad2a584b4b..e77ef8412d 100644 --- a/cmd/kubeadm/app/cmd/features/features.go +++ b/cmd/kubeadm/app/cmd/features/features.go @@ -31,6 +31,12 @@ const ( // FeatureList represents a list of feature gates type FeatureList map[utilfeature.Feature]utilfeature.FeatureSpec +// Enabled indicates whether a feature name has been enabled +func Enabled(featureList map[string]bool, featureName utilfeature.Feature) bool { + _, ok := featureList[string(featureName)] + return ok +} + // Supports indicates whether a feature name is supported on the given // feature set func Supports(featureList FeatureList, featureName string) bool { diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index bd2e826666..e08ec4dab4 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -31,6 +31,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" + "k8s.io/kubernetes/cmd/kubeadm/app/cmd/features" cmdphases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" addonsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons" @@ -147,10 +148,6 @@ func NewCmdInit(out io.Writer) *cobra.Command { &skipTokenPrint, "skip-token-print", skipTokenPrint, "Skip printing of the default bootstrap token generated by 'kubeadm init'", ) - cmd.PersistentFlags().BoolVar( - &cfg.SelfHosted, "self-hosted", cfg.SelfHosted, - "[experimental] If kubeadm should make this control plane self-hosted", - ) cmd.PersistentFlags().StringVar( &cfg.Token, "token", cfg.Token, @@ -288,7 +285,7 @@ func (i *Init) Run(out io.Writer) error { } // Is deployment type self-hosted? - if i.cfg.SelfHosted { + if features.Enabled(i.cfg.FeatureFlags, features.SelfHosting) { // Temporary control plane is up, now we create our self hosted control // plane components and remove the static manifests: fmt.Println("[self-hosted] Creating self-hosted control plane...")