Fix empty capabilities (#1380)

* helm chart remove 1.6.0 archive from 1.6.0 archive
* empty pod capabilities should be nil
This commit is contained in:
Felix Kunde 2021-02-22 17:27:32 +01:00 committed by GitHub
parent 648d663dbb
commit ca968ca150
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 11 deletions

View File

@ -320,14 +320,17 @@ func getLocalAndBoostrapPostgreSQLParameters(parameters map[string]string) (loca
return return
} }
func generateCapabilities(capabilities []string) v1.Capabilities { func generateCapabilities(capabilities []string) *v1.Capabilities {
additionalCapabilities := make([]v1.Capability, 0, len(capabilities)) additionalCapabilities := make([]v1.Capability, 0, len(capabilities))
for _, capability := range capabilities { for _, capability := range capabilities {
additionalCapabilities = append(additionalCapabilities, v1.Capability(strings.ToUpper(capability))) additionalCapabilities = append(additionalCapabilities, v1.Capability(strings.ToUpper(capability)))
} }
return v1.Capabilities{ if len(additionalCapabilities) > 0 {
Add: additionalCapabilities, return &v1.Capabilities{
Add: additionalCapabilities,
}
} }
return nil
} }
func nodeAffinity(nodeReadinessLabel map[string]string, nodeAffinity *v1.NodeAffinity) *v1.Affinity { func nodeAffinity(nodeReadinessLabel map[string]string, nodeAffinity *v1.NodeAffinity) *v1.Affinity {
@ -440,7 +443,7 @@ func generateContainer(
envVars []v1.EnvVar, envVars []v1.EnvVar,
volumeMounts []v1.VolumeMount, volumeMounts []v1.VolumeMount,
privilegedMode bool, privilegedMode bool,
additionalPodCapabilities v1.Capabilities, additionalPodCapabilities *v1.Capabilities,
) *v1.Container { ) *v1.Container {
return &v1.Container{ return &v1.Container{
Name: name, Name: name,
@ -467,7 +470,7 @@ func generateContainer(
AllowPrivilegeEscalation: &privilegedMode, AllowPrivilegeEscalation: &privilegedMode,
Privileged: &privilegedMode, Privileged: &privilegedMode,
ReadOnlyRootFilesystem: util.False(), ReadOnlyRootFilesystem: util.False(),
Capabilities: &additionalPodCapabilities, Capabilities: additionalPodCapabilities,
}, },
} }
} }
@ -1914,7 +1917,7 @@ func (c *Cluster) generateLogicalBackupJob() (*batchv1beta1.CronJob, error) {
envVars, envVars,
[]v1.VolumeMount{}, []v1.VolumeMount{},
c.OpConfig.SpiloPrivileged, // use same value as for normal DB pods c.OpConfig.SpiloPrivileged, // use same value as for normal DB pods
v1.Capabilities{}, nil,
) )
labels := map[string]string{ labels := map[string]string{

View File

@ -1496,25 +1496,25 @@ func TestGenerateCapabilities(t *testing.T) {
tests := []struct { tests := []struct {
subTest string subTest string
configured []string configured []string
capabilities v1.Capabilities capabilities *v1.Capabilities
err error err error
}{ }{
{ {
subTest: "no capabilities", subTest: "no capabilities",
configured: nil, configured: nil,
capabilities: v1.Capabilities{Add: []v1.Capability{}}, capabilities: nil,
err: fmt.Errorf("could not parse capabilities configuration of nil"), err: fmt.Errorf("could not parse capabilities configuration of nil"),
}, },
{ {
subTest: "empty capabilities", subTest: "empty capabilities",
configured: []string{}, configured: []string{},
capabilities: v1.Capabilities{Add: []v1.Capability{}}, capabilities: nil,
err: fmt.Errorf("could not parse empty capabilities configuration"), err: fmt.Errorf("could not parse empty capabilities configuration"),
}, },
{ {
subTest: "configured capability", subTest: "configured capability",
configured: []string{"SYS_NICE"}, configured: []string{"SYS_NICE"},
capabilities: v1.Capabilities{ capabilities: &v1.Capabilities{
Add: []v1.Capability{"SYS_NICE"}, Add: []v1.Capability{"SYS_NICE"},
}, },
err: fmt.Errorf("could not generate one configured capability"), err: fmt.Errorf("could not generate one configured capability"),
@ -1522,7 +1522,7 @@ func TestGenerateCapabilities(t *testing.T) {
{ {
subTest: "configured capabilities", subTest: "configured capabilities",
configured: []string{"SYS_NICE", "CHOWN"}, configured: []string{"SYS_NICE", "CHOWN"},
capabilities: v1.Capabilities{ capabilities: &v1.Capabilities{
Add: []v1.Capability{"SYS_NICE", "CHOWN"}, Add: []v1.Capability{"SYS_NICE", "CHOWN"},
}, },
err: fmt.Errorf("could not generate multiple configured capabilities"), err: fmt.Errorf("could not generate multiple configured capabilities"),