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

    No labels
    No labels

    Type

    No type

    Projects

    Status
    New/ToDo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions