Put the artifactapi web UI behind Authentik oauth2-proxy #456

Merged
benvin merged 5 commits from benvin/artifactapi-ui-oauth2-proxy into main 2026-09-07 21:01:17 +10:00

5 Commits

Author SHA1 Message Date
unkin-agent fc41c5778a Retrigger CI after a transient purelb chart download timeout
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
2026-09-07 14:20:24 +10:00
unkin-agent af1f77618d Use the browser-trusted Authentik host for the artifactapi OIDC issuer
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline failed
The authorize step is a browser redirect, so the issuer must present a
publicly-trusted cert; identity.k8s.syd1.au.unkin.net serves an internal-CA
cert that no user's browser trusts.

- Point OAUTH2_PROXY_OIDC_ISSUER_URL at identity.unkin.net
- Drop the combine-certs initContainer, its volumes/mounts and
  PROVIDER_CA_FILES: the pod's only other upstream is plain-HTTP in-cluster
2026-09-07 14:14:31 +10:00
unkin-agent 57972e1a9f Correct the oauth2 Service comment to name api-route
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-09-07 14:07:58 +10:00
unkin-agent 7a9763e51b Keep the artifactapi UI/API split inside one HTTPRoute
ci/woodpecker/pr/pre-commit Pipeline was canceled
ci/woodpecker/pr/kubeconform Pipeline was canceled
ci/woodpecker/pr/vector-test Pipeline was canceled
Cross-route path precedence is untested on this Traefik gateway; the single
route already resolves /ui before / today.

- Fold the /ui and /oauth2 rules back into api-route on both listeners.
- Drop the separate ui-route and ui-http-redirect routes.
2026-09-07 14:07:44 +10:00
unkin-agent 8f7b9360ad Put the artifactapi web UI behind Authentik oauth2-proxy
Front /ui with an Authentik-authenticated oauth2-proxy while leaving every
package-manager surface unauthenticated.

- Add the oauth2-proxy ConfigMap, Deployment, Service and VMPodScrape.
- Add the oauth-credentials VaultStaticSecret.
- Split httproute: /ui and /oauth2 to oauth2-proxy (HTTPS, plus an HTTP
  redirect); everything else to the api Service on both listeners.
2026-09-07 14:02:18 +10:00