Skip to content

Commit 0971139

Browse files
committed
Allow no containers
1 parent 2c8a40e commit 0971139

File tree

10 files changed

+78
-171
lines changed

10 files changed

+78
-171
lines changed

config/crd/bases/postgres-operator.crunchydata.com_postgresclusters.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11041,7 +11041,8 @@ spec:
1104111041
containers:
1104211042
description: |-
1104311043
The containers to attach this volume to.
11044-
A blank/unset `Containers` field matches all containers.
11044+
An omitted `Containers` field matches all containers.
11045+
An empty `Containers` field matches no containers.
1104511046
items:
1104611047
type: string
1104711048
maxItems: 10
@@ -29655,7 +29656,8 @@ spec:
2965529656
containers:
2965629657
description: |-
2965729658
The containers to attach this volume to.
29658-
A blank/unset `Containers` field matches all containers.
29659+
An omitted `Containers` field matches all containers.
29660+
An empty `Containers` field matches no containers.
2965929661
items:
2966029662
type: string
2966129663
maxItems: 10

internal/controller/postgrescluster/util.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,8 @@ func addAdditionalVolumesToSpecifiedContainers(template *corev1.PodTemplateSpec,
331331
// - https://github.com/kubernetes/api/blob/b40c1cacbb902b21a7e0c7bf0967321860c1a632/core/v1/types.go#L3895C27-L3896C33
332332
names := sets.New(additionalVolumeRequest.Containers...)
333333
allContainers := false
334-
if names.Len() == 0 {
334+
// If the containers list is omitted, we add the volume to all containers
335+
if additionalVolumeRequest.Containers == nil {
335336
allContainers = true
336337
}
337338

internal/controller/postgrescluster/util_test.go

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,8 @@ func TestAddAdditionalVolumesToSpecifiedContainers(t *testing.T) {
403403
}{{
404404
tcName: "all",
405405
additionalVolumes: []v1beta1.AdditionalVolume{{
406-
Containers: []string{},
407-
ClaimName: "required",
408-
Name: "required",
406+
ClaimName: "required",
407+
Name: "required",
409408
}},
410409
expectedContainers: `- name: database
411410
resources: {}
@@ -433,14 +432,75 @@ func TestAddAdditionalVolumesToSpecifiedContainers(t *testing.T) {
433432
expectedMissing: []string{},
434433
}, {
435434
tcName: "multiple additional volumes",
435+
additionalVolumes: []v1beta1.AdditionalVolume{{
436+
ClaimName: "required",
437+
Name: "required",
438+
}, {
439+
ClaimName: "also",
440+
Name: "other",
441+
}},
442+
expectedContainers: `- name: database
443+
resources: {}
444+
volumeMounts:
445+
- mountPath: /volumes/required
446+
name: volumes-required
447+
- mountPath: /volumes/other
448+
name: volumes-other
449+
- name: other
450+
resources: {}
451+
volumeMounts:
452+
- mountPath: /volumes/required
453+
name: volumes-required
454+
- mountPath: /volumes/other
455+
name: volumes-other`,
456+
expectedInitContainers: `- name: startup
457+
resources: {}
458+
volumeMounts:
459+
- mountPath: /volumes/required
460+
name: volumes-required
461+
- mountPath: /volumes/other
462+
name: volumes-other
463+
- name: config
464+
resources: {}
465+
volumeMounts:
466+
- mountPath: /volumes/required
467+
name: volumes-required
468+
- mountPath: /volumes/other
469+
name: volumes-other`,
470+
expectedVolumes: `- name: volumes-required
471+
persistentVolumeClaim:
472+
claimName: required
473+
- name: volumes-other
474+
persistentVolumeClaim:
475+
claimName: also`,
476+
expectedMissing: []string{},
477+
}, {
478+
tcName: "none",
436479
additionalVolumes: []v1beta1.AdditionalVolume{{
437480
Containers: []string{},
438481
ClaimName: "required",
439482
Name: "required",
483+
}},
484+
expectedContainers: `- name: database
485+
resources: {}
486+
- name: other
487+
resources: {}`,
488+
expectedInitContainers: `- name: startup
489+
resources: {}
490+
- name: config
491+
resources: {}`,
492+
expectedVolumes: `- name: volumes-required
493+
persistentVolumeClaim:
494+
claimName: required`,
495+
expectedMissing: []string{},
496+
}, {
497+
tcName: "multiple additional volumes",
498+
additionalVolumes: []v1beta1.AdditionalVolume{{
499+
ClaimName: "required",
500+
Name: "required",
440501
}, {
441-
Containers: []string{},
442-
ClaimName: "also",
443-
Name: "other",
502+
ClaimName: "also",
503+
Name: "other",
444504
}},
445505
expectedContainers: `- name: database
446506
resources: {}

pkg/apis/postgres-operator.crunchydata.com/v1/zz_generated.deepcopy.go

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

pkg/apis/postgres-operator.crunchydata.com/v1beta1/postgrescluster_types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,8 @@ type AdditionalVolume struct {
559559
ClaimName DNS1123Subdomain `json:"claimName"`
560560

561561
// The containers to attach this volume to.
562-
// A blank/unset `Containers` field matches all containers.
562+
// An omitted `Containers` field matches all containers.
563+
// An empty `Containers` field matches no containers.
563564
// ---
564565
// +optional
565566
// +listType=atomic

testing/kuttl/e2e/additional-volumes/00--cluster.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

testing/kuttl/e2e/additional-volumes/00-assert.yaml

Lines changed: 0 additions & 9 deletions
This file was deleted.

testing/kuttl/e2e/additional-volumes/01-assert.yaml

Lines changed: 0 additions & 65 deletions
This file was deleted.

testing/kuttl/e2e/additional-volumes/files/00-cluster-created.yaml

Lines changed: 0 additions & 29 deletions
This file was deleted.

testing/kuttl/e2e/additional-volumes/files/00-create-cluster.yaml

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
 (0)