@@ -48,6 +48,16 @@ var _ webhook.Defaulter = &RKE2ControlPlane{}
48
48
// Default implements webhook.Defaulter so a webhook will be registered for the type.
49
49
func (r * RKE2ControlPlane ) Default () {
50
50
bootstrapv1 .DefaultRKE2ConfigSpec (& r .Spec .RKE2ConfigSpec )
51
+
52
+ // Defaults missing MachineTemplate.InfrastructureRef to Spec.InfrastructureRef
53
+ if len (r .Spec .MachineTemplate .InfrastructureRef .Name ) == 0 {
54
+ r .Spec .MachineTemplate .InfrastructureRef = r .Spec .InfrastructureRef
55
+ }
56
+
57
+ // Defaults missing MachineTemplate.NodeDrainTimeout to Spec.NodeDrainTimeout
58
+ if r .Spec .MachineTemplate .NodeDrainTimeout == nil {
59
+ r .Spec .MachineTemplate .NodeDrainTimeout = r .Spec .NodeDrainTimeout
60
+ }
51
61
}
52
62
53
63
//+kubebuilder:webhook:path=/validate-controlplane-cluster-x-k8s-io-v1beta1-rke2controlplane,mutating=false,failurePolicy=fail,sideEffects=None,groups=controlplane.cluster.x-k8s.io,resources=rke2controlplanes,verbs=create;update,versions=v1beta1,name=vrke2controlplane.kb.io,admissionReviewVersions=v1
@@ -63,6 +73,7 @@ func (r *RKE2ControlPlane) ValidateCreate() (admission.Warnings, error) {
63
73
allErrs = append (allErrs , bootstrapv1 .ValidateRKE2ConfigSpec (r .Name , & r .Spec .RKE2ConfigSpec )... )
64
74
allErrs = append (allErrs , r .validateCNI ()... )
65
75
allErrs = append (allErrs , r .validateRegistrationMethod ()... )
76
+ allErrs = append (allErrs , r .validateMachineTemplate ()... )
66
77
67
78
if len (allErrs ) == 0 {
68
79
return nil , nil
@@ -84,6 +95,7 @@ func (r *RKE2ControlPlane) ValidateUpdate(old runtime.Object) (admission.Warning
84
95
85
96
allErrs = append (allErrs , bootstrapv1 .ValidateRKE2ConfigSpec (r .Name , & r .Spec .RKE2ConfigSpec )... )
86
97
allErrs = append (allErrs , r .validateCNI ()... )
98
+ allErrs = append (allErrs , r .validateMachineTemplate ()... )
87
99
88
100
oldSet := oldControlplane .Spec .RegistrationMethod != ""
89
101
if oldSet && r .Spec .RegistrationMethod != oldControlplane .Spec .RegistrationMethod {
@@ -131,3 +143,15 @@ func (r *RKE2ControlPlane) validateRegistrationMethod() field.ErrorList {
131
143
132
144
return allErrs
133
145
}
146
+
147
+ func (r * RKE2ControlPlane ) validateMachineTemplate () field.ErrorList {
148
+ var allErrs field.ErrorList
149
+
150
+ if r .Spec .MachineTemplate .InfrastructureRef .Name == "" && r .Spec .InfrastructureRef .Name == "" {
151
+ allErrs = append (allErrs ,
152
+ field .Invalid (field .NewPath ("spec" , "machineTemplate" , "infrastructureRef" ),
153
+ r .Spec .MachineTemplate .InfrastructureRef , "machineTemplate is required" ))
154
+ }
155
+
156
+ return allErrs
157
+ }
0 commit comments