Skip to content

Commit 89a36ac

Browse files
authored
Merge pull request #8007 from sbueringer/pr-cr-v0.15
⚠️ Bump to CR v0.15.0
2 parents 12f1de5 + 06ee6fb commit 89a36ac

File tree

134 files changed

+1313
-1164
lines changed

Some content is hidden

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

134 files changed

+1313
-1164
lines changed

api/v1beta1/machine_webhook.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/apimachinery/pkg/util/validation/field"
2828
ctrl "sigs.k8s.io/controller-runtime"
2929
"sigs.k8s.io/controller-runtime/pkg/webhook"
30+
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
3031

3132
"sigs.k8s.io/cluster-api/util/version"
3233
)
@@ -71,22 +72,22 @@ func (m *Machine) Default() {
7172
}
7273

7374
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
74-
func (m *Machine) ValidateCreate() error {
75-
return m.validate(nil)
75+
func (m *Machine) ValidateCreate() (admission.Warnings, error) {
76+
return nil, m.validate(nil)
7677
}
7778

7879
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.
79-
func (m *Machine) ValidateUpdate(old runtime.Object) error {
80+
func (m *Machine) ValidateUpdate(old runtime.Object) (admission.Warnings, error) {
8081
oldM, ok := old.(*Machine)
8182
if !ok {
82-
return apierrors.NewBadRequest(fmt.Sprintf("expected a Machine but got a %T", old))
83+
return nil, apierrors.NewBadRequest(fmt.Sprintf("expected a Machine but got a %T", old))
8384
}
84-
return m.validate(oldM)
85+
return nil, m.validate(oldM)
8586
}
8687

8788
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
88-
func (m *Machine) ValidateDelete() error {
89-
return nil
89+
func (m *Machine) ValidateDelete() (admission.Warnings, error) {
90+
return nil, nil
9091
}
9192

9293
func (m *Machine) validate(old *Machine) error {

api/v1beta1/machine_webhook_test.go

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,15 @@ func TestMachineBootstrapValidation(t *testing.T) {
7979
Spec: MachineSpec{Bootstrap: tt.bootstrap},
8080
}
8181
if tt.expectErr {
82-
g.Expect(m.ValidateCreate()).NotTo(Succeed())
83-
g.Expect(m.ValidateUpdate(m)).NotTo(Succeed())
82+
_, err := m.ValidateCreate()
83+
g.Expect(err).To(HaveOccurred())
84+
_, err = m.ValidateUpdate(m)
85+
g.Expect(err).To(HaveOccurred())
8486
} else {
85-
g.Expect(m.ValidateCreate()).To(Succeed())
86-
g.Expect(m.ValidateUpdate(m)).To(Succeed())
87+
_, err := m.ValidateCreate()
88+
g.Expect(err).ToNot(HaveOccurred())
89+
_, err = m.ValidateUpdate(m)
90+
g.Expect(err).ToNot(HaveOccurred())
8791
}
8892
})
8993
}
@@ -137,11 +141,15 @@ func TestMachineNamespaceValidation(t *testing.T) {
137141
}
138142

139143
if tt.expectErr {
140-
g.Expect(m.ValidateCreate()).NotTo(Succeed())
141-
g.Expect(m.ValidateUpdate(m)).NotTo(Succeed())
144+
_, err := m.ValidateCreate()
145+
g.Expect(err).To(HaveOccurred())
146+
_, err = m.ValidateUpdate(m)
147+
g.Expect(err).To(HaveOccurred())
142148
} else {
143-
g.Expect(m.ValidateCreate()).To(Succeed())
144-
g.Expect(m.ValidateUpdate(m)).To(Succeed())
149+
_, err := m.ValidateCreate()
150+
g.Expect(err).ToNot(HaveOccurred())
151+
_, err = m.ValidateUpdate(m)
152+
g.Expect(err).ToNot(HaveOccurred())
145153
}
146154
})
147155
}
@@ -185,10 +193,11 @@ func TestMachineClusterNameImmutable(t *testing.T) {
185193
},
186194
}
187195

196+
_, err := newMachine.ValidateUpdate(oldMachine)
188197
if tt.expectErr {
189-
g.Expect(newMachine.ValidateUpdate(oldMachine)).NotTo(Succeed())
198+
g.Expect(err).To(HaveOccurred())
190199
} else {
191-
g.Expect(newMachine.ValidateUpdate(oldMachine)).To(Succeed())
200+
g.Expect(err).NotTo(HaveOccurred())
192201
}
193202
})
194203
}
@@ -239,11 +248,15 @@ func TestMachineVersionValidation(t *testing.T) {
239248
}
240249

