Commit 8c22b11c authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #50241 from jamiehannaford/kubeadm-ha-flags

Automatic merge from submit-queue (batch tested with PRs 50087, 39587, 50042, 50241, 49914) Enable selfHosted feature flag **What this PR does / why we need it**: Enables feature gating for self-hosting on kubeadm **Which issue this PR fixes** Continuation of https://github.com/kubernetes/kubeadm/issues/323 **Release note**: ```release-note Feature gates now determine whether a cluster is self-hosted. For more information, see the FeatureGates configuration flag. ``` /cc @luxas
parents d6cb4827 173bc31c
...@@ -39,11 +39,6 @@ type MasterConfiguration struct { ...@@ -39,11 +39,6 @@ type MasterConfiguration struct {
Token string Token string
TokenTTL time.Duration 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 APIServerExtraArgs map[string]string
ControllerManagerExtraArgs map[string]string ControllerManagerExtraArgs map[string]string
SchedulerExtraArgs map[string]string SchedulerExtraArgs map[string]string
......
...@@ -38,11 +38,6 @@ type MasterConfiguration struct { ...@@ -38,11 +38,6 @@ type MasterConfiguration struct {
Token string `json:"token"` Token string `json:"token"`
TokenTTL time.Duration `json:"tokenTTL"` 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"` APIServerExtraArgs map[string]string `json:"apiServerExtraArgs"`
ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs"` ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs"`
SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs"` SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs"`
......
...@@ -24,6 +24,7 @@ go_library( ...@@ -24,6 +24,7 @@ go_library(
"//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm:go_default_library",
"//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library",
"//cmd/kubeadm/app/apis/kubeadm/validation: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/cmd/phases:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/discovery:go_default_library", "//cmd/kubeadm/app/discovery:go_default_library",
......
...@@ -31,6 +31,12 @@ const ( ...@@ -31,6 +31,12 @@ const (
// FeatureList represents a list of feature gates // FeatureList represents a list of feature gates
type FeatureList map[utilfeature.Feature]utilfeature.FeatureSpec 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 // Supports indicates whether a feature name is supported on the given
// feature set // feature set
func Supports(featureList FeatureList, featureName string) bool { func Supports(featureList FeatureList, featureName string) bool {
......
...@@ -31,6 +31,7 @@ import ( ...@@ -31,6 +31,7 @@ import (
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" 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/apis/kubeadm/validation"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/features"
cmdphases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases" cmdphases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases"
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
addonsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons" addonsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons"
...@@ -147,10 +148,6 @@ func NewCmdInit(out io.Writer) *cobra.Command { ...@@ -147,10 +148,6 @@ func NewCmdInit(out io.Writer) *cobra.Command {
&skipTokenPrint, "skip-token-print", skipTokenPrint, &skipTokenPrint, "skip-token-print", skipTokenPrint,
"Skip printing of the default bootstrap token generated by 'kubeadm init'", "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( cmd.PersistentFlags().StringVar(
&cfg.Token, "token", cfg.Token, &cfg.Token, "token", cfg.Token,
...@@ -288,7 +285,7 @@ func (i *Init) Run(out io.Writer) error { ...@@ -288,7 +285,7 @@ func (i *Init) Run(out io.Writer) error {
} }
// Is deployment type self-hosted? // 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 // Temporary control plane is up, now we create our self hosted control
// plane components and remove the static manifests: // plane components and remove the static manifests:
fmt.Println("[self-hosted] Creating self-hosted control plane...") fmt.Println("[self-hosted] Creating self-hosted control plane...")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment