Commit Graph
9 Commits
Author SHA1 Message Date
k.rennerandClaude Opus 4.7 097197c412 chore: remove orphan manifests, harden CI fail-paths, drop stale CLAUDE.md
- Delete kubernetes/apps/authentik/postgres.yaml: orphan CNPG Cluster with
  bootstrap.initdb and no plugin declaration; would compete with the
  working ak-pg in authentik-db/ if accidentally applied.
- Delete kubernetes/apps/owncloud/: subtree never wired into Flux (no
  Kustomization in clusters/homelab/ targets it), would not deploy.
- Drop CLAUDE.md: superseded by ~/.claude/CLAUDE.md global instructions.
- rebuild-k8s.yml: track per-module retry failures and exit 1 if any
  module didn't recover; add set -e to disk-wipe step. Stops masking.
- import-cluster-access.sh: drop "|| true" on git checkout so missing
  access files surface immediately instead of silently continuing.
- Add scripts/trust-letsencrypt-staging.sh: helper to install Let's
  Encrypt staging roots into system or Firefox trust stores.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 18:37:04 +02:00
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