fix(apps): drop duplicate keycloak-client secret (sync-loop war #2) #20

Closed
jorgen.stensrud wants to merge 1 commits from fix/drop-duplicate-keycloak-secret into main

The chart now renders Secret/keycloak-client-forte-drop itself (verified live: tracked by the forte-drop app, correct drop.forteapps.net redirect) — the overlay copy gives it two owners, so enterprise-apps and forte-drop self-heal against each other (continuing Slack spam after the IngressRoute fix). Removing the overlay copy makes the chart the single source.

@danijel.simeunovic — war #3 is the same pattern on Namespace/forte-drop: both releases render the Namespace and fight over ownership labels (forte-drop vs forte-drop-mcp flip it every sync). Needs render-once semantics in the chart (e.g. namespace template behind a values flag, enabled on one release only) — or drop the namespace template and rely on CreateNamespace=true.

The chart now renders `Secret/keycloak-client-forte-drop` itself (verified live: tracked by the forte-drop app, correct drop.forteapps.net redirect) — the overlay copy gives it two owners, so **enterprise-apps and forte-drop self-heal against each other** (continuing Slack spam after the IngressRoute fix). Removing the overlay copy makes the chart the single source. @danijel.simeunovic — war #3 is the same pattern on `Namespace/forte-drop`: **both releases render the Namespace** and fight over ownership labels (forte-drop vs forte-drop-mcp flip it every sync). Needs render-once semantics in the chart (e.g. namespace template behind a values flag, enabled on one release only) — or drop the namespace template and rely on CreateNamespace=true.
jorgen.stensrud added 1 commit 2026-06-05 10:56:01 +00:00
The forteapp chart renders Secret/keycloak-client-forte-drop from
auth.registration values (verified: the live secret is tracked by
the forte-drop Application and carries the correct
drop.forteapps.net redirect). The overlay copy gives the secret two
owners — enterprise-apps and forte-drop self-heal against each
other in a sync loop (the Slack spam). Remove the overlay copy;
the chart is the single source.
danijel.simeunovic reviewed 2026-06-05 11:12:50 +00:00
danijel.simeunovic left a comment
Member

Jeg skjønner ikke, hvis du fjerner denne filen, hvor skal den komme fra neste gang dette skal deployes til et annet miljø, som vi jo skal nå snart når prod-env er klart?

Jeg skjønner ikke, hvis du fjerner denne filen, hvor skal den komme fra neste gang dette skal deployes til et annet miljø, som vi jo skal nå snart når prod-env er klart?
Author
Member

Den kommer fra chartet — fila i overlayen er ikke kilden lenger. Verifisert live:

kubectl get secret keycloak-client-forte-drop -n forte-drop -o jsonpath ...
tracking-id: forte-drop:/Secret:forte-drop/keycloak-client-forte-drop

Den appliserte secreten eies av forte-drop-Applicationen, hvis eneste kilder er forteapp-chartet + helm-prod-values — dvs. chartet rendrer client-configen fra auth.oidc/registration-values (redirectUris avledes av callbackPath). Innholdet i cluster har allerede riktige drop.forteapps.net-verdier fra values-rendringen, ikke fra denne fila.

For neste miljø (prod): ny values-fil med prod-hosts → chartet rendrer prod-secreten automatisk. Ingen håndskrevet fil per miljø — det er nettopp DRY-gevinsten fra registrar-refaktoren din (e49c092). Denne overlay-kopien er resten fra før den refaktoren, og i dag gir den bare secreten to eiere (enterprise-apps ↔ forte-drop self-heal-krigen som står for restspammen).

--claude

Den kommer fra **chartet** — fila i overlayen er ikke kilden lenger. Verifisert live: ``` kubectl get secret keycloak-client-forte-drop -n forte-drop -o jsonpath ... tracking-id: forte-drop:/Secret:forte-drop/keycloak-client-forte-drop ``` Den appliserte secreten eies av **forte-drop-Applicationen**, hvis eneste kilder er forteapp-chartet + helm-prod-values — dvs. chartet rendrer client-configen fra `auth.oidc`/`registration`-values (redirectUris avledes av `callbackPath`). Innholdet i cluster har allerede riktige drop.forteapps.net-verdier *fra values-rendringen*, ikke fra denne fila. For neste miljø (prod): ny values-fil med prod-hosts → chartet rendrer prod-secreten automatisk. Ingen håndskrevet fil per miljø — det er nettopp DRY-gevinsten fra registrar-refaktoren din (e49c092). Denne overlay-kopien er resten fra før den refaktoren, og i dag gir den bare secreten to eiere (enterprise-apps ↔ forte-drop self-heal-krigen som står for restspammen). --claude

Den kommer fra chartet — fila i overlayen er ikke kilden lenger. Verifisert live:

kubectl get secret keycloak-client-forte-drop -n forte-drop -o jsonpath ...
tracking-id: forte-drop:/Secret:forte-drop/keycloak-client-forte-drop

Den appliserte secreten eies av forte-drop-Applicationen, hvis eneste kilder er forteapp-chartet + helm-prod-values — dvs. chartet rendrer client-configen fra auth.oidc/registration-values (redirectUris avledes av callbackPath). Innholdet i cluster har allerede riktige drop.forteapps.net-verdier fra values-rendringen, ikke fra denne fila.

For neste miljø (prod): ny values-fil med prod-hosts → chartet rendrer prod-secreten automatisk. Ingen håndskrevet fil per miljø — det er nettopp DRY-gevinsten fra registrar-refaktoren din (e49c092). Denne overlay-kopien er resten fra før den refaktoren, og i dag gir den bare secreten to eiere (enterprise-apps ↔ forte-drop self-heal-krigen som står for restspammen).

--claude

Oppskriften er dokumentert her, klienten må defineres et sted av applikasjonen og plukkes opp av Kyverno og Keycloak registrar.

> Den kommer fra **chartet** — fila i overlayen er ikke kilden lenger. Verifisert live: > > ``` > kubectl get secret keycloak-client-forte-drop -n forte-drop -o jsonpath ... > tracking-id: forte-drop:/Secret:forte-drop/keycloak-client-forte-drop > ``` > > Den appliserte secreten eies av **forte-drop-Applicationen**, hvis eneste kilder er forteapp-chartet + helm-prod-values — dvs. chartet rendrer client-configen fra `auth.oidc`/`registration`-values (redirectUris avledes av `callbackPath`). Innholdet i cluster har allerede riktige drop.forteapps.net-verdier *fra values-rendringen*, ikke fra denne fila. > > For neste miljø (prod): ny values-fil med prod-hosts → chartet rendrer prod-secreten automatisk. Ingen håndskrevet fil per miljø — det er nettopp DRY-gevinsten fra registrar-refaktoren din (e49c092). Denne overlay-kopien er resten fra før den refaktoren, og i dag gir den bare secreten to eiere (enterprise-apps ↔ forte-drop self-heal-krigen som står for restspammen). > > --claude Oppskriften er dokumentert [her](https://git.forteapps.net/Forte/launchpad/src/branch/main/docs/DEVELOPER-GUIDE.md#how-it-works-1), klienten må defineres et sted av applikasjonen og plukkes opp av Kyverno og Keycloak registrar.
jorgen.stensrud closed this pull request 2026-06-05 18:26:48 +00:00
Author
Member

Closing — going the opposite direction per the platform recipe (file is the source): helm-prod-values PR #9 disables chart-side registration instead, making the overlay file the single owner. Same war, opposite (and recipe-correct) resolution.

Closing — going the opposite direction per the platform recipe (file is the source): helm-prod-values PR #9 disables chart-side registration instead, making the overlay file the single owner. Same war, opposite (and recipe-correct) resolution.

Pull request closed

Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Forte/launchpad#20