@@ -103,24 +103,19 @@ You should also have:
103103
104104## Installer-Provided Resources
105105
106- The Kagenti installer creates everything this demo needs in the target namespace:
106+ In ** ` team1 ` ** : ` authbridge-config ` , ` authbridge-runtime-config ` , ` spiffe-helper-config ` ,
107+ ` envoy-config ` . No extra Secrets or ConfigMaps are required for this demo (outbound
108+ passthrough; inbound JWT uses issuer/signature checks).
107109
108- - ** ` kagenti ` realm** in Keycloak
109- - ** ` keycloak-admin-secret ` ** Secret (Keycloak admin credentials)
110- - ** ` authbridge-config ` ** , ** ` authbridge-runtime-config ` ** , ** ` spiffe-helper-config ` ** , ** ` envoy-config ` ** ConfigMaps
110+ ** ` keycloak-admin-secret ` is not in ` team1 ` .** Operator 0.2+ keeps it in
111+ ** ` kagenti-system ` ** for client registration. ` NotFound ` in ` team1 ` is expected:
111112
112- No additional Keycloak configuration, Secrets, or ConfigMaps are required for
113- this demo. The weather agent uses outbound passthrough (no token exchange), and
114- inbound JWT validation works with signature and issuer checks alone.
113+ ``` bash
114+ kubectl get secret keycloak-admin-secret -n kagenti-system
115+ ```
115116
116- > If your Keycloak admin credentials differ from the default (` admin ` /` admin ` ),
117- > update the secret:
118- > ``` bash
119- > kubectl create secret generic keycloak-admin-secret -n team1 \
120- > --from-literal=KEYCLOAK_ADMIN_USERNAME=< your-admin-user> \
121- > --from-literal=KEYCLOAK_ADMIN_PASSWORD=< your-admin-password> \
122- > --dry-run=client -o yaml | kubectl apply -f -
123- > ` ` `
117+ UI login: secret ** ` kagenti-test-user ` ** in namespace ** ` keycloak ` ** (` admin ` + password).
118+ Realm ** ` kagenti ` ** is created by the platform installer.
124119
125120---
126121
@@ -232,38 +227,46 @@ Wait for the Shipwright build to complete and the deployment to become ready.
232227kubectl get pods -n team1
233228` ` `
234229
235- Expected output:
230+ Expected output (Step 2 defaults — ` proxy-sidecar ` mode) :
236231
237- ` ` `
232+ ` ` ` text
238233NAME READY STATUS RESTARTS AGE
239234weather-service-58768bdb67-xxxxx 2/2 Running 0 2m
240235weather-tool-7f8c9d6b44-yyyyy 1/1 Running 0 5m
241236` ` `
242237
243- > ** Note:** The agent pod shows ** 2/2** containers — the agent itself plus
244- > one combined AuthBridge sidecar (spiffe-helper is bundled inside; client
245- > registration is handled by the operator outside the pod). In envoy-sidecar
246- > mode you' ll also see a `proxy-init` init container that exits after
247- > setting up iptables.
238+ > ** Note:** AuthBridge ships as a single combined sidecar image (since
239+ > kagenti-extensions#411). ` weather-service` runs ` agent` + the combined
240+ > AuthBridge sidecar — ` 2/2` — regardless of whether SPIRE identity is
241+ > enabled. The ` spiffe-helper` is bundled inside the combined image and
242+ > activated per workload via ` SPIRE_ENABLED` (driven by the
243+ > ` kagenti.io/spire: enabled` label); it is not a separate container. In
244+ > ` envoy-sidecar` mode the pod is still ` 2/2` (` agent` + the combined
245+ > sidecar) plus a ` proxy-init` init container for iptables setup. See the
246+ > [AuthBridge deployment guide](https://github.com/kagenti/kagenti/blob/main/docs/authbridge/deployment-guide.md)
247+ > for the full mode/label reference.
248248
249249# ## Verify injected containers
250250
251251` ` ` bash
252252kubectl get pod -n team1 -l app.kubernetes.io/name=weather-service -o jsonpath=' {.items[0].spec.containers[*].name}'
253253` ` `
254254
255- Expected (proxy-sidecar mode, the cluster default ):
255+ Expected (Step 2 defaults — ` proxy-sidecar` mode):
256256
257- ```
257+ ` ` ` text
258258agent authbridge-proxy
259259` ` `
260260
261- Or, in envoy-sidecar mode:
261+ Or, in ` envoy-sidecar` mode:
262262
263- ```
263+ ` ` ` text
264264agent envoy-proxy
265265` ` `
266266
267+ The container * names* don' t change with SPIRE — `spiffe-helper` runs inside
268+ the combined sidecar, not as a separate container.
269+
267270### Check operator-managed client registration
268271
269272After kagenti-extensions#411 / kagenti-operator#361, client registration runs
@@ -565,13 +568,14 @@ kubectl delete pod test-client -n team1 --ignore-not-found
565568** Symptom:** ` {" error" :" invalid_client" ," error_description" :" Invalid client or Invalid client credentials" }`
566569
567570** Cause:** The ` keycloak-admin-secret` Secret or ` authbridge-config` ConfigMap was missing
568- or incorrect at startup, so the client-registration sidecar couldn' t register the client.
571+ or incorrect at startup, so the operator' s `ClientRegistrationReconciler` couldn' t reach
572+ Keycloak to register the client.
569573
570574** Fix:**
571575
572576` ` ` bash
573- # 1. Verify the keycloak-admin-secret exists
574- kubectl get secret keycloak-admin-secret -n team1
577+ # 1. Verify the keycloak-admin-secret exists (operator 0.2+ keeps it in kagenti-system)
578+ kubectl get secret keycloak-admin-secret -n kagenti-system
575579
576580# 2. Verify the authbridge-config ConfigMap has the correct realm
577581kubectl get configmap authbridge-config -n team1 -o jsonpath=' {.data.KEYCLOAK_REALM}'
0 commit comments