Skip to content

Commit 91faecd

Browse files
committed
Make DeletePolicy & FailurePolicy enum fields non-pointers
Signed-off-by: Stefan Büringer buringerst@vmware.com
1 parent afb1afe commit 91faecd

21 files changed

+268
-112
lines changed

.golangci-kal.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ linters:
171171
- kubeapilinter
172172
# KAL does not handle enum markers on enum types yet: https://github.com/kubernetes-sigs/kube-api-linter/issues/113
173173
- path: ".*"
174-
text: "optionalfields: field (Format|Encoding|Type|DeletePolicy) is optional and (should be a pointer|has a valid zero value)"
174+
text: "optionalfields: field (Format|Encoding|Type|DeletePolicy|FailurePolicy) is optional and (should be a pointer|has a valid zero value)"
175175
linters:
176176
- kubeapilinter
177177

api/core/v1beta1/conversion.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1661,6 +1661,26 @@ func Convert_v1beta2_ClusterClassTemplateReference_To_v1beta1_LocalObjectTemplat
16611661
}
16621662
}
16631663

1664+
func Convert_v1beta1_MachineRollingUpdateDeployment_To_v1beta2_MachineRollingUpdateDeployment(in *MachineRollingUpdateDeployment, out *clusterv1.MachineRollingUpdateDeployment, s apimachineryconversion.Scope) error {
1665+
if err := autoConvert_v1beta1_MachineRollingUpdateDeployment_To_v1beta2_MachineRollingUpdateDeployment(in, out, s); err != nil {
1666+
return err
1667+
}
1668+
if in.DeletePolicy != nil {
1669+
out.DeletePolicy = clusterv1.MachineSetDeletePolicy(*in.DeletePolicy)
1670+
}
1671+
return nil
1672+
}
1673+
1674+
func Convert_v1beta2_MachineRollingUpdateDeployment_To_v1beta1_MachineRollingUpdateDeployment(in *clusterv1.MachineRollingUpdateDeployment, out *MachineRollingUpdateDeployment, s apimachineryconversion.Scope) error {
1675+
if err := autoConvert_v1beta2_MachineRollingUpdateDeployment_To_v1beta1_MachineRollingUpdateDeployment(in, out, s); err != nil {
1676+
return err
1677+
}
1678+
if in.DeletePolicy != "" {
1679+
out.DeletePolicy = ptr.To(string(in.DeletePolicy))
1680+
}
1681+
return nil
1682+
}
1683+
16641684
func convertMachineSpecToContractVersionedObjectReference(src *MachineSpec, dst *clusterv1.MachineSpec) error {
16651685
infraRef, err := convertToContractVersionedObjectReference(&src.InfrastructureRef)
16661686
if err != nil {

api/core/v1beta1/conversion_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,16 @@ func spokeCluster(in *Cluster, c randfill.Continue) {
201201
}
202202

203203
dropEmptyStringsCluster(in)
204+
205+
if in.Spec.Topology != nil && in.Spec.Topology.Workers != nil {
206+
for _, md := range in.Spec.Topology.Workers.MachineDeployments {
207+
if md.Strategy != nil && md.Strategy.RollingUpdate != nil &&
208+
md.Strategy.RollingUpdate.DeletePolicy != nil && *md.Strategy.RollingUpdate.DeletePolicy == "" {
209+
// &"" Is not a valid value for DeletePolicy as the enum validation enforces an enum value if DeletePolicy is set.
210+
md.Strategy.RollingUpdate.DeletePolicy = nil
211+
}
212+
}
213+
}
204214
}
205215

206216
func spokeClusterTopology(in *Topology, c randfill.Continue) {
@@ -323,6 +333,14 @@ func spokeClusterClass(in *ClusterClass, c randfill.Continue) {
323333
in.Namespace = "foo"
324334

325335
dropEmptyStringsClusterClass(in)
336+
337+
for _, md := range in.Spec.Workers.MachineDeployments {
338+
if md.Strategy != nil && md.Strategy.RollingUpdate != nil &&
339+
md.Strategy.RollingUpdate.DeletePolicy != nil && *md.Strategy.RollingUpdate.DeletePolicy == "" {
340+
// &"" Is not a valid value for DeletePolicy as the enum validation enforces an enum value if DeletePolicy is set.
341+
md.Strategy.RollingUpdate.DeletePolicy = nil
342+
}
343+
}
326344
}
327345

328346
func spokeClusterClassStatus(in *ClusterClassStatus, c randfill.Continue) {
@@ -585,6 +603,12 @@ func spokeMachineDeployment(in *MachineDeployment, c randfill.Continue) {
585603
fillMachineSpec(&in.Spec.Template.Spec, c, in.Namespace)
586604

587605
dropEmptyStringsMachineSpec(&in.Spec.Template.Spec)
606+
607+
if in.Spec.Strategy != nil && in.Spec.Strategy.RollingUpdate != nil &&
608+
in.Spec.Strategy.RollingUpdate.DeletePolicy != nil && *in.Spec.Strategy.RollingUpdate.DeletePolicy == "" {
609+
// &"" Is not a valid value for DeletePolicy as the enum validation enforces an enum value if DeletePolicy is set.
610+
in.Spec.Strategy.RollingUpdate.DeletePolicy = nil
611+
}
588612
}
589613

590614
func spokeMachineDeploymentSpec(in *MachineDeploymentSpec, c randfill.Continue) {

api/core/v1beta1/zz_generated.conversion.go

Lines changed: 84 additions & 30 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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ type MachineRollingUpdateDeployment struct {
360360
// Valid values are "Random, "Newest", "Oldest"
361361
// When no value is supplied, the default DeletePolicy of MachineSet is used
362362
// +optional
363-
DeletePolicy *MachineSetDeletePolicy `json:"deletePolicy,omitempty"`
363+
DeletePolicy MachineSetDeletePolicy `json:"deletePolicy,omitempty"`
364364
}
365365

366366
// ANCHOR_END: MachineRollingUpdateDeployment

api/core/v1beta2/zz_generated.deepcopy.go

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

api/runtime/v1alpha1/conversion.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package v1alpha1
1919
import (
2020
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2121
apimachineryconversion "k8s.io/apimachinery/pkg/conversion"
22+
"k8s.io/utils/ptr"
2223
"sigs.k8s.io/controller-runtime/pkg/conversion"
2324

2425
clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1"
@@ -106,6 +107,28 @@ func Convert_v1beta1_Condition_To_v1_Condition(in *clusterv1beta1.Condition, out
106107
return clusterv1beta1.Convert_v1beta1_Condition_To_v1_Condition(in, out, s)
107108
}
108109

110+
func Convert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(in *ExtensionHandler, out *runtimev1.ExtensionHandler, s apimachineryconversion.Scope) error {
111+
if err := autoConvert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(in, out, s); err != nil {
112+
return err
113+
}
114+
115+
if in.FailurePolicy != nil {
116+
out.FailurePolicy = runtimev1.FailurePolicy(*in.FailurePolicy)
117+
}
118+
return nil
119+
}
120+
121+
func Convert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(in *runtimev1.ExtensionHandler, out *ExtensionHandler, s apimachineryconversion.Scope) error {
122+
if err := autoConvert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(in, out, s); err != nil {
123+
return err
124+
}
125+
126+
if in.FailurePolicy != "" {
127+
out.FailurePolicy = ptr.To(FailurePolicy(in.FailurePolicy))
128+
}
129+
return nil
130+
}
131+
109132
func dropEmptyStringsExtensionConfig(dst *ExtensionConfig) {
110133
dropEmptyString(&dst.Spec.ClientConfig.URL)
111134
if dst.Spec.ClientConfig.Service != nil {

api/runtime/v1alpha1/conversion_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,12 @@ func spokeExtensionConfigStatus(in *ExtensionConfigStatus, c randfill.Continue)
7272
in.V1Beta2 = nil
7373
}
7474
}
75+
76+
for i, h := range in.Handlers {
77+
if h.FailurePolicy != nil && *h.FailurePolicy == "" {
78+
// &"" Is not a valid value for FailurePolicy as the enum validation enforces an enum value if FailurePolicy is set.
79+
h.FailurePolicy = nil
80+
}
81+
in.Handlers[i] = h
82+
}
7583
}

0 commit comments

Comments
 (0)