Authentik on Kubernetes
Authentik 2026.8.3 is rendered from the pinned official chart. values.yaml
contains only public configuration; the ignored legacy authentik-values.yaml
is retained locally. Runtime credentials live in authentik-runtime and the
existing PostgreSQL Secret, and neither is readable by CI.
The LDAP, RADIUS, and RAC outposts are managed by Authentik and keep their
image pins in its database. install.sh runs update-outpost-images.sh after
the chart upgrade so their images match the server release.
authentik-blueprints declaratively creates the Argo CD OIDC application,
provider, and group claim. Its client secret comes from
ARGOCD_OIDC_CLIENT_SECRET in authentik-runtime; install.sh generates it
once when absent and mirrors it into the labeled argocd-oidc Secret. Only the
existing authentik Admins group is mapped to Argo CD administrator access.
The same blueprint creates an admin-only forward-auth application for
Kubernetes Dashboard. Its proxy provider contains no committed credential and
is served by the embedded proxy outpost. install.sh applies the blueprint and
idempotently attaches the provider to that outpost; it deliberately does not
replace the outpost's complete provider list because other repositories own
those applications.
Copy authentik-secrets.env.example to the ignored authentik-secrets.env,
preserve the existing values, and run ./install.sh for administrator secret
updates. Run ./test.sh for a secret-free render and schema validation.
The installer refuses a PostgreSQL password mismatch instead of attempting a
blind rotation; rotate the database role and both Kubernetes Secrets together
during a dedicated maintenance window.
The public Authentik and embedded-outpost routes have no Traefik request-rate or concurrent-request limit: browser login flows and protected applications can legitimately generate large bursts. Two server replicas, a PodDisruptionBudget, and explicit resource requests keep one busy client or node from removing the only healthy authentication endpoint.
Run ./create-ci-kubeconfig.sh and store its final line as the Gitea Actions
secret KUBE_CONFIG_BASE64. CI can update only exact existing Authentik chart,
Ingress, Middleware, and event-filter objects; it cannot read Secrets, create
objects, delete objects, or manage the Ceph object user.
authentik-client-credentials-event-filter is a local compatibility patch
introduced on 2026-08-30 and reviewed against upstream 2026.8.3. It replaces Authentik's private
providers/oauth2/token/client_credentials.py module to retain application
password grants while suppressing loopback (::1) login-event noise. Recheck
or remove it on every Authentik upgrade because it is not an upstream chart
feature or supported extension interface.