mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
remove kubeadm v1beta2 support
This commit is contained in:
parent
b3056ea9bd
commit
cca7a205ad
@ -89,9 +89,6 @@ func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c fuzz.Continue
|
|||||||
|
|
||||||
func fuzzDNS(obj *kubeadm.DNS, c fuzz.Continue) {
|
func fuzzDNS(obj *kubeadm.DNS, c fuzz.Continue) {
|
||||||
c.FuzzNoCustom(obj)
|
c.FuzzNoCustom(obj)
|
||||||
|
|
||||||
// Pinning values for fields that get defaults if fuzz value is empty string or nil
|
|
||||||
obj.Type = kubeadm.CoreDNS
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func fuzzComponentConfigMap(obj *kubeadm.ComponentConfigMap, c fuzz.Continue) {
|
func fuzzComponentConfigMap(obj *kubeadm.ComponentConfigMap, c fuzz.Continue) {
|
||||||
|
@ -24,7 +24,6 @@ import (
|
|||||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
|
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -42,7 +41,6 @@ func init() {
|
|||||||
// AddToScheme builds the kubeadm scheme using all known versions of the kubeadm api.
|
// AddToScheme builds the kubeadm scheme using all known versions of the kubeadm api.
|
||||||
func AddToScheme(scheme *runtime.Scheme) {
|
func AddToScheme(scheme *runtime.Scheme) {
|
||||||
utilruntime.Must(kubeadm.AddToScheme(scheme))
|
utilruntime.Must(kubeadm.AddToScheme(scheme))
|
||||||
utilruntime.Must(v1beta2.AddToScheme(scheme))
|
|
||||||
utilruntime.Must(v1beta3.AddToScheme(scheme))
|
utilruntime.Must(v1beta3.AddToScheme(scheme))
|
||||||
utilruntime.Must(scheme.SetVersionPriority(v1beta3.SchemeGroupVersion))
|
utilruntime.Must(scheme.SetVersionPriority(v1beta3.SchemeGroupVersion))
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,7 @@ limitations under the License.
|
|||||||
//
|
//
|
||||||
// - kubeadm v1.15.x and newer can be used to migrate from v1beta1 to v1beta2.
|
// - kubeadm v1.15.x and newer can be used to migrate from v1beta1 to v1beta2.
|
||||||
// - kubeadm v1.22.x and newer no longer support v1beta1 and older APIs, but can be used to migrate v1beta2 to v1beta3.
|
// - kubeadm v1.22.x and newer no longer support v1beta1 and older APIs, but can be used to migrate v1beta2 to v1beta3.
|
||||||
|
// - kubeadm v1.27.x and newer no longer support v1beta2 and older APIs.
|
||||||
//
|
//
|
||||||
// # Basics
|
// # Basics
|
||||||
//
|
//
|
||||||
|
@ -89,6 +89,11 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := s.AddGeneratedConversionFunc((*kubeadm.DNS)(nil), (*DNS)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
|
return Convert_kubeadm_DNS_To_v1beta3_DNS(a.(*kubeadm.DNS), b.(*DNS), scope)
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := s.AddGeneratedConversionFunc((*Discovery)(nil), (*kubeadm.Discovery)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
if err := s.AddGeneratedConversionFunc((*Discovery)(nil), (*kubeadm.Discovery)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
return Convert_v1beta3_Discovery_To_kubeadm_Discovery(a.(*Discovery), b.(*kubeadm.Discovery), scope)
|
return Convert_v1beta3_Discovery_To_kubeadm_Discovery(a.(*Discovery), b.(*kubeadm.Discovery), scope)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -209,11 +214,6 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := s.AddConversionFunc((*kubeadm.DNS)(nil), (*DNS)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
|
||||||
return Convert_kubeadm_DNS_To_v1beta3_DNS(a.(*kubeadm.DNS), b.(*DNS), scope)
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := s.AddConversionFunc((*kubeadm.InitConfiguration)(nil), (*InitConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
if err := s.AddConversionFunc((*kubeadm.InitConfiguration)(nil), (*InitConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
return Convert_kubeadm_InitConfiguration_To_v1beta3_InitConfiguration(a.(*kubeadm.InitConfiguration), b.(*InitConfiguration), scope)
|
return Convert_kubeadm_InitConfiguration_To_v1beta3_InitConfiguration(a.(*kubeadm.InitConfiguration), b.(*InitConfiguration), scope)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -407,13 +407,17 @@ func Convert_v1beta3_DNS_To_kubeadm_DNS(in *DNS, out *kubeadm.DNS, s conversion.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_kubeadm_DNS_To_v1beta3_DNS(in *kubeadm.DNS, out *DNS, s conversion.Scope) error {
|
func autoConvert_kubeadm_DNS_To_v1beta3_DNS(in *kubeadm.DNS, out *DNS, s conversion.Scope) error {
|
||||||
// WARNING: in.Type requires manual conversion: does not exist in peer-type
|
|
||||||
if err := Convert_kubeadm_ImageMeta_To_v1beta3_ImageMeta(&in.ImageMeta, &out.ImageMeta, s); err != nil {
|
if err := Convert_kubeadm_ImageMeta_To_v1beta3_ImageMeta(&in.ImageMeta, &out.ImageMeta, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert_kubeadm_DNS_To_v1beta3_DNS is an autogenerated conversion function.
|
||||||
|
func Convert_kubeadm_DNS_To_v1beta3_DNS(in *kubeadm.DNS, out *DNS, s conversion.Scope) error {
|
||||||
|
return autoConvert_kubeadm_DNS_To_v1beta3_DNS(in, out, s)
|
||||||
|
}
|
||||||
|
|
||||||
func autoConvert_v1beta3_Discovery_To_kubeadm_Discovery(in *Discovery, out *kubeadm.Discovery, s conversion.Scope) error {
|
func autoConvert_v1beta3_Discovery_To_kubeadm_Discovery(in *Discovery, out *kubeadm.Discovery, s conversion.Scope) error {
|
||||||
out.BootstrapToken = (*kubeadm.BootstrapTokenDiscovery)(unsafe.Pointer(in.BootstrapToken))
|
out.BootstrapToken = (*kubeadm.BootstrapTokenDiscovery)(unsafe.Pointer(in.BootstrapToken))
|
||||||
out.File = (*kubeadm.FileDiscovery)(unsafe.Pointer(in.File))
|
out.File = (*kubeadm.FileDiscovery)(unsafe.Pointer(in.File))
|
||||||
|
@ -34,7 +34,6 @@ import (
|
|||||||
"k8s.io/utils/exec"
|
"k8s.io/utils/exec"
|
||||||
fakeexec "k8s.io/utils/exec/testing"
|
fakeexec "k8s.io/utils/exec/testing"
|
||||||
|
|
||||||
kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
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"
|
||||||
@ -388,7 +387,7 @@ func TestMigrate(t *testing.T) {
|
|||||||
# This is intentionally testing an old API version. Sometimes this may be the latest version (if no old configs are supported).
|
# This is intentionally testing an old API version. Sometimes this may be the latest version (if no old configs are supported).
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())))
|
`, kubeadmapiv1.SchemeGroupVersion.String())))
|
||||||
configFile, cleanup := tempConfig(t, cfg)
|
configFile, cleanup := tempConfig(t, cfg)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
|
@ -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"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
kubeadmapiv1beta3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"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 == kubeadmapiv1beta2.DefaultImageRepository {
|
if dnsImageRepository == kubeadmapiv1beta3.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 (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
kubeadmapiv1beta3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -244,18 +244,14 @@ func TestGetDNSImage(t *testing.T) {
|
|||||||
expected: "foo.io/coredns:v1.10.0",
|
expected: "foo.io/coredns:v1.10.0",
|
||||||
cfg: &kubeadmapi.ClusterConfiguration{
|
cfg: &kubeadmapi.ClusterConfiguration{
|
||||||
ImageRepository: "foo.io",
|
ImageRepository: "foo.io",
|
||||||
DNS: kubeadmapi.DNS{
|
DNS: kubeadmapi.DNS{},
|
||||||
Type: kubeadmapi.CoreDNS,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expected: kubeadmapiv1beta2.DefaultImageRepository + "/coredns/coredns:v1.10.0",
|
expected: kubeadmapiv1beta3.DefaultImageRepository + "/coredns/coredns:v1.10.0",
|
||||||
cfg: &kubeadmapi.ClusterConfiguration{
|
cfg: &kubeadmapi.ClusterConfiguration{
|
||||||
ImageRepository: kubeadmapiv1beta2.DefaultImageRepository,
|
ImageRepository: kubeadmapiv1beta3.DefaultImageRepository,
|
||||||
DNS: kubeadmapi.DNS{
|
DNS: kubeadmapi.DNS{},
|
||||||
Type: kubeadmapi.CoreDNS,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -263,7 +259,6 @@ func TestGetDNSImage(t *testing.T) {
|
|||||||
cfg: &kubeadmapi.ClusterConfiguration{
|
cfg: &kubeadmapi.ClusterConfiguration{
|
||||||
ImageRepository: "foo.io",
|
ImageRepository: "foo.io",
|
||||||
DNS: kubeadmapi.DNS{
|
DNS: kubeadmapi.DNS{
|
||||||
Type: kubeadmapi.CoreDNS,
|
|
||||||
ImageMeta: kubeadmapi.ImageMeta{
|
ImageMeta: kubeadmapi.ImageMeta{
|
||||||
ImageRepository: "foo.io/coredns",
|
ImageRepository: "foo.io/coredns",
|
||||||
},
|
},
|
||||||
@ -275,7 +270,6 @@ func TestGetDNSImage(t *testing.T) {
|
|||||||
cfg: &kubeadmapi.ClusterConfiguration{
|
cfg: &kubeadmapi.ClusterConfiguration{
|
||||||
ImageRepository: "foo.io/coredns",
|
ImageRepository: "foo.io/coredns",
|
||||||
DNS: kubeadmapi.DNS{
|
DNS: kubeadmapi.DNS{
|
||||||
Type: kubeadmapi.CoreDNS,
|
|
||||||
ImageMeta: kubeadmapi.ImageMeta{
|
ImageMeta: kubeadmapi.ImageMeta{
|
||||||
ImageTag: "v1.11.0",
|
ImageTag: "v1.11.0",
|
||||||
},
|
},
|
||||||
|
@ -37,7 +37,6 @@ 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"
|
||||||
kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"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"
|
||||||
@ -47,15 +46,6 @@ import (
|
|||||||
var k8sVersionString = kubeadmconstants.MinimumControlPlaneVersion.String()
|
var k8sVersionString = kubeadmconstants.MinimumControlPlaneVersion.String()
|
||||||
var nodeName = "mynode"
|
var nodeName = "mynode"
|
||||||
var cfgFiles = map[string][]byte{
|
var cfgFiles = map[string][]byte{
|
||||||
"InitConfiguration_v1beta2": []byte(fmt.Sprintf(`
|
|
||||||
apiVersion: %s
|
|
||||||
kind: InitConfiguration
|
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
|
||||||
"ClusterConfiguration_v1beta2": []byte(fmt.Sprintf(`
|
|
||||||
apiVersion: %s
|
|
||||||
kind: ClusterConfiguration
|
|
||||||
kubernetesVersion: %s
|
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String(), k8sVersionString)),
|
|
||||||
"InitConfiguration_v1beta3": []byte(fmt.Sprintf(`
|
"InitConfiguration_v1beta3": []byte(fmt.Sprintf(`
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
@ -517,83 +507,6 @@ func TestGetInitConfigurationFromCluster(t *testing.T) {
|
|||||||
},
|
},
|
||||||
expectedError: true,
|
expectedError: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "valid v1beta2 - new control plane == false", // InitConfiguration composed with data from different places, with also node specific information
|
|
||||||
staticPods: []testresources.FakeStaticPod{
|
|
||||||
{
|
|
||||||
NodeName: nodeName,
|
|
||||||
Component: kubeadmconstants.KubeAPIServer,
|
|
||||||
Annotations: map[string]string{
|
|
||||||
kubeadmconstants.KubeAPIServerAdvertiseAddressEndpointAnnotationKey: "1.2.3.4:1234",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
configMaps: []testresources.FakeConfigMap{
|
|
||||||
{
|
|
||||||
Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config.
|
|
||||||
Data: map[string]string{
|
|
||||||
kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta2"]),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: kubeadmconstants.KubeProxyConfigMap, // Kube-proxy component config from corresponding ConfigMap.
|
|
||||||
Data: map[string]string{
|
|
||||||
kubeadmconstants.KubeProxyConfigMapKey: string(cfgFiles["Kube-proxy_componentconfig"]),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: kubeadmconstants.KubeletBaseConfigurationConfigMap, // Kubelet component config from corresponding ConfigMap.
|
|
||||||
Data: map[string]string{
|
|
||||||
kubeadmconstants.KubeletBaseConfigurationConfigMapKey: string(cfgFiles["Kubelet_componentconfig"]),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fileContents: kubeletConfFiles["configWithEmbeddedCert"],
|
|
||||||
node: &v1.Node{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: nodeName,
|
|
||||||
Annotations: map[string]string{
|
|
||||||
kubeadmconstants.AnnotationKubeadmCRISocket: "myCRIsocket",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Spec: v1.NodeSpec{
|
|
||||||
Taints: []v1.Taint{kubeadmconstants.ControlPlaneTaint},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "valid v1beta2 - new control plane == true", // InitConfiguration composed with data from different places, without node specific information
|
|
||||||
staticPods: []testresources.FakeStaticPod{
|
|
||||||
{
|
|
||||||
NodeName: nodeName,
|
|
||||||
Component: kubeadmconstants.KubeAPIServer,
|
|
||||||
Annotations: map[string]string{
|
|
||||||
kubeadmconstants.KubeAPIServerAdvertiseAddressEndpointAnnotationKey: "1.2.3.4:1234",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
configMaps: []testresources.FakeConfigMap{
|
|
||||||
{
|
|
||||||
Name: kubeadmconstants.KubeadmConfigConfigMap, // ClusterConfiguration from kubeadm-config.
|
|
||||||
Data: map[string]string{
|
|
||||||
kubeadmconstants.ClusterConfigurationConfigMapKey: string(cfgFiles["ClusterConfiguration_v1beta2"]),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: kubeadmconstants.KubeProxyConfigMap, // Kube-proxy component config from corresponding ConfigMap.
|
|
||||||
Data: map[string]string{
|
|
||||||
kubeadmconstants.KubeProxyConfigMapKey: string(cfgFiles["Kube-proxy_componentconfig"]),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: kubeadmconstants.KubeletBaseConfigurationConfigMap, // Kubelet component config from corresponding ConfigMap.
|
|
||||||
Data: map[string]string{
|
|
||||||
kubeadmconstants.KubeletBaseConfigurationConfigMapKey: string(cfgFiles["Kubelet_componentconfig"]),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
newControlPlane: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "valid v1beta3 - new control plane == false", // InitConfiguration composed with data from different places, with also node specific information
|
name: "valid v1beta3 - new control plane == false", // InitConfiguration composed with data from different places, with also node specific information
|
||||||
staticPods: []testresources.FakeStaticPod{
|
staticPods: []testresources.FakeStaticPod{
|
||||||
|
@ -21,17 +21,13 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/lithammer/dedent"
|
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/version"
|
"k8s.io/apimachinery/pkg/util/version"
|
||||||
apimachineryversion "k8s.io/apimachinery/pkg/version"
|
apimachineryversion "k8s.io/apimachinery/pkg/version"
|
||||||
|
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const KubeadmGroupName = "kubeadm.k8s.io"
|
const KubeadmGroupName = "kubeadm.k8s.io"
|
||||||
@ -202,206 +198,209 @@ func TestVerifyAPIServerBindAddress(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMigrateOldConfigFromFile(t *testing.T) {
|
// TODO: re-include TestMigrateOldConfigFromFile once a new API version is added after v1beta3.
|
||||||
tests := []struct {
|
// see <link-to-commit-foo> of how this unit test function
|
||||||
desc string
|
// looked before it was removed with the removal of v1beta2.
|
||||||
oldCfg string
|
// func TestMigrateOldConfigFromFile(t *testing.T) {
|
||||||
expectedKinds []string
|
// tests := []struct {
|
||||||
expectErr bool
|
// desc string
|
||||||
}{
|
// oldCfg string
|
||||||
{
|
// expectedKinds []string
|
||||||
desc: "empty file produces empty result",
|
// expectErr bool
|
||||||
oldCfg: "",
|
// }{
|
||||||
expectErr: false,
|
// {
|
||||||
},
|
// desc: "empty file produces empty result",
|
||||||
{
|
// oldCfg: "",
|
||||||
desc: "bad config produces error",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// desc: "bad config produces error",
|
||||||
expectErr: true,
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
},
|
// apiVersion: %s
|
||||||
{
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
desc: "InitConfiguration only gets migrated",
|
// expectErr: true,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: InitConfiguration
|
// desc: "InitConfiguration only gets migrated",
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
expectedKinds: []string{
|
// apiVersion: %s
|
||||||
constants.InitConfigurationKind,
|
// kind: InitConfiguration
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
},
|
// expectedKinds: []string{
|
||||||
expectErr: false,
|
// constants.InitConfigurationKind,
|
||||||
},
|
// constants.ClusterConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "ClusterConfiguration only gets migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: ClusterConfiguration
|
// desc: "ClusterConfiguration only gets migrated",
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
expectedKinds: []string{
|
// apiVersion: %s
|
||||||
constants.InitConfigurationKind,
|
// kind: ClusterConfiguration
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
},
|
// expectedKinds: []string{
|
||||||
expectErr: false,
|
// constants.InitConfigurationKind,
|
||||||
},
|
// constants.ClusterConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "JoinConfiguration only gets migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: JoinConfiguration
|
// desc: "JoinConfiguration only gets migrated",
|
||||||
discovery:
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
bootstrapToken:
|
// apiVersion: %s
|
||||||
token: abcdef.0123456789abcdef
|
// kind: JoinConfiguration
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
// discovery:
|
||||||
unsafeSkipCAVerification: true
|
// bootstrapToken:
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// token: abcdef.0123456789abcdef
|
||||||
expectedKinds: []string{
|
// apiServerEndpoint: kube-apiserver:6443
|
||||||
constants.JoinConfigurationKind,
|
// unsafeSkipCAVerification: true
|
||||||
},
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
expectErr: false,
|
// expectedKinds: []string{
|
||||||
},
|
// constants.JoinConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "Init + Cluster Configurations are migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: InitConfiguration
|
// desc: "Init + Cluster Configurations are migrated",
|
||||||
---
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %[1]s
|
// apiVersion: %s
|
||||||
kind: ClusterConfiguration
|
// kind: InitConfiguration
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// ---
|
||||||
expectedKinds: []string{
|
// apiVersion: %[1]s
|
||||||
constants.InitConfigurationKind,
|
// kind: ClusterConfiguration
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
},
|
// expectedKinds: []string{
|
||||||
expectErr: false,
|
// constants.InitConfigurationKind,
|
||||||
},
|
// constants.ClusterConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "Init + Join Configurations are migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: InitConfiguration
|
// desc: "Init + Join Configurations are migrated",
|
||||||
---
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %[1]s
|
// apiVersion: %s
|
||||||
kind: JoinConfiguration
|
// kind: InitConfiguration
|
||||||
discovery:
|
// ---
|
||||||
bootstrapToken:
|
// apiVersion: %[1]s
|
||||||
token: abcdef.0123456789abcdef
|
// kind: JoinConfiguration
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
// discovery:
|
||||||
unsafeSkipCAVerification: true
|
// bootstrapToken:
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// token: abcdef.0123456789abcdef
|
||||||
expectedKinds: []string{
|
// apiServerEndpoint: kube-apiserver:6443
|
||||||
constants.InitConfigurationKind,
|
// unsafeSkipCAVerification: true
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
constants.JoinConfigurationKind,
|
// expectedKinds: []string{
|
||||||
},
|
// constants.InitConfigurationKind,
|
||||||
expectErr: false,
|
// constants.ClusterConfigurationKind,
|
||||||
},
|
// constants.JoinConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "Cluster + Join Configurations are migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: ClusterConfiguration
|
// desc: "Cluster + Join Configurations are migrated",
|
||||||
---
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %[1]s
|
// apiVersion: %s
|
||||||
kind: JoinConfiguration
|
// kind: ClusterConfiguration
|
||||||
discovery:
|
// ---
|
||||||
bootstrapToken:
|
// apiVersion: %[1]s
|
||||||
token: abcdef.0123456789abcdef
|
// kind: JoinConfiguration
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
// discovery:
|
||||||
unsafeSkipCAVerification: true
|
// bootstrapToken:
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// token: abcdef.0123456789abcdef
|
||||||
expectedKinds: []string{
|
// apiServerEndpoint: kube-apiserver:6443
|
||||||
constants.InitConfigurationKind,
|
// unsafeSkipCAVerification: true
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
constants.JoinConfigurationKind,
|
// expectedKinds: []string{
|
||||||
},
|
// constants.InitConfigurationKind,
|
||||||
expectErr: false,
|
// constants.ClusterConfigurationKind,
|
||||||
},
|
// constants.JoinConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "Init + Cluster + Join Configurations are migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: InitConfiguration
|
// desc: "Init + Cluster + Join Configurations are migrated",
|
||||||
---
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %[1]s
|
// apiVersion: %s
|
||||||
kind: ClusterConfiguration
|
// kind: InitConfiguration
|
||||||
---
|
// ---
|
||||||
apiVersion: %[1]s
|
// apiVersion: %[1]s
|
||||||
kind: JoinConfiguration
|
// kind: ClusterConfiguration
|
||||||
discovery:
|
// ---
|
||||||
bootstrapToken:
|
// apiVersion: %[1]s
|
||||||
token: abcdef.0123456789abcdef
|
// kind: JoinConfiguration
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
// discovery:
|
||||||
unsafeSkipCAVerification: true
|
// bootstrapToken:
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// token: abcdef.0123456789abcdef
|
||||||
expectedKinds: []string{
|
// apiServerEndpoint: kube-apiserver:6443
|
||||||
constants.InitConfigurationKind,
|
// unsafeSkipCAVerification: true
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
constants.JoinConfigurationKind,
|
// expectedKinds: []string{
|
||||||
},
|
// constants.InitConfigurationKind,
|
||||||
expectErr: false,
|
// constants.ClusterConfigurationKind,
|
||||||
},
|
// constants.JoinConfigurationKind,
|
||||||
{
|
// },
|
||||||
desc: "component configs are not migrated",
|
// expectErr: false,
|
||||||
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
// },
|
||||||
apiVersion: %s
|
// {
|
||||||
kind: InitConfiguration
|
// desc: "component configs are not migrated",
|
||||||
---
|
// oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %[1]s
|
// apiVersion: %s
|
||||||
kind: ClusterConfiguration
|
// kind: InitConfiguration
|
||||||
---
|
// ---
|
||||||
apiVersion: %[1]s
|
// apiVersion: %[1]s
|
||||||
kind: JoinConfiguration
|
// kind: ClusterConfiguration
|
||||||
discovery:
|
// ---
|
||||||
bootstrapToken:
|
// apiVersion: %[1]s
|
||||||
token: abcdef.0123456789abcdef
|
// kind: JoinConfiguration
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
// discovery:
|
||||||
unsafeSkipCAVerification: true
|
// bootstrapToken:
|
||||||
---
|
// token: abcdef.0123456789abcdef
|
||||||
apiVersion: kubeproxy.config.k8s.io/v1alpha1
|
// apiServerEndpoint: kube-apiserver:6443
|
||||||
kind: KubeProxyConfiguration
|
// unsafeSkipCAVerification: true
|
||||||
---
|
// ---
|
||||||
apiVersion: kubelet.config.k8s.io/v1beta1
|
// apiVersion: kubeproxy.config.k8s.io/v1alpha1
|
||||||
kind: KubeletConfiguration
|
// kind: KubeProxyConfiguration
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
// ---
|
||||||
expectedKinds: []string{
|
// apiVersion: kubelet.config.k8s.io/v1beta1
|
||||||
constants.InitConfigurationKind,
|
// kind: KubeletConfiguration
|
||||||
constants.ClusterConfigurationKind,
|
// `, kubeadmapiv1old.SchemeGroupVersion.String())),
|
||||||
constants.JoinConfigurationKind,
|
// expectedKinds: []string{
|
||||||
},
|
// constants.InitConfigurationKind,
|
||||||
expectErr: false,
|
// constants.ClusterConfigurationKind,
|
||||||
},
|
// constants.JoinConfigurationKind,
|
||||||
}
|
// },
|
||||||
|
// expectErr: false,
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
|
||||||
for _, test := range tests {
|
// for _, test := range tests {
|
||||||
t.Run(test.desc, func(t *testing.T) {
|
// t.Run(test.desc, func(t *testing.T) {
|
||||||
b, err := MigrateOldConfig([]byte(test.oldCfg))
|
// b, err := MigrateOldConfig([]byte(test.oldCfg))
|
||||||
if test.expectErr {
|
// if test.expectErr {
|
||||||
if err == nil {
|
// if err == nil {
|
||||||
t.Fatalf("unexpected success:\n%s", b)
|
// t.Fatalf("unexpected success:\n%s", b)
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
t.Fatalf("unexpected failure: %v", err)
|
// t.Fatalf("unexpected failure: %v", err)
|
||||||
}
|
// }
|
||||||
gvks, err := kubeadmutil.GroupVersionKindsFromBytes(b)
|
// gvks, err := kubeadmutil.GroupVersionKindsFromBytes(b)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
t.Fatalf("unexpected error returned by GroupVersionKindsFromBytes: %v", err)
|
// t.Fatalf("unexpected error returned by GroupVersionKindsFromBytes: %v", err)
|
||||||
}
|
// }
|
||||||
if len(gvks) != len(test.expectedKinds) {
|
// if len(gvks) != len(test.expectedKinds) {
|
||||||
t.Fatalf("length mismatch between resulting gvks and expected kinds:\n\tlen(gvks)=%d\n\tlen(expectedKinds)=%d",
|
// t.Fatalf("length mismatch between resulting gvks and expected kinds:\n\tlen(gvks)=%d\n\tlen(expectedKinds)=%d",
|
||||||
len(gvks), len(test.expectedKinds))
|
// len(gvks), len(test.expectedKinds))
|
||||||
}
|
// }
|
||||||
for _, expectedKind := range test.expectedKinds {
|
// for _, expectedKind := range test.expectedKinds {
|
||||||
if !kubeadmutil.GroupVersionKindsHasKind(gvks, expectedKind) {
|
// if !kubeadmutil.GroupVersionKindsHasKind(gvks, expectedKind) {
|
||||||
t.Fatalf("migration failed to produce config kind: %s", expectedKind)
|
// t.Fatalf("migration failed to produce config kind: %s", expectedKind)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
func TestIsKubeadmPrereleaseVersion(t *testing.T) {
|
func TestIsKubeadmPrereleaseVersion(t *testing.T) {
|
||||||
validVersionInfo := &apimachineryversion.Info{Major: "1", GitVersion: "v1.23.0-alpha.1"}
|
validVersionInfo := &apimachineryversion.Info{Major: "1", GitVersion: "v1.23.0-alpha.1"}
|
||||||
|
@ -44,23 +44,6 @@ func TestLoadInitConfigurationFromFile(t *testing.T) {
|
|||||||
fileContents []byte
|
fileContents []byte
|
||||||
expectErr bool
|
expectErr bool
|
||||||
}{
|
}{
|
||||||
{
|
|
||||||
name: "v1beta2.partial1",
|
|
||||||
fileContents: cfgFiles["InitConfiguration_v1beta2"],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "v1beta2.partial2",
|
|
||||||
fileContents: cfgFiles["ClusterConfiguration_v1beta2"],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "v1beta2.full",
|
|
||||||
fileContents: bytes.Join([][]byte{
|
|
||||||
cfgFiles["InitConfiguration_v1beta2"],
|
|
||||||
cfgFiles["ClusterConfiguration_v1beta2"],
|
|
||||||
cfgFiles["Kube-proxy_componentconfig"],
|
|
||||||
cfgFiles["Kubelet_componentconfig"],
|
|
||||||
}, []byte(constants.YAMLDocumentSeparator)),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "v1beta3.partial1",
|
name: "v1beta3.partial1",
|
||||||
fileContents: cfgFiles["InitConfiguration_v1beta3"],
|
fileContents: cfgFiles["InitConfiguration_v1beta3"],
|
||||||
|
@ -17,14 +17,11 @@ limitations under the License.
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/lithammer/dedent"
|
"github.com/lithammer/dedent"
|
||||||
|
|
||||||
kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoadJoinConfigurationFromFile(t *testing.T) {
|
func TestLoadJoinConfigurationFromFile(t *testing.T) {
|
||||||
@ -45,29 +42,6 @@ func TestLoadJoinConfigurationFromFile(t *testing.T) {
|
|||||||
name: "empty file causes error",
|
name: "empty file causes error",
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "Invalid v1beta2 causes error",
|
|
||||||
fileContents: dedent.Dedent(fmt.Sprintf(`
|
|
||||||
apiVersion: %s
|
|
||||||
kind: JoinConfiguration
|
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
|
||||||
expectErr: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "valid v1beta2 is loaded",
|
|
||||||
fileContents: dedent.Dedent(fmt.Sprintf(`
|
|
||||||
apiVersion: %s
|
|
||||||
kind: JoinConfiguration
|
|
||||||
caCertPath: /etc/kubernetes/pki/ca.crt
|
|
||||||
discovery:
|
|
||||||
bootstrapToken:
|
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
|
||||||
token: abcdef.0123456789abcdef
|
|
||||||
unsafeSkipCAVerification: true
|
|
||||||
timeout: 5m0s
|
|
||||||
tlsBootstrapToken: abcdef.0123456789abcdef
|
|
||||||
`, kubeadmapiv1old.SchemeGroupVersion.String())),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "Invalid v1beta3 causes error",
|
name: "Invalid v1beta3 causes error",
|
||||||
fileContents: dedent.Dedent(`
|
fileContents: dedent.Dedent(`
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: ClusterConfiguration
|
kind: ClusterConfiguration
|
||||||
ControlPlaneEndpoint: test1
|
ControlPlaneEndpoint: test1
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: ClusterConfiguration
|
kind: ClusterConfiguration
|
||||||
controlPlaneEndpoint: test1
|
controlPlaneEndpoint: test1
|
||||||
controlPlaneEndpoint: test2
|
controlPlaneEndpoint: test2
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
bootstrapTokens:
|
bootstrapTokens:
|
||||||
- token: "9a08jv.c0izixklcxtmnze7"
|
- token: "9a08jv.c0izixklcxtmnze7"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: JoinConfiguration
|
kind: JoinConfiguration
|
||||||
caCertPath: relativepath
|
caCertPath: relativepath
|
||||||
caCertPath: relativepath
|
caCertPath: relativepath
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: ClusterConfiguration
|
kind: ClusterConfiguration
|
||||||
unknownField: test
|
unknownField: test
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
unknownField: test
|
unknownField: test
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: JoinConfiguration
|
kind: JoinConfiguration
|
||||||
unknownField: test
|
unknownField: test
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: ClusterConfiguration
|
kind: ClusterConfiguration
|
||||||
controlPlaneEndpoint: 202.0.100.1
|
controlPlaneEndpoint: 202.0.100.1
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
bootstrapTokens:
|
bootstrapTokens:
|
||||||
- token: "9a08jv.c0izixklcxtmnze7"
|
- token: "9a08jv.c0izixklcxtmnze7"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta2
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: JoinConfiguration
|
kind: JoinConfiguration
|
||||||
caCertPath: relativepath
|
caCertPath: relativepath
|
||||||
|
@ -148,14 +148,9 @@ func TestCmdInitConfig(t *testing.T) {
|
|||||||
expected: false,
|
expected: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "don't allow mixed arguments v1beta2",
|
name: "can't load v1beta2 config",
|
||||||
args: "--kubernetes-version=1.11.0 --config=testdata/init/v1beta2.yaml",
|
|
||||||
expected: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "can load v1beta2 config",
|
|
||||||
args: "--config=testdata/init/v1beta2.yaml",
|
args: "--config=testdata/init/v1beta2.yaml",
|
||||||
expected: true,
|
expected: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "can load v1beta3 config",
|
name: "can load v1beta3 config",
|
||||||
|
Loading…
Reference in New Issue
Block a user