241250
if tt.expectErr {
242-
g.Expect(m.ValidateCreate()).NotTo(Succeed())
243-
g.Expect(m.ValidateUpdate(m)).NotTo(Succeed())
251+
_, err := m.ValidateCreate()
252+
g.Expect(err).To(HaveOccurred())
253+
_, err = m.ValidateUpdate(m)
254+
g.Expect(err).To(HaveOccurred())
244255
} else {
245-
g.Expect(m.ValidateCreate()).To(Succeed())
246-
g.Expect(m.ValidateUpdate(m)).To(Succeed())
256+
_, err := m.ValidateCreate()
257+
g.Expect(err).ToNot(HaveOccurred())
258+
_, err = m.ValidateUpdate(m)
259+
g.Expect(err).ToNot(HaveOccurred())
247260
}
248261
})
249262
}

api/v1beta1/machinedeployment_webhook.go

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
"k8s.io/apimachinery/pkg/util/intstr"
3232
"k8s.io/apimachinery/pkg/util/validation"
3333
"k8s.io/apimachinery/pkg/util/validation/field"
34-
"k8s.io/klog/v2"
3534
"k8s.io/utils/pointer"
3635
ctrl "sigs.k8s.io/controller-runtime"
3736
"sigs.k8s.io/controller-runtime/pkg/webhook"
@@ -57,10 +56,8 @@ var _ webhook.Validator = &MachineDeployment{}
5756

5857
// MachineDeploymentDefaulter creates a new CustomDefaulter for MachineDeployments.
5958
func MachineDeploymentDefaulter(scheme *runtime.Scheme) webhook.CustomDefaulter {
60-
// Note: The error return parameter is always nil and will be dropped with the next CR release.
61-
decoder, _ := admission.NewDecoder(scheme)
6259
return &machineDeploymentDefaulter{
63-
decoder: decoder,
60+
decoder: admission.NewDecoder(scheme),
6461
}
6562
}
6663

@@ -167,22 +164,22 @@ func (webhook *machineDeploymentDefaulter) Default(ctx context.Context, obj runt
167164
}
168165

169166
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
170-
func (m *MachineDeployment) ValidateCreate() error {
171-
return m.validate(nil)
167+
func (m *MachineDeployment) ValidateCreate() (admission.Warnings, error) {
168+
return nil, m.validate(nil)
172169
}
173170

174171
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.
175-
func (m *MachineDeployment) ValidateUpdate(old runtime.Object) error {
172+
func (m *MachineDeployment) ValidateUpdate(old runtime.Object) (admission.Warnings, error) {
176173
oldMD, ok := old.(*MachineDeployment)
177174
if !ok {
178-
return apierrors.NewBadRequest(fmt.Sprintf("expected a MachineDeployment but got a %T", old))
175+
return nil, apierrors.NewBadRequest(fmt.Sprintf("expected a MachineDeployment but got a %T", old))
179176
}
180-
return m.validate(oldMD)
177+
return nil, m.validate(oldMD)
181178
}
182179

183180
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
184-
func (m *MachineDeployment) ValidateDelete() error {
185-
return nil
181+
func (m *MachineDeployment) ValidateDelete() (admission.Warnings, error) {
182+
return nil, nil
186183
}
187184

188185
func (m *MachineDeployment) validate(old *MachineDeployment) error {
@@ -302,8 +299,7 @@ func calculateMachineDeploymentReplicas(ctx context.Context, oldMD *MachineDeplo
302299
return *newMD.Spec.Replicas, nil
303300
}
304301

305-
// TODO(sbueringer): drop this with the next CR version that adds the MD key automatically.
306-
log := ctrl.LoggerFrom(ctx).WithValues("MachineDeployment", klog.KObj(newMD))
302+
log := ctrl.LoggerFrom(ctx)
307303

308304
// If both autoscaler annotations are set, use them to calculate the default value.
309305
minSizeString, hasMinSizeAnnotation := newMD.Annotations[AutoscalerMinSizeAnnotation]

api/v1beta1/machinedeployment_webhook_test.go

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -393,11 +393,15 @@ func TestMachineDeploymentValidation(t *testing.T) {
393393
},
394394
}
395395
if tt.expectErr {
396-
g.Expect(md.ValidateCreate()).NotTo(Succeed())
397-
g.Expect(md.ValidateUpdate(md)).NotTo(Succeed())
396+
_, err := md.ValidateCreate()
397+
g.Expect(err).To(HaveOccurred())
398+
_, err = md.ValidateUpdate(md)
399+
g.Expect(err).To(HaveOccurred())
398400
} else {
399-
g.Expect(md.ValidateCreate()).To(Succeed())
400-
g.Expect(md.ValidateUpdate(md)).To(Succeed())
401+
_, err := md.ValidateCreate()
402+
g.Expect(err).NotTo(HaveOccurred())
403+
_, err = md.ValidateUpdate(md)
404+
g.Expect(err).NotTo(HaveOccurred())
401405
}
402406
})
403407
}
@@ -452,11 +456,15 @@ func TestMachineDeploymentVersionValidation(t *testing.T) {
452456
}
453457

