@@ -51,6 +51,30 @@ not configured here.
5151and ` trino.ssl=false ` (cleartext password forwarded to Trino over plain
5252HTTP). Use only with a loopback or otherwise-trusted Trino.
5353
54+ ## OpenShift
55+
56+ By default the chart pins ` runAsUser ` , ` runAsGroup ` and ` fsGroup ` to the
57+ IDs baked into the image (the ` stackable ` user). OpenShift's SCCs (e.g.
58+ ` restricted-v2 ` ) instead assign a UID/fsGroup from a per-namespace range
59+ and reject any pod requesting IDs outside it, so the defaults fail
60+ admission with ` ... is not an allowed group ` / ` must be in the ranges ` .
61+
62+ Set ` openshift.enabled=true ` to omit ` runAsUser ` , ` runAsGroup ` and
63+ ` fsGroup ` from the pod and container security contexts, letting the SCC
64+ inject them:
65+
66+ ``` bash
67+ helm install gw ./deploy/helm/postgresql-trino-gateway \
68+ --set trino.host=trino.example.com \
69+ --set openshift.enabled=true
70+ ```
71+
72+ The image is built for this: ` /stackable ` is group-` 0 ` -owned with ` g=u `
73+ permissions and the chart sets ` readOnlyRootFilesystem: true ` , so the
74+ container runs correctly as an arbitrary assigned UID with GID ` 0 ` . All
75+ other hardening (` runAsNonRoot ` , ` seccompProfile ` , dropped capabilities)
76+ is retained.
77+
5478## Connectivity
5579
5680The Service is ` ClusterIP ` on TCP/5432 by default. PG protocol is not
@@ -100,6 +124,8 @@ See `values.yaml` for the full list. Notable groups:
100124- ` livenessProbe ` , ` readinessProbe ` , ` startupProbe ` — TCP socket probes.
101125- ` podSecurityContext ` , ` securityContext ` — non-root, read-only root FS,
102126 drop ALL capabilities.
127+ - ` openshift.enabled ` — drop hardcoded UID/GID/fsGroup so OpenShift SCCs
128+ assign them (see [ OpenShift] ( #openshift ) ).
103129- ` maxConnections ` — concurrent connection cap.
104130- ` logLevel ` — ` RUST_LOG ` value (e.g. ` postgresql_trino_gateway=debug ` ).
105131
0 commit comments