Problem
The kagenti-authbridge SecurityContextConstraints (SCC) only exists in the kustomize overlay (config/security/kagenti-authbridge-scc.yaml). Helm-only installs on OpenShift are missing it, requiring customers to manually apply the SCC out-of-band:
kubectl apply -f kagenti-operator/config/security/kagenti-authbridge-scc.yaml
Without the SCC, AuthBridge sidecar pods fail on OpenShift because:
restricted-v2 SCC blocks CSI volumes (needed for SPIRE workload API socket via csi.spiffe.io)
proxy-init init container requires NET_ADMIN capability for iptables rules
Proposed Solution
Add an OpenShift SCC template to the Helm chart, gated by a new value openshift.scc.enable (default: false).
New file: charts/kagenti-operator/templates/openshift/scc.yaml
Include all 3 resources from config/security/kagenti-authbridge-scc.yaml:
SecurityContextConstraints — kagenti-authbridge
ClusterRole — system:openshift:scc:kagenti-authbridge (grants use verb)
ClusterRoleBinding — binds operator SA to the ClusterRole
Templatize the hardcoded namespace: kagenti-operator-system → {{ .Release.Namespace }} and the ServiceAccount name → {{ .Values.controllerManager.serviceAccountName }}.
Update: charts/kagenti-operator/values.yaml
# [OPENSHIFT]: OpenShift-specific resources
openshift:
scc:
enable: false
This follows the existing pattern used by networkPolicy.enable and prometheus.enable.
Impact
- Non-OpenShift clusters: no change (default
false)
- OpenShift customers:
helm install --set openshift.scc.enable=true gets a fully working install with no manual steps
Problem
The
kagenti-authbridgeSecurityContextConstraints (SCC) only exists in the kustomize overlay (config/security/kagenti-authbridge-scc.yaml). Helm-only installs on OpenShift are missing it, requiring customers to manually apply the SCC out-of-band:Without the SCC, AuthBridge sidecar pods fail on OpenShift because:
restricted-v2SCC blocks CSI volumes (needed for SPIRE workload API socket viacsi.spiffe.io)proxy-initinit container requiresNET_ADMINcapability for iptables rulesProposed Solution
Add an OpenShift SCC template to the Helm chart, gated by a new value
openshift.scc.enable(default:false).New file:
charts/kagenti-operator/templates/openshift/scc.yamlInclude all 3 resources from
config/security/kagenti-authbridge-scc.yaml:SecurityContextConstraints—kagenti-authbridgeClusterRole—system:openshift:scc:kagenti-authbridge(grantsuseverb)ClusterRoleBinding— binds operator SA to the ClusterRoleTemplatize the hardcoded
namespace: kagenti-operator-system→{{ .Release.Namespace }}and the ServiceAccount name →{{ .Values.controllerManager.serviceAccountName }}.Update:
charts/kagenti-operator/values.yamlThis follows the existing pattern used by
networkPolicy.enableandprometheus.enable.Impact
false)helm install --set openshift.scc.enable=truegets a fully working install with no manual steps