Harden backup credentials and add durable image inventory publication
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a06ecb-456a-71c2-b41e-0755d336e883
This commit is contained in:
parent
62423fd092
commit
0349a08e1b
13 changed files with 365 additions and 23 deletions
|
|
@ -73,7 +73,38 @@ make forgejo-package-prune-dry-run # list would-delete candidates
|
|||
make forgejo-package-prune # delete beyond retention depth
|
||||
```
|
||||
|
||||
## Rollback
|
||||
## Durable multi-cluster image inventory
|
||||
|
||||
The inventory belongs outside the platform checkout. On the production worker
|
||||
host, use `/home/tegwick/.local/state/railiance-platform/live-images/all.txt`.
|
||||
`make live-images-refresh LIVE_IMAGES_SOURCES="/path/railiance01.txt /path/coulombcore.txt"`
|
||||
merges complete, nonempty exports with the prior inventory under a writer lock,
|
||||
then atomically publishes sorted image references and a count/hash receipt.
|
||||
Set `LIVE_IMAGES_OUTPUT` when publishing for a different host user.
|
||||
Missing, empty, or malformed input fails without replacing the previous file.
|
||||
Refresh only adds protection: removal of obsolete tags requires a separate
|
||||
review of every production cluster and rollback requirement.
|
||||
|
||||
Migration and rollout sequence:
|
||||
|
||||
1. Seed from the restored `docs/evidence/live-images-all.txt` plus fresh exports
|
||||
from railiance01 and coulombcore; retain the restored multi-cluster entries.
|
||||
2. Project the durable **directory** read-only into the activity-core worker
|
||||
and configure its inventory argument to `all.txt` in that directory. Do not
|
||||
mount the single file: atomic replacement must be visible to the worker.
|
||||
3. Verify the worker reads a nonempty inventory and retains the existing hard
|
||||
refusal of apply when that file is missing or empty. Use only its dry-run
|
||||
verification; do not manually trigger prune.
|
||||
4. After each cluster image rollout, export pod regular, init, and ephemeral
|
||||
container images to a temporary file. Require successful kubectl exit and
|
||||
nonempty output, then invoke this refresh target with that export. Keep
|
||||
other clusters' prior entries during outages. Run the hook on the durable
|
||||
host, or transfer the complete export there before invoking it.
|
||||
|
||||
The publisher is implemented here; host migration and the activity-core mount
|
||||
and rollout-hook adoption are tracked in `RPF-WP-0028` until verified live.
|
||||
|
||||
## Rollback procedure
|
||||
|
||||
If a needed tag was removed, restore from the latest Nextcloud `forgejo-dump-*.zip.age`
|
||||
(`make forgejo-backup` evidence) using `railiance-infra/tools/forgejo-restore-drill.sh`,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue