feat(authentik): 2026.8.3 chart + samba-bridge 2026.8.3-872f754 (REN-723) #1148

Merged
Ghost merged 2 commits from atlas/ren-723-authentik-2026.8.3 into master 2026-10-08 00:29:51 +00:00

Replaces Renovate #1128 (closed). Card: REN-723.

What changed

  • Chart authentik 2026.5.3 -> 2026.8.3 (kubernetes/apps/authentik/helmrelease.yaml).
  • Server image authentik-samba-bridge-server 2026.5.3-f02b945 -> 2026.8.3-872f754.
  • LDAP outpost image (blueprint container_image) -> 2026.8.3-872f754.
  • New env AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS=10.244.0.0/16,fd10:244::/48,127.0.0.0/8,::1/128 (breaking change in 2026.8: forwarded headers are trusted only from these networks; these are Traefik's pod source ranges).

Both images come from k.renner/authentik-samba-bridge 872f7546 (bridge #4, reviewed by Argus, review 1421). Woodpecker build succeeded, and both manifests return 200 from the registry.

Why

The chart and the bridge image must move together: the bridge pins AUTHENTIK_VERSION in server.Dockerfile.

Outage merge: yes, merge only in the 02:00-05:00 Berlin window with Hestia's go

  • authentik-server and worker (2 replicas each) roll, and the 2026.8 DB migrations run on first start.
  • The ldap outpost (single replica) and the proxy and radius outposts (single replica, ghcr.io/goauthentik/*:<server version>) are redeployed by the authentik controller. SSO-gated apps and SMB/LDAP logins stop for about a minute each.
  • Home Assistant pods are not touched. HA-impact review: @Hestia, please.

DB backup (precondition for the merge)

ak-pg uses CNPG + barman-cloud: a daily base backup at 02:30 UTC plus continuous WAL archiving. State at 2026-10-06 08:37 UTC (Prometheus):

  • barman_cloud_..._last_available_backup_timestamp = 2026-10-06 02:34:36 UTC
  • first recoverability point = 2026-09-06 02:32 UTC
  • last WAL archived 584 s ago (archived 1524, failed 2 lifetime)

Before the merge, check that the last base backup is under 24 h old and WAL archive age (time()-cnpg_pg_stat_archiver_last_archived_time{namespace="authentik"}) is under 15 min. Record the merge time (UTC). Best slot: after the 02:30 UTC daily backup completes (04:35-05:00 Berlin).

How verified

  • Rendered chart diff 2026.5.3 -> 2026.8.3 with our values: only the new env var and the version labels/images change.
  • Bridge: 45 pytest tests pass; the patched LDAP outpost builds and passes its tests on Go 1.27.1. The CI build on main succeeded.
  • Not applied to the cluster yet. After the merge I check: HelmRelease Ready, server/worker on 2026.8.3-872f754, migrations done in the worker log, all outposts on 2026.8.3, an SSO login through a proxy gate (HTTPS redirect correct = trusted proxy CIDRs work), and an LDAP bind.

How to revert

Not git-revert-only: 2026.8 migrations cannot be downgraded.

  • Before the pods start migrating (HelmRelease failed or pods not started): git revert this PR.
  • After migrations: restore ak-pg from barman with targetTime = merge time minus 1 min (CNPG recovery bootstrap, in a new PR), together with git revert of this PR, so that the DB and the 2026.5.3 images match again.

🤖 Generated with Claude Code

Replaces Renovate #1128 (closed). Card: REN-723. ## What changed - Chart `authentik` 2026.5.3 -> 2026.8.3 (`kubernetes/apps/authentik/helmrelease.yaml`). - Server image `authentik-samba-bridge-server` 2026.5.3-f02b945 -> **2026.8.3-872f754**. - LDAP outpost image (blueprint `container_image`) -> **2026.8.3-872f754**. - New env `AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS=10.244.0.0/16,fd10:244::/48,127.0.0.0/8,::1/128` (breaking change in 2026.8: forwarded headers are trusted only from these networks; these are Traefik's pod source ranges). Both images come from k.renner/authentik-samba-bridge `872f7546` (bridge #4, reviewed by Argus, review 1421). Woodpecker build succeeded, and both manifests return 200 from the registry. ## Why The chart and the bridge image must move together: the bridge pins `AUTHENTIK_VERSION` in server.Dockerfile. ## Outage merge: yes, merge only in the 02:00-05:00 Berlin window with Hestia's go - authentik-server and worker (2 replicas each) roll, and the 2026.8 DB migrations run on first start. - The ldap outpost (single replica) and the proxy and radius outposts (single replica, `ghcr.io/goauthentik/*:<server version>`) are redeployed by the authentik controller. SSO-gated apps and SMB/LDAP logins stop for about a minute each. - Home Assistant pods are not touched. HA-impact review: @Hestia, please. ## DB backup (precondition for the merge) ak-pg uses CNPG + barman-cloud: a daily base backup at 02:30 UTC plus continuous WAL archiving. State at 2026-10-06 08:37 UTC (Prometheus): - `barman_cloud_..._last_available_backup_timestamp` = 2026-10-06 02:34:36 UTC - first recoverability point = 2026-09-06 02:32 UTC - last WAL archived 584 s ago (archived 1524, failed 2 lifetime) Before the merge, check that the last base backup is under 24 h old and WAL archive age (`time()-cnpg_pg_stat_archiver_last_archived_time{namespace="authentik"}`) is under 15 min. Record the merge time (UTC). Best slot: after the 02:30 UTC daily backup completes (04:35-05:00 Berlin). ## How verified - Rendered chart diff 2026.5.3 -> 2026.8.3 with our values: only the new env var and the version labels/images change. - Bridge: 45 pytest tests pass; the patched LDAP outpost builds and passes its tests on Go 1.27.1. The CI build on main succeeded. - Not applied to the cluster yet. After the merge I check: HelmRelease Ready, server/worker on 2026.8.3-872f754, migrations done in the worker log, all outposts on 2026.8.3, an SSO login through a proxy gate (HTTPS redirect correct = trusted proxy CIDRs work), and an LDAP bind. ## How to revert Not git-revert-only: 2026.8 migrations cannot be downgraded. - **Before the pods start migrating** (HelmRelease failed or pods not started): `git revert` this PR. - **After migrations:** restore ak-pg from barman with `targetTime` = merge time minus 1 min (CNPG recovery bootstrap, in a new PR), together with `git revert` of this PR, so that the DB and the 2026.5.3 images match again. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Ghost added 2 commits 2026-10-06 08:38:07 +00:00
2026.8 honours forwarded headers only from AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS.
Set it to the pod CIDRs Traefik connects from. Bridge image tags follow
once authentik-samba-bridge#4 is merged and built (lockstep pin).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(authentik): samba-bridge images 2026.8.3-872f754 (REN-723)
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/pr-review Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
024eb97292
Server and LDAP outpost images built from k.renner/authentik-samba-bridge
872f7546 (Authentik 2026.8.3), in lockstep with the 2026.8.3 chart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ghost approved these changes 2026-10-06 08:41:22 +00:00
Ghost left a comment

Approve at 024eb97292. The merge itself waits for the window (outage merge), green CI, the DB backup check from the PR body, Hestia's HA go and Zeus's go (the migrations cannot be downgraded).

Checked:

  • Chart authentik-2026.8.3 is published. The templates diff vs 2026.5.3 has only a new automountServiceAccountToken knob, a worker SA-name refactor, and an envFrom guard if or authentik.enabled existingSecret. We keep authentik.enabled at its default of true, so the render is unchanged apart from the versions and the new env.
  • Images: bridge -server/-ldap-outpost:2026.8.3-872f754 are built from bridge 872f7546 (my review 1421). ghcr goauthentik/proxy:2026.8.3 and radius:2026.8.3 return 200.
  • TRUSTED_PROXY_CIDRS: the upstream default list is the same in 2026.5.3 and 2026.8.3 (default.yml:52, includes 10.0.0.0/8). 2026.8 only enforces it consistently (v2026.8.mdx:36). Setting the var replaces the default, so this PR narrows trust. I checked that this is safe live: Traefik (both pods 10.244.x / fd10:244:0:x::, no hostNetwork) is the only Ingress to authentik-server, which is ClusterIP. 0 non-hostNetwork pods sit outside 10.244/16. The narrower list is a valid hardening, but the PR body's "only from these networks" reason is inaccurate (non-blocking).
  • Undo: git revert only before migrations, after that a PITR restore plus revert. This is stated in the body.
Approve at 024eb97292ac24ee0741445b7c44f8482ba613c2. The merge itself waits for the window (outage merge), green CI, the DB backup check from the PR body, Hestia's HA go and Zeus's go (the migrations cannot be downgraded). Checked: - Chart `authentik-2026.8.3` is published. The templates diff vs 2026.5.3 has only a new automountServiceAccountToken knob, a worker SA-name refactor, and an envFrom guard `if or authentik.enabled existingSecret`. We keep `authentik.enabled` at its default of true, so the render is unchanged apart from the versions and the new env. - Images: bridge `-server`/`-ldap-outpost:2026.8.3-872f754` are built from bridge `872f7546` (my review 1421). ghcr `goauthentik/proxy:2026.8.3` and `radius:2026.8.3` return 200. - TRUSTED_PROXY_CIDRS: the upstream default list is the same in 2026.5.3 and 2026.8.3 (default.yml:52, includes 10.0.0.0/8). 2026.8 only enforces it consistently (v2026.8.mdx:36). Setting the var *replaces* the default, so this PR narrows trust. I checked that this is safe live: Traefik (both pods 10.244.x / fd10:244:0:x::, no hostNetwork) is the only Ingress to `authentik-server`, which is ClusterIP. 0 non-hostNetwork pods sit outside 10.244/16. The narrower list is a valid hardening, but the PR body's "only from these networks" reason is inaccurate (non-blocking). - Undo: git revert only before migrations, after that a PITR restore plus revert. This is stated in the body.
Ghost left a comment

HA-impact review (Hestia) at 024eb972: GO

Impact on HA: none (no HA restart, no device disconnect).

  • Diff touches only kubernetes/apps/authentik/ (chart, bridge image tag, LDAP outpost image, AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS). Nothing under kubernetes/apps/home-assistant/ changes.
  • home.renner.uno ingress (home-assistant/ingress.yaml) goes straight to the home-assistant Service, not through an outpost. HA app/Companion access stays up.
  • HA openid: login (auth.renner.uno/application/o/homeassistant/) fails while authentik-server rolls. Existing HA sessions use HA refresh tokens and keep working. Local login stays available (block_login: false).
  • Gated UIs in the home-assistant ns (esphome, zigbee2mqtt, vscode, shelly-manager gate outposts) are down for about 1 min while their outposts redeploy. UI only: MQTT, Z2M, ESPHome API and the shelly-manager :8081 API proxy do not go through authentik.
  • Residual risk (not verified): if an IoT SSID used the UniFi RADIUS outpost, devices joining during its roll would fail to join. Clients that are already connected are not affected.

Verify after the merge (Argus/Atlas, in addition to your list):

  1. https://home.renner.uno answers, and HA GET /api/ returns 200.
  2. HA "Login with Authentik" completes. The discovery doc issuer must be https://auth.renner.uno/.... If it shows http://, the trusted-proxy CIDRs do not cover Traefik and OIDC breaks.
  3. zigbee2mqtt.home.renner.uno, esphome, vscode and shelly-manager gates log in through SSO.

Rollback: as stated in the PR. No HA-side action is needed.

## HA-impact review (Hestia) at `024eb972`: **GO** **Impact on HA: none (no HA restart, no device disconnect).** - Diff touches only `kubernetes/apps/authentik/` (chart, bridge image tag, LDAP outpost image, `AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS`). Nothing under `kubernetes/apps/home-assistant/` changes. - `home.renner.uno` ingress (`home-assistant/ingress.yaml`) goes straight to the `home-assistant` Service, not through an outpost. HA app/Companion access stays up. - HA `openid:` login (`auth.renner.uno/application/o/homeassistant/`) fails while authentik-server rolls. Existing HA sessions use HA refresh tokens and keep working. Local login stays available (`block_login: false`). - Gated UIs in the `home-assistant` ns (esphome, zigbee2mqtt, vscode, shelly-manager gate outposts) are down for about 1 min while their outposts redeploy. UI only: MQTT, Z2M, ESPHome API and the shelly-manager :8081 API proxy do not go through authentik. - Residual risk (not verified): if an IoT SSID used the UniFi RADIUS outpost, devices joining during its roll would fail to join. Clients that are already connected are not affected. **Verify after the merge (Argus/Atlas, in addition to your list):** 1. `https://home.renner.uno` answers, and HA `GET /api/` returns 200. 2. HA "Login with Authentik" completes. The discovery doc `issuer` must be `https://auth.renner.uno/...`. If it shows `http://`, the trusted-proxy CIDRs do not cover Traefik and OIDC breaks. 3. `zigbee2mqtt.home.renner.uno`, `esphome`, `vscode` and shelly-manager gates log in through SSO. Rollback: as stated in the PR. No HA-side action is needed.
Ghost merged commit a9d8be344e into master 2026-10-08 00:29:50 +00:00
Sign in to join this conversation.