Skip to content

Commit 542f995

Browse files
committed
fixup! feat: support setting kubeadm ignorePreflightErrors
1 parent 60207a2 commit 542f995

File tree

3 files changed

+46
-22
lines changed

3 files changed

+46
-22
lines changed

docs/content/customization/generic/node-registration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Applying this configuration will result in the following value being set:
5151

5252
#### Worker node
5353

54-
Taints for individual nodepools can be configured similarly:
54+
`ignorePreflightErrors` for individual nodepools can be configured similarly:
5555

5656
```yaml
5757
apiVersion: cluster.x-k8s.io/v1beta1

pkg/handlers/generic/mutation/noderegistration/inject_controlplane.go

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,33 @@ func (h *nodeRegistrationControlPlanePatchHandler) Mutate(
8585
"patchedObjectKind", obj.GetObjectKind().GroupVersionKind().String(),
8686
"patchedObjectName", ctrlclient.ObjectKeyFromObject(obj),
8787
).Info("adding nodeRegistration to control-plane node kubeadm config template")
88-
if obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration == nil {
89-
obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration = &bootstrapv1.InitConfiguration{}
90-
}
91-
if obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
92-
obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
93-
}
94-
obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors = append(
95-
obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors,
96-
nodeRegistrationVar.IgnorePreflightErrors...,
97-
)
98-
obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = append(
99-
obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors,
100-
nodeRegistrationVar.IgnorePreflightErrors...,
101-
)
88+
89+
setIgnorePreflightErrorsForControlPlane(obj, nodeRegistrationVar.IgnorePreflightErrors)
10290

10391
return nil
10492
})
10593
}
94+
95+
func setIgnorePreflightErrorsForControlPlane(
96+
obj *controlplanev1.KubeadmControlPlaneTemplate,
97+
ignorePreflightErrors []string,
98+
) {
99+
if len(ignorePreflightErrors) == 0 {
100+
return
101+
}
102+
103+
if obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration == nil {
104+
obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration = &bootstrapv1.InitConfiguration{}
105+
}
106+
if obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
107+
obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
108+
}
109+
obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors = append(
110+
obj.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors,
111+
ignorePreflightErrors...,
112+
)
113+
obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = append(
114+
obj.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors,
115+
ignorePreflightErrors...,
116+
)
117+
}

pkg/handlers/generic/mutation/noderegistration/inject_worker.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,26 @@ func (h *nodeRegistrationWorkerPatchHandler) Mutate(
8585
"patchedObjectKind", obj.GetObjectKind().GroupVersionKind().String(),
8686
"patchedObjectName", ctrlclient.ObjectKeyFromObject(obj),
8787
).Info("adding nodeRegistration options to worker node kubeadm config template")
88-
if obj.Spec.Template.Spec.JoinConfiguration == nil {
89-
obj.Spec.Template.Spec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
90-
}
91-
obj.Spec.Template.Spec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = append(
92-
obj.Spec.Template.Spec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors,
93-
nodeRegistrationVar.IgnorePreflightErrors...,
94-
)
88+
89+
setIgnorePreflightErrorsForWorkers(obj, nodeRegistrationVar.IgnorePreflightErrors)
9590

9691
return nil
9792
})
9893
}
94+
95+
func setIgnorePreflightErrorsForWorkers(
96+
obj *bootstrapv1.KubeadmConfigTemplate,
97+
ignorePreflightErrors []string,
98+
) {
99+
if len(ignorePreflightErrors) == 0 {
100+
return
101+
}
102+
103+
if obj.Spec.Template.Spec.JoinConfiguration == nil {
104+
obj.Spec.Template.Spec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
105+
}
106+
obj.Spec.Template.Spec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = append(
107+
obj.Spec.Template.Spec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors,
108+
ignorePreflightErrors...,
109+
)
110+
}

0 commit comments

Comments
 (0)