Skip to content

Commit 8186626

Browse files
committed
Expand supported set of probe field mutations
Before this change, only the initialDelaySeconds field of probes could be updated. This patch expands the set of supported fields to include all the other int32 fields of probes so that CVO will roll out such changes.
1 parent fc25a6f commit 8186626

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

lib/resourcemerge/core.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@ func ensureProbePtr(modified *bool, existing **corev1.Probe, required *corev1.Pr
164164

165165
func ensureProbe(modified *bool, existing *corev1.Probe, required corev1.Probe) {
166166
setInt32(modified, &existing.InitialDelaySeconds, required.InitialDelaySeconds)
167+
setInt32(modified, &existing.TimeoutSeconds, required.TimeoutSeconds)
168+
setInt32(modified, &existing.PeriodSeconds, required.PeriodSeconds)
169+
setInt32(modified, &existing.SuccessThreshold, required.SuccessThreshold)
170+
setInt32(modified, &existing.FailureThreshold, required.FailureThreshold)
167171

168172
ensureProbeHandler(modified, &existing.Handler, required.Handler)
169173
}

lib/resourcemerge/core_test.go

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,98 @@ func TestEnsurePodSpec(t *testing.T) {
359359
},
360360
},
361361
},
362+
{
363+
name: "modify container readiness probe",
364+
existing: corev1.PodSpec{
365+
Containers: []corev1.Container{
366+
{
367+
Name: "test",
368+
ReadinessProbe: &corev1.Probe{
369+
InitialDelaySeconds: 1,
370+
TimeoutSeconds: 2,
371+
PeriodSeconds: 3,
372+
SuccessThreshold: 4,
373+
FailureThreshold: 5,
374+
},
375+
},
376+
},
377+
},
378+
input: corev1.PodSpec{
379+
Containers: []corev1.Container{
380+
{
381+
Name: "test",
382+
ReadinessProbe: &corev1.Probe{
383+
InitialDelaySeconds: 7,
384+
TimeoutSeconds: 8,
385+
PeriodSeconds: 9,
386+
SuccessThreshold: 10,
387+
FailureThreshold: 11,
388+
},
389+
},
390+
},
391+
},
392+
expectedModified: true,
393+
expected: corev1.PodSpec{
394+
Containers: []corev1.Container{
395+
{
396+
Name: "test",
397+
ReadinessProbe: &corev1.Probe{
398+
InitialDelaySeconds: 7,
399+
TimeoutSeconds: 8,
400+
PeriodSeconds: 9,
401+
SuccessThreshold: 10,
402+
FailureThreshold: 11,
403+
},
404+
},
405+
},
406+
},
407+
},
408+
{
409+
name: "modify container liveness probe",
410+
existing: corev1.PodSpec{
411+
Containers: []corev1.Container{
412+
{
413+
Name: "test",
414+
LivenessProbe: &corev1.Probe{
415+
InitialDelaySeconds: 1,
416+
TimeoutSeconds: 2,
417+
PeriodSeconds: 3,
418+
SuccessThreshold: 4,
419+
FailureThreshold: 5,
420+
},
421+
},
422+
},
423+
},
424+
input: corev1.PodSpec{
425+
Containers: []corev1.Container{
426+
{
427+
Name: "test",
428+
LivenessProbe: &corev1.Probe{
429+
InitialDelaySeconds: 7,
430+
TimeoutSeconds: 8,
431+
PeriodSeconds: 9,
432+
SuccessThreshold: 10,
433+
FailureThreshold: 11,
434+
},
435+
},
436+
},
437+
},
438+
expectedModified: true,
439+
expected: corev1.PodSpec{
440+
Containers: []corev1.Container{
441+
{
442+
Name: "test",
443+
LivenessProbe: &corev1.Probe{
444+
InitialDelaySeconds: 7,
445+
TimeoutSeconds: 8,
446+
PeriodSeconds: 9,
447+
SuccessThreshold: 10,
448+
FailureThreshold: 11,
449+
},
450+
},
451+
},
452+
},
453+
},
362454
}
363455

364456
for _, test := range tests {

0 commit comments

Comments
 (0)