Skip to content

Commit 07db0a3

Browse files
authored
Merge pull request #12419 from sbueringer/pr-use-machinsetdeletepolicy-enum
⚠️ Use MachineSetDeletePolicy enum in MD & MS API
2 parents aa27fb3 + c72af29 commit 07db0a3

File tree

12 files changed

+29
-31
lines changed

12 files changed

+29
-31
lines changed

api/core/v1beta1/zz_generated.conversion.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/core/v1beta2/machinedeployment_types.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,8 @@ type MachineRollingUpdateDeployment struct {
359359
// deletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling.
360360
// Valid values are "Random, "Newest", "Oldest"
361361
// When no value is supplied, the default DeletePolicy of MachineSet is used
362-
// +kubebuilder:validation:Enum=Random;Newest;Oldest
363362
// +optional
364-
DeletePolicy *string `json:"deletePolicy,omitempty"`
363+
DeletePolicy *MachineSetDeletePolicy `json:"deletePolicy,omitempty"`
365364
}
366365

367366
// ANCHOR_END: MachineRollingUpdateDeployment

api/core/v1beta2/machineset_types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,8 @@ type MachineSetSpec struct {
6767

6868
// deletePolicy defines the policy used to identify nodes to delete when downscaling.
6969
// Defaults to "Random". Valid values are "Random, "Newest", "Oldest"
70-
// +kubebuilder:validation:Enum=Random;Newest;Oldest
7170
// +optional
72-
DeletePolicy string `json:"deletePolicy,omitempty"`
71+
DeletePolicy MachineSetDeletePolicy `json:"deletePolicy,omitempty"`
7372

7473
// selector is a label query over machines that should match the replica count.
7574
// Label keys and values that must match in order to be controlled by this MachineSet.
@@ -249,6 +248,7 @@ type MachineTemplateSpec struct {
249248

250249
// MachineSetDeletePolicy defines how priority is assigned to nodes to delete when
251250
// downscaling a MachineSet. Defaults to "Random".
251+
// +kubebuilder:validation:Enum=Random;Newest;Oldest
252252
type MachineSetDeletePolicy string
253253

254254
const (

api/core/v1beta2/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/api/core/v1alpha3/zz_generated.conversion.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/api/core/v1alpha4/zz_generated.conversion.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/controllers/machinedeployment/machinedeployment_controller_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func TestMachineDeploymentReconciler(t *testing.T) {
118118
RollingUpdate: &clusterv1.MachineRollingUpdateDeployment{
119119
MaxUnavailable: intOrStrPtr(0),
120120
MaxSurge: intOrStrPtr(1),
121-
DeletePolicy: ptr.To("Oldest"),
121+
DeletePolicy: ptr.To(clusterv1.OldestMachineSetDeletePolicy),
122122
},
123123
},
124124
Template: clusterv1.MachineTemplateSpec{
@@ -204,7 +204,7 @@ func TestMachineDeploymentReconciler(t *testing.T) {
204204
}, timeout).Should(BeEquivalentTo(1))
205205

206206
t.Log("Verifying that the deployment's deletePolicy was propagated to the machineset")
207-
g.Expect(machineSets.Items[0].Spec.DeletePolicy).To(Equal("Oldest"))
207+
g.Expect(machineSets.Items[0].Spec.DeletePolicy).To(Equal(clusterv1.OldestMachineSetDeletePolicy))
208208

209209
t.Log("Verifying the linked infrastructure template has a cluster owner reference")
210210
g.Eventually(func() bool {
@@ -379,18 +379,18 @@ func TestMachineDeploymentReconciler(t *testing.T) {
379379
// expect the Reconcile to be called and the MachineSet to be updated in-place.
380380
t.Log("Updating deletePolicy on the MachineDeployment")
381381
modifyFunc = func(d *clusterv1.MachineDeployment) {
382-
d.Spec.Strategy.RollingUpdate.DeletePolicy = ptr.To("Newest")
382+
d.Spec.Strategy.RollingUpdate.DeletePolicy = ptr.To(clusterv1.NewestMachineSetDeletePolicy)
383383
}
384384
g.Expect(updateMachineDeployment(ctx, env, deployment, modifyFunc)).To(Succeed())
385385
g.Eventually(func(g Gomega) {
386386
g.Expect(env.List(ctx, machineSets, msListOpts...)).Should(Succeed())
387387
// Verify we still only have 2 MachineSets.
388388
g.Expect(machineSets.Items).To(HaveLen(2))
389389
// Verify the DeletePolicy value is updated
390-
g.Expect(machineSets.Items[0].Spec.DeletePolicy).Should(Equal("Newest"))
390+
g.Expect(machineSets.Items[0].Spec.DeletePolicy).Should(Equal(clusterv1.NewestMachineSetDeletePolicy))
391391

392392
// Verify that the old machine set retains its delete policy
393-
g.Expect(machineSets.Items[1].Spec.DeletePolicy).To(Equal("Oldest"))
393+
g.Expect(machineSets.Items[1].Spec.DeletePolicy).To(Equal(clusterv1.OldestMachineSetDeletePolicy))
394394
}).Should(Succeed())
395395

396396
// Verify that all the MachineSets have the expected OwnerRef.
@@ -541,7 +541,7 @@ func TestMachineDeploymentReconciler_CleanUpManagedFieldsForSSAAdoption(t *testi
541541
RollingUpdate: &clusterv1.MachineRollingUpdateDeployment{
542542
MaxUnavailable: intOrStrPtr(0),
543543
MaxSurge: intOrStrPtr(1),
544-
DeletePolicy: ptr.To("Oldest"),
544+
DeletePolicy: ptr.To(clusterv1.OldestMachineSetDeletePolicy),
545545
},
546546
},
547547
Template: clusterv1.MachineTemplateSpec{

internal/controllers/machinedeployment/machinedeployment_sync_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ func newTestMachineDeployment(replicas, statusReplicas, upToDateReplicas, availa
393393
RollingUpdate: &clusterv1.MachineRollingUpdateDeployment{
394394
MaxUnavailable: intOrStrPtr(0),
395395
MaxSurge: intOrStrPtr(1),
396-
DeletePolicy: ptr.To("Oldest"),
396+
DeletePolicy: ptr.To(clusterv1.OldestMachineSetDeletePolicy),
397397
},
398398
},
399399
},
@@ -544,7 +544,7 @@ func TestComputeDesiredMachineSet(t *testing.T) {
544544
Type: clusterv1.RollingUpdateMachineDeploymentStrategyType,
545545
RollingUpdate: &clusterv1.MachineRollingUpdateDeployment{
546546
MaxSurge: intOrStrPtr(1),
547-
DeletePolicy: ptr.To("Random"),
547+
DeletePolicy: ptr.To(clusterv1.RandomMachineSetDeletePolicy),
548548
MaxUnavailable: intOrStrPtr(0),
549549
},
550550
},
@@ -584,7 +584,7 @@ func TestComputeDesiredMachineSet(t *testing.T) {
584584
Spec: clusterv1.MachineSetSpec{
585585
ClusterName: "test-cluster",
586586
Replicas: ptr.To[int32](3),
587-
DeletePolicy: string(clusterv1.RandomMachineSetDeletePolicy),
587+
DeletePolicy: clusterv1.RandomMachineSetDeletePolicy,
588588
Selector: metav1.LabelSelector{MatchLabels: map[string]string{"k1": "v1"}},
589589
Template: *deployment.Spec.Template.DeepCopy(),
590590
MachineNamingStrategy: &clusterv1.MachineNamingStrategy{
@@ -640,7 +640,7 @@ func TestComputeDesiredMachineSet(t *testing.T) {
640640
existingMS.Spec.Template.Spec.NodeDrainTimeoutSeconds = duration5s
641641
existingMS.Spec.Template.Spec.NodeDeletionTimeoutSeconds = duration5s
642642
existingMS.Spec.Template.Spec.NodeVolumeDetachTimeoutSeconds = duration5s
643-
existingMS.Spec.DeletePolicy = string(clusterv1.NewestMachineSetDeletePolicy)
643+
existingMS.Spec.DeletePolicy = clusterv1.NewestMachineSetDeletePolicy
644644
existingMS.Spec.Template.Spec.MinReadySeconds = ptr.To[int32](0)
645645

646646
expectedMS := skeletonMSBasedOnMD.DeepCopy()
@@ -680,7 +680,7 @@ func TestComputeDesiredMachineSet(t *testing.T) {
680680
existingMS.Spec.Template.Spec.NodeDrainTimeoutSeconds = duration5s
681681
existingMS.Spec.Template.Spec.NodeDeletionTimeoutSeconds = duration5s
682682
existingMS.Spec.Template.Spec.NodeVolumeDetachTimeoutSeconds = duration5s
683-
existingMS.Spec.DeletePolicy = string(clusterv1.NewestMachineSetDeletePolicy)
683+
existingMS.Spec.DeletePolicy = clusterv1.NewestMachineSetDeletePolicy
684684
existingMS.Spec.Template.Spec.MinReadySeconds = ptr.To[int32](0)
685685

686686
oldMS := skeletonMSBasedOnMD.DeepCopy()
@@ -734,7 +734,7 @@ func TestComputeDesiredMachineSet(t *testing.T) {
734734
existingMS.Spec.Template.Spec.NodeDrainTimeoutSeconds = duration5s
735735
existingMS.Spec.Template.Spec.NodeDeletionTimeoutSeconds = duration5s
736736
existingMS.Spec.Template.Spec.NodeVolumeDetachTimeoutSeconds = duration5s
737-
existingMS.Spec.DeletePolicy = string(clusterv1.NewestMachineSetDeletePolicy)
737+
existingMS.Spec.DeletePolicy = clusterv1.NewestMachineSetDeletePolicy
738738
existingMS.Spec.Template.Spec.MinReadySeconds = ptr.To[int32](0)
739739

740740
expectedMS := skeletonMSBasedOnMD.DeepCopy()

internal/controllers/machineset/machineset_delete_policy.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func getMachinesToDeletePrioritized(filteredMachines []*clusterv1.Machine, diff
124124

125125
func getDeletePriorityFunc(ms *clusterv1.MachineSet) (deletePriorityFunc, error) {
126126
// Map the Spec.DeletePolicy value to the appropriate delete priority function
127-
switch msdp := clusterv1.MachineSetDeletePolicy(ms.Spec.DeletePolicy); msdp {
127+
switch ms.Spec.DeletePolicy {
128128
case clusterv1.RandomMachineSetDeletePolicy:
129129
return randomDeletePolicy, nil
130130
case clusterv1.NewestMachineSetDeletePolicy:
@@ -134,7 +134,7 @@ func getDeletePriorityFunc(ms *clusterv1.MachineSet) (deletePriorityFunc, error)
134134
case "":
135135
return randomDeletePolicy, nil
136136
default:
137-
return nil, errors.Errorf("Unsupported delete policy %s. Must be one of 'Random', 'Newest', or 'Oldest'", msdp)
137+
return nil, errors.Errorf("Unsupported delete policy %s. Must be one of 'Random', 'Newest', or 'Oldest'", ms.Spec.DeletePolicy)
138138
}
139139
}
140140

internal/webhooks/machineset.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ func (webhook *MachineSet) Default(ctx context.Context, obj runtime.Object) erro
104104
m.Spec.Replicas = ptr.To[int32](replicas)
105105

106106
if m.Spec.DeletePolicy == "" {
107-
randomPolicy := string(clusterv1.RandomMachineSetDeletePolicy)
108-
m.Spec.DeletePolicy = randomPolicy
107+
m.Spec.DeletePolicy = clusterv1.RandomMachineSetDeletePolicy
109108
}
110109

111110
if m.Spec.Selector.MatchLabels == nil {

0 commit comments

Comments
 (0)