Commit Graph
8 Commits
Author SHA1 Message Date
k.rennerandClaude Opus 4.7 80945a38d7 fix: Scope OBC health check to each app's own bucket
ci/woodpecker/manual/migrate-paperless Pipeline failed
ci/woodpecker/manual/migrate-authentik-db Pipeline was successful
Previously the OBC CEL health check lived on infrastructure-ceph-cluster,
which holds OBCs for every app. A slow bind in one namespace stalled
every other app that depends on infrastructure-ceph-cluster. Move each
OBC into its own app Kustomization (paperless-db, authentik-db) and
apply the health check there so each app only waits on its own bucket.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 00:39:52 +02:00
k.rennerandClaude Opus 4.7 2437b7d733 fix: Auto-fetch latest access files in import script
The rebuild pipeline commits a new talosconfig/kubeconfig each run.
Without a git pull beforehand, import-cluster-access imports stale
configs and kubectl fails with x509 CA mismatch against the newly
rebuilt cluster.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 21:44:50 +02:00
k.rennerandClaude Opus 4.7 a6588f9f2e feat: Add script to import cluster access files
scripts/import-cluster-access.sh decrypts the SOPS-encrypted
talosconfig and kubeconfig from kubernetes/access/ into ~/.talos/
and ~/.kube/. Run after a rebuild-k8s pipeline completes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:44:35 +02:00
k.rennerandClaude Opus 4.6 49db7668e1 fix: Simplify restore script using mc in PG pod
Downloads backup from RustFS S3 directly into the CNPG pod using
the MinIO client. No extra pods or complex orchestration needed.
Requires AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY env vars.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:22:51 +02:00
k.rennerandClaude Opus 4.6 55be82fb12 feat: Add Authentik DB migration via backup pipeline + restore script
Backup pipeline (CI): runs pg_dump via Ansible on the old DB server,
uploads dump to s3://migration/ bucket in RustFS. No extra secrets needed.

Restore script (workstation): downloads from S3, copies into K8s
CNPG pod, runs pg_restore. Uses local kubectl and aws-cli.

Preserves all users, passwords, 2FA, WebAuthn, and sessions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:12:31 +02:00
k.rennerandClaude Opus 4.6 aff2f49ad0 fix: Split Authentik DB migration into backup pipeline + restore script
Backup pipeline (CI): runs pg_dump via Ansible on the old DB server,
uploads dump to RustFS S3. No kubeconfig secret needed.

Restore script (workstation): downloads from S3, copies into K8s
CNPG pod, runs pg_restore. Uses local kubectl.

Preserves all users, passwords, 2FA, WebAuthn, and sessions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:09:44 +02:00
k.rennerandClaude Opus 4.6 e13f365d54 fix: Handle empty API responses in migration script, fix bootstrap
- set_password endpoint returns empty body on success
- Remove --silent flag from flux bootstrap (unsupported)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 09:14:11 +02:00
k.rennerandClaude Opus 4.6 0058b785f6 feat: Add Authentik wait step to bootstrap, add migration script
Bootstrap now waits for the authentik kustomization after apps.
Include the Authentik API migration script for post-bootstrap setup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:44:37 +02:00