From b371acb60bb093d190c278b435a3e36e32f22393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Sun, 27 Aug 2017 12:52:42 +0300 Subject: [PATCH] kubeadm: Rename FeatureFlags to FeatureGates --- cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go | 2 +- cmd/kubeadm/app/apis/kubeadm/types.go | 4 ++-- cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go | 4 ++-- .../apis/kubeadm/v1alpha1/zz_generated.conversion.go | 4 ++-- .../apis/kubeadm/v1alpha1/zz_generated.deepcopy.go | 4 ++-- .../app/apis/kubeadm/validation/validation.go | 8 ++++---- .../app/apis/kubeadm/validation/validation_test.go | 8 ++++---- .../app/apis/kubeadm/zz_generated.deepcopy.go | 4 ++-- cmd/kubeadm/app/cmd/config.go | 6 +++--- cmd/kubeadm/app/cmd/init.go | 12 ++++++------ cmd/kubeadm/app/cmd/phases/selfhosting.go | 6 +++--- cmd/kubeadm/app/cmd/upgrade/common_test.go | 4 ++-- cmd/kubeadm/app/phases/selfhosting/selfhosting.go | 2 +- 13 files changed, 34 insertions(+), 34 deletions(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go b/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go index d9288ffeee..bee5c7d237 100644 --- a/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go +++ b/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go @@ -42,7 +42,7 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { obj.ImageRepository = "foo" obj.CIImageRepository = "" obj.UnifiedControlPlaneImage = "foo" - obj.FeatureFlags = map[string]bool{} + obj.FeatureGates = map[string]bool{} }, func(obj *kubeadm.NodeConfiguration, c fuzz.Continue) { c.FuzzNoCustom(obj) diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index 32d9c3410b..7de204380e 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -57,8 +57,8 @@ type MasterConfiguration struct { // UnifiedControlPlaneImage specifies if a specific container image should be used for all control plane components UnifiedControlPlaneImage string - // FeatureFlags enabled by the user - FeatureFlags map[string]bool + // FeatureGates enabled by the user + FeatureGates map[string]bool } type API struct { diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go index f7c1cdf7ac..e96f67ed49 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -52,8 +52,8 @@ type MasterConfiguration struct { // UnifiedControlPlaneImage specifies if a specific container image should be used for all control plane components UnifiedControlPlaneImage string `json:"unifiedControlPlaneImage"` - // FeatureFlags enabled by the user - FeatureFlags map[string]bool `json:"featureFlags"` + // FeatureGates enabled by the user + FeatureGates map[string]bool `json:"featureGates"` } type API struct { diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go index f1f66e6e26..f38cc8602f 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go @@ -132,7 +132,7 @@ func autoConvert_v1alpha1_MasterConfiguration_To_kubeadm_MasterConfiguration(in out.CertificatesDir = in.CertificatesDir out.ImageRepository = in.ImageRepository out.UnifiedControlPlaneImage = in.UnifiedControlPlaneImage - out.FeatureFlags = *(*map[string]bool)(unsafe.Pointer(&in.FeatureFlags)) + out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) return nil } @@ -173,7 +173,7 @@ func autoConvert_kubeadm_MasterConfiguration_To_v1alpha1_MasterConfiguration(in out.ImageRepository = in.ImageRepository // INFO: in.CIImageRepository opted out of conversion generation out.UnifiedControlPlaneImage = in.UnifiedControlPlaneImage - out.FeatureFlags = *(*map[string]bool)(unsafe.Pointer(&in.FeatureFlags)) + out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) return nil } diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go index 3750f87b64..57a22cd188 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go @@ -140,8 +140,8 @@ func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { *out = make([]string, len(*in)) copy(*out, *in) } - if in.FeatureFlags != nil { - in, out := &in.FeatureFlags, &out.FeatureFlags + if in.FeatureGates != nil { + in, out := &in.FeatureGates, &out.FeatureGates *out = make(map[string]bool, len(*in)) for key, val := range *in { (*out)[key] = val diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index 5a97b63507..7ed09b1921 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -68,7 +68,7 @@ func ValidateMasterConfiguration(c *kubeadm.MasterConfiguration) field.ErrorList allErrs = append(allErrs, ValidateAbsolutePath(c.CertificatesDir, field.NewPath("certificates-dir"))...) allErrs = append(allErrs, ValidateNodeName(c.NodeName, field.NewPath("node-name"))...) allErrs = append(allErrs, ValidateToken(c.Token, field.NewPath("token"))...) - allErrs = append(allErrs, ValidateFeatureFlags(c.FeatureFlags, field.NewPath("feature-flags"))...) + allErrs = append(allErrs, ValidateFeatureGates(c.FeatureGates, field.NewPath("feature-gates"))...) allErrs = append(allErrs, ValidateAPIEndpoint(c, field.NewPath("api-endpoint"))...) return allErrs } @@ -297,14 +297,14 @@ func ValidateMixedArguments(flag *pflag.FlagSet) error { return nil } -func ValidateFeatureFlags(featureFlags map[string]bool, fldPath *field.Path) field.ErrorList { +func ValidateFeatureGates(featureGates map[string]bool, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} validFeatures := features.Keys(features.InitFeatureGates) // check valid feature names are provided - for k := range featureFlags { + for k := range featureGates { if !features.Supports(features.InitFeatureGates, k) { - allErrs = append(allErrs, field.Invalid(fldPath, featureFlags, + allErrs = append(allErrs, field.Invalid(fldPath, featureGates, fmt.Sprintf("%s is not a valid feature name. Valid features are: %s", k, validFeatures))) } } diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go index ad84a58a64..2e0c874f30 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go @@ -436,10 +436,10 @@ func TestValidateMixedArguments(t *testing.T) { } } -func TestValidateFeatureFlags(t *testing.T) { +func TestValidateFeatureGates(t *testing.T) { type featureFlag map[string]bool var tests = []struct { - featureFlags featureFlag + featureGates featureFlag expected bool }{ {featureFlag{"SelfHosting": true}, true}, @@ -449,10 +449,10 @@ func TestValidateFeatureFlags(t *testing.T) { {featureFlag{"Foo": true}, false}, } for _, rt := range tests { - actual := ValidateFeatureFlags(rt.featureFlags, nil) + actual := ValidateFeatureGates(rt.featureGates, nil) if (len(actual) == 0) != rt.expected { t.Errorf( - "failed featureFlags:\n\texpected: %t\n\t actual: %t", + "failed featureGates:\n\texpected: %t\n\t actual: %t", rt.expected, (len(actual) == 0), ) diff --git a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go index 7fae52156a..a7a52e94ee 100644 --- a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go @@ -145,8 +145,8 @@ func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { *out = make([]string, len(*in)) copy(*out, *in) } - if in.FeatureFlags != nil { - in, out := &in.FeatureFlags, &out.FeatureFlags + if in.FeatureGates != nil { + in, out := &in.FeatureGates, &out.FeatureGates *out = make(map[string]bool, len(*in)) for key, val := range *in { (*out)[key] = val diff --git a/cmd/kubeadm/app/cmd/config.go b/cmd/kubeadm/app/cmd/config.go index 94eda14558..c703a97563 100644 --- a/cmd/kubeadm/app/cmd/config.go +++ b/cmd/kubeadm/app/cmd/config.go @@ -130,7 +130,7 @@ func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.C cfg := &kubeadmapiext.MasterConfiguration{} api.Scheme.Default(cfg) - var featureFlagsString string + var featureGatesString string cmd := &cobra.Command{ Use: "from-flags", @@ -144,7 +144,7 @@ func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.C `), metav1.NamespaceSystem, constants.MasterConfigurationConfigMap), Run: func(cmd *cobra.Command, args []string) { var err error - if cfg.FeatureFlags, err = features.NewFeatureGate(&features.InitFeatureGates, featureFlagsString); err != nil { + if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, featureGatesString); err != nil { kubeadmutil.CheckErr(err) } @@ -157,7 +157,7 @@ func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.C kubeadmutil.CheckErr(err) }, } - AddInitConfigFlags(cmd.PersistentFlags(), cfg, &featureFlagsString) + AddInitConfigFlags(cmd.PersistentFlags(), cfg, &featureGatesString) return cmd } diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 51b3f1cef4..62934bf363 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -92,14 +92,14 @@ func NewCmdInit(out io.Writer) *cobra.Command { var skipPreFlight bool var skipTokenPrint bool var dryRun bool - var featureFlagsString string + var featureGatesString string cmd := &cobra.Command{ Use: "init", Short: "Run this in order to set up the Kubernetes master", Run: func(cmd *cobra.Command, args []string) { var err error - if cfg.FeatureFlags, err = features.NewFeatureGate(&features.InitFeatureGates, featureFlagsString); err != nil { + if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, featureGatesString); err != nil { kubeadmutil.CheckErr(err) } @@ -120,14 +120,14 @@ func NewCmdInit(out io.Writer) *cobra.Command { }, } - AddInitConfigFlags(cmd.PersistentFlags(), cfg, &featureFlagsString) + AddInitConfigFlags(cmd.PersistentFlags(), cfg, &featureGatesString) AddInitOtherFlags(cmd.PersistentFlags(), &cfgPath, &skipPreFlight, &skipTokenPrint, &dryRun) return cmd } // AddInitConfigFlags adds init flags bound to the config to the specified flagset -func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfiguration, featureFlagsString *string) { +func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfiguration, featureGatesString *string) { flagSet.StringVar( &cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, "The IP address the API Server will advertise it's listening on. 0.0.0.0 means the default network interface's address.", @@ -172,7 +172,7 @@ func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfigur &cfg.TokenTTL, "token-ttl", cfg.TokenTTL, "The duration before the bootstrap token is automatically deleted. 0 means 'never expires'.", ) - flagSet.StringVar(featureFlagsString, "feature-gates", *featureFlagsString, "A set of key=value pairs that describe feature gates for various features. "+ + flagSet.StringVar(featureGatesString, "feature-gates", *featureGatesString, "A set of key=value pairs that describe feature gates for various features. "+ "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) } @@ -381,7 +381,7 @@ func (i *Init) Run(out io.Writer) error { } // PHASE 7: Make the control plane self-hosted if feature gate is enabled - if features.Enabled(i.cfg.FeatureFlags, features.SelfHosting) { + if features.Enabled(i.cfg.FeatureGates, 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...") diff --git a/cmd/kubeadm/app/cmd/phases/selfhosting.go b/cmd/kubeadm/app/cmd/phases/selfhosting.go index b029eadafa..7011a9b776 100644 --- a/cmd/kubeadm/app/cmd/phases/selfhosting.go +++ b/cmd/kubeadm/app/cmd/phases/selfhosting.go @@ -56,7 +56,7 @@ func getSelfhostingSubCommand() *cobra.Command { // Default values for the cobra help text api.Scheme.Default(cfg) - var cfgPath, kubeConfigFile, featureFlagsString string + var cfgPath, kubeConfigFile, featureGatesString string // Creates the UX Command cmd := &cobra.Command{ @@ -65,7 +65,7 @@ func getSelfhostingSubCommand() *cobra.Command { Short: "Converts a Static Pod-hosted control plane into a self-hosted one.", Run: func(cmd *cobra.Command, args []string) { var err error - if cfg.FeatureFlags, err = features.NewFeatureGate(&features.InitFeatureGates, featureFlagsString); err != nil { + if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, featureGatesString); err != nil { kubeadmutil.CheckErr(err) } @@ -92,7 +92,7 @@ func getSelfhostingSubCommand() *cobra.Command { // flags bound to the configuration object cmd.Flags().StringVar(&cfg.CertificatesDir, "cert-dir", cfg.CertificatesDir, `The path where certificates are stored`) cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") - cmd.Flags().StringVar(&featureFlagsString, "feature-gates", featureFlagsString, "A set of key=value pairs that describe feature gates for various features."+ + cmd.Flags().StringVar(&featureGatesString, "feature-gates", featureGatesString, "A set of key=value pairs that describe feature gates for various features."+ "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) // flags that are not bound to the configuration object diff --git a/cmd/kubeadm/app/cmd/upgrade/common_test.go b/cmd/kubeadm/app/cmd/upgrade/common_test.go index 4bf791d300..5904d3b9a2 100644 --- a/cmd/kubeadm/app/cmd/upgrade/common_test.go +++ b/cmd/kubeadm/app/cmd/upgrade/common_test.go @@ -55,7 +55,7 @@ func TestPrintConfiguration(t *testing.T) { extraArgs: null image: "" keyFile: "" - featureFlags: null + featureGates: null imageRepository: "" kubernetesVersion: v1.7.1 networking: @@ -94,7 +94,7 @@ func TestPrintConfiguration(t *testing.T) { extraArgs: null image: "" keyFile: "" - featureFlags: null + featureGates: null imageRepository: "" kubernetesVersion: v1.7.1 networking: diff --git a/cmd/kubeadm/app/phases/selfhosting/selfhosting.go b/cmd/kubeadm/app/phases/selfhosting/selfhosting.go index 7ad39f6d69..acae768abd 100644 --- a/cmd/kubeadm/app/phases/selfhosting/selfhosting.go +++ b/cmd/kubeadm/app/phases/selfhosting/selfhosting.go @@ -63,7 +63,7 @@ func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubea mutators := getDefaultMutators() // Some extra work to be done if we should store the control plane certificates in Secrets - if features.Enabled(cfg.FeatureFlags, features.StoreCertsInSecrets) { + if features.Enabled(cfg.FeatureGates, features.StoreCertsInSecrets) { // Upload the certificates and kubeconfig files from disk to the cluster as Secrets if err := uploadTLSSecrets(client, cfg.CertificatesDir); err != nil {