Skip to content

Helm chart missing OpenShift SCC for AuthBridge sidecars #460

Description

@r3v5

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:

  • SecurityContextConstraintskagenti-authbridge
  • ClusterRolesystem: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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions