Loading README.md +4 −0 Changes for README.md: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -103,6 +103,10 @@ Keycloak (`charts/keycloak`) runs as a platform service in `oop`, backed by the ask a platform administrator. An admin resets the password in the admin console: Users → the user → Credentials → Reset password, marked *Temporary* so the user picks a new one at the next login. Logged-in users change their own password through the portal (`kc_action=UPDATE_PASSWORD`). - Every install creates a first `platform-admin` user, `oop-admin`, so someone can log in and manage users on a cluster without sample users. Its password is generated into `keycloak-credentials` → `initial-admin-password` and is temporary: the first login asks for a new one. Turn it off with `keycloak.realms.oop.initialAdmin.enabled: false`. - The admin password and the `oop-portal` client secret are generated on first install into Secret `keycloak-credentials`, which is kept on `helm uninstall` because the realms keep using them. Pin them with `keycloak.admin.password` / `keycloak.realms.oop.portal.clientSecret` in `secrets.values.yaml`. Loading oop-platform-chart/charts/federation-manager/README.md +10 −3 Changes for oop-platform-chart/charts/federation-manager/README.md: 10 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -55,9 +55,11 @@ helm install federation-manager . -n federation-manager -f my-values.yaml Federation Manager validates every incoming bearer token against Keycloak's realm `federation`: signature (keys fetched from `http://<host>:<port>/realms/<realm>`), expiry, issuer, and the `fed-mgmt` scope. Invalid or missing tokens get `401`. The expected issuer is discovered from Keycloak's discovery document at that same address, so it follows Keycloak's public URL with no extra configuration. `fed-mgmt` scope, and the audience `federation-manager` (the keycloak chart adds it to the partner clients; `global.federation.audience`). Invalid or missing tokens get `401`; when Keycloak itself cannot be reached, requests get `503` instead. The expected issuer is discovered from Keycloak's discovery document at that same address, so it follows Keycloak's public URL with no extra configuration. ```yaml federationManager: Loading @@ -78,6 +80,9 @@ federationManager: # Issuer Keycloak puts in tokens (`iss`), also the token URL the Swagger UI shows. # Empty = discovered from Keycloak; set it only to override that. issuer: "" # Audience partner tokens must carry. Empty = global.federation.audience, # else federation-manager. audience: "" ``` The client IDs and secrets must match the clients in Keycloak's `federation` realm. Loading Loading @@ -306,6 +311,8 @@ kubectl delete secret partner-ovpn -n federation-manager | `federationManager.service.nodePort` | NodePort for Federation Manager | `30989` | | `federationManager.config.keycloak.host` / `port` / `realm` | Where Federation Manager reaches Keycloak | `keycloak` / `8080` / `federation` | | `federationManager.config.keycloak.issuer` | Override for the issuer expected in tokens | `""` (discovered from Keycloak) | | `federationManager.config.keycloak.audience` | Audience partner tokens must carry | `""` (`global.federation.audience`, else `federation-manager`) | | `federationManager.config.keycloak.existingSecret` | Secret holding the partner client secrets | `""` (umbrella: `keycloak-credentials`) | | `federationManager.config.partner_op.role` | Role: `partner_op` or `originating_op` | `partner_op` | | `openvpn.enabled` | Enable OpenVPN sidecar | `false` | | `openvpn.secretName` | Name of VPN secret | `partner-ovpn` | Loading oop-platform-chart/charts/federation-manager/templates/_helpers.tpl +7 −0 Changes for oop-platform-chart/charts/federation-manager/templates/_helpers.tpl: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -77,6 +77,13 @@ else a built-in default, so the chart also installs on its own. {{- end -}} {{- end }} {{/* Audience partner tokens must carry (the keycloak chart adds it to the federation clients). */}} {{- define "federation-manager.audience" -}} {{- .Values.federationManager.config.keycloak.audience | default (dig "federation" "audience" "federation-manager" (.Values.global | default dict)) -}} {{- end }} {{/* Secret holding the client secrets: `existingSecret` (e.g. keycloak-credentials, filled by the keycloak chart, keys federation-<client id>-secret) or this chart's own Secret. Loading oop-platform-chart/charts/federation-manager/templates/federation-manager-configmap.yaml +1 −0 Changes for oop-platform-chart/charts/federation-manager/templates/federation-manager-configmap.yaml: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ data: port = {{ include "federation-manager.keycloak.port" . }} realm = {{ .Values.federationManager.config.keycloak.realm }} issuer = {{ .Values.federationManager.config.keycloak.issuer }} audience = {{ include "federation-manager.audience" . }} [server] host = {{ .Values.federationManager.config.server.host }} Loading oop-platform-chart/charts/federation-manager/values.yaml +3 −0 Changes for oop-platform-chart/charts/federation-manager/values.yaml: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -78,6 +78,9 @@ federationManager: # Swagger UI. Empty = discovered from Keycloak's discovery document at # http://<host>:<port>/realms/<realm>; set it only to override that. issuer: "" # Audience partner tokens must carry. Empty = global.federation.audience, else # federation-manager. audience: "" server: host: "127.0.0.1" Loading Loading
README.md +4 −0 Changes for README.md: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -103,6 +103,10 @@ Keycloak (`charts/keycloak`) runs as a platform service in `oop`, backed by the ask a platform administrator. An admin resets the password in the admin console: Users → the user → Credentials → Reset password, marked *Temporary* so the user picks a new one at the next login. Logged-in users change their own password through the portal (`kc_action=UPDATE_PASSWORD`). - Every install creates a first `platform-admin` user, `oop-admin`, so someone can log in and manage users on a cluster without sample users. Its password is generated into `keycloak-credentials` → `initial-admin-password` and is temporary: the first login asks for a new one. Turn it off with `keycloak.realms.oop.initialAdmin.enabled: false`. - The admin password and the `oop-portal` client secret are generated on first install into Secret `keycloak-credentials`, which is kept on `helm uninstall` because the realms keep using them. Pin them with `keycloak.admin.password` / `keycloak.realms.oop.portal.clientSecret` in `secrets.values.yaml`. Loading
oop-platform-chart/charts/federation-manager/README.md +10 −3 Changes for oop-platform-chart/charts/federation-manager/README.md: 10 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -55,9 +55,11 @@ helm install federation-manager . -n federation-manager -f my-values.yaml Federation Manager validates every incoming bearer token against Keycloak's realm `federation`: signature (keys fetched from `http://<host>:<port>/realms/<realm>`), expiry, issuer, and the `fed-mgmt` scope. Invalid or missing tokens get `401`. The expected issuer is discovered from Keycloak's discovery document at that same address, so it follows Keycloak's public URL with no extra configuration. `fed-mgmt` scope, and the audience `federation-manager` (the keycloak chart adds it to the partner clients; `global.federation.audience`). Invalid or missing tokens get `401`; when Keycloak itself cannot be reached, requests get `503` instead. The expected issuer is discovered from Keycloak's discovery document at that same address, so it follows Keycloak's public URL with no extra configuration. ```yaml federationManager: Loading @@ -78,6 +80,9 @@ federationManager: # Issuer Keycloak puts in tokens (`iss`), also the token URL the Swagger UI shows. # Empty = discovered from Keycloak; set it only to override that. issuer: "" # Audience partner tokens must carry. Empty = global.federation.audience, # else federation-manager. audience: "" ``` The client IDs and secrets must match the clients in Keycloak's `federation` realm. Loading Loading @@ -306,6 +311,8 @@ kubectl delete secret partner-ovpn -n federation-manager | `federationManager.service.nodePort` | NodePort for Federation Manager | `30989` | | `federationManager.config.keycloak.host` / `port` / `realm` | Where Federation Manager reaches Keycloak | `keycloak` / `8080` / `federation` | | `federationManager.config.keycloak.issuer` | Override for the issuer expected in tokens | `""` (discovered from Keycloak) | | `federationManager.config.keycloak.audience` | Audience partner tokens must carry | `""` (`global.federation.audience`, else `federation-manager`) | | `federationManager.config.keycloak.existingSecret` | Secret holding the partner client secrets | `""` (umbrella: `keycloak-credentials`) | | `federationManager.config.partner_op.role` | Role: `partner_op` or `originating_op` | `partner_op` | | `openvpn.enabled` | Enable OpenVPN sidecar | `false` | | `openvpn.secretName` | Name of VPN secret | `partner-ovpn` | Loading
oop-platform-chart/charts/federation-manager/templates/_helpers.tpl +7 −0 Changes for oop-platform-chart/charts/federation-manager/templates/_helpers.tpl: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -77,6 +77,13 @@ else a built-in default, so the chart also installs on its own. {{- end -}} {{- end }} {{/* Audience partner tokens must carry (the keycloak chart adds it to the federation clients). */}} {{- define "federation-manager.audience" -}} {{- .Values.federationManager.config.keycloak.audience | default (dig "federation" "audience" "federation-manager" (.Values.global | default dict)) -}} {{- end }} {{/* Secret holding the client secrets: `existingSecret` (e.g. keycloak-credentials, filled by the keycloak chart, keys federation-<client id>-secret) or this chart's own Secret. Loading
oop-platform-chart/charts/federation-manager/templates/federation-manager-configmap.yaml +1 −0 Changes for oop-platform-chart/charts/federation-manager/templates/federation-manager-configmap.yaml: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ data: port = {{ include "federation-manager.keycloak.port" . }} realm = {{ .Values.federationManager.config.keycloak.realm }} issuer = {{ .Values.federationManager.config.keycloak.issuer }} audience = {{ include "federation-manager.audience" . }} [server] host = {{ .Values.federationManager.config.server.host }} Loading
oop-platform-chart/charts/federation-manager/values.yaml +3 −0 Changes for oop-platform-chart/charts/federation-manager/values.yaml: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -78,6 +78,9 @@ federationManager: # Swagger UI. Empty = discovered from Keycloak's discovery document at # http://<host>:<port>/realms/<realm>; set it only to override that. issuer: "" # Audience partner tokens must carry. Empty = global.federation.audience, else # federation-manager. audience: "" server: host: "127.0.0.1" Loading