mirror of https://github.com/k3s-io/k3s
Enable selfHosted feature flag
parent
bc7ccfe93b
commit
173bc31c25
|
@ -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 {
|
||||||
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(
|
||||||
"//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 (
|
||||||
// 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 (
|
||||||
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 {
|
||||||
&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 {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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...")
|
||||||
|
|
Loading…
Reference in New Issue