Skip to content

Commit 8bb9510

Browse files
authored
Merge pull request #12518 from sbueringer/pr-remove-time-pointers
⚠️ Change all *metav1.Time fields to metav1.Time
2 parents 2179443 + 140b337 commit 8bb9510

File tree

85 files changed

+653
-327
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+653
-327
lines changed

.golangci-kal.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ linters:
163163
text: "optionalfields: field (Status|Initialization) is optional and should (be a pointer|have the omitempty tag)"
164164
linters:
165165
- kubeapilinter
166+
- path: "api/.*"
167+
text: "optionalfields: field (LastAppliedTime|Expires|After|LastUpdated|CertificatesExpiryDate|NodeDrainStartTime|WaitForNodeVolumeDetachStartTime) is optional and should (be a pointer|have the omitempty tag)"
168+
linters:
169+
- kubeapilinter
166170
- path: "api/bootstrap/kubeadm/v1beta2"
167171
text: "optionalfields: field (Spec|NodeRegistration|LocalAPIEndpoint|Etcd|APIServer|ControllerManager|Scheduler|DNS|Discovery|ObjectMeta) is optional and should (be a pointer|have the omitempty tag)"
168172
linters:

api/addons/v1beta1/conversion.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121

2222
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2323
apimachineryconversion "k8s.io/apimachinery/pkg/conversion"
24+
"k8s.io/utils/ptr"
2425
"sigs.k8s.io/controller-runtime/pkg/conversion"
2526

2627
addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2"
@@ -122,6 +123,26 @@ func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1beta1_ResourceSetBinding(in
122123
return autoConvert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(in, *out, s)
123124
}
124125

126+
func Convert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *addonsv1.ResourceBinding, s apimachineryconversion.Scope) error {
127+
if err := autoConvert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(in, out, s); err != nil {
128+
return err
129+
}
130+
if in.LastAppliedTime != nil && !reflect.DeepEqual(in.LastAppliedTime, &metav1.Time{}) {
131+
out.LastAppliedTime = *in.LastAppliedTime
132+
}
133+
return nil
134+
}
135+
136+
func Convert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(in *addonsv1.ResourceBinding, out *ResourceBinding, s apimachineryconversion.Scope) error {
137+
if err := autoConvert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(in, out, s); err != nil {
138+
return err
139+
}
140+
if !reflect.DeepEqual(in.LastAppliedTime, metav1.Time{}) {
141+
out.LastAppliedTime = ptr.To(in.LastAppliedTime)
142+
}
143+
return nil
144+
}
145+
125146
// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94)
126147

127148
func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *clusterv1beta1.Condition, s apimachineryconversion.Scope) error {

api/addons/v1beta1/conversion_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"testing"
2424

2525
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
26+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
2728
"sigs.k8s.io/randfill"
2829

@@ -86,5 +87,12 @@ func spokeClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, c ran
8687
if b != nil && reflect.DeepEqual(*b, ResourceSetBinding{}) {
8788
in.Bindings[i] = nil
8889
}
90+
if in.Bindings[i] != nil {
91+
for j, r := range in.Bindings[i].Resources {
92+
if reflect.DeepEqual(r.LastAppliedTime, &metav1.Time{}) {
93+
in.Bindings[i].Resources[j].LastAppliedTime = nil
94+
}
95+
}
96+
}
8997
}
9098
}

api/addons/v1beta1/zz_generated.conversion.go

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

api/addons/v1beta2/clusterresourcesetbinding_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ type ResourceBinding struct {
3838

3939
// lastAppliedTime identifies when this resource was last applied to the cluster.
4040
// +optional
41-
LastAppliedTime *metav1.Time `json:"lastAppliedTime,omitempty"`
41+
LastAppliedTime metav1.Time `json:"lastAppliedTime,omitempty,omitzero"`
4242

4343
// applied is to track if a resource is applied to the cluster or not.
4444
// +required

api/addons/v1beta2/clusterresourcesetbinding_types_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ func TestIsResourceApplied(t *testing.T) {
4545
ResourceRef: resourceRefApplySucceeded,
4646
Applied: true,
4747
Hash: "xyz",
48-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
48+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
4949
},
5050
{
5151
ResourceRef: resourceRefApplyFailed,
5252
Applied: false,
5353
Hash: "",
54-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
54+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
5555
},
5656
},
5757
}
@@ -108,7 +108,7 @@ func TestResourceSetBindingGetResourceBinding(t *testing.T) {
108108
ResourceRef: resourceRefApplyFailed,
109109
Applied: false,
110110
Hash: "",
111-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
111+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
112112
}
113113
crsBinding := &ResourceSetBinding{
114114
ClusterResourceSetName: "test-clusterResourceSet",
@@ -117,7 +117,7 @@ func TestResourceSetBindingGetResourceBinding(t *testing.T) {
117117
ResourceRef: resourceRefApplySucceeded,
118118
Applied: true,
119119
Hash: "xyz",
120-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
120+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
121121
},
122122
resourceRefApplyFailedBinding,
123123
},
@@ -163,15 +163,15 @@ func TestSetResourceBinding(t *testing.T) {
163163
ResourceRef: resourceRefApplyFailed,
164164
Applied: false,
165165
Hash: "",
166-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
166+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
167167
},
168168
},
169169
}
170170
updateFailedResourceBinding := ResourceBinding{
171171
ResourceRef: resourceRefApplyFailed,
172172
Applied: true,
173173
Hash: "xyz",
174-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
174+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
175175
}
176176

177177
newResourceBinding := ResourceBinding{
@@ -181,7 +181,7 @@ func TestSetResourceBinding(t *testing.T) {
181181
},
182182
Applied: false,
183183
Hash: "xyz",
184-
LastAppliedTime: &metav1.Time{Time: time.Now().UTC()},
184+
LastAppliedTime: metav1.Time{Time: time.Now().UTC()},
185185
}
186186

187187
tests := []struct {

api/addons/v1beta2/zz_generated.deepcopy.go

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

api/bootstrap/kubeadm/v1beta1/conversion.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,9 @@ func Convert_v1beta2_BootstrapToken_To_v1beta1_BootstrapToken(in *bootstrapv1.Bo
431431
return err
432432
}
433433
out.TTL = clusterv1.ConvertFromSeconds(in.TTLSeconds)
434+
if !reflect.DeepEqual(in.Expires, metav1.Time{}) {
435+
out.Expires = ptr.To(in.Expires)
436+
}
434437
return nil
435438
}
436439

@@ -535,6 +538,9 @@ func Convert_v1beta1_BootstrapToken_To_v1beta2_BootstrapToken(in *BootstrapToken
535538
return err
536539
}
537540
out.TTLSeconds = clusterv1.ConvertToSeconds(in.TTL)
541+
if in.Expires != nil && !reflect.DeepEqual(in.Expires, &metav1.Time{}) {
542+
out.Expires = *in.Expires
543+
}
538544
return nil
539545
}
540546

api/bootstrap/kubeadm/v1beta1/conversion_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ func spokeBootstrapToken(in *BootstrapToken, c randfill.Continue) {
165165
if in.TTL != nil {
166166
in.TTL = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second})
167167
}
168+
if reflect.DeepEqual(in.Expires, &metav1.Time{}) {
169+
in.Expires = nil
170+
}
168171
}
169172

170173
func spokeDiscovery(in *Discovery, c randfill.Continue) {

api/bootstrap/kubeadm/v1beta1/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.

0 commit comments

Comments
 (0)