feat(k8s): publish the portals through the labs Caddy (refs #177)
CI / k8s (pull_request) Successful in 1m21s
CI / build (pull_request) Successful in 4m53s
CI / lint (pull_request) Successful in 6m37s
CI / unit (pull_request) Successful in 1m20s
CI / frontend (pull_request) Successful in 4m25s
CI / mutation (pull_request) Successful in 5m23s
CI / verify-stack (pull_request) Successful in 21m38s
CI / k8s (pull_request) Successful in 1m21s
CI / build (pull_request) Successful in 4m53s
CI / lint (pull_request) Successful in 6m37s
CI / unit (pull_request) Successful in 1m20s
CI / frontend (pull_request) Successful in 4m25s
CI / mutation (pull_request) Successful in 5m23s
CI / verify-stack (pull_request) Successful in 21m38s
Adds a `keycloakUrl` chart value: when set, it replaces host + Keycloak's NodePort as the pinned issuer and the portals' OIDC authority, so the stack works behind the existing *.labs.respellion.tech Caddy over HTTPS. Empty keeps today's behaviour. The deploy workflow passes the KEYCLOAK_URL repo variable. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -401,6 +401,42 @@ Not covered: the portals still need `make k8s-portals` (or an SSH forward) to be
|
||||
browser, because PKCE needs a secure context (§5). Giving the server a hostname + TLS is the
|
||||
upgrade path.
|
||||
|
||||
## Publishing through the labs Caddy
|
||||
|
||||
The portals can be reached on real hostnames through the Caddy that already fronts
|
||||
`*.labs.respellion.tech` (repo `Infra`, `infra/development/`). The chain:
|
||||
|
||||
```
|
||||
browser → Caddy (labs server, TLS) → openssh-server:3014x/30180
|
||||
→ reverse SSH tunnel → Fedora host → <TALOS_VM_IP>:3014x/30180 (NodePorts)
|
||||
```
|
||||
|
||||
| URL | NodePort |
|
||||
|---|---|
|
||||
| `https://big-register.labs.respellion.tech` | 30141 openbaar |
|
||||
| `https://big-mijn.labs.respellion.tech` | 30140 self-service |
|
||||
| `https://big-behandel.labs.respellion.tech` | 30142 behandel |
|
||||
| `https://big-beheer.labs.respellion.tech` | 30143 beheer |
|
||||
| `https://big-auth.labs.respellion.tech` | 30180 Keycloak (`/admin` blocked) |
|
||||
|
||||
HTTPS makes the portals a secure context, so PKCE works without port-forwards — but
|
||||
Keycloak's issuer must be the public origin. Deploy with it:
|
||||
|
||||
```bash
|
||||
make k8s-up TALOS_HOST=localhost K8S_REGISTRY=<TALOS_HOST>:30500 \
|
||||
K8S_SET="--set keycloakUrl=https://big-auth.labs.respellion.tech"
|
||||
```
|
||||
|
||||
For deploy-on-merge, set the repository variable `KEYCLOAK_URL` to the same value.
|
||||
With it set, the `localhost` port-forwards (§5) no longer log in: the issuer is one string.
|
||||
|
||||
One-time setup:
|
||||
|
||||
1. Fedora host: install `infra/development/big-portals-tunnel.service` from the Infra repo
|
||||
(instructions in the file).
|
||||
2. Labs server: deploy the Infra `Caddyfile` + `compose.yml` (Caddy joins the
|
||||
`openssh_default` network to reach the tunnel ends).
|
||||
|
||||
## What is not ported
|
||||
|
||||
- **Observability** (Tempo, Prometheus, Grafana) is defined but disabled — those are built
|
||||
|
||||
Reference in New Issue
Block a user