Skip to content

Commit ca968ca

Browse files
authored
Fix empty capabilities (zalando#1380)
* helm chart remove 1.6.0 archive from 1.6.0 archive * empty pod capabilities should be nil
1 parent 648d663 commit ca968ca

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed
-4.1 KB
Binary file not shown.
-21.3 KB
Binary file not shown.

pkg/cluster/k8sres.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -320,14 +320,17 @@ func getLocalAndBoostrapPostgreSQLParameters(parameters map[string]string) (loca
320320
return
321321
}
322322

323-
func generateCapabilities(capabilities []string) v1.Capabilities {
323+
func generateCapabilities(capabilities []string) *v1.Capabilities {
324324
additionalCapabilities := make([]v1.Capability, 0, len(capabilities))
325325
for _, capability := range capabilities {
326326
additionalCapabilities = append(additionalCapabilities, v1.Capability(strings.ToUpper(capability)))
327327
}
328-
return v1.Capabilities{
329-
Add: additionalCapabilities,
328+
if len(additionalCapabilities) > 0 {
329+
return &v1.Capabilities{
330+
Add: additionalCapabilities,
331+
}
330332
}
333+
return nil
331334
}
332335

333336
func nodeAffinity(nodeReadinessLabel map[string]string, nodeAffinity *v1.NodeAffinity) *v1.Affinity {
@@ -440,7 +443,7 @@ func generateContainer(
440443
envVars []v1.EnvVar,
441444
volumeMounts []v1.VolumeMount,
442445
privilegedMode bool,
443-
additionalPodCapabilities v1.Capabilities,
446+
additionalPodCapabilities *v1.Capabilities,
444447
) *v1.Container {
445448
return &v1.Container{
446449
Name: name,
@@ -467,7 +470,7 @@ func generateContainer(
467470
AllowPrivilegeEscalation: &privilegedMode,
468471
Privileged: &privilegedMode,
469472
ReadOnlyRootFilesystem: util.False(),
470-
Capabilities: &additionalPodCapabilities,
473+
Capabilities: additionalPodCapabilities,
471474
},
472475
}
473476
}
@@ -1914,7 +1917,7 @@ func (c *Cluster) generateLogicalBackupJob() (*batchv1beta1.CronJob, error) {
19141917
envVars,
19151918
[]v1.VolumeMount{},
19161919
c.OpConfig.SpiloPrivileged, // use same value as for normal DB pods
1917-
v1.Capabilities{},
1920+
nil,
19181921
)
19191922

19201923
labels := map[string]string{

pkg/cluster/k8sres_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1496,33 +1496,33 @@ func TestGenerateCapabilities(t *testing.T) {
14961496
tests := []struct {
14971497
subTest string
14981498
configured []string
1499-
capabilities v1.Capabilities
1499+
capabilities *v1.Capabilities
15001500
err error
15011501
}{
15021502
{
15031503
subTest: "no capabilities",
15041504
configured: nil,
1505-
capabilities: v1.Capabilities{Add: []v1.Capability{}},
1505+
capabilities: nil,
15061506
err: fmt.Errorf("could not parse capabilities configuration of nil"),
15071507
},
15081508
{
15091509
subTest: "empty capabilities",
15101510
configured: []string{},
1511-
capabilities: v1.Capabilities{Add: []v1.Capability{}},
1511+
capabilities: nil,
15121512
err: fmt.Errorf("could not parse empty capabilities configuration"),
15131513
},
15141514
{
15151515
subTest: "configured capability",
15161516
configured: []string{"SYS_NICE"},
1517-
capabilities: v1.Capabilities{
1517+
capabilities: &v1.Capabilities{
15181518
Add: []v1.Capability{"SYS_NICE"},
15191519
},
15201520
err: fmt.Errorf("could not generate one configured capability"),
15211521
},
15221522
{
15231523
subTest: "configured capabilities",
15241524
configured: []string{"SYS_NICE", "CHOWN"},
1525-
capabilities: v1.Capabilities{
1525+
capabilities: &v1.Capabilities{
15261526
Add: []v1.Capability{"SYS_NICE", "CHOWN"},
15271527
},
15281528
err: fmt.Errorf("could not generate multiple configured capabilities"),

0 commit comments

Comments
 (0)