Skip to content

Commit dc88672

Browse files
✨ Add kubeadm v1beta4 types (#10709)
* Add kubeadm v1beta4 types * cleanup conversions for kubeadm v1beta1, v1beta2, v1beta3 * Implement conversions for kubeadm v1beta4 types * Handle Migration of ClusterConfiguration.APIServer.TimeoutForControlPlane to Init/JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheck * Handle Migration of JoinConfiguration.Discovery.Timeout to JoinConfiguration.Timeouts.TLSBootstrap * Final alignment with kubeadm PR * Address comments * fix nit --------- Co-authored-by: Stefan Bueringer <[email protected]>
1 parent 91dd84c commit dc88672

File tree

21 files changed

+3391
-225
lines changed

21 files changed

+3391
-225
lines changed

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -492,12 +492,13 @@ generate-go-conversions-kubeadm-bootstrap: $(CONVERSION_GEN) ## Generate convers
492492
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt \
493493
./internal/apis/bootstrap/kubeadm/v1alpha3 \
494494
./internal/apis/bootstrap/kubeadm/v1alpha4
495-
$(MAKE) clean-generated-conversions SRC_DIRS="./bootstrap/kubeadm/types/upstreamv1beta2,./bootstrap/kubeadm/types/upstreamv1beta3"
495+
$(MAKE) clean-generated-conversions SRC_DIRS="./bootstrap/kubeadm/types/upstreamv1beta2,./bootstrap/kubeadm/types/upstreamv1beta3,./bootstrap/kubeadm/types/upstreamv1beta4"
496496
$(CONVERSION_GEN) \
497497
--output-file=zz_generated.conversion.go \
498498
--go-header-file=./hack/boilerplate/boilerplate.generatego.txt \
499499
./bootstrap/kubeadm/types/upstreamv1beta2 \
500-
./bootstrap/kubeadm/types/upstreamv1beta3
500+
./bootstrap/kubeadm/types/upstreamv1beta3 \
501+
./bootstrap/kubeadm/types/upstreamv1beta4
501502

502503
.PHONY: generate-go-conversions-kubeadm-control-plane
503504
generate-go-conversions-kubeadm-control-plane: $(CONVERSION_GEN) ## Generate conversions go code for kubeadm control plane

bootstrap/kubeadm/internal/controllers/kubeadmconfig_controller.go

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -446,36 +446,38 @@ func (r *KubeadmConfigReconciler) handleClusterNotInitialized(ctx context.Contex
446446
return ctrl.Result{}, errors.Wrapf(err, "failed to parse kubernetes version %q", kubernetesVersion)
447447
}
448448

449-
if scope.Config.Spec.InitConfiguration == nil {
450-
scope.Config.Spec.InitConfiguration = &bootstrapv1.InitConfiguration{
449+
if scope.Config.Spec.ClusterConfiguration == nil {
450+
scope.Config.Spec.ClusterConfiguration = &bootstrapv1.ClusterConfiguration{
451451
TypeMeta: metav1.TypeMeta{
452-
APIVersion: "kubeadm.k8s.io/v1beta3",
453-
Kind: "InitConfiguration",
452+
APIVersion: "kubeadm.k8s.io/v1beta4",
453+
Kind: "ClusterConfiguration",
454454
},
455455
}
456456
}
457457

458-
initdata, err := kubeadmtypes.MarshalInitConfigurationForVersion(scope.Config.Spec.InitConfiguration, parsedVersion)
458+
// injects into config.ClusterConfiguration values from top level object
459+
r.reconcileTopLevelObjectSettings(ctx, scope.Cluster, machine, scope.Config)
460+
461+
clusterdata, err := kubeadmtypes.MarshalClusterConfigurationForVersion(scope.Config.Spec.ClusterConfiguration, parsedVersion)
459462
if err != nil {
460-
scope.Error(err, "Failed to marshal init configuration")
463+
scope.Error(err, "Failed to marshal cluster configuration")
461464
return ctrl.Result{}, err
462465
}
463466

464-
if scope.Config.Spec.ClusterConfiguration == nil {
465-
scope.Config.Spec.ClusterConfiguration = &bootstrapv1.ClusterConfiguration{
467+
if scope.Config.Spec.InitConfiguration == nil {
468+
scope.Config.Spec.InitConfiguration = &bootstrapv1.InitConfiguration{
466469
TypeMeta: metav1.TypeMeta{
467-
APIVersion: "kubeadm.k8s.io/v1beta3",
468-
Kind: "ClusterConfiguration",
470+
APIVersion: "kubeadm.k8s.io/v1beta4",
471+
Kind: "InitConfiguration",
469472
},
470473
}
471474
}
472475

473-
// injects into config.ClusterConfiguration values from top level object
474-
r.reconcileTopLevelObjectSettings(ctx, scope.Cluster, machine, scope.Config)
475-
476-
clusterdata, err := kubeadmtypes.MarshalClusterConfigurationForVersion(scope.Config.Spec.ClusterConfiguration, parsedVersion)
476+
// NOTE: It is required to provide in input the ClusterConfiguration because clusterConfiguration.APIServer.TimeoutForControlPlane
477+
// has been migrated to InitConfiguration in the kubeadm v1beta4 API version.
478+
initdata, err := kubeadmtypes.MarshalInitConfigurationForVersion(scope.Config.Spec.ClusterConfiguration, scope.Config.Spec.InitConfiguration, parsedVersion)
477479
if err != nil {
478-
scope.Error(err, "Failed to marshal cluster configuration")
480+
scope.Error(err, "Failed to marshal init configuration")
479481
return ctrl.Result{}, err
480482
}
481483

@@ -603,7 +605,9 @@ func (r *KubeadmConfigReconciler) joinWorker(ctx context.Context, scope *Scope)
603605
joinConfiguration.NodeRegistration.Taints = append(joinConfiguration.NodeRegistration.Taints, clusterv1.NodeUninitializedTaint)
604606
}
605607

606-
joinData, err := kubeadmtypes.MarshalJoinConfigurationForVersion(joinConfiguration, parsedVersion)
608+
// NOTE: It is not required to provide in input ClusterConfiguration because only clusterConfiguration.APIServer.TimeoutForControlPlane
609+
// has been migrated to JoinConfiguration in the kubeadm v1beta4 API version, and this field does not apply to workers.
610+
joinData, err := kubeadmtypes.MarshalJoinConfigurationForVersion(nil, joinConfiguration, parsedVersion)
607611
if err != nil {
608612
scope.Error(err, "Failed to marshal join configuration")
609613
return ctrl.Result{}, err
@@ -712,7 +716,9 @@ func (r *KubeadmConfigReconciler) joinControlplane(ctx context.Context, scope *S
712716
return ctrl.Result{}, errors.Wrapf(err, "failed to parse kubernetes version %q", kubernetesVersion)
713717
}
714718

715-
joinData, err := kubeadmtypes.MarshalJoinConfigurationForVersion(scope.Config.Spec.JoinConfiguration, parsedVersion)
719+
// NOTE: It is required to provide in input the ClusterConfiguration because clusterConfiguration.APIServer.TimeoutForControlPlane
720+
// has been migrated to JoinConfiguration in the kubeadm v1beta4 API version.
721+
joinData, err := kubeadmtypes.MarshalJoinConfigurationForVersion(scope.Config.Spec.ClusterConfiguration, scope.Config.Spec.JoinConfiguration, parsedVersion)
716722
if err != nil {
717723
scope.Error(err, "Failed to marshal join configuration")
718724
return ctrl.Result{}, err

bootstrap/kubeadm/types/upstreamv1beta1/conversion.go

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,75 +23,71 @@ import (
2323
bootstrapv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1"
2424
)
2525

26-
// ConvertTo converts this ClusterConfiguration to the Hub version (v1alpha4).
2726
func (src *ClusterConfiguration) ConvertTo(dstRaw conversion.Hub) error {
2827
dst := dstRaw.(*bootstrapv1.ClusterConfiguration)
2928
return Convert_upstreamv1beta1_ClusterConfiguration_To_v1beta1_ClusterConfiguration(src, dst, nil)
3029
}
3130

32-
// ConvertFrom converts from the ClusterConfiguration Hub version (v1alpha4) to this version.
3331
func (dst *ClusterConfiguration) ConvertFrom(srcRaw conversion.Hub) error {
3432
src := srcRaw.(*bootstrapv1.ClusterConfiguration)
3533
return Convert_v1beta1_ClusterConfiguration_To_upstreamv1beta1_ClusterConfiguration(src, dst, nil)
3634
}
3735

38-
// ConvertTo converts this ClusterStatus to the Hub version (v1alpha4).
3936
func (src *ClusterStatus) ConvertTo(dstRaw conversion.Hub) error {
4037
dst := dstRaw.(*bootstrapv1.ClusterStatus)
4138
return Convert_upstreamv1beta1_ClusterStatus_To_v1beta1_ClusterStatus(src, dst, nil)
4239
}
4340

44-
// ConvertFrom converts from the ClusterStatus Hub version (v1alpha4) to this version.
4541
func (dst *ClusterStatus) ConvertFrom(srcRaw conversion.Hub) error {
4642
src := srcRaw.(*bootstrapv1.ClusterStatus)
4743
return Convert_v1beta1_ClusterStatus_To_upstreamv1beta1_ClusterStatus(src, dst, nil)
4844
}
4945

50-
// ConvertTo converts this InitConfiguration to the Hub version (v1alpha4).
5146
func (src *InitConfiguration) ConvertTo(dstRaw conversion.Hub) error {
5247
dst := dstRaw.(*bootstrapv1.InitConfiguration)
5348
return Convert_upstreamv1beta1_InitConfiguration_To_v1beta1_InitConfiguration(src, dst, nil)
5449
}
5550

56-
// ConvertFrom converts from the InitConfiguration Hub version (v1alpha4) to this version.
5751
func (dst *InitConfiguration) ConvertFrom(srcRaw conversion.Hub) error {
5852
src := srcRaw.(*bootstrapv1.InitConfiguration)
5953
return Convert_v1beta1_InitConfiguration_To_upstreamv1beta1_InitConfiguration(src, dst, nil)
6054
}
6155

62-
// ConvertTo converts this JoinConfiguration to the Hub version (v1alpha4).
6356
func (src *JoinConfiguration) ConvertTo(dstRaw conversion.Hub) error {
6457
dst := dstRaw.(*bootstrapv1.JoinConfiguration)
6558
return Convert_upstreamv1beta1_JoinConfiguration_To_v1beta1_JoinConfiguration(src, dst, nil)
6659
}
6760

68-
// ConvertFrom converts from the JoinConfiguration Hub version (v1alpha4) to this version.
6961
func (dst *JoinConfiguration) ConvertFrom(srcRaw conversion.Hub) error {
7062
src := srcRaw.(*bootstrapv1.JoinConfiguration)
7163
return Convert_v1beta1_JoinConfiguration_To_upstreamv1beta1_JoinConfiguration(src, dst, nil)
7264
}
7365

74-
func Convert_upstreamv1beta1_DNS_To_v1beta1_DNS(in *DNS, out *bootstrapv1.DNS, s apimachineryconversion.Scope) error {
75-
// DNS.Type was removed in v1alpha4 because only CoreDNS is supported, dropping this info.
76-
return autoConvert_upstreamv1beta1_DNS_To_v1beta1_DNS(in, out, s)
77-
}
66+
// Custom conversion from this API, kubeadm v1beta1, to the hub version, CABPK v1beta1.
7867

7968
func Convert_upstreamv1beta1_ClusterConfiguration_To_v1beta1_ClusterConfiguration(in *ClusterConfiguration, out *bootstrapv1.ClusterConfiguration, s apimachineryconversion.Scope) error {
80-
// ClusterConfiguration.UseHyperKubeImage was removed in kubeadm v1alpha4 API
69+
// ClusterConfiguration.UseHyperKubeImage was removed in CABPK v1alpha4 API version, dropping this info (no issue, it was not used).
8170
return autoConvert_upstreamv1beta1_ClusterConfiguration_To_v1beta1_ClusterConfiguration(in, out, s)
8271
}
8372

84-
func Convert_v1beta1_NodeRegistrationOptions_To_upstreamv1beta1_NodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, out *NodeRegistrationOptions, s apimachineryconversion.Scope) error {
85-
// NodeRegistrationOptions.IgnorePreflightErrors does not exist in kubeadm v1beta1 API
86-
return autoConvert_v1beta1_NodeRegistrationOptions_To_upstreamv1beta1_NodeRegistrationOptions(in, out, s)
73+
func Convert_upstreamv1beta1_DNS_To_v1beta1_DNS(in *DNS, out *bootstrapv1.DNS, s apimachineryconversion.Scope) error {
74+
// DNS.Type does not exist in CABPK v1beta1 version, because it always was CoreDNS.
75+
return autoConvert_upstreamv1beta1_DNS_To_v1beta1_DNS(in, out, s)
8776
}
8877

78+
// Custom conversion from the hub version, CABPK v1beta1, to this API, kubeadm v1beta1.
79+
8980
func Convert_v1beta1_InitConfiguration_To_upstreamv1beta1_InitConfiguration(in *bootstrapv1.InitConfiguration, out *InitConfiguration, s apimachineryconversion.Scope) error {
90-
// InitConfiguration.Patches does not exist in kubeadm v1beta1 API
81+
// InitConfiguration.SkipPhases and Patches does not exist in kubeadm v1beta1, dropping those info.
9182
return autoConvert_v1beta1_InitConfiguration_To_upstreamv1beta1_InitConfiguration(in, out, s)
9283
}
9384

9485
func Convert_v1beta1_JoinConfiguration_To_upstreamv1beta1_JoinConfiguration(in *bootstrapv1.JoinConfiguration, out *JoinConfiguration, s apimachineryconversion.Scope) error {
95-
// JoinConfiguration.Patches does not exist in kubeadm v1beta1 API
86+
// JoinConfiguration.SkipPhases and Patches does not exist in kubeadm v1beta1, dropping those info.
9687
return autoConvert_v1beta1_JoinConfiguration_To_upstreamv1beta1_JoinConfiguration(in, out, s)
9788
}
89+
90+
func Convert_v1beta1_NodeRegistrationOptions_To_upstreamv1beta1_NodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, out *NodeRegistrationOptions, s apimachineryconversion.Scope) error {
91+
// NodeRegistrationOptions.IgnorePreflightErrors and ImagePullPolicy does not exist in kubeadm v1beta1, dropping those info.
92+
return autoConvert_v1beta1_NodeRegistrationOptions_To_upstreamv1beta1_NodeRegistrationOptions(in, out, s)
93+
}

bootstrap/kubeadm/types/upstreamv1beta1/conversion_test.go

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -60,61 +60,57 @@ func TestFuzzyConversion(t *testing.T) {
6060

6161
func fuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} {
6262
return []interface{}{
63-
dnsFuzzer,
6463
clusterConfigurationFuzzer,
65-
kubeadmNodeRegistrationOptionsFuzzer,
66-
kubeadmInitConfigurationFuzzer,
67-
kubeadmJoinConfigurationFuzzer,
64+
dnsFuzzer,
65+
bootstrapv1InitConfigurationFuzzer,
66+
bootstrapv1JoinConfigurationFuzzer,
67+
bootstrapv1NodeRegistrationOptionsFuzzer,
6868
}
6969
}
7070

71-
func dnsFuzzer(obj *DNS, c fuzz.Continue) {
72-
c.FuzzNoCustom(obj)
73-
74-
// DNS.Type does not exists in v1alpha4, so setting it to empty string in order to avoid v1beta1 --> v1alpha4 --> v1beta1 round trip errors.
75-
obj.Type = ""
76-
}
71+
// Custom fuzzers for kubeadm v1beta1 types.
72+
// NOTES:
73+
// - When fields do does not exist in cabpk v1beta1 types, pinning it to avoid kubeadm v1beta1 --> cabpk v1beta1 --> kubeadm v1beta1 round trip errors.
7774

7875
func clusterConfigurationFuzzer(obj *ClusterConfiguration, c fuzz.Continue) {
7976
c.FuzzNoCustom(obj)
8077

81-
// ClusterConfiguration.UseHyperKubeImage has been removed in v1alpha4, so setting it to false in order to avoid v1beta1 --> v1alpha4 --> v1beta1 round trip errors.
8278
obj.UseHyperKubeImage = false
8379
}
8480

85-
func kubeadmNodeRegistrationOptionsFuzzer(obj *bootstrapv1.NodeRegistrationOptions, c fuzz.Continue) {
81+
func dnsFuzzer(obj *DNS, c fuzz.Continue) {
8682
c.FuzzNoCustom(obj)
8783

88-
// NodeRegistrationOptions.IgnorePreflightErrors does not exist in kubeadm v1beta1 API, so setting it to nil in order to avoid
89-
// v1alpha4 --> v1beta1 -> v1alpha4 round trip errors.
90-
obj.IgnorePreflightErrors = nil
91-
92-
// NodeRegistrationOptions.ImagePullPolicy does not exist in
93-
// kubeadm v1beta1 API, so setting it to empty in order to
94-
// avoid round trip errors.
95-
obj.ImagePullPolicy = ""
84+
obj.Type = ""
9685
}
9786

98-
func kubeadmInitConfigurationFuzzer(obj *bootstrapv1.InitConfiguration, c fuzz.Continue) {
87+
// Custom fuzzers for CABPK v1beta1 types.
88+
// NOTES:
89+
// - When fields do not exist in kubeadm v1beta1 types, pinning it to avoid cabpk v1beta1 --> kubeadm v1beta1 --> cabpk v1beta1 round trip errors.
90+
91+
func bootstrapv1InitConfigurationFuzzer(obj *bootstrapv1.InitConfiguration, c fuzz.Continue) {
9992
c.FuzzNoCustom(obj)
10093

101-
// InitConfiguration.Patches does not exist in kubeadm v1beta1 API, so setting it to nil in order to avoid
102-
// v1beta1 --> upstream v1beta1 -> v1beta1 round trip errors.
10394
obj.Patches = nil
104-
105-
// InitConfiguration.SkipPhases does not exist in kubeadm v1beta1 API, so setting it to nil in order to avoid
106-
// v1beta1 --> upstream v1beta1 -> v1beta1 round trip errors.
10795
obj.SkipPhases = nil
10896
}
10997

110-
func kubeadmJoinConfigurationFuzzer(obj *bootstrapv1.JoinConfiguration, c fuzz.Continue) {
98+
func bootstrapv1JoinConfigurationFuzzer(obj *bootstrapv1.JoinConfiguration, c fuzz.Continue) {
11199
c.FuzzNoCustom(obj)
112100

113-
// JoinConfiguration.Patches does not exist in kubeadm v1beta1 API, so setting it to nil in order to avoid
114-
// v1beta1 --> upstream v1beta1 -> v1beta1 round trip errors.
101+
// JoinConfiguration.Patches does not exist in kubeadm v1beta1 types, pinning it to avoid cabpk v1beta1 --> kubeadm v1beta1 --> cabpk v1beta1 round trip errors.
115102
obj.Patches = nil
116103

117-
// JoinConfiguration.SkipPhases does not exist in kubeadm v1beta1 API, so setting it to nil in order to avoid
118-
// v1beta1 --> upstream v1beta1 -> v1beta1 round trip errors.
104+
// JoinConfiguration.SkipPhases does not exist in kubeadm v1beta1 types, pinning it to avoid cabpk v1beta1 --> kubeadm v1beta1 --> cabpk v1beta1 round trip errors.
119105
obj.SkipPhases = nil
120106
}
107+
108+
func bootstrapv1NodeRegistrationOptionsFuzzer(obj *bootstrapv1.NodeRegistrationOptions, c fuzz.Continue) {
109+
c.FuzzNoCustom(obj)
110+
111+
// NodeRegistrationOptions.IgnorePreflightErrors does not exist in kubeadm v1beta1 types, pinning it to avoid cabpk v1beta1 --> kubeadm v1beta1 --> cabpk v1beta1 round trip errors.
112+
obj.IgnorePreflightErrors = nil
113+
114+
// NodeRegistrationOptions.ImagePullPolicy does not exist in kubeadm v1beta1 types, pinning it to avoid cabpk v1beta1 --> kubeadm v1beta1 --> cabpk v1beta1 round trip errors.
115+
obj.ImagePullPolicy = ""
116+
}

bootstrap/kubeadm/types/upstreamv1beta2/conversion.go

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,38 +63,41 @@ func (dst *JoinConfiguration) ConvertFrom(srcRaw conversion.Hub) error {
6363
return Convert_v1beta1_JoinConfiguration_To_upstreamv1beta2_JoinConfiguration(src, dst, nil)
6464
}
6565

66-
func Convert_upstreamv1beta2_InitConfiguration_To_v1beta1_InitConfiguration(in *InitConfiguration, out *bootstrapv1.InitConfiguration, s apimachineryconversion.Scope) error {
67-
// InitConfiguration.CertificateKey exists in v1beta2 types but not in bootstrapv1.InitConfiguration (Cluster API does not uses automatic copy certs). Ignoring when converting.
68-
return autoConvert_upstreamv1beta2_InitConfiguration_To_v1beta1_InitConfiguration(in, out, s)
69-
}
66+
// Custom conversion from this API, kubeadm v1beta2, to the hub version, CABPK v1beta1.
7067

71-
func Convert_upstreamv1beta2_JoinControlPlane_To_v1beta1_JoinControlPlane(in *JoinControlPlane, out *bootstrapv1.JoinControlPlane, s apimachineryconversion.Scope) error {
72-
// JoinControlPlane.CertificateKey exists in v1beta2 types but not in bootstrapv1.JoinControlPlane (Cluster API does not uses automatic copy certs). Ignoring when converting.
73-
return autoConvert_upstreamv1beta2_JoinControlPlane_To_v1beta1_JoinControlPlane(in, out, s)
68+
func Convert_upstreamv1beta2_ClusterConfiguration_To_v1beta1_ClusterConfiguration(in *ClusterConfiguration, out *bootstrapv1.ClusterConfiguration, s apimachineryconversion.Scope) error {
69+
// ClusterConfiguration.UseHyperKubeImage was removed in CABPK v1alpha4 API version, dropping this info (no issue, it was not used).
70+
return autoConvert_upstreamv1beta2_ClusterConfiguration_To_v1beta1_ClusterConfiguration(in, out, s)
7471
}
7572

7673
func Convert_upstreamv1beta2_DNS_To_v1beta1_DNS(in *DNS, out *bootstrapv1.DNS, s apimachineryconversion.Scope) error {
77-
// DNS.Type was removed in v1alpha4 because only CoreDNS is supported, dropping this info.
74+
// DNS.Type does not exist in CABPK v1beta1 version, because it always was CoreDNS.
7875
return autoConvert_upstreamv1beta2_DNS_To_v1beta1_DNS(in, out, s)
7976
}
8077

81-
func Convert_upstreamv1beta2_ClusterConfiguration_To_v1beta1_ClusterConfiguration(in *ClusterConfiguration, out *bootstrapv1.ClusterConfiguration, s apimachineryconversion.Scope) error {
82-
// ClusterConfiguration.UseHyperKubeImage was removed in kubeadm v1alpha4 API
83-
return autoConvert_upstreamv1beta2_ClusterConfiguration_To_v1beta1_ClusterConfiguration(in, out, s)
78+
func Convert_upstreamv1beta2_InitConfiguration_To_v1beta1_InitConfiguration(in *InitConfiguration, out *bootstrapv1.InitConfiguration, s apimachineryconversion.Scope) error {
79+
// InitConfiguration.CertificateKey does not exist in CABPK v1beta1 version, because Cluster API does not use automatic copy certs.
80+
return autoConvert_upstreamv1beta2_InitConfiguration_To_v1beta1_InitConfiguration(in, out, s)
81+
}
82+
83+
func Convert_upstreamv1beta2_JoinControlPlane_To_v1beta1_JoinControlPlane(in *JoinControlPlane, out *bootstrapv1.JoinControlPlane, s apimachineryconversion.Scope) error {
84+
// JoinControlPlane.CertificateKey does not exist in CABPK v1beta1 version, because Cluster API does not use automatic copy certs.
85+
return autoConvert_upstreamv1beta2_JoinControlPlane_To_v1beta1_JoinControlPlane(in, out, s)
8486
}
8587

88+
// Custom conversion from the hub version, CABPK v1beta1, to this API, kubeadm v1beta2.
89+
8690
func Convert_v1beta1_InitConfiguration_To_upstreamv1beta2_InitConfiguration(in *bootstrapv1.InitConfiguration, out *InitConfiguration, s apimachineryconversion.Scope) error {
87-
// InitConfiguration.Patches does not exist in kubeadm v1beta2 API
91+
// InitConfiguration.SkipPhases and Patches does not exist in kubeadm v1beta2, dropping those info.
8892
return autoConvert_v1beta1_InitConfiguration_To_upstreamv1beta2_InitConfiguration(in, out, s)
8993
}
9094

9195
func Convert_v1beta1_JoinConfiguration_To_upstreamv1beta2_JoinConfiguration(in *bootstrapv1.JoinConfiguration, out *JoinConfiguration, s apimachineryconversion.Scope) error {
92-
// JoinConfiguration.Patches does not exist in kubeadm v1beta2 API
96+
// JoinConfiguration.SkipPhases and Patches does not exist in kubeadm v1beta2, dropping those info.
9397
return autoConvert_v1beta1_JoinConfiguration_To_upstreamv1beta2_JoinConfiguration(in, out, s)
9498
}
9599

96100
func Convert_v1beta1_NodeRegistrationOptions_To_upstreamv1beta2_NodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, out *NodeRegistrationOptions, s apimachineryconversion.Scope) error {
97-
// NodeRegistrationOptions.ImagePullPolicy does not exit in
98-
// kubeadm v1beta2 API.
101+
// NodeRegistrationOptions.IgnorePreflightErrors and ImagePullPolicy does not exist in kubeadm v1beta2, dropping those info.
99102
return autoConvert_v1beta1_NodeRegistrationOptions_To_upstreamv1beta2_NodeRegistrationOptions(in, out, s)
100103
}

0 commit comments

Comments
 (0)