From 8a5f849c66bcda211cbc20dba0873a7eefaeec7b Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Thu, 23 May 2024 19:50:47 +0300 Subject: [PATCH] kubeadm: keep v1beta3 only in required code paths Use v1beta4 everywhere and only use v1beta3 in a few required locations: - kubeadm-config map handling - unit and integration tests --- .../app/apis/kubeadm/validation/validation.go | 2 +- .../kubeadm/validation/validation_test.go | 2 +- cmd/kubeadm/app/cmd/certs.go | 2 +- cmd/kubeadm/app/cmd/certs_test.go | 2 +- cmd/kubeadm/app/cmd/config.go | 27 +++++++++---------- cmd/kubeadm/app/cmd/config_test.go | 2 +- cmd/kubeadm/app/cmd/init.go | 2 +- cmd/kubeadm/app/cmd/init_test.go | 2 +- cmd/kubeadm/app/cmd/join.go | 2 +- cmd/kubeadm/app/cmd/join_test.go | 2 +- cmd/kubeadm/app/cmd/kubeconfig.go | 2 +- cmd/kubeadm/app/cmd/kubeconfig_test.go | 2 +- cmd/kubeadm/app/cmd/options/generic.go | 10 ++++--- cmd/kubeadm/app/cmd/options/token.go | 2 +- cmd/kubeadm/app/cmd/phases/init/certs.go | 4 +-- .../app/cmd/phases/reset/cleanupnode.go | 2 +- .../app/cmd/phases/reset/removeetcdmember.go | 4 +-- cmd/kubeadm/app/cmd/phases/util.go | 2 +- cmd/kubeadm/app/cmd/phases/util_test.go | 3 +-- cmd/kubeadm/app/cmd/reset.go | 7 +++-- cmd/kubeadm/app/cmd/token.go | 2 +- cmd/kubeadm/app/cmd/token_test.go | 2 +- cmd/kubeadm/app/cmd/upgrade/common.go | 5 ++-- cmd/kubeadm/app/cmd/upgrade/common_test.go | 4 ++- .../app/componentconfigs/fakeconfig_test.go | 24 ++++++++++------- cmd/kubeadm/app/componentconfigs/kubelet.go | 2 +- .../app/componentconfigs/kubelet_test.go | 2 +- cmd/kubeadm/app/componentconfigs/kubeproxy.go | 2 +- .../app/componentconfigs/kubeproxy_test.go | 2 +- cmd/kubeadm/app/discovery/discovery.go | 2 +- cmd/kubeadm/app/discovery/token/token.go | 2 +- cmd/kubeadm/app/images/images.go | 4 +-- cmd/kubeadm/app/images/images_test.go | 6 ++--- .../app/phases/upgrade/staticpods_test.go | 2 +- .../app/phases/uploadconfig/uploadconfig.go | 2 +- cmd/kubeadm/app/preflight/checks_test.go | 2 +- cmd/kubeadm/app/util/config/cluster.go | 2 +- cmd/kubeadm/app/util/config/cluster_test.go | 20 ++++++++++---- .../app/util/config/initconfiguration.go | 2 +- .../app/util/config/initconfiguration_test.go | 11 +++++++- .../app/util/config/joinconfiguration.go | 2 +- .../app/util/config/joinconfiguration_test.go | 8 +++--- .../app/util/config/strict/strict_test.go | 2 +- .../testdata/invalid_casesensitive_field.yaml | 2 +- .../invalid_duplicate_field_clustercfg.yaml | 2 +- .../invalid_duplicate_field_initcfg.yaml | 2 +- .../invalid_duplicate_field_joincfg.yaml | 2 +- .../invalid_unknown_field_clustercfg.yaml | 2 +- .../invalid_unknown_field_initcfg.yaml | 2 +- .../invalid_unknown_field_joincfg.yaml | 2 +- .../strict/testdata/valid_clustercfg.yaml | 2 +- .../config/strict/testdata/valid_initcfg.yaml | 2 +- .../config/strict/testdata/valid_joincfg.yaml | 2 +- cmd/kubeadm/test/cmd/init_test.go | 5 ++++ .../init/current-component-config.yaml | 2 +- .../testdata/init/old-component-config.yaml | 2 +- .../test/cmd/testdata/init/v1beta4.yaml | 2 ++ 57 files changed, 129 insertions(+), 97 deletions(-) create mode 100644 cmd/kubeadm/test/cmd/testdata/init/v1beta4.yaml diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index b060d140456..565429fc831 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -40,7 +40,7 @@ import ( bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" kubeadmcmdoptions "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" "k8s.io/kubernetes/cmd/kubeadm/app/constants" diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go index 12cf6309b98..283f21bd9a7 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) diff --git a/cmd/kubeadm/app/cmd/certs.go b/cmd/kubeadm/app/cmd/certs.go index 295e7d64ace..3c01ee33194 100644 --- a/cmd/kubeadm/app/cmd/certs.go +++ b/cmd/kubeadm/app/cmd/certs.go @@ -36,7 +36,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" diff --git a/cmd/kubeadm/app/cmd/certs_test.go b/cmd/kubeadm/app/cmd/certs_test.go index b6286a2ed2f..b4c4c418ce1 100644 --- a/cmd/kubeadm/app/cmd/certs_test.go +++ b/cmd/kubeadm/app/cmd/certs_test.go @@ -47,7 +47,7 @@ import ( "k8s.io/client-go/tools/clientcmd" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" diff --git a/cmd/kubeadm/app/cmd/config.go b/cmd/kubeadm/app/cmd/config.go index e0c093e7345..d3bdf216eb3 100644 --- a/cmd/kubeadm/app/cmd/config.go +++ b/cmd/kubeadm/app/cmd/config.go @@ -35,7 +35,6 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" @@ -213,16 +212,16 @@ func getDefaultInitConfigBytes() ([]byte, error) { return []byte{}, err } - return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1old.SchemeGroupVersion) + return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion) } func getDefaultNodeConfigBytes() ([]byte, error) { opts := configutil.LoadOrDefaultConfigurationOptions{ SkipCRIDetect: true, } - internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1old.JoinConfiguration{ - Discovery: kubeadmapiv1old.Discovery{ - BootstrapToken: &kubeadmapiv1old.BootstrapTokenDiscovery{ + internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1.JoinConfiguration{ + Discovery: kubeadmapiv1.Discovery{ + BootstrapToken: &kubeadmapiv1.BootstrapTokenDiscovery{ Token: configutil.PlaceholderToken.Token.String(), APIServerEndpoint: "kube-apiserver:6443", UnsafeSkipCAVerification: true, // TODO: UnsafeSkipCAVerification: true needs to be set for validation to pass, but shouldn't be recommended as the default @@ -233,7 +232,7 @@ func getDefaultNodeConfigBytes() ([]byte, error) { return []byte{}, err } - return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1old.SchemeGroupVersion) + return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion) } func getDefaultResetConfigBytes() ([]byte, error) { @@ -281,7 +280,7 @@ func newCmdConfigMigrate(out io.Writer) *cobra.Command { In other words, the output of this command is what kubeadm actually would read internally if you submitted this file to "kubeadm init" - `), kubeadmapiv1old.SchemeGroupVersion, kubeadmapiv1old.SchemeGroupVersion), + `), kubeadmapiv1.SchemeGroupVersion, kubeadmapiv1.SchemeGroupVersion), RunE: func(cmd *cobra.Command, args []string) error { if len(oldCfgPath) == 0 { return errors.New("the --old-config flag is mandatory") @@ -331,7 +330,7 @@ func newCmdConfigValidate(out io.Writer) *cobra.Command { In this version of kubeadm, the following API versions are supported: - %s - `), kubeadmapiv1old.SchemeGroupVersion), + `), kubeadmapiv1.SchemeGroupVersion), RunE: func(cmd *cobra.Command, args []string) error { if len(cfgPath) == 0 { return errors.Errorf("the --%s flag is mandatory", options.CfgPath) @@ -370,9 +369,9 @@ func newCmdConfigImages(out io.Writer) *cobra.Command { // newCmdConfigImagesPull returns the `kubeadm config images pull` command func newCmdConfigImagesPull() *cobra.Command { - externalClusterCfg := &kubeadmapiv1old.ClusterConfiguration{} + externalClusterCfg := &kubeadmapiv1.ClusterConfiguration{} kubeadmscheme.Scheme.Default(externalClusterCfg) - externalInitCfg := &kubeadmapiv1old.InitConfiguration{} + externalInitCfg := &kubeadmapiv1.InitConfiguration{} kubeadmscheme.Scheme.Default(externalInitCfg) var cfgPath, featureGatesString string var err error @@ -417,7 +416,7 @@ func PullControlPlaneImages(runtime utilruntime.ContainerRuntime, cfg *kubeadmap // newCmdConfigImagesList returns the "kubeadm config images list" command func newCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Command { - externalcfg := &kubeadmapiv1old.ClusterConfiguration{} + externalcfg := &kubeadmapiv1.ClusterConfiguration{} kubeadmscheme.Scheme.Default(externalcfg) var cfgPath, featureGatesString string var err error @@ -459,8 +458,8 @@ func newCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Comman } // NewImagesList returns the underlying struct for the "kubeadm config images list" command -func NewImagesList(cfgPath string, cfg *kubeadmapiv1old.ClusterConfiguration) (*ImagesList, error) { - initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, &kubeadmapiv1old.InitConfiguration{}, cfg, configutil.LoadOrDefaultConfigurationOptions{ +func NewImagesList(cfgPath string, cfg *kubeadmapiv1.ClusterConfiguration) (*ImagesList, error) { + initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, &kubeadmapiv1.InitConfiguration{}, cfg, configutil.LoadOrDefaultConfigurationOptions{ SkipCRIDetect: true, }) if err != nil { @@ -516,7 +515,7 @@ func (i *ImagesList) Run(out io.Writer, printer output.Printer) error { } // AddImagesCommonConfigFlags adds the flags that configure kubeadm (and affect the images kubeadm will use) -func AddImagesCommonConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1old.ClusterConfiguration, cfgPath *string, featureGatesString *string) { +func AddImagesCommonConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1.ClusterConfiguration, cfgPath *string, featureGatesString *string) { options.AddKubernetesVersionFlag(flagSet, &cfg.KubernetesVersion) options.AddFeatureGatesStringFlag(flagSet, featureGatesString) options.AddImageMetaFlags(flagSet, &cfg.ImageRepository) diff --git a/cmd/kubeadm/app/cmd/config_test.go b/cmd/kubeadm/app/cmd/config_test.go index 044d09572f7..d65c8105740 100644 --- a/cmd/kubeadm/app/cmd/config_test.go +++ b/cmd/kubeadm/app/cmd/config_test.go @@ -31,7 +31,7 @@ import ( "github.com/lithammer/dedent" "github.com/spf13/cobra" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index e16d22886a3..ff7f4f0b32c 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -31,7 +31,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init" diff --git a/cmd/kubeadm/app/cmd/init_test.go b/cmd/kubeadm/app/cmd/init_test.go index 88a85a29833..10312f3edfd 100644 --- a/cmd/kubeadm/app/cmd/init_test.go +++ b/cmd/kubeadm/app/cmd/init_test.go @@ -34,7 +34,7 @@ import ( bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) diff --git a/cmd/kubeadm/app/cmd/join.go b/cmd/kubeadm/app/cmd/join.go index f0e651140b0..c685e6bcceb 100644 --- a/cmd/kubeadm/app/cmd/join.go +++ b/cmd/kubeadm/app/cmd/join.go @@ -37,7 +37,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/join" diff --git a/cmd/kubeadm/app/cmd/join_test.go b/cmd/kubeadm/app/cmd/join_test.go index ab44ae60cd8..9ae18cc3932 100644 --- a/cmd/kubeadm/app/cmd/join_test.go +++ b/cmd/kubeadm/app/cmd/join_test.go @@ -34,7 +34,7 @@ import ( "k8s.io/utils/ptr" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" diff --git a/cmd/kubeadm/app/cmd/kubeconfig.go b/cmd/kubeadm/app/cmd/kubeconfig.go index d60ac60ecbe..a3f38d02ba5 100644 --- a/cmd/kubeadm/app/cmd/kubeconfig.go +++ b/cmd/kubeadm/app/cmd/kubeconfig.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/klog/v2" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" diff --git a/cmd/kubeadm/app/cmd/kubeconfig_test.go b/cmd/kubeadm/app/cmd/kubeconfig_test.go index 372c9a4ba0e..9694a0a144c 100644 --- a/cmd/kubeadm/app/cmd/kubeconfig_test.go +++ b/cmd/kubeadm/app/cmd/kubeconfig_test.go @@ -28,7 +28,7 @@ import ( "k8s.io/client-go/tools/clientcmd" "sigs.k8s.io/yaml" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil" diff --git a/cmd/kubeadm/app/cmd/options/generic.go b/cmd/kubeadm/app/cmd/options/generic.go index 475f4bf2420..315aec2fa2c 100644 --- a/cmd/kubeadm/app/cmd/options/generic.go +++ b/cmd/kubeadm/app/cmd/options/generic.go @@ -22,6 +22,7 @@ import ( "github.com/spf13/pflag" cliflag "k8s.io/component-base/cli/flag" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/features" @@ -53,13 +54,14 @@ func AddIgnorePreflightErrorsFlag(fs *pflag.FlagSet, ignorePreflightErrors *[]st } // AddControlPlanExtraArgsFlags adds the ExtraArgs flags for control plane components -func AddControlPlanExtraArgsFlags(fs *pflag.FlagSet, apiServerExtraArgs, controllerManagerExtraArgs, schedulerExtraArgs *map[string]string) { +func AddControlPlanExtraArgsFlags(fs *pflag.FlagSet, apiServerExtraArgs, controllerManagerExtraArgs, schedulerExtraArgs *[]kubeadmapiv1.Arg) { // TODO: https://github.com/kubernetes/kubeadm/issues/1601 // Either deprecate these flags or handle duplicate keys. // Currently the map[string]string returned by NewMapStringString() doesn't allow this. - fs.Var(cliflag.NewMapStringString(apiServerExtraArgs), APIServerExtraArgs, "A set of extra flags to pass to the API Server or override default ones in form of =") - fs.Var(cliflag.NewMapStringString(controllerManagerExtraArgs), ControllerManagerExtraArgs, "A set of extra flags to pass to the Controller Manager or override default ones in form of =") - fs.Var(cliflag.NewMapStringString(schedulerExtraArgs), SchedulerExtraArgs, "A set of extra flags to pass to the Scheduler or override default ones in form of =") + stub := &map[string]string{} // TODO + fs.Var(cliflag.NewMapStringString(stub), APIServerExtraArgs, "A set of extra flags to pass to the API Server or override default ones in form of =") + fs.Var(cliflag.NewMapStringString(stub), ControllerManagerExtraArgs, "A set of extra flags to pass to the Controller Manager or override default ones in form of =") + fs.Var(cliflag.NewMapStringString(stub), SchedulerExtraArgs, "A set of extra flags to pass to the Scheduler or override default ones in form of =") } // AddImageMetaFlags adds the --image-repository flag to the given flagset diff --git a/cmd/kubeadm/app/cmd/options/token.go b/cmd/kubeadm/app/cmd/options/token.go index 4b01c130f62..d4b29fa271f 100644 --- a/cmd/kubeadm/app/cmd/options/token.go +++ b/cmd/kubeadm/app/cmd/options/token.go @@ -25,7 +25,7 @@ import ( bootstrapapi "k8s.io/cluster-bootstrap/token/api" bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" ) // NewBootstrapTokenOptions creates a new BootstrapTokenOptions object with the default values diff --git a/cmd/kubeadm/app/cmd/phases/init/certs.go b/cmd/kubeadm/app/cmd/phases/init/certs.go index cd8515eaccf..ce2549a9e6f 100644 --- a/cmd/kubeadm/app/cmd/phases/init/certs.go +++ b/cmd/kubeadm/app/cmd/phases/init/certs.go @@ -25,7 +25,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" @@ -39,7 +39,7 @@ var ( saKeyLongDesc = fmt.Sprintf(cmdutil.LongDesc(` Generate the private key for signing service account tokens along with its public key, and save them into %s and %s files. - + If both files already exist, kubeadm skips the generation step and existing files will be used. `), kubeadmconstants.ServiceAccountPrivateKeyName, kubeadmconstants.ServiceAccountPublicKeyName) diff --git a/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go b/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go index f5f87d26b38..f86de9c0223 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go +++ b/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go @@ -27,7 +27,7 @@ import ( "k8s.io/klog/v2" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" diff --git a/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go b/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go index 687238bf5f2..f96a5e0212e 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go +++ b/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go @@ -27,7 +27,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" @@ -108,7 +108,7 @@ func getEtcdDataDir(manifestPath string, cfg *kubeadmapi.InitConfiguration) (str if _, err := os.Stat(manifestPath); os.IsNotExist(err) { // Fall back to use the default cluster config if etcd.yaml doesn't exist, this could happen that // etcd.yaml is removed by other reset phases, e.g. cleanup-node. - cfg := &v1beta3.ClusterConfiguration{} + cfg := &kubeadmapiv1.ClusterConfiguration{} scheme.Scheme.Default(cfg) return cfg.Etcd.Local.DataDir, nil } diff --git a/cmd/kubeadm/app/cmd/phases/util.go b/cmd/kubeadm/app/cmd/phases/util.go index 8e0f63267b7..35caa6fa753 100644 --- a/cmd/kubeadm/app/cmd/phases/util.go +++ b/cmd/kubeadm/app/cmd/phases/util.go @@ -19,7 +19,7 @@ package phases import ( "k8s.io/component-base/version" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" ) // SetKubernetesVersion gets the current Kubeadm version and sets it as KubeadmVersion in the config, diff --git a/cmd/kubeadm/app/cmd/phases/util_test.go b/cmd/kubeadm/app/cmd/phases/util_test.go index 63aa6c068ca..02344aadc95 100644 --- a/cmd/kubeadm/app/cmd/phases/util_test.go +++ b/cmd/kubeadm/app/cmd/phases/util_test.go @@ -20,8 +20,7 @@ import ( "testing" "k8s.io/component-base/version" - - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" ) func TestSetKubernetesVersion(t *testing.T) { diff --git a/cmd/kubeadm/app/cmd/reset.go b/cmd/kubeadm/app/cmd/reset.go index 973078e1794..e1473b160f9 100644 --- a/cmd/kubeadm/app/cmd/reset.go +++ b/cmd/kubeadm/app/cmd/reset.go @@ -32,8 +32,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" - "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/reset" @@ -66,7 +65,7 @@ type resetOptions struct { kubeconfigPath string cfgPath string ignorePreflightErrors []string - externalcfg *v1beta4.ResetConfiguration + externalcfg *kubeadmapiv1.ResetConfiguration skipCRIDetect bool } @@ -89,7 +88,7 @@ type resetData struct { // newResetOptions returns a struct ready for being used for creating cmd join flags. func newResetOptions() *resetOptions { // initialize the public kubeadm config API by applying defaults - externalcfg := &v1beta4.ResetConfiguration{} + externalcfg := &kubeadmapiv1.ResetConfiguration{} // Apply defaults kubeadmscheme.Scheme.Default(externalcfg) return &resetOptions{ diff --git a/cmd/kubeadm/app/cmd/token.go b/cmd/kubeadm/app/cmd/token.go index 36107c0e48c..6b665549fb6 100644 --- a/cmd/kubeadm/app/cmd/token.go +++ b/cmd/kubeadm/app/cmd/token.go @@ -40,7 +40,7 @@ import ( bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" diff --git a/cmd/kubeadm/app/cmd/token_test.go b/cmd/kubeadm/app/cmd/token_test.go index f2c2a733cfe..23eb2c8c98f 100644 --- a/cmd/kubeadm/app/cmd/token_test.go +++ b/cmd/kubeadm/app/cmd/token_test.go @@ -32,7 +32,7 @@ import ( "k8s.io/client-go/tools/clientcmd" bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" diff --git a/cmd/kubeadm/app/cmd/upgrade/common.go b/cmd/kubeadm/app/cmd/upgrade/common.go index 2fc695074fd..d01a26710f1 100644 --- a/cmd/kubeadm/app/cmd/upgrade/common.go +++ b/cmd/kubeadm/app/cmd/upgrade/common.go @@ -35,8 +35,7 @@ import ( "k8s.io/utils/ptr" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" - "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" @@ -53,7 +52,7 @@ import ( // enforceRequirements verifies that it's okay to upgrade and then returns the variables needed for the rest of the procedure func enforceRequirements(flagSet *pflag.FlagSet, flags *applyPlanFlags, args []string, dryRun bool, upgradeApply bool, printer output.Printer) (clientset.Interface, upgrade.VersionGetter, *kubeadmapi.InitConfiguration, *kubeadmapi.UpgradeConfiguration, error) { - externalCfg := &v1beta4.UpgradeConfiguration{} + externalCfg := &kubeadmapiv1.UpgradeConfiguration{} opt := configutil.LoadOrDefaultConfigurationOptions{} upgradeCfg, err := configutil.LoadOrDefaultUpgradeConfiguration(flags.cfgPath, externalCfg, opt) if err != nil { diff --git a/cmd/kubeadm/app/cmd/upgrade/common_test.go b/cmd/kubeadm/app/cmd/upgrade/common_test.go index d944f7e76f1..e08a69ff474 100644 --- a/cmd/kubeadm/app/cmd/upgrade/common_test.go +++ b/cmd/kubeadm/app/cmd/upgrade/common_test.go @@ -27,7 +27,7 @@ import ( "github.com/spf13/pflag" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/preflight" "k8s.io/kubernetes/cmd/kubeadm/app/util/output" testutil "k8s.io/kubernetes/cmd/kubeadm/test" @@ -153,6 +153,7 @@ func TestPrintConfiguration(t *testing.T) { kind: ClusterConfiguration kubernetesVersion: v1.7.1 networking: {} + proxy: {} scheduler: {} `, kubeadmapiv1.SchemeGroupVersion.String())), }, @@ -185,6 +186,7 @@ func TestPrintConfiguration(t *testing.T) { kubernetesVersion: v1.7.1 networking: serviceSubnet: 10.96.0.1/12 + proxy: {} scheduler: {} `), }, diff --git a/cmd/kubeadm/app/componentconfigs/fakeconfig_test.go b/cmd/kubeadm/app/componentconfigs/fakeconfig_test.go index 19583f526c4..3af5e949f48 100644 --- a/cmd/kubeadm/app/componentconfigs/fakeconfig_test.go +++ b/cmd/kubeadm/app/componentconfigs/fakeconfig_test.go @@ -24,6 +24,7 @@ import ( "testing" "time" + "github.com/google/go-cmp/cmp" "github.com/lithammer/dedent" v1 "k8s.io/api/core/v1" @@ -34,7 +35,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" @@ -193,11 +194,12 @@ var ( obj kubeadmapiv1.ClusterConfiguration }{ yaml: dedent.Dedent(fmt.Sprintf(` - apiServer: - timeoutForControlPlane: 4m apiVersion: %s certificatesDir: /etc/kubernetes/pki clusterName: LeCluster + encryptionAlgorithm: "RSA-2048" + certificateValidityPeriod: "8760h0m0s" + caCertificateValidityPeriod: "87600h0m0s" controllerManager: {} etcd: local: @@ -208,6 +210,7 @@ var ( networking: dnsDomain: cluster.local serviceSubnet: 10.96.0.0/12 + proxy: {} scheduler: {} `, kubeadmapiv1.SchemeGroupVersion.String())), obj: kubeadmapiv1.ClusterConfiguration{ @@ -228,10 +231,12 @@ var ( DataDir: "/var/lib/etcd", }, }, - APIServer: kubeadmapiv1.APIServer{ - TimeoutForControlPlane: &metav1.Duration{ - Duration: 4 * time.Minute, - }, + EncryptionAlgorithm: kubeadmapiv1.EncryptionAlgorithmRSA2048, + CertificateValidityPeriod: &metav1.Duration{ + Duration: time.Hour * 8760, + }, + CACertificateValidityPeriod: &metav1.Duration{ + Duration: time.Hour * 87600, }, }, } @@ -269,6 +274,7 @@ func TestConfigBaseMarshal(t *testing.T) { kind: ClusterConfiguration kubernetesVersion: 1.2.3 networking: {} + proxy: {} scheduler: {} `, kubeadmapiv1.SchemeGroupVersion.String()))) @@ -301,8 +307,8 @@ func TestConfigBaseUnmarshal(t *testing.T) { t.Fatalf("unexpected failure of Unmarshal: %v", err) } - if !reflect.DeepEqual(got, expected) { - t.Fatalf("Missmatch between expected and got:\nExpected:\n%v\n---\nGot:\n%v", expected, got) + if diff := cmp.Diff(expected.config, got.config); diff != "" { + t.Fatalf("Unexpected diff (-expected,+got):\n%s", diff) } }) } diff --git a/cmd/kubeadm/app/componentconfigs/kubelet.go b/cmd/kubeadm/app/componentconfigs/kubelet.go index 9472796068f..6a01c4c398c 100644 --- a/cmd/kubeadm/app/componentconfigs/kubelet.go +++ b/cmd/kubeadm/app/componentconfigs/kubelet.go @@ -26,7 +26,7 @@ import ( "k8s.io/utils/ptr" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) diff --git a/cmd/kubeadm/app/componentconfigs/kubelet_test.go b/cmd/kubeadm/app/componentconfigs/kubelet_test.go index 18162e4c3bf..04ed7156805 100644 --- a/cmd/kubeadm/app/componentconfigs/kubelet_test.go +++ b/cmd/kubeadm/app/componentconfigs/kubelet_test.go @@ -32,7 +32,7 @@ import ( "k8s.io/utils/ptr" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) diff --git a/cmd/kubeadm/app/componentconfigs/kubeproxy.go b/cmd/kubeadm/app/componentconfigs/kubeproxy.go index 5b6fcf1af1c..b9497cb5dca 100644 --- a/cmd/kubeadm/app/componentconfigs/kubeproxy.go +++ b/cmd/kubeadm/app/componentconfigs/kubeproxy.go @@ -24,7 +24,7 @@ import ( netutils "k8s.io/utils/net" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) diff --git a/cmd/kubeadm/app/componentconfigs/kubeproxy_test.go b/cmd/kubeadm/app/componentconfigs/kubeproxy_test.go index eb9cb39c18c..a716505aea5 100644 --- a/cmd/kubeadm/app/componentconfigs/kubeproxy_test.go +++ b/cmd/kubeadm/app/componentconfigs/kubeproxy_test.go @@ -31,7 +31,7 @@ import ( kubeproxyconfig "k8s.io/kube-proxy/config/v1alpha1" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) diff --git a/cmd/kubeadm/app/discovery/discovery.go b/cmd/kubeadm/app/discovery/discovery.go index da60bd620d1..3920fb9e70d 100644 --- a/cmd/kubeadm/app/discovery/discovery.go +++ b/cmd/kubeadm/app/discovery/discovery.go @@ -25,7 +25,7 @@ import ( "k8s.io/klog/v2" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/discovery/file" "k8s.io/kubernetes/cmd/kubeadm/app/discovery/https" "k8s.io/kubernetes/cmd/kubeadm/app/discovery/token" diff --git a/cmd/kubeadm/app/discovery/token/token.go b/cmd/kubeadm/app/discovery/token/token.go index 919e1575669..4739f76e0d3 100644 --- a/cmd/kubeadm/app/discovery/token/token.go +++ b/cmd/kubeadm/app/discovery/token/token.go @@ -37,7 +37,7 @@ import ( bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" "k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin" diff --git a/cmd/kubeadm/app/images/images.go b/cmd/kubeadm/app/images/images.go index 7ac426e8121..8323cb41601 100644 --- a/cmd/kubeadm/app/images/images.go +++ b/cmd/kubeadm/app/images/images.go @@ -22,7 +22,7 @@ import ( "k8s.io/klog/v2" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1beta3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" ) @@ -49,7 +49,7 @@ func GetDNSImage(cfg *kubeadmapi.ClusterConfiguration) string { dnsImageRepository = cfg.DNS.ImageRepository } // Handle the renaming of the official image from "registry.k8s.io/coredns" to "registry.k8s.io/coredns/coredns - if dnsImageRepository == kubeadmapiv1beta3.DefaultImageRepository { + if dnsImageRepository == kubeadmapiv1.DefaultImageRepository { dnsImageRepository = fmt.Sprintf("%s/coredns", dnsImageRepository) } // DNS uses an imageTag that corresponds to the DNS version matching the Kubernetes version diff --git a/cmd/kubeadm/app/images/images_test.go b/cmd/kubeadm/app/images/images_test.go index 0f8478a1a83..273f0a48a8f 100644 --- a/cmd/kubeadm/app/images/images_test.go +++ b/cmd/kubeadm/app/images/images_test.go @@ -22,7 +22,7 @@ import ( "github.com/stretchr/testify/assert" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1beta3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) @@ -322,9 +322,9 @@ func TestGetDNSImage(t *testing.T) { }, }, { - expected: kubeadmapiv1beta3.DefaultImageRepository + "/coredns/coredns:v1.11.1", + expected: kubeadmapiv1.DefaultImageRepository + "/coredns/coredns:v1.11.1", cfg: &kubeadmapi.ClusterConfiguration{ - ImageRepository: kubeadmapiv1beta3.DefaultImageRepository, + ImageRepository: kubeadmapiv1.DefaultImageRepository, DNS: kubeadmapi.DNS{}, }, }, diff --git a/cmd/kubeadm/app/phases/upgrade/staticpods_test.go b/cmd/kubeadm/app/phases/upgrade/staticpods_test.go index 18402813ac1..2dd4ab74498 100644 --- a/cmd/kubeadm/app/phases/upgrade/staticpods_test.go +++ b/cmd/kubeadm/app/phases/upgrade/staticpods_test.go @@ -34,7 +34,7 @@ import ( certutil "k8s.io/client-go/util/cert" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/renewal" diff --git a/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go b/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go index a7bd9a4a19e..9a430753388 100644 --- a/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go +++ b/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go @@ -25,7 +25,7 @@ import ( clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" diff --git a/cmd/kubeadm/app/preflight/checks_test.go b/cmd/kubeadm/app/preflight/checks_test.go index d6a21b52b96..b48833b0186 100644 --- a/cmd/kubeadm/app/preflight/checks_test.go +++ b/cmd/kubeadm/app/preflight/checks_test.go @@ -38,7 +38,7 @@ import ( fakeexec "k8s.io/utils/exec/testing" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" ) diff --git a/cmd/kubeadm/app/util/config/cluster.go b/cmd/kubeadm/app/util/config/cluster.go index 1a6a13a9759..764cdf9d1da 100644 --- a/cmd/kubeadm/app/util/config/cluster.go +++ b/cmd/kubeadm/app/util/config/cluster.go @@ -37,7 +37,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" diff --git a/cmd/kubeadm/app/util/config/cluster_test.go b/cmd/kubeadm/app/util/config/cluster_test.go index 24805f1ac43..d5e44ae4bd7 100644 --- a/cmd/kubeadm/app/util/config/cluster_test.go +++ b/cmd/kubeadm/app/util/config/cluster_test.go @@ -37,7 +37,8 @@ import ( clienttesting "k8s.io/client-go/testing" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" testresources "k8s.io/kubernetes/cmd/kubeadm/test/resources" @@ -49,11 +50,20 @@ var cfgFiles = map[string][]byte{ "InitConfiguration_v1beta3": []byte(fmt.Sprintf(` apiVersion: %s kind: InitConfiguration -`, kubeadmapiv1.SchemeGroupVersion.String())), +`, kubeadmapiv1old.SchemeGroupVersion.String())), "ClusterConfiguration_v1beta3": []byte(fmt.Sprintf(` apiVersion: %s kind: ClusterConfiguration kubernetesVersion: %s +`, kubeadmapiv1old.SchemeGroupVersion.String(), k8sVersionString)), + "InitConfiguration_v1beta4": []byte(fmt.Sprintf(` +apiVersion: %s +kind: InitConfiguration +`, kubeadmapiv1.SchemeGroupVersion.String())), + "ClusterConfiguration_v1beta4": []byte(fmt.Sprintf(` +apiVersion: %s +kind: ClusterConfiguration +kubernetesVersion: %s `, kubeadmapiv1.SchemeGroupVersion.String(), k8sVersionString)), "Kube-proxy_componentconfig": []byte(` apiVersion: kubeproxy.config.k8s.io/v1alpha1 @@ -509,7 +519,7 @@ func TestGetInitConfigurationFromCluster(t *testing.T) { expectedError: true, }, { - name: "valid v1beta3 - new control plane == false", // InitConfiguration composed with data from different places, with also node specific information + name: "valid v1beta4 - new control plane == false", // InitConfiguration composed with data from different places, with also node specific information staticPods: []testresources.FakeStaticPod{ { NodeName: nodeName, @@ -523,7 +533,7 @@ func TestGetInitConfigurationFromCluster(t *testing.T) { { Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config. Data: map[string]string{ - kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta3"]), + kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta4"]), }, }, { @@ -567,7 +577,7 @@ func TestGetInitConfigurationFromCluster(t *testing.T) { { Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config. Data: map[string]string{ - kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta3"]), + kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta4"]), }, }, { diff --git a/cmd/kubeadm/app/util/config/initconfiguration.go b/cmd/kubeadm/app/util/config/initconfiguration.go index e5e4d1944e8..f1c2db29182 100644 --- a/cmd/kubeadm/app/util/config/initconfiguration.go +++ b/cmd/kubeadm/app/util/config/initconfiguration.go @@ -37,7 +37,7 @@ import ( bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" diff --git a/cmd/kubeadm/app/util/config/initconfiguration_test.go b/cmd/kubeadm/app/util/config/initconfiguration_test.go index 636f0857a86..a7ebc0d7452 100644 --- a/cmd/kubeadm/app/util/config/initconfiguration_test.go +++ b/cmd/kubeadm/app/util/config/initconfiguration_test.go @@ -28,7 +28,7 @@ import ( "sigs.k8s.io/yaml" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) @@ -79,6 +79,15 @@ kubernetesVersion: %s`, kubeadmapiv1.SchemeGroupVersion.String(), certDir, const cfgFiles["Kubelet_componentconfig"], }, []byte(constants.YAMLDocumentSeparator)), }, + { + name: "v1beta4.full", + fileContents: bytes.Join([][]byte{ + cfgFiles["InitConfiguration_v1beta4"], + cfgFiles["ClusterConfiguration_v1beta4"], + cfgFiles["Kube-proxy_componentconfig"], + cfgFiles["Kubelet_componentconfig"], + }, []byte(constants.YAMLDocumentSeparator)), + }, } for _, rt := range tests { diff --git a/cmd/kubeadm/app/util/config/joinconfiguration.go b/cmd/kubeadm/app/util/config/joinconfiguration.go index df7160b1e5d..1f2bc099cb6 100644 --- a/cmd/kubeadm/app/util/config/joinconfiguration.go +++ b/cmd/kubeadm/app/util/config/joinconfiguration.go @@ -26,7 +26,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" diff --git a/cmd/kubeadm/app/util/config/joinconfiguration_test.go b/cmd/kubeadm/app/util/config/joinconfiguration_test.go index 9bd5e6da4ce..6459472c6fe 100644 --- a/cmd/kubeadm/app/util/config/joinconfiguration_test.go +++ b/cmd/kubeadm/app/util/config/joinconfiguration_test.go @@ -43,17 +43,17 @@ func TestLoadJoinConfigurationFromFile(t *testing.T) { expectErr: true, }, { - name: "Invalid v1beta3 causes error", + name: "Invalid v1beta4 causes error", fileContents: dedent.Dedent(` - apiVersion: kubeadm.k8s.io/v1beta3 + apiVersion: kubeadm.k8s.io/v1beta4 kind: JoinConfiguration `), expectErr: true, }, { - name: "valid v1beta3 is loaded", + name: "valid v1beta4 is loaded", fileContents: dedent.Dedent(` - apiVersion: kubeadm.k8s.io/v1beta3 + apiVersion: kubeadm.k8s.io/v1beta4 kind: JoinConfiguration caCertPath: /etc/kubernetes/pki/ca.crt nodeRegistration: diff --git a/cmd/kubeadm/app/util/config/strict/strict_test.go b/cmd/kubeadm/app/util/config/strict/strict_test.go index 6ace7303ecd..34d78cf01db 100644 --- a/cmd/kubeadm/app/util/config/strict/strict_test.go +++ b/cmd/kubeadm/app/util/config/strict/strict_test.go @@ -27,7 +27,7 @@ import ( kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" + kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict" diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_casesensitive_field.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_casesensitive_field.yaml index bf15b56db23..24385d8ca6b 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_casesensitive_field.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_casesensitive_field.yaml @@ -1,3 +1,3 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration ControlPlaneEndpoint: test1 diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_clustercfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_clustercfg.yaml index 0b6b511b7cc..9b800a4592d 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_clustercfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_clustercfg.yaml @@ -1,4 +1,4 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration controlPlaneEndpoint: test1 controlPlaneEndpoint: test2 diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_initcfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_initcfg.yaml index 5dc8d6043c2..8525c4f6821 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_initcfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_initcfg.yaml @@ -1,4 +1,4 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: InitConfiguration bootstrapTokens: - token: "9a08jv.c0izixklcxtmnze7" diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_joincfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_joincfg.yaml index 21aeeb3e2e2..c9ad4c49517 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_joincfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_duplicate_field_joincfg.yaml @@ -1,4 +1,4 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: JoinConfiguration caCertPath: relativepath caCertPath: relativepath diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_clustercfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_clustercfg.yaml index 829946f319f..cd19bc27164 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_clustercfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_clustercfg.yaml @@ -1,3 +1,3 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration unknownField: test diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_initcfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_initcfg.yaml index f8a7a07cb09..2e6b3d7c2e4 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_initcfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_initcfg.yaml @@ -1,3 +1,3 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: InitConfiguration unknownField: test diff --git a/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_joincfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_joincfg.yaml index 1a2e0c0832e..4a84a0a729b 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_joincfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/invalid_unknown_field_joincfg.yaml @@ -1,3 +1,3 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: JoinConfiguration unknownField: test diff --git a/cmd/kubeadm/app/util/config/strict/testdata/valid_clustercfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/valid_clustercfg.yaml index 159b321edcf..772efaa4dd3 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/valid_clustercfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/valid_clustercfg.yaml @@ -1,3 +1,3 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration controlPlaneEndpoint: 202.0.100.1 diff --git a/cmd/kubeadm/app/util/config/strict/testdata/valid_initcfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/valid_initcfg.yaml index 92d2be4ca3d..222fcd40df8 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/valid_initcfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/valid_initcfg.yaml @@ -1,4 +1,4 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: InitConfiguration bootstrapTokens: - token: "9a08jv.c0izixklcxtmnze7" diff --git a/cmd/kubeadm/app/util/config/strict/testdata/valid_joincfg.yaml b/cmd/kubeadm/app/util/config/strict/testdata/valid_joincfg.yaml index 8a9f0fa815c..f5ab644ccd9 100644 --- a/cmd/kubeadm/app/util/config/strict/testdata/valid_joincfg.yaml +++ b/cmd/kubeadm/app/util/config/strict/testdata/valid_joincfg.yaml @@ -1,3 +1,3 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: JoinConfiguration caCertPath: relativepath diff --git a/cmd/kubeadm/test/cmd/init_test.go b/cmd/kubeadm/test/cmd/init_test.go index f61d2b2a9d5..6d9ecb3357a 100644 --- a/cmd/kubeadm/test/cmd/init_test.go +++ b/cmd/kubeadm/test/cmd/init_test.go @@ -155,6 +155,11 @@ func TestCmdInitConfig(t *testing.T) { args: "--config=testdata/init/v1beta3.yaml", expected: true, }, + { + name: "can load v1beta4 config", + args: "--config=testdata/init/v1beta4.yaml", + expected: true, + }, { name: "don't allow mixed arguments v1beta3", args: "--kubernetes-version=1.11.0 --config=testdata/init/v1beta3.yaml", diff --git a/cmd/kubeadm/test/cmd/testdata/init/current-component-config.yaml b/cmd/kubeadm/test/cmd/testdata/init/current-component-config.yaml index f903619bf74..cb7049ebd9f 100644 --- a/cmd/kubeadm/test/cmd/testdata/init/current-component-config.yaml +++ b/cmd/kubeadm/test/cmd/testdata/init/current-component-config.yaml @@ -1,4 +1,4 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration --- apiVersion: kubelet.config.k8s.io/v1beta1 diff --git a/cmd/kubeadm/test/cmd/testdata/init/old-component-config.yaml b/cmd/kubeadm/test/cmd/testdata/init/old-component-config.yaml index 38f469ae256..743c4c566e7 100644 --- a/cmd/kubeadm/test/cmd/testdata/init/old-component-config.yaml +++ b/cmd/kubeadm/test/cmd/testdata/init/old-component-config.yaml @@ -1,4 +1,4 @@ -apiVersion: kubeadm.k8s.io/v1beta3 +apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration --- apiVersion: kubelet.config.k8s.io/v1alpha1 diff --git a/cmd/kubeadm/test/cmd/testdata/init/v1beta4.yaml b/cmd/kubeadm/test/cmd/testdata/init/v1beta4.yaml new file mode 100644 index 00000000000..dac6798f11a --- /dev/null +++ b/cmd/kubeadm/test/cmd/testdata/init/v1beta4.yaml @@ -0,0 +1,2 @@ +apiVersion: kubeadm.k8s.io/v1beta4 +kind: InitConfiguration