Skip to content

Commit 9957af4

Browse files
authored
Merge pull request #1965 from rabbitmq/security-context
Allow overriding container security context.
2 parents 1228fd4 + e8feec4 commit 9957af4

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

docs/examples/default-security-context/rabbitmq.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ spec:
99
template:
1010
spec:
1111
securityContext: {}
12-
containers: []
12+
containers:
13+
- name: rabbitmq
14+
securityContext: {}
1315
initContainers:
1416
- name: setup-container
1517
securityContext: {}

internal/resource/statefulset.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ func patchPodSpec(podSpec, podSpecOverride *corev1.PodSpec) (corev1.PodSpec, err
296296
patchedPodSpec.Containers[0].ReadinessProbe = rmqContainer.ReadinessProbe
297297
}
298298

299-
// A user may wish to override the controller-set securityContext for the RabbitMQ & init containers so that the
299+
// A user may wish to override the controller-set securityContext for the RabbitMQ, init containers, and containers so that the
300300
// container runtime can override them. If the securityContext has been set to an empty struct, `strategicpatch.StrategicMergePatch`
301301
// won't pick this up, so manually override it here.
302302
if podSpecOverride.SecurityContext != nil && reflect.DeepEqual(*podSpecOverride.SecurityContext, corev1.PodSecurityContext{}) {
@@ -307,6 +307,11 @@ func patchPodSpec(podSpec, podSpecOverride *corev1.PodSpec) (corev1.PodSpec, err
307307
patchedPodSpec.InitContainers[i].SecurityContext = nil
308308
}
309309
}
310+
for i := range podSpecOverride.Containers {
311+
if podSpecOverride.Containers[i].SecurityContext != nil && reflect.DeepEqual(*podSpecOverride.Containers[i].SecurityContext, corev1.SecurityContext{}) {
312+
patchedPodSpec.Containers[i].SecurityContext = nil
313+
}
314+
}
310315

311316
return patchedPodSpec, nil
312317
}

internal/resource/statefulset_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2154,6 +2154,12 @@ default_pass = {{ .Data.data.password }}
21542154
SecurityContext: &corev1.SecurityContext{},
21552155
},
21562156
},
2157+
Containers: []corev1.Container{
2158+
{
2159+
Name: "rabbitmq",
2160+
SecurityContext: &corev1.SecurityContext{},
2161+
},
2162+
},
21572163
},
21582164
},
21592165
},
@@ -2168,6 +2174,7 @@ default_pass = {{ .Data.data.password }}
21682174

21692175
Expect(statefulSet.Spec.Template.Spec.SecurityContext).To(BeNil())
21702176
Expect(statefulSet.Spec.Template.Spec.InitContainers[0].SecurityContext).To(BeNil())
2177+
Expect(statefulSet.Spec.Template.Spec.Containers[0].SecurityContext).To(BeNil())
21712178

21722179
})
21732180

0 commit comments

Comments
 (0)