blumeops/ansible/roles
Erich Blume 21b6533aea Register Zot as OIDC client in Authentik (#236)
## Summary
- Add Authentik blueprint (`zot.yaml`) with OAuth2 provider, application, `artifact-workloads` group, and `zot-ci` service account
- Wire `zot-client-secret` through ExternalSecret → worker Deployment env var → blueprint `!Env`
- Add Ansible pre_task to fetch OIDC secret from 1Password (item ID `oor7os5kapczgpbwv7obkca4y4`)
- Add `oidc-credentials.json.j2` template and deploy task in zot role (with `when` guard)

## Manual Steps Required Before Deploy
1. Generate client secret: `openssl rand -hex 32`
2. Store in 1Password: add field `zot-client-secret` to "Authentik (blumeops)" item in vault `blumeops`

## What This Does NOT Do
- Does NOT modify `config.json.j2` (that's the root goal `harden-zot-registry`)
- Does NOT wire CI auth (that's `wire-ci-registry-auth`)
- Does NOT set service account password or API keys (manual post-deploy)

## Verification
After ArgoCD sync:
- [ ] Authentik admin UI shows "Zot Registry" application
- [ ] OIDC discovery at `https://authentik.ops.eblu.me/application/o/zot/.well-known/openid-configuration` returns valid JSON
- [ ] Blueprint status is `successful`
- [ ] `artifact-workloads` group exists with `zot-ci` service account

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/236
2026-02-21 08:45:06 -08:00
..
alloy Migrate Ansible op calls to op read URI syntax (#125) 2026-02-08 10:52:43 -08:00
borgmatic Update BorgBase repo ID after recreation (#144) 2026-02-10 13:19:15 -08:00
borgmatic_metrics Move metrics scripts from ~/bin to ~/.local/bin (#70) 2026-01-29 09:59:38 -08:00
caddy Deploy Authentik identity provider (C2 Mikado) (#227) 2026-02-20 12:55:59 -08:00
forgejo Integrate Forgejo with Authentik OIDC (#228) 2026-02-20 17:39:50 -08:00
forgejo_actions_secrets Extend forgejo_actions_secrets role to support multiple repos 2026-02-12 11:15:28 -08:00
jellyfin Add Jellyfin media server deployment (#77) 2026-01-30 16:57:26 -08:00
jellyfin_metrics Migrate Ansible op calls to op read URI syntax (#125) 2026-02-08 10:52:43 -08:00
minikube Fix minikube role skipping start when kubelet/apiserver are stopped (#137) 2026-02-09 23:03:01 -08:00
minikube_metrics Move metrics scripts from ~/bin to ~/.local/bin (#70) 2026-01-29 09:59:38 -08:00
sifaka_exporters Operations and observability for sifaka NAS (#135) 2026-02-09 17:44:05 -08:00
zot Register Zot as OIDC client in Authentik (#236) 2026-02-21 08:45:06 -08:00
zot_metrics Move metrics scripts from ~/bin to ~/.local/bin (#70) 2026-01-29 09:59:38 -08:00