Skip to content

Commit aabc505

Browse files
committed
Fix & improve e2e test
1 parent d02f2b2 commit aabc505

File tree

2 files changed

+25
-16
lines changed

2 files changed

+25
-16
lines changed

internal/controllers/machinedeployment/machinedeployment_canupdatemachineset.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
3232
runtimehooksv1 "sigs.k8s.io/cluster-api/api/runtime/hooks/v1alpha1"
3333
"sigs.k8s.io/cluster-api/controllers/external"
34+
"sigs.k8s.io/cluster-api/internal/controllers/machinedeployment/mdutil"
3435
"sigs.k8s.io/cluster-api/internal/util/compare"
3536
"sigs.k8s.io/cluster-api/internal/util/patch"
3637
)
@@ -258,22 +259,29 @@ func matchesMachineSet(req *runtimehooksv1.CanUpdateMachineSetRequest) (bool, []
258259

259260
func matchesMachineSetSpec(patched, desired *clusterv1.MachineSet) (equal bool, diff string, matchErr error) {
260261
// Note: Wrapping MachineSet specs in a MachineSet for proper formatting of the diff.
261-
return compare.Diff(
262-
&clusterv1.MachineSet{
263-
Spec: clusterv1.MachineSetSpec{
264-
Template: clusterv1.MachineTemplateSpec{
265-
Spec: patched.Spec.Template.Spec,
266-
},
262+
cleanedUpPatchedMachineSet := &clusterv1.MachineSet{
263+
Spec: clusterv1.MachineSetSpec{
264+
Template: clusterv1.MachineTemplateSpec{
265+
Spec: patched.Spec.Template.Spec,
267266
},
268267
},
269-
&clusterv1.MachineSet{
270-
Spec: clusterv1.MachineSetSpec{
271-
Template: clusterv1.MachineTemplateSpec{
272-
Spec: desired.Spec.Template.Spec,
273-
},
268+
}
269+
cleanedUpDesiredMachineSet := &clusterv1.MachineSet{
270+
Spec: clusterv1.MachineSetSpec{
271+
Template: clusterv1.MachineTemplateSpec{
272+
Spec: desired.Spec.Template.Spec,
274273
},
275274
},
276-
)
275+
}
276+
277+
// Cleanup fields that are not the responsibility of the in-place update extension.
278+
// Remove in-place mutable fields.
279+
cleanedUpPatchedMachineSet.Spec.Template = *mdutil.MachineTemplateDeepCopyRolloutFields(&cleanedUpPatchedMachineSet.Spec.Template)
280+
cleanedUpDesiredMachineSet.Spec.Template = *mdutil.MachineTemplateDeepCopyRolloutFields(&cleanedUpDesiredMachineSet.Spec.Template)
281+
// Set refs equal.
282+
cleanedUpPatchedMachineSet.Spec.Template.Spec.Bootstrap.ConfigRef = cleanedUpDesiredMachineSet.Spec.Template.Spec.Bootstrap.ConfigRef
283+
cleanedUpPatchedMachineSet.Spec.Template.Spec.InfrastructureRef = cleanedUpDesiredMachineSet.Spec.Template.Spec.InfrastructureRef
284+
return compare.Diff(cleanedUpPatchedMachineSet, cleanedUpDesiredMachineSet)
277285
}
278286

279287
func matchesUnstructuredSpec(patched, desired runtime.RawExtension) (equal bool, diff string, matchErr error) {

test/e2e/cluster_in_place_update.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,15 +246,16 @@ func ClusterInPlaceUpdateSpec(ctx context.Context, inputGetter func() ClusterInP
246246
Namespace: clusterResources.Cluster.Namespace,
247247
ConditionType: clusterv1.ClusterWorkerMachinesUpToDateCondition,
248248
})
249-
for _, kubeadmConfig := range machineObjectsAfterInPlaceUpdate.KubeadmConfigByMachine {
250-
g.Expect(kubeadmConfig.Spec.Files).To(ContainElement(HaveField("Path", filePath)))
251-
g.Expect(kubeadmConfig.Spec.Files).To(ContainElement(HaveField("Content", fileContent)))
252-
}
253249

254250
// Ensure only in-place updates were executed and no Machine was re-created.
255251
machineObjectsAfterInPlaceUpdate = getMachineObjects(ctx, g, mgmtClient, cluster)
256252
g.Expect(machineNames(machineObjectsAfterInPlaceUpdate.ControlPlaneMachines)).To(Equal(machineNames(machineObjectsBeforeInPlaceUpdate.ControlPlaneMachines)))
257253
g.Expect(machineNames(machineObjectsAfterInPlaceUpdate.WorkerMachines)).To(Equal(machineNames(machineObjectsBeforeInPlaceUpdate.WorkerMachines)))
254+
255+
for _, kubeadmConfig := range machineObjectsAfterInPlaceUpdate.KubeadmConfigByMachine {
256+
g.Expect(kubeadmConfig.Spec.Files).To(ContainElement(HaveField("Path", filePath)))
257+
g.Expect(kubeadmConfig.Spec.Files).To(ContainElement(HaveField("Content", fileContent)))
258+
}
258259
}, input.E2EConfig.GetIntervals(specName, "wait-control-plane")...).Should(Succeed())
259260

260261
// Update machineObjectsBeforeInPlaceUpdate for the next round of in-place update.

0 commit comments

Comments
 (0)