454458
if tt.expectErr {
455-
g.Expect(md.ValidateCreate()).NotTo(Succeed())
456-
g.Expect(md.ValidateUpdate(md)).NotTo(Succeed())
459+
_, err := md.ValidateCreate()
460+
g.Expect(err).To(HaveOccurred())
461+
_, err = md.ValidateUpdate(md)
462+
g.Expect(err).To(HaveOccurred())
457463
} else {
458-
g.Expect(md.ValidateCreate()).To(Succeed())
459-
g.Expect(md.ValidateUpdate(md)).To(Succeed())
464+
_, err := md.ValidateCreate()
465+
g.Expect(err).ToNot(HaveOccurred())
466+
_, err = md.ValidateUpdate(md)
467+
g.Expect(err).ToNot(HaveOccurred())
460468
}
461469
})
462470
}
@@ -499,10 +507,11 @@ func TestMachineDeploymentClusterNameImmutable(t *testing.T) {
499507
},
500508
}
501509

510+
_, err := newMD.ValidateUpdate(oldMD)
502511
if tt.expectErr {
503-
g.Expect(newMD.ValidateUpdate(oldMD)).NotTo(Succeed())
512+
g.Expect(err).To(HaveOccurred())
504513
} else {
505-
g.Expect(newMD.ValidateUpdate(oldMD)).To(Succeed())
514+
g.Expect(err).NotTo(HaveOccurred())
506515
}
507516
})
508517
}
@@ -530,18 +539,21 @@ func defaultValidateTestCustomDefaulter(object admission.Validator, customDefaul
530539
t.Run("validate-on-create", func(t *testing.T) {
531540
g := NewWithT(t)
532541
g.Expect(customDefaulter.Default(ctx, createCopy)).To(Succeed())
533-
g.Expect(createCopy.ValidateCreate()).To(Succeed())
542+
_, err := createCopy.ValidateCreate()
543+
g.Expect(err).NotTo(HaveOccurred())
534544
})
535545
t.Run("validate-on-update", func(t *testing.T) {
536546
g := NewWithT(t)
537547
g.Expect(customDefaulter.Default(ctx, defaultingUpdateCopy)).To(Succeed())
538548
g.Expect(customDefaulter.Default(ctx, updateCopy)).To(Succeed())
539-
g.Expect(defaultingUpdateCopy.ValidateUpdate(updateCopy)).To(Succeed())
549+
_, err := defaultingUpdateCopy.ValidateUpdate(updateCopy)
550+
g.Expect(err).NotTo(HaveOccurred())
540551
})
541552
t.Run("validate-on-delete", func(t *testing.T) {
542553
g := NewWithT(t)
543554
g.Expect(customDefaulter.Default(ctx, deleteCopy)).To(Succeed())
544-
g.Expect(deleteCopy.ValidateDelete()).To(Succeed())
555+
_, err := deleteCopy.ValidateDelete()
556+
g.Expect(err).NotTo(HaveOccurred())
545557
})
546558
}
547559
}

api/v1beta1/machinehealthcheck_webhook.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/apimachinery/pkg/util/validation/field"
2828
ctrl "sigs.k8s.io/controller-runtime"
2929
"sigs.k8s.io/controller-runtime/pkg/webhook"
30+
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
3031
)
3132

3233
var (
@@ -84,22 +85,22 @@ func (m *MachineHealthCheck) Default() {
8485
}
8586

8687
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
87-
func (m *MachineHealthCheck) ValidateCreate() error {
88-
return m.validate(nil)
88+
func (m *MachineHealthCheck) ValidateCreate() (admission.Warnings, error) {
89+
return nil, m.validate(nil)
8990
}
9091

9192
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.
92-
func (m *MachineHealthCheck) ValidateUpdate(old runtime.Object) error {
93+
func (m *MachineHealthCheck) ValidateUpdate(old runtime.Object) (admission.Warnings, error) {
9394
mhc, ok := old.(*MachineHealthCheck)
9495
if !ok {
95-
return apierrors.NewBadRequest(fmt.Sprintf("expected a MachineHealthCheck but got a %T", old))
96+
return nil, apierrors.NewBadRequest(fmt.Sprintf("expected a MachineHealthCheck but got a %T", old))
9697
}
97-
return m.validate(mhc)
98+
return nil, m.validate(mhc)
9899
}
99100

100101
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
101-
func (m *MachineHealthCheck) ValidateDelete() error {
102-
return nil
102+
func (m *MachineHealthCheck) ValidateDelete() (admission.Warnings, error) {
103+
return nil, nil
103104
}
104105

105106
func (m *MachineHealthCheck) validate(old *MachineHealthCheck) error {

api/v1beta1/machinehealthcheck_webhook_test.go

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,15 @@ func TestMachineHealthCheckLabelSelectorAsSelectorValidation(t *testing.T) {
9292
},
9393
}
9494
if tt.expectErr {
95-
g.Expect(mhc.ValidateCreate()).NotTo(Succeed())
96-
g.Expect(mhc.ValidateUpdate(mhc)).NotTo(Succeed())
95+
_, err := mhc.ValidateCreate()
96+
g.Expect(err).To(HaveOccurred())
97+
_, err = mhc.ValidateUpdate(mhc)
98+
g.Expect(err).To(HaveOccurred())
9799
} else {
98-
g.Expect(mhc.ValidateCreate()).To(Succeed())
99-
g.Expect(mhc.ValidateUpdate(mhc)).To(Succeed())
100+
_, err := mhc.ValidateCreate()
101+
g.Expect(err).NotTo(HaveOccurred())
102+
_, err = mhc.ValidateUpdate(mhc)
103+
g.Expect(err).NotTo(HaveOccurred())
100104
}
101105
})
102106
}
@@ -160,10 +164,11 @@ func TestMachineHealthCheckClusterNameImmutable(t *testing.T) {
160164
},
161165
}
162166

