kubeadm: fix "migrate config --allow-experimental-api" to print v1beta4 kubeadm configurations instead of v1beta3

This commit is contained in:
Paco Xu 2023-07-04 14:34:26 +08:00
parent 0a82bdbfdb
commit 01b1174c11
4 changed files with 17 additions and 10 deletions

View File

@ -199,7 +199,7 @@ func getDefaultInitConfigBytes() ([]byte, error) {
return []byte{}, err
}
return configutil.MarshalKubeadmConfigObject(internalcfg)
return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion)
}
func getDefaultNodeConfigBytes() ([]byte, error) {
@ -219,7 +219,7 @@ func getDefaultNodeConfigBytes() ([]byte, error) {
return []byte{}, err
}
return configutil.MarshalKubeadmConfigObject(internalcfg)
return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion)
}
// newCmdConfigMigrate returns cobra.Command for "kubeadm config migrate" command

View File

@ -33,6 +33,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"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
@ -223,7 +224,7 @@ func printConfiguration(clustercfg *kubeadmapi.ClusterConfiguration, w io.Writer
return
}
cfgYaml, err := configutil.MarshalKubeadmConfigObject(clustercfg)
cfgYaml, err := configutil.MarshalKubeadmConfigObject(clustercfg, kubeadmapiv1.SchemeGroupVersion)
if err == nil {
printer.Fprintln(w, "[upgrade/config] Configuration used:")

View File

@ -25,6 +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"
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"
@ -53,7 +54,7 @@ func UploadConfiguration(cfg *kubeadmapi.InitConfiguration, client clientset.Int
}
// Marshal the ClusterConfiguration into YAML
clusterConfigurationYaml, err := configutil.MarshalKubeadmConfigObject(clusterConfigurationToUpload)
clusterConfigurationYaml, err := configutil.MarshalKubeadmConfigObject(clusterConfigurationToUpload, kubeadmapiv1.SchemeGroupVersion)
if err != nil {
return err
}

View File

@ -36,7 +36,8 @@ 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"
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/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
@ -44,12 +45,12 @@ import (
)
// MarshalKubeadmConfigObject marshals an Object registered in the kubeadm scheme. If the object is a InitConfiguration or ClusterConfiguration, some extra logic is run
func MarshalKubeadmConfigObject(obj runtime.Object) ([]byte, error) {
func MarshalKubeadmConfigObject(obj runtime.Object, gv schema.GroupVersion) ([]byte, error) {
switch internalcfg := obj.(type) {
case *kubeadmapi.InitConfiguration:
return MarshalInitConfigurationToBytes(internalcfg, kubeadmapiv1.SchemeGroupVersion)
return MarshalInitConfigurationToBytes(internalcfg, gv)
default:
return kubeadmutil.MarshalToYamlForCodecs(obj, kubeadmapiv1.SchemeGroupVersion, kubeadmscheme.Codecs)
return kubeadmutil.MarshalToYamlForCodecs(obj, gv, kubeadmscheme.Codecs)
}
}
@ -258,13 +259,17 @@ func MigrateOldConfig(oldConfig []byte, allowExperimental bool) ([]byte, error)
return []byte{}, err
}
gv := kubeadmapiv1old.SchemeGroupVersion
if allowExperimental {
gv = kubeadmapiv1.SchemeGroupVersion
}
// Migrate InitConfiguration and ClusterConfiguration if there are any in the config
if kubeadmutil.GroupVersionKindsHasInitConfiguration(gvks...) || kubeadmutil.GroupVersionKindsHasClusterConfiguration(gvks...) {
o, err := documentMapToInitConfiguration(gvkmap, true, allowExperimental, true)
if err != nil {
return []byte{}, err
}
b, err := MarshalKubeadmConfigObject(o)
b, err := MarshalKubeadmConfigObject(o, gv)
if err != nil {
return []byte{}, err
}
@ -277,7 +282,7 @@ func MigrateOldConfig(oldConfig []byte, allowExperimental bool) ([]byte, error)
if err != nil {
return []byte{}, err
}
b, err := MarshalKubeadmConfigObject(o)
b, err := MarshalKubeadmConfigObject(o, gv)
if err != nil {
return []byte{}, err
}