-
Notifications
You must be signed in to change notification settings - Fork 40
docs(weather-agent): drop obsolete keycloak-admin-secret guidance #791
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -107,13 +107,25 @@ In **`team1`**: `authbridge-config`, `authbridge-runtime-config`, `spiffe-helper | |||||||||||||||
| `envoy-config`. No extra Secrets or ConfigMaps are required for this demo (outbound | ||||||||||||||||
| passthrough; inbound JWT uses issuer/signature checks). | ||||||||||||||||
|
|
||||||||||||||||
| **`keycloak-admin-secret` is not in `team1`.** Operator 0.2+ keeps it in | ||||||||||||||||
| **`rossoctl-system`** for client registration. `NotFound` in `team1` is expected: | ||||||||||||||||
| **No `keycloak-admin-secret` is required — in `team1` or `rossoctl-system`.** On the | ||||||||||||||||
| current operator (v0.7.0) the operator registers Keycloak clients using its own **SPIFFE | ||||||||||||||||
| workload identity** (federated into Keycloak by the `rossoctl-operator-client-bootstrap` | ||||||||||||||||
| post-install job in the `keycloak` namespace), not an admin username/password Secret. | ||||||||||||||||
|
Comment on lines
+111
to
+113
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Scope the version claim to operator v0.7.0. The phrase “current operator (v0.7.0)” can become incorrect when a later operator version is installed. Replace “current operator” with “operator v0.7.0” or state the supported-version boundary explicitly. 🤖 Prompt for AI Agents |
||||||||||||||||
| A `NotFound` for `keycloak-admin-secret` in **either** namespace is expected. Confirm | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggestion — "in either namespace" reaches a little past what a fresh quickstart shows. Two places still expect the Secret:
So the claim is right for the client-registration path on a fresh Helm install, which is what you measured — it is the unqualified "either namespace is expected" that could bite: someone debugging via the e2e script hits that preflight failure and this doc tells them to ignore it. Scoping it ("on a Helm quickstart, the operator's client registration needs no admin Secret in either namespace") would keep the useful part. And the doc-versus-automation disagreement is worth a follow-up issue regardless: either those scripts are legacy and should be cleaned up, or the sidecar path is still real and the demo needs to say so. |
||||||||||||||||
| registration by the per-workload client credentials the operator writes instead: | ||||||||||||||||
|
|
||||||||||||||||
| ```bash | ||||||||||||||||
| kubectl get secret keycloak-admin-secret -n rossoctl-system | ||||||||||||||||
| # One Secret per registered workload: | ||||||||||||||||
| kubectl get secret -n team1 | grep rossoctl-keycloak-client-credentials | ||||||||||||||||
| # ...and/or watch the operator apply registrations: | ||||||||||||||||
| kubectl logs -n rossoctl-system deployment/rossoctl-controller-manager \ | ||||||||||||||||
| | grep "client registration applied" | tail | ||||||||||||||||
|
Comment on lines
+120
to
+122
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Make the log command follow new entries. The comment says “watch”, but Proposed fix kubectl logs -n rossoctl-system deployment/rossoctl-controller-manager \
+ --follow --tail=50 \
| grep "client registration applied"📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| > Older docs (operator 0.2+) referenced a `keycloak-admin-secret` in `rossoctl-system`. | ||||||||||||||||
| > The Helm install no longer creates or uses it; the admin credentials the bootstrap job | ||||||||||||||||
| > needs are read from `keycloak-initial-admin` in the `keycloak` namespace. | ||||||||||||||||
|
|
||||||||||||||||
| UI login: secret **`rossoctl-test-user`** in namespace **`keycloak`** (`admin` + password). | ||||||||||||||||
| Realm **`rossoctl`** is created by the platform installer. | ||||||||||||||||
|
|
||||||||||||||||
|
|
@@ -567,15 +579,19 @@ kubectl delete pod test-client -n team1 --ignore-not-found | |||||||||||||||
|
|
||||||||||||||||
| **Symptom:** `{"error":"invalid_client","error_description":"Invalid client or Invalid client credentials"}` | ||||||||||||||||
|
|
||||||||||||||||
| **Cause:** The `keycloak-admin-secret` Secret or `authbridge-config` ConfigMap was missing | ||||||||||||||||
| or incorrect at startup, so the operator's `ClientRegistrationReconciler` couldn't reach | ||||||||||||||||
| Keycloak to register the client. | ||||||||||||||||
| **Cause:** The operator's `ClientRegistrationReconciler` couldn't complete registration — | ||||||||||||||||
| usually because the `authbridge-config` ConfigMap had the wrong realm, or the operator's | ||||||||||||||||
| SPIFFE identity was not yet federated into Keycloak (the `rossoctl-operator-client-bootstrap` | ||||||||||||||||
| job). On v0.7.0 the operator authenticates via its SPIFFE workload identity, so there is | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit — stated as unconditional, but it is a runtime toggle (and carries the same version label as line 111).
The practical advice is unaffected — as noted in the review body, the non-SPIFFE branch reads |
||||||||||||||||
| **no** `keycloak-admin-secret` to check. | ||||||||||||||||
|
|
||||||||||||||||
| **Fix:** | ||||||||||||||||
|
|
||||||||||||||||
| ```bash | ||||||||||||||||
| # 1. Verify the keycloak-admin-secret exists (operator 0.2+ keeps it in rossoctl-system) | ||||||||||||||||
| kubectl get secret keycloak-admin-secret -n rossoctl-system | ||||||||||||||||
| # 1. Confirm the operator registered a client for the workload | ||||||||||||||||
| kubectl get secret -n team1 | grep rossoctl-keycloak-client-credentials | ||||||||||||||||
| kubectl logs -n rossoctl-system deployment/rossoctl-controller-manager \ | ||||||||||||||||
| | grep -iE "clientregistration|client registration applied" | tail | ||||||||||||||||
|
Comment on lines
+582
to
+594
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Add a verification step for the federation job. The cause names 🤖 Prompt for AI Agents |
||||||||||||||||
|
|
||||||||||||||||
| # 2. Verify the authbridge-config ConfigMap has the correct realm | ||||||||||||||||
| kubectl get configmap authbridge-config -n team1 -o jsonpath='{.data.KEYCLOAK_REALM}' | ||||||||||||||||
|
|
||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion —
v0.7.0is the platform version, but it is labelled as the operator's.v0.7.0isrossoctl/rossoctl, released 2026-08-17, and that release pinsoperator-chart0.3.0 (charts/rossoctl/Chart.yamlat tagv0.7.0). The operator's own latest release isv0.3.1-alpha.1— there is no operator v0.7.x.What makes this worth fixing rather than shrugging at is that this PR mixes both schemes in the same edit: here and at line 585 it reads "the current operator (v0.7.0)", while the new note at line 125 says "Older docs (operator 0.2+)" — which is real operator numbering, matching the 0.2.x → 0.3.x chart series. Read together, those imply five operator releases that never happened, in a section whose whole job is telling the reader which version they are on.
Something like
on rossoctl v0.7.0 (operator-chart 0.3.0)keeps both numbers straight and stays true as the platform moves.