167+
_, err := newMHC.ValidateUpdate(oldMHC)
163168
if tt.expectErr {
164-
g.Expect(newMHC.ValidateUpdate(oldMHC)).NotTo(Succeed())
169+
g.Expect(err).To(HaveOccurred())
165170
} else {
166-
g.Expect(newMHC.ValidateUpdate(oldMHC)).To(Succeed())
171+
g.Expect(err).NotTo(HaveOccurred())
167172
}
168173
})
169174
}
@@ -211,11 +216,15 @@ func TestMachineHealthCheckUnhealthyConditions(t *testing.T) {
211216
},
212217
}
213218
if tt.expectErr {
214-
g.Expect(mhc.ValidateCreate()).NotTo(Succeed())
215-
g.Expect(mhc.ValidateUpdate(mhc)).NotTo(Succeed())
219+
_, err := mhc.ValidateCreate()
220+
g.Expect(err).To(HaveOccurred())
221+
_, err = mhc.ValidateUpdate(mhc)
222+
g.Expect(err).To(HaveOccurred())
216223
} else {
217-
g.Expect(mhc.ValidateCreate()).To(Succeed())
218-
g.Expect(mhc.ValidateUpdate(mhc)).To(Succeed())
224+
_, err := mhc.ValidateCreate()
225+
g.Expect(err).NotTo(HaveOccurred())
226+
_, err = mhc.ValidateUpdate(mhc)
227+
g.Expect(err).NotTo(HaveOccurred())
219228
}
220229
})
221230
}
@@ -286,11 +295,15 @@ func TestMachineHealthCheckNodeStartupTimeout(t *testing.T) {
286295
}
287296

288297
if tt.expectErr {
289-
g.Expect(mhc.ValidateCreate()).NotTo(Succeed())
290-
g.Expect(mhc.ValidateUpdate(mhc)).NotTo(Succeed())
298+
_, err := mhc.ValidateCreate()
299+
g.Expect(err).To(HaveOccurred())
300+
_, err = mhc.ValidateUpdate(mhc)
301+
g.Expect(err).To(HaveOccurred())
291302
} else {
292-
g.Expect(mhc.ValidateCreate()).To(Succeed())
293-
g.Expect(mhc.ValidateUpdate(mhc)).To(Succeed())
303+
_, err := mhc.ValidateCreate()
304+
g.Expect(err).NotTo(HaveOccurred())
305+
_, err = mhc.ValidateUpdate(mhc)
306+
g.Expect(err).NotTo(HaveOccurred())
294307
}
295308
}
296309
}
@@ -345,11 +358,15 @@ func TestMachineHealthCheckMaxUnhealthy(t *testing.T) {
345358
}
346359

347360
if tt.expectErr {
348-
g.Expect(mhc.ValidateCreate()).NotTo(Succeed())
349-
g.Expect(mhc.ValidateUpdate(mhc)).NotTo(Succeed())
361+
_, err := mhc.ValidateCreate()
362+
g.Expect(err).To(HaveOccurred())
363+
_, err = mhc.ValidateUpdate(mhc)
364+
g.Expect(err).To(HaveOccurred())
350365
} else {
351-
g.Expect(mhc.ValidateCreate()).To(Succeed())
352-
g.Expect(mhc.ValidateUpdate(mhc)).To(Succeed())
366+
_, err := mhc.ValidateCreate()
367+
g.Expect(err).NotTo(HaveOccurred())
368+
_, err = mhc.ValidateUpdate(mhc)
369+
g.Expect(err).NotTo(HaveOccurred())
353370
}
354371
}
355372
}

0 commit comments

Comments
 (0)