activity-core/activity-definitions/daily-cnpg-option-a-backup.md
tegwick 26934e25b9
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 21s
Enforce bounded operation guardrails
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
2026-08-23 12:31:13 +02:00

54 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: daily-cnpg-option-a-backup
name: Daily CNPG Option A Backup
enabled: true
owner: custodian-agent
governance: custodian
status: active
trigger:
type: cron
cron_expression: "30 2 * * *"
timezone: UTC
misfire_policy: skip
context_sources:
- type: shell
query: cnpg_option_a_backup
operation: cnpg_option_a_backup
required: true
params:
backup_script: /opt/railiance-platform/tools/cmd/cnpg-option-a-backup
dry_run: false
timeout_seconds: 7200
# worker-writable cache
# (CLI defaults to /tmp if HOME unwritable)
kubeconfig_r01: /kube/config-hosteurope
kubeconfig_core: /kube/config
targets: r01-forgejo-db,r01-net-kingdom-pg,r01-state-hub-db
evidence_sinks:
- type: state-hub-progress
event_type: cnpg_option_a_backup
author: activity-core
bind_to: context.backup
---
# Daily CNPG Option A Backup
Runs daily at **02:30 UTC** (RPO 24h). Invokes
`railiance-platform/tools/cmd/cnpg-option-a-backup` on the railiance01
activity-core worker to age-encrypt logical dumps and upload to Nextcloud.
**Workplan:** `RAILIANCE-WP-0016` (railiance-apps).
## Enable checklist
1. Vendor tools on railiance01 hostPath tree:
`tools/cmd/install-cnpg-backup-vendor-tools` (age + kubectl).
2. ExternalSecret `actcore-backup-offsite` synced into `actcore-runtime-secret`
(`NC_WEBDAV_TOKEN`, `NC_WEBDAV_URL`, `AGE_PUBLIC_KEY`).
3. Worker mounts: `/opt/railiance-platform`, `/kube` (host kubeconfigs).
4. CoulombCore kubeconfig present at `/kube/config` for Core clusters; R01 at
`/kube/config-hosteurope`.
5. `enabled: true` + `make sync` / schedule reconcile on railiance01.
6. Forced run succeeds; `make cnpg-backup-status` stays healthy.
**Starts disabled** until T02T04 wiring is verified on railiance01.