@@ -28,9 +28,9 @@ import (
2828 "sigs.k8s.io/controller-runtime/pkg/webhook"
2929 "sigs.k8s.io/controller-runtime/pkg/webhook/admission"
3030
31- bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2"
3231 controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2"
3332 clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
33+ "sigs.k8s.io/cluster-api/bootstrap/kubeadm/defaulting"
3434 "sigs.k8s.io/cluster-api/feature"
3535 "sigs.k8s.io/cluster-api/internal/util/compare"
3636)
@@ -91,8 +91,8 @@ func (webhook *KubeadmControlPlaneTemplate) ValidateUpdate(_ context.Context, ol
9191 return nil , apierrors .NewBadRequest (fmt .Sprintf ("expected a KubeadmControlPlaneTemplate but got a %T" , newObj ))
9292 }
9393
94- applyPreviousKubeadmConfigDefaults (& oldK .Spec .Template .Spec .KubeadmConfigSpec )
95- applyPreviousKubeadmConfigDefaults (& newK .Spec .Template .Spec .KubeadmConfigSpec )
94+ defaulting . ApplyPreviousKubeadmConfigDefaults (& oldK .Spec .Template .Spec .KubeadmConfigSpec )
95+ defaulting . ApplyPreviousKubeadmConfigDefaults (& newK .Spec .Template .Spec .KubeadmConfigSpec )
9696
9797 // In Cluster API < v1.11 the RolloutStrategy field was defaulted.
9898 // The defaulting was dropped with Cluster API v1.11.
@@ -123,28 +123,6 @@ func (webhook *KubeadmControlPlaneTemplate) ValidateUpdate(_ context.Context, ol
123123 return nil , apierrors .NewInvalid (clusterv1 .GroupVersion .WithKind ("KubeadmControlPlaneTemplate" ).GroupKind (), newK .Name , allErrs )
124124}
125125
126- // applyPreviousKubeadmConfigDefaults defaults a KubeadmConfig.
127- func applyPreviousKubeadmConfigDefaults (c * bootstrapv1.KubeadmConfigSpec ) {
128- if c .Format == "" {
129- c .Format = bootstrapv1 .CloudConfig
130- }
131- if c .InitConfiguration != nil && c .InitConfiguration .NodeRegistration .ImagePullPolicy == "" {
132- c .InitConfiguration .NodeRegistration .ImagePullPolicy = "IfNotPresent"
133- }
134- if c .JoinConfiguration != nil && c .JoinConfiguration .NodeRegistration .ImagePullPolicy == "" {
135- c .JoinConfiguration .NodeRegistration .ImagePullPolicy = "IfNotPresent"
136- }
137- if c .JoinConfiguration != nil && c .JoinConfiguration .Discovery .File != nil {
138- if kfg := c .JoinConfiguration .Discovery .File .KubeConfig ; kfg != nil {
139- if kfg .User .Exec != nil {
140- if kfg .User .Exec .APIVersion == "" {
141- kfg .User .Exec .APIVersion = "client.authentication.k8s.io/v1"
142- }
143- }
144- }
145- }
146- }
147-
148126// ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
149127func (webhook * KubeadmControlPlaneTemplate ) ValidateDelete (_ context.Context , _ runtime.Object ) (admission.Warnings , error ) {
150128 return nil , nil
0 commit comments