infra/stacks/nextcloud
Viktor Barzin fb1e47a20a nextcloud: re-enable Keel auto-upgrades with occ-upgrade self-heal + live-tag floor
Re-enrolls Nextcloud in Keel (opted out after the 2026-05-26 32.0.3->32.0.9
bump stuck the pod in maintenance mode ~22h). Two safeguards engineer around
both failure modes:

- F1 (interrupted occ upgrade -> 503): nextcloud-watchdog CronJob runs
  `occ upgrade` + clears maintenance mode when occ reports needsDbUpgrade=true;
  Job deadline bumped 120->600s so it isn't killed mid-migration.
- F2 (helm re-renders a tag below the Keel-bumped live image -> downgrade
  CrashLoop): chart_values renders the live tag via a plural
  kubernetes_resources data source (empty-list-on-absence -> floor 32.0.9 on
  fresh install/DR), so a re-render never downgrades below live.

Scope is patch -- Kyverno's shared inject-keel-annotations policy stamps it and
its background-controller overrides a TF-set value, and patch == minor for
Nextcloud in practice (32.0.x only; major 33 stays manual). Dropped the
per-workload keel.sh/policy override resources to avoid perpetual drift; ns
enrollment + Kyverno now own the keel annotations like other workloads.

Also bumps the external-storage bootstrap Job create timeout 1m->12m to match
its own 10m pod-wait, since Keel bumps now roll the pod mid-apply.

Verified: Keel auto-upgraded 32.0.9->32.0.10 on apply, entrypoint occ upgrade
completed clean (no watchdog needed), pod 2/2, HTTP 200, plan shows no drift.
2026-06-01 19:50:41 +00:00
..
.terraform.lock.hcl Woodpecker CI deploy [CI SKIP] 2026-05-27 18:38:09 +00:00
backend.tf Woodpecker CI deploy [CI SKIP] 2026-06-01 15:15:26 +00:00
chart_values.yaml nextcloud: re-enable Keel auto-upgrades with occ-upgrade self-heal + live-tag floor 2026-06-01 19:50:41 +00:00
external_storage.tf nextcloud: re-enable Keel auto-upgrades with occ-upgrade self-heal + live-tag floor 2026-06-01 19:50:41 +00:00
main.tf nextcloud: re-enable Keel auto-upgrades with occ-upgrade self-heal + live-tag floor 2026-06-01 19:50:41 +00:00
providers.tf Woodpecker CI deploy [CI SKIP] 2026-05-27 18:38:09 +00:00
secrets [ci skip] Move Terraform modules into stack directories 2026-02-22 14:38:14 +00:00
terragrunt.hcl migrate all secrets from SOPS to Vault KV 2026-03-14 17:15:48 +00:00