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
This commit is contained in:
		| @@ -40,7 +40,7 @@ import ( | |||||||
|  |  | ||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	"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" | 	kubeadmcmdoptions "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" | 	"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/util/validation/field" | 	"k8s.io/apimachinery/pkg/util/validation/field" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -36,7 +36,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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" | 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | ||||||
| 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ import ( | |||||||
| 	"k8s.io/client-go/tools/clientcmd" | 	"k8s.io/client-go/tools/clientcmd" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | ||||||
| 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" | 	certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" | ||||||
|   | |||||||
| @@ -35,7 +35,6 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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" | 	kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" | ||||||
| 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | ||||||
| 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | ||||||
| @@ -213,16 +212,16 @@ func getDefaultInitConfigBytes() ([]byte, error) { | |||||||
| 		return []byte{}, err | 		return []byte{}, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1old.SchemeGroupVersion) | 	return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion) | ||||||
| } | } | ||||||
|  |  | ||||||
| func getDefaultNodeConfigBytes() ([]byte, error) { | func getDefaultNodeConfigBytes() ([]byte, error) { | ||||||
| 	opts := configutil.LoadOrDefaultConfigurationOptions{ | 	opts := configutil.LoadOrDefaultConfigurationOptions{ | ||||||
| 		SkipCRIDetect: true, | 		SkipCRIDetect: true, | ||||||
| 	} | 	} | ||||||
| 	internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1old.JoinConfiguration{ | 	internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1.JoinConfiguration{ | ||||||
| 		Discovery: kubeadmapiv1old.Discovery{ | 		Discovery: kubeadmapiv1.Discovery{ | ||||||
| 			BootstrapToken: &kubeadmapiv1old.BootstrapTokenDiscovery{ | 			BootstrapToken: &kubeadmapiv1.BootstrapTokenDiscovery{ | ||||||
| 				Token:                    configutil.PlaceholderToken.Token.String(), | 				Token:                    configutil.PlaceholderToken.Token.String(), | ||||||
| 				APIServerEndpoint:        "kube-apiserver:6443", | 				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 | 				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 []byte{}, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1old.SchemeGroupVersion) | 	return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion) | ||||||
| } | } | ||||||
|  |  | ||||||
| func getDefaultResetConfigBytes() ([]byte, error) { | 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 | 			In other words, the output of this command is what kubeadm actually would read internally if you | ||||||
| 			submitted this file to "kubeadm init" | 			submitted this file to "kubeadm init" | ||||||
| 		`), kubeadmapiv1old.SchemeGroupVersion, kubeadmapiv1old.SchemeGroupVersion), | 		`), kubeadmapiv1.SchemeGroupVersion, kubeadmapiv1.SchemeGroupVersion), | ||||||
| 		RunE: func(cmd *cobra.Command, args []string) error { | 		RunE: func(cmd *cobra.Command, args []string) error { | ||||||
| 			if len(oldCfgPath) == 0 { | 			if len(oldCfgPath) == 0 { | ||||||
| 				return errors.New("the --old-config flag is mandatory") | 				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: | 			In this version of kubeadm, the following API versions are supported: | ||||||
| 			- %s | 			- %s | ||||||
| 		`), kubeadmapiv1old.SchemeGroupVersion), | 		`), kubeadmapiv1.SchemeGroupVersion), | ||||||
| 		RunE: func(cmd *cobra.Command, args []string) error { | 		RunE: func(cmd *cobra.Command, args []string) error { | ||||||
| 			if len(cfgPath) == 0 { | 			if len(cfgPath) == 0 { | ||||||
| 				return errors.Errorf("the --%s flag is mandatory", options.CfgPath) | 				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 | // newCmdConfigImagesPull returns the `kubeadm config images pull` command | ||||||
| func newCmdConfigImagesPull() *cobra.Command { | func newCmdConfigImagesPull() *cobra.Command { | ||||||
| 	externalClusterCfg := &kubeadmapiv1old.ClusterConfiguration{} | 	externalClusterCfg := &kubeadmapiv1.ClusterConfiguration{} | ||||||
| 	kubeadmscheme.Scheme.Default(externalClusterCfg) | 	kubeadmscheme.Scheme.Default(externalClusterCfg) | ||||||
| 	externalInitCfg := &kubeadmapiv1old.InitConfiguration{} | 	externalInitCfg := &kubeadmapiv1.InitConfiguration{} | ||||||
| 	kubeadmscheme.Scheme.Default(externalInitCfg) | 	kubeadmscheme.Scheme.Default(externalInitCfg) | ||||||
| 	var cfgPath, featureGatesString string | 	var cfgPath, featureGatesString string | ||||||
| 	var err error | 	var err error | ||||||
| @@ -417,7 +416,7 @@ func PullControlPlaneImages(runtime utilruntime.ContainerRuntime, cfg *kubeadmap | |||||||
|  |  | ||||||
| // newCmdConfigImagesList returns the "kubeadm config images list" command | // newCmdConfigImagesList returns the "kubeadm config images list" command | ||||||
| func newCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Command { | func newCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Command { | ||||||
| 	externalcfg := &kubeadmapiv1old.ClusterConfiguration{} | 	externalcfg := &kubeadmapiv1.ClusterConfiguration{} | ||||||
| 	kubeadmscheme.Scheme.Default(externalcfg) | 	kubeadmscheme.Scheme.Default(externalcfg) | ||||||
| 	var cfgPath, featureGatesString string | 	var cfgPath, featureGatesString string | ||||||
| 	var err error | 	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 | // NewImagesList returns the underlying struct for the "kubeadm config images list" command | ||||||
| func NewImagesList(cfgPath string, cfg *kubeadmapiv1old.ClusterConfiguration) (*ImagesList, error) { | func NewImagesList(cfgPath string, cfg *kubeadmapiv1.ClusterConfiguration) (*ImagesList, error) { | ||||||
| 	initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, &kubeadmapiv1old.InitConfiguration{}, cfg, configutil.LoadOrDefaultConfigurationOptions{ | 	initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, &kubeadmapiv1.InitConfiguration{}, cfg, configutil.LoadOrDefaultConfigurationOptions{ | ||||||
| 		SkipCRIDetect: true, | 		SkipCRIDetect: true, | ||||||
| 	}) | 	}) | ||||||
| 	if err != nil { | 	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) | // 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.AddKubernetesVersionFlag(flagSet, &cfg.KubernetesVersion) | ||||||
| 	options.AddFeatureGatesStringFlag(flagSet, featureGatesString) | 	options.AddFeatureGatesStringFlag(flagSet, featureGatesString) | ||||||
| 	options.AddImageMetaFlags(flagSet, &cfg.ImageRepository) | 	options.AddImageMetaFlags(flagSet, &cfg.ImageRepository) | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ import ( | |||||||
| 	"github.com/lithammer/dedent" | 	"github.com/lithammer/dedent" | ||||||
| 	"github.com/spf13/cobra" | 	"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" | 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/apis/kubeadm/validation" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | ||||||
| 	phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init" | 	phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init" | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ import ( | |||||||
|  |  | ||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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/cmd/options" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/apis/kubeadm/validation" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | ||||||
| 	phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/join" | 	phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/join" | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ import ( | |||||||
| 	"k8s.io/utils/ptr" | 	"k8s.io/utils/ptr" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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/cmd/options" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" | 	kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import ( | |||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/klog/v2" | 	"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/options" | ||||||
| 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | ||||||
| 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ import ( | |||||||
| 	"k8s.io/client-go/tools/clientcmd" | 	"k8s.io/client-go/tools/clientcmd" | ||||||
| 	"sigs.k8s.io/yaml" | 	"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" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil" | 	"k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil" | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ import ( | |||||||
| 	"github.com/spf13/pflag" | 	"github.com/spf13/pflag" | ||||||
|  |  | ||||||
| 	cliflag "k8s.io/component-base/cli/flag" | 	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/constants" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/features" | 	"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 | // 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 | 	// TODO: https://github.com/kubernetes/kubeadm/issues/1601 | ||||||
| 	// Either deprecate these flags or handle duplicate keys. | 	// Either deprecate these flags or handle duplicate keys. | ||||||
| 	// Currently the map[string]string returned by NewMapStringString() doesn't allow this. | 	// 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 <flagname>=<value>") | 	stub := &map[string]string{} // TODO | ||||||
| 	fs.Var(cliflag.NewMapStringString(controllerManagerExtraArgs), ControllerManagerExtraArgs, "A set of extra flags to pass to the Controller Manager or override default ones in form of <flagname>=<value>") | 	fs.Var(cliflag.NewMapStringString(stub), APIServerExtraArgs, "A set of extra flags to pass to the API Server or override default ones in form of <flagname>=<value>") | ||||||
| 	fs.Var(cliflag.NewMapStringString(schedulerExtraArgs), SchedulerExtraArgs, "A set of extra flags to pass to the Scheduler or override default ones in form of <flagname>=<value>") | 	fs.Var(cliflag.NewMapStringString(stub), ControllerManagerExtraArgs, "A set of extra flags to pass to the Controller Manager or override default ones in form of <flagname>=<value>") | ||||||
|  | 	fs.Var(cliflag.NewMapStringString(stub), SchedulerExtraArgs, "A set of extra flags to pass to the Scheduler or override default ones in form of <flagname>=<value>") | ||||||
| } | } | ||||||
|  |  | ||||||
| // AddImageMetaFlags adds the --image-repository flag to the given flagset | // AddImageMetaFlags adds the --image-repository flag to the given flagset | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import ( | |||||||
| 	bootstrapapi "k8s.io/cluster-bootstrap/token/api" | 	bootstrapapi "k8s.io/cluster-bootstrap/token/api" | ||||||
|  |  | ||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	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 | // NewBootstrapTokenOptions creates a new BootstrapTokenOptions object with the default values | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/options" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" | ||||||
| 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import ( | |||||||
|  |  | ||||||
| 	"k8s.io/klog/v2" | 	"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/options" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" | ||||||
| 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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/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/options" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" | ||||||
| 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	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) { | 	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 | 		// 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. | 		// etcd.yaml is removed by other reset phases, e.g. cleanup-node. | ||||||
| 		cfg := &v1beta3.ClusterConfiguration{} | 		cfg := &kubeadmapiv1.ClusterConfiguration{} | ||||||
| 		scheme.Scheme.Default(cfg) | 		scheme.Scheme.Default(cfg) | ||||||
| 		return cfg.Etcd.Local.DataDir, nil | 		return cfg.Etcd.Local.DataDir, nil | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ package phases | |||||||
| import ( | import ( | ||||||
| 	"k8s.io/component-base/version" | 	"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, | // SetKubernetesVersion gets the current Kubeadm version and sets it as KubeadmVersion in the config, | ||||||
|   | |||||||
| @@ -20,8 +20,7 @@ import ( | |||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
| 	"k8s.io/component-base/version" | 	"k8s.io/component-base/version" | ||||||
|  | 	kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" | ||||||
| 	kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestSetKubernetesVersion(t *testing.T) { | func TestSetKubernetesVersion(t *testing.T) { | ||||||
|   | |||||||
| @@ -32,8 +32,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/v1beta4" |  | ||||||
| 	"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/options" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | ||||||
| 	phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/reset" | 	phases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/reset" | ||||||
| @@ -66,7 +65,7 @@ type resetOptions struct { | |||||||
| 	kubeconfigPath        string | 	kubeconfigPath        string | ||||||
| 	cfgPath               string | 	cfgPath               string | ||||||
| 	ignorePreflightErrors []string | 	ignorePreflightErrors []string | ||||||
| 	externalcfg           *v1beta4.ResetConfiguration | 	externalcfg           *kubeadmapiv1.ResetConfiguration | ||||||
| 	skipCRIDetect         bool | 	skipCRIDetect         bool | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -89,7 +88,7 @@ type resetData struct { | |||||||
| // newResetOptions returns a struct ready for being used for creating cmd join flags. | // newResetOptions returns a struct ready for being used for creating cmd join flags. | ||||||
| func newResetOptions() *resetOptions { | func newResetOptions() *resetOptions { | ||||||
| 	// initialize the public kubeadm config API by applying defaults | 	// initialize the public kubeadm config API by applying defaults | ||||||
| 	externalcfg := &v1beta4.ResetConfiguration{} | 	externalcfg := &kubeadmapiv1.ResetConfiguration{} | ||||||
| 	// Apply defaults | 	// Apply defaults | ||||||
| 	kubeadmscheme.Scheme.Default(externalcfg) | 	kubeadmscheme.Scheme.Default(externalcfg) | ||||||
| 	return &resetOptions{ | 	return &resetOptions{ | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ import ( | |||||||
|  |  | ||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/apis/kubeadm/validation" | ||||||
| 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | ||||||
| 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ import ( | |||||||
| 	"k8s.io/client-go/tools/clientcmd" | 	"k8s.io/client-go/tools/clientcmd" | ||||||
|  |  | ||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	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" | 	outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme" | ||||||
| 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | ||||||
| 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | ||||||
|   | |||||||
| @@ -35,8 +35,7 @@ import ( | |||||||
| 	"k8s.io/utils/ptr" | 	"k8s.io/utils/ptr" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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/apis/kubeadm/v1beta4" |  | ||||||
| 	"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/options" | 	"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" | ||||||
| 	cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" | 	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 | // 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) { | 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{} | 	opt := configutil.LoadOrDefaultConfigurationOptions{} | ||||||
| 	upgradeCfg, err := configutil.LoadOrDefaultUpgradeConfiguration(flags.cfgPath, externalCfg, opt) | 	upgradeCfg, err := configutil.LoadOrDefaultUpgradeConfiguration(flags.cfgPath, externalCfg, opt) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import ( | |||||||
| 	"github.com/spf13/pflag" | 	"github.com/spf13/pflag" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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/preflight" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/util/output" | 	"k8s.io/kubernetes/cmd/kubeadm/app/util/output" | ||||||
| 	testutil "k8s.io/kubernetes/cmd/kubeadm/test" | 	testutil "k8s.io/kubernetes/cmd/kubeadm/test" | ||||||
| @@ -153,6 +153,7 @@ func TestPrintConfiguration(t *testing.T) { | |||||||
| 	kind: ClusterConfiguration | 	kind: ClusterConfiguration | ||||||
| 	kubernetesVersion: v1.7.1 | 	kubernetesVersion: v1.7.1 | ||||||
| 	networking: {} | 	networking: {} | ||||||
|  | 	proxy: {} | ||||||
| 	scheduler: {} | 	scheduler: {} | ||||||
| `, kubeadmapiv1.SchemeGroupVersion.String())), | `, kubeadmapiv1.SchemeGroupVersion.String())), | ||||||
| 		}, | 		}, | ||||||
| @@ -185,6 +186,7 @@ func TestPrintConfiguration(t *testing.T) { | |||||||
| 	kubernetesVersion: v1.7.1 | 	kubernetesVersion: v1.7.1 | ||||||
| 	networking: | 	networking: | ||||||
| 	  serviceSubnet: 10.96.0.1/12 | 	  serviceSubnet: 10.96.0.1/12 | ||||||
|  | 	proxy: {} | ||||||
| 	scheduler: {} | 	scheduler: {} | ||||||
| `), | `), | ||||||
| 		}, | 		}, | ||||||
|   | |||||||
| @@ -24,6 +24,7 @@ import ( | |||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/google/go-cmp/cmp" | ||||||
| 	"github.com/lithammer/dedent" | 	"github.com/lithammer/dedent" | ||||||
|  |  | ||||||
| 	v1 "k8s.io/api/core/v1" | 	v1 "k8s.io/api/core/v1" | ||||||
| @@ -34,7 +35,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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" | 	outputapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha3" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | ||||||
| @@ -193,11 +194,12 @@ var ( | |||||||
| 		obj  kubeadmapiv1.ClusterConfiguration | 		obj  kubeadmapiv1.ClusterConfiguration | ||||||
| 	}{ | 	}{ | ||||||
| 		yaml: dedent.Dedent(fmt.Sprintf(` | 		yaml: dedent.Dedent(fmt.Sprintf(` | ||||||
| 			apiServer: |  | ||||||
| 			  timeoutForControlPlane: 4m |  | ||||||
| 			apiVersion: %s | 			apiVersion: %s | ||||||
| 			certificatesDir: /etc/kubernetes/pki | 			certificatesDir: /etc/kubernetes/pki | ||||||
| 			clusterName: LeCluster | 			clusterName: LeCluster | ||||||
|  | 			encryptionAlgorithm: "RSA-2048" | ||||||
|  | 			certificateValidityPeriod: "8760h0m0s" | ||||||
|  | 			caCertificateValidityPeriod: "87600h0m0s" | ||||||
| 			controllerManager: {} | 			controllerManager: {} | ||||||
| 			etcd: | 			etcd: | ||||||
| 			  local: | 			  local: | ||||||
| @@ -208,6 +210,7 @@ var ( | |||||||
| 			networking: | 			networking: | ||||||
| 			  dnsDomain: cluster.local | 			  dnsDomain: cluster.local | ||||||
| 			  serviceSubnet: 10.96.0.0/12 | 			  serviceSubnet: 10.96.0.0/12 | ||||||
|  | 			proxy: {} | ||||||
| 			scheduler: {} | 			scheduler: {} | ||||||
| 		`, kubeadmapiv1.SchemeGroupVersion.String())), | 		`, kubeadmapiv1.SchemeGroupVersion.String())), | ||||||
| 		obj: kubeadmapiv1.ClusterConfiguration{ | 		obj: kubeadmapiv1.ClusterConfiguration{ | ||||||
| @@ -228,10 +231,12 @@ var ( | |||||||
| 					DataDir: "/var/lib/etcd", | 					DataDir: "/var/lib/etcd", | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			APIServer: kubeadmapiv1.APIServer{ | 			EncryptionAlgorithm: kubeadmapiv1.EncryptionAlgorithmRSA2048, | ||||||
| 				TimeoutForControlPlane: &metav1.Duration{ | 			CertificateValidityPeriod: &metav1.Duration{ | ||||||
| 					Duration: 4 * time.Minute, | 				Duration: time.Hour * 8760, | ||||||
| 				}, | 			}, | ||||||
|  | 			CACertificateValidityPeriod: &metav1.Duration{ | ||||||
|  | 				Duration: time.Hour * 87600, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| @@ -269,6 +274,7 @@ func TestConfigBaseMarshal(t *testing.T) { | |||||||
| 			kind: ClusterConfiguration | 			kind: ClusterConfiguration | ||||||
| 			kubernetesVersion: 1.2.3 | 			kubernetesVersion: 1.2.3 | ||||||
| 			networking: {} | 			networking: {} | ||||||
|  | 			proxy: {} | ||||||
| 			scheduler: {} | 			scheduler: {} | ||||||
| 		`, kubeadmapiv1.SchemeGroupVersion.String()))) | 		`, kubeadmapiv1.SchemeGroupVersion.String()))) | ||||||
|  |  | ||||||
| @@ -301,8 +307,8 @@ func TestConfigBaseUnmarshal(t *testing.T) { | |||||||
| 			t.Fatalf("unexpected failure of Unmarshal: %v", err) | 			t.Fatalf("unexpected failure of Unmarshal: %v", err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		if !reflect.DeepEqual(got, expected) { | 		if diff := cmp.Diff(expected.config, got.config); diff != "" { | ||||||
| 			t.Fatalf("Missmatch between expected and got:\nExpected:\n%v\n---\nGot:\n%v", expected, got) | 			t.Fatalf("Unexpected diff (-expected,+got):\n%s", diff) | ||||||
| 		} | 		} | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ import ( | |||||||
| 	"k8s.io/utils/ptr" | 	"k8s.io/utils/ptr" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ import ( | |||||||
| 	"k8s.io/utils/ptr" | 	"k8s.io/utils/ptr" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ import ( | |||||||
| 	netutils "k8s.io/utils/net" | 	netutils "k8s.io/utils/net" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ import ( | |||||||
| 	kubeproxyconfig "k8s.io/kube-proxy/config/v1alpha1" | 	kubeproxyconfig "k8s.io/kube-proxy/config/v1alpha1" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import ( | |||||||
| 	"k8s.io/klog/v2" | 	"k8s.io/klog/v2" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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/file" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/discovery/https" | 	"k8s.io/kubernetes/cmd/kubeadm/app/discovery/https" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/discovery/token" | 	"k8s.io/kubernetes/cmd/kubeadm/app/discovery/token" | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ import ( | |||||||
|  |  | ||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" | 	kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin" | 	"k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin" | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ import ( | |||||||
| 	"k8s.io/klog/v2" | 	"k8s.io/klog/v2" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | ||||||
| ) | ) | ||||||
| @@ -49,7 +49,7 @@ func GetDNSImage(cfg *kubeadmapi.ClusterConfiguration) string { | |||||||
| 		dnsImageRepository = cfg.DNS.ImageRepository | 		dnsImageRepository = cfg.DNS.ImageRepository | ||||||
| 	} | 	} | ||||||
| 	// Handle the renaming of the official image from "registry.k8s.io/coredns" to "registry.k8s.io/coredns/coredns | 	// 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) | 		dnsImageRepository = fmt.Sprintf("%s/coredns", dnsImageRepository) | ||||||
| 	} | 	} | ||||||
| 	// DNS uses an imageTag that corresponds to the DNS version matching the Kubernetes version | 	// DNS uses an imageTag that corresponds to the DNS version matching the Kubernetes version | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"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{ | 			cfg: &kubeadmapi.ClusterConfiguration{ | ||||||
| 				ImageRepository: kubeadmapiv1beta3.DefaultImageRepository, | 				ImageRepository: kubeadmapiv1.DefaultImageRepository, | ||||||
| 				DNS:             kubeadmapi.DNS{}, | 				DNS:             kubeadmapi.DNS{}, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ import ( | |||||||
| 	certutil "k8s.io/client-go/util/cert" | 	certutil "k8s.io/client-go/util/cert" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" | 	certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/renewal" | 	"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/renewal" | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import ( | |||||||
| 	clientset "k8s.io/client-go/kubernetes" | 	clientset "k8s.io/client-go/kubernetes" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" | 	"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" | ||||||
| 	configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" | 	configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ import ( | |||||||
| 	fakeexec "k8s.io/utils/exec/testing" | 	fakeexec "k8s.io/utils/exec/testing" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/componentconfigs" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" | 	"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" | ||||||
|   | |||||||
| @@ -37,7 +37,8 @@ import ( | |||||||
| 	clienttesting "k8s.io/client-go/testing" | 	clienttesting "k8s.io/client-go/testing" | ||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" | ||||||
| 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	testresources "k8s.io/kubernetes/cmd/kubeadm/test/resources" | 	testresources "k8s.io/kubernetes/cmd/kubeadm/test/resources" | ||||||
| @@ -49,11 +50,20 @@ var cfgFiles = map[string][]byte{ | |||||||
| 	"InitConfiguration_v1beta3": []byte(fmt.Sprintf(` | 	"InitConfiguration_v1beta3": []byte(fmt.Sprintf(` | ||||||
| apiVersion: %s | apiVersion: %s | ||||||
| kind: InitConfiguration | kind: InitConfiguration | ||||||
| `, kubeadmapiv1.SchemeGroupVersion.String())), | `, kubeadmapiv1old.SchemeGroupVersion.String())), | ||||||
| 	"ClusterConfiguration_v1beta3": []byte(fmt.Sprintf(` | 	"ClusterConfiguration_v1beta3": []byte(fmt.Sprintf(` | ||||||
| apiVersion: %s | apiVersion: %s | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| kubernetesVersion: %s | 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)), | `, kubeadmapiv1.SchemeGroupVersion.String(), k8sVersionString)), | ||||||
| 	"Kube-proxy_componentconfig": []byte(` | 	"Kube-proxy_componentconfig": []byte(` | ||||||
| apiVersion: kubeproxy.config.k8s.io/v1alpha1 | apiVersion: kubeproxy.config.k8s.io/v1alpha1 | ||||||
| @@ -509,7 +519,7 @@ func TestGetInitConfigurationFromCluster(t *testing.T) { | |||||||
| 			expectedError: true, | 			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{ | 			staticPods: []testresources.FakeStaticPod{ | ||||||
| 				{ | 				{ | ||||||
| 					NodeName:  nodeName, | 					NodeName:  nodeName, | ||||||
| @@ -523,7 +533,7 @@ func TestGetInitConfigurationFromCluster(t *testing.T) { | |||||||
| 				{ | 				{ | ||||||
| 					Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config. | 					Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config. | ||||||
| 					Data: map[string]string{ | 					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. | 					Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config. | ||||||
| 					Data: map[string]string{ | 					Data: map[string]string{ | ||||||
| 						kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta3"]), | 						kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta4"]), | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ import ( | |||||||
| 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | 	bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/apis/kubeadm/validation" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" | 	"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" | ||||||
| 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ import ( | |||||||
| 	"sigs.k8s.io/yaml" | 	"sigs.k8s.io/yaml" | ||||||
|  |  | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	"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" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -79,6 +79,15 @@ kubernetesVersion: %s`, kubeadmapiv1.SchemeGroupVersion.String(), certDir, const | |||||||
| 				cfgFiles["Kubelet_componentconfig"], | 				cfgFiles["Kubelet_componentconfig"], | ||||||
| 			}, []byte(constants.YAMLDocumentSeparator)), | 			}, []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 { | 	for _, rt := range tests { | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ import ( | |||||||
|  |  | ||||||
| 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | 	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/apis/kubeadm/validation" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | 	kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" | ||||||
|   | |||||||
| @@ -43,17 +43,17 @@ func TestLoadJoinConfigurationFromFile(t *testing.T) { | |||||||
| 			expectErr: true, | 			expectErr: true, | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "Invalid v1beta3 causes error", | 			name: "Invalid v1beta4 causes error", | ||||||
| 			fileContents: dedent.Dedent(` | 			fileContents: dedent.Dedent(` | ||||||
| 				apiVersion: kubeadm.k8s.io/v1beta3 | 				apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| 				kind: JoinConfiguration | 				kind: JoinConfiguration | ||||||
| 			`), | 			`), | ||||||
| 			expectErr: true, | 			expectErr: true, | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "valid v1beta3 is loaded", | 			name: "valid v1beta4 is loaded", | ||||||
| 			fileContents: dedent.Dedent(` | 			fileContents: dedent.Dedent(` | ||||||
| 				apiVersion: kubeadm.k8s.io/v1beta3 | 				apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| 				kind: JoinConfiguration | 				kind: JoinConfiguration | ||||||
| 				caCertPath: /etc/kubernetes/pki/ca.crt | 				caCertPath: /etc/kubernetes/pki/ca.crt | ||||||
| 				nodeRegistration: | 				nodeRegistration: | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import ( | |||||||
| 	kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" | 	kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" | ||||||
|  |  | ||||||
| 	kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" | 	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/componentconfigs" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | 	"k8s.io/kubernetes/cmd/kubeadm/app/constants" | ||||||
| 	"k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict" | 	"k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict" | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| ControlPlaneEndpoint: test1 | ControlPlaneEndpoint: test1 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| controlPlaneEndpoint: test1 | controlPlaneEndpoint: test1 | ||||||
| controlPlaneEndpoint: test2 | controlPlaneEndpoint: test2 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: InitConfiguration | kind: InitConfiguration | ||||||
| bootstrapTokens: | bootstrapTokens: | ||||||
| - token: "9a08jv.c0izixklcxtmnze7" | - token: "9a08jv.c0izixklcxtmnze7" | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: JoinConfiguration | kind: JoinConfiguration | ||||||
| caCertPath: relativepath | caCertPath: relativepath | ||||||
| caCertPath: relativepath | caCertPath: relativepath | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| unknownField: test | unknownField: test | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: InitConfiguration | kind: InitConfiguration | ||||||
| unknownField: test | unknownField: test | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: JoinConfiguration | kind: JoinConfiguration | ||||||
| unknownField: test | unknownField: test | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| controlPlaneEndpoint: 202.0.100.1 | controlPlaneEndpoint: 202.0.100.1 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: InitConfiguration | kind: InitConfiguration | ||||||
| bootstrapTokens: | bootstrapTokens: | ||||||
| - token: "9a08jv.c0izixklcxtmnze7" | - token: "9a08jv.c0izixklcxtmnze7" | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: JoinConfiguration | kind: JoinConfiguration | ||||||
| caCertPath: relativepath | caCertPath: relativepath | ||||||
|   | |||||||
| @@ -155,6 +155,11 @@ func TestCmdInitConfig(t *testing.T) { | |||||||
| 			args:     "--config=testdata/init/v1beta3.yaml", | 			args:     "--config=testdata/init/v1beta3.yaml", | ||||||
| 			expected: true, | 			expected: true, | ||||||
| 		}, | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "can load v1beta4 config", | ||||||
|  | 			args:     "--config=testdata/init/v1beta4.yaml", | ||||||
|  | 			expected: true, | ||||||
|  | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name:     "don't allow mixed arguments v1beta3", | 			name:     "don't allow mixed arguments v1beta3", | ||||||
| 			args:     "--kubernetes-version=1.11.0 --config=testdata/init/v1beta3.yaml", | 			args:     "--kubernetes-version=1.11.0 --config=testdata/init/v1beta3.yaml", | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| --- | --- | ||||||
| apiVersion: kubelet.config.k8s.io/v1beta1 | apiVersion: kubelet.config.k8s.io/v1beta1 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| apiVersion: kubeadm.k8s.io/v1beta3 | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
| kind: ClusterConfiguration | kind: ClusterConfiguration | ||||||
| --- | --- | ||||||
| apiVersion: kubelet.config.k8s.io/v1alpha1 | apiVersion: kubelet.config.k8s.io/v1alpha1 | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								cmd/kubeadm/test/cmd/testdata/init/v1beta4.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cmd/kubeadm/test/cmd/testdata/init/v1beta4.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | apiVersion: kubeadm.k8s.io/v1beta4 | ||||||
|  | kind: InitConfiguration | ||||||
		Reference in New Issue
	
	Block a user
	 Lubomir I. Ivanov
					Lubomir I. Ivanov