Merge pull request #103562 from neolit123/1.22-fix-upgrade-image-pull

kubeadm: statically default the "from cluster" InitConfiguration
This commit is contained in:
Kubernetes Prow Robot 2021-07-08 01:56:53 -07:00 committed by GitHub
commit e326c00bc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -26,6 +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"
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
"k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient"
@ -68,8 +69,13 @@ func getInitConfigurationFromCluster(kubeconfigDir string, client clientset.Inte
return nil, errors.Wrap(err, "failed to get config map")
}
// InitConfiguration is composed with data from different places
// Take an empty versioned InitConfiguration, statically default it and convert it to the internal type
versionedInitcfg := &kubeadmapiv1.InitConfiguration{}
kubeadmscheme.Scheme.Default(versionedInitcfg)
initcfg := &kubeadmapi.InitConfiguration{}
if err := kubeadmscheme.Scheme.Convert(versionedInitcfg, initcfg, nil); err != nil {
return nil, errors.Wrap(err, "could not prepare a defaulted InitConfiguration")
}
// gets ClusterConfiguration from kubeadm-config
clusterConfigurationData, ok := configMap.Data[constants.ClusterConfigurationConfigMapKey]

View File

@ -730,6 +730,9 @@ func TestGetInitConfigurationFromCluster(t *testing.T) {
if cfg.ClusterConfiguration.KubernetesVersion != k8sVersionString {
t.Errorf("invalid ClusterConfiguration.KubernetesVersion")
}
if cfg.NodeRegistration.ImagePullPolicy != kubeadmapiv1.DefaultImagePullPolicy {
t.Errorf("invalid cfg.NodeRegistration.ImagePullPolicy %v", cfg.NodeRegistration.ImagePullPolicy)
}
if !rt.newControlPlane && (cfg.LocalAPIEndpoint.AdvertiseAddress != "1.2.3.4" || cfg.LocalAPIEndpoint.BindPort != 1234) {
t.Errorf("invalid cfg.LocalAPIEndpoint: %v", cfg.LocalAPIEndpoint)
}