Skip to content

feat: add OpenShift overlay with AuthBridge configs, SCC, and Istio shared trust#387

Open
Ygnas wants to merge 2 commits into
kagenti:mainfrom
Ygnas:feat/kustomize-openshift-overlay
Open

feat: add OpenShift overlay with AuthBridge configs, SCC, and Istio shared trust#387
Ygnas wants to merge 2 commits into
kagenti:mainfrom
Ygnas:feat/kustomize-openshift-overlay

Conversation

@Ygnas
Copy link
Copy Markdown
Contributor

@Ygnas Ygnas commented May 29, 2026

Summary

Add a kustomize overlay (config/openshift) that composes the base operator deployment with OpenShift-specific resources:

AuthBridge sidecar configuration:

  • authbridge-runtime-config ConfigMap (JWT validation, token exchange)
  • envoy-config ConfigMap (inbound/outbound listeners with ext_proc)
  • spiffe-helper-config ConfigMap (SVID and JWT SVID file output)

Security:

  • kagenti-authbridge SCC allowing CSI volumes (csi.spiffe.io)
  • ClusterRole and ClusterRoleBinding for SCC delegation
  • Runtime SCC RoleBinding creation per agent namespace

Istio shared trust (cert-manager):

  • Self-signed root CA ClusterIssuer and Certificate
  • Intermediate CA Certificates for istio-system and openshift-ingress

Operator wiring:

  • Makefile targets: deploy-openshift, undeploy-openshift, manifests-openshift
  • POD_NAMESPACE env injection via manager webhook patch
  • Dynamic ClusterDefaultsNamespace resolved from operator pod namespace

Related issue(s)

(Optional) Testing Instructions

Fixes #

…hared trust

Add a kustomize overlay (config/openshift) that composes the base
operator deployment with OpenShift-specific resources:

AuthBridge sidecar configuration:
- authbridge-runtime-config ConfigMap (JWT validation, token exchange)
- envoy-config ConfigMap (inbound/outbound listeners with ext_proc)
- spiffe-helper-config ConfigMap (SVID and JWT SVID file output)

Security:
- kagenti-authbridge SCC allowing CSI volumes (csi.spiffe.io)
- ClusterRole and ClusterRoleBinding for SCC delegation
- Runtime SCC RoleBinding creation per agent namespace

Istio shared trust (cert-manager):
- Self-signed root CA ClusterIssuer and Certificate
- Intermediate CA Certificates for istio-system and openshift-ingress

Operator wiring:
- Makefile targets: deploy-openshift, undeploy-openshift, manifests-openshift
- POD_NAMESPACE env injection via manager webhook patch
- Dynamic ClusterDefaultsNamespace resolved from operator pod namespace

Signed-off-by: Ignas Baranauskas <ibaranau@redhat.com>
@Ygnas Ygnas force-pushed the feat/kustomize-openshift-overlay branch from 4012c3f to 8b3f8cc Compare May 29, 2026 15:48
Copy link
Copy Markdown
Contributor

@ChristianZaccaria ChristianZaccaria left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good, great work !!

Comment thread kagenti-operator/cmd/main.go Outdated
Comment thread kagenti-operator/config/authbridge/authbridge-runtime-config.yaml
Comment thread kagenti-operator/config/authbridge/spiffe-helper-config.yaml
- Move SetClusterDefaultsNamespace before buildConfigMapCacheNamespaces
  so the manager cache watches the correct operator namespace instead
  of the hardcoded default
- Add strategic merge patches for OpenShift overlay to replace
  local-dev keycloak.localtest.me URLs with in-cluster
  keycloak-service.keycloak.svc endpoints
- Patch authbridge-runtime-config issuer, keycloak_url, and
  keycloak_realm for both inbound and outbound pipelines
- Patch spiffe-helper-config jwt_audience to use in-cluster URL

Signed-off-by: Ignas Baranauskas <ibaranau@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New /:ToDo

Development

Successfully merging this pull request may close these issues.

3 participants