Skip to content

Commit 68d54f0

Browse files
committed
fsgroup change
1 parent 0d8c35c commit 68d54f0

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

internal/controller/postgrescluster/pgbouncer.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,8 +485,12 @@ func (r *Reconciler) generatePGBouncerDeployment(
485485
// Do not add environment variables describing services in this namespace.
486486
deploy.Spec.Template.Spec.EnableServiceLinks = initialize.Bool(false)
487487

488-
deploy.Spec.Template.Spec.SecurityContext = util.PodSecurityContext(2,
489-
cluster.Spec.SupplementalGroups, initialize.FromPointer(cluster.Spec.OpenShift),
488+
fsGroup := 2
489+
if initialize.FromPointer(cluster.Spec.OpenShift) {
490+
fsGroup = 0
491+
}
492+
deploy.Spec.Template.Spec.SecurityContext = util.PodSecurityContext(int64(fsGroup),
493+
cluster.Spec.SupplementalGroups,
490494
)
491495

492496
// set the image pull secrets, if any exist

internal/util/pod_security.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212

1313
// PodSecurityContext returns a v1.PodSecurityContext for cluster that can write
1414
// to PersistentVolumes.
15-
func PodSecurityContext(fsgroup int64, supplementalGroups []int64, openshift bool) *corev1.PodSecurityContext {
15+
// This func sets the supplmental groups and fsGgroup if present.
16+
// fsGroup should not be present in OpenShift environments
17+
func PodSecurityContext(fsgroup int64, supplementalGroups []int64) *corev1.PodSecurityContext {
1618
psc := initialize.PodSecurityContext()
1719

1820
// Use the specified supplementary groups except for root. The CRD has
@@ -30,7 +32,7 @@ func PodSecurityContext(fsgroup int64, supplementalGroups []int64, openshift boo
3032
// - https://cloud.redhat.com/blog/a-guide-to-openshift-and-uids
3133
// - https://docs.k8s.io/tasks/configure-pod-container/security-context/
3234
// - https://docs.openshift.com/container-platform/4.8/authentication/managing-security-context-constraints.html
33-
if !openshift {
35+
if fsgroup > 0 {
3436
psc.FSGroup = initialize.Int64(fsgroup)
3537
}
3638

internal/util/pod_security_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ import (
1414

1515
func TestPodSecurityContext(t *testing.T) {
1616
t.Run("Non-Openshift", func(t *testing.T) {
17-
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(2, []int64{}, false), `
17+
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(2, []int64{}), `
1818
fsGroup: 2
1919
fsGroupChangePolicy: OnRootMismatch
2020
`))
2121

2222
supplementalGroups := []int64{3, 4}
23-
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(26, supplementalGroups, false), `
23+
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(26, supplementalGroups), `
2424
fsGroup: 26
2525
fsGroupChangePolicy: OnRootMismatch
2626
supplementalGroups:
@@ -30,11 +30,11 @@ supplementalGroups:
3030
})
3131

3232
t.Run("OpenShift", func(t *testing.T) {
33-
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(2, []int64{}, true),
33+
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(0, []int64{}),
3434
`fsGroupChangePolicy: OnRootMismatch`))
3535

3636
supplementalGroups := []int64{3, 4}
37-
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(2, supplementalGroups, true), `
37+
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(0, supplementalGroups), `
3838
fsGroupChangePolicy: OnRootMismatch
3939
supplementalGroups:
4040
- 3
@@ -44,9 +44,9 @@ supplementalGroups:
4444

4545
t.Run("NoRootGID", func(t *testing.T) {
4646
supplementalGroups := []int64{999, 0, 100, 0}
47-
assert.DeepEqual(t, []int64{999, 100}, PodSecurityContext(2, supplementalGroups, false).SupplementalGroups)
47+
assert.DeepEqual(t, []int64{999, 100}, PodSecurityContext(2, supplementalGroups).SupplementalGroups)
4848

4949
supplementalGroups = []int64{0}
50-
assert.Assert(t, PodSecurityContext(2, supplementalGroups, false).SupplementalGroups == nil)
50+
assert.Assert(t, PodSecurityContext(2, supplementalGroups).SupplementalGroups == nil)
5151
})
5252
}

0 commit comments

Comments
 (0)