{ "metadata": { "actors": [ "Developer" ], "adr_refs": [], "backlog_refs": [], "description": "Rolling upgrade with backup, health gates, and automatic rollback on failure", "id": "upgrade-services", "name": "Upgrade Management Services", "requires_approval": true, "tags": [ "upgrade", "services", "L3" ], "triggers": { "manual": true } }, "upgrade_services": { "description": "Upgrade L3 services preserving data and connectivity", "id": "upgrade-services", "rollback": [ { "depends_on": [], "id": "restore-pg", "on_error": "Continue", "targets": [ { "component": "postgresql", "operation": "restore" } ] } ], "steps": [ { "depends_on": [], "id": "backup-pg", "on_error": "Stop", "targets": [ { "component": "postgresql", "operation": "backup" } ] }, { "depends_on": [ "backup-pg" ], "id": "upgrade-pg", "on_error": "Rollback", "targets": [ { "component": "postgresql", "operation": "update" } ] }, { "depends_on": [ "upgrade-pg" ], "id": "upgrade-forgejo", "on_error": "Rollback", "targets": [ { "component": "forgejo", "operation": "update" } ] }, { "depends_on": [ "upgrade-pg", "upgrade-forgejo" ], "id": "upgrade-woodpecker", "on_error": "Rollback", "targets": [ { "component": "woodpecker", "operation": "update" } ] }, { "depends_on": [], "id": "upgrade-zot", "on_error": "Rollback", "targets": [ { "component": "zot", "operation": "update" } ] }, { "depends_on": [ "upgrade-forgejo", "upgrade-woodpecker", "upgrade-zot" ], "id": "validate", "on_error": "Continue", "targets": [ { "component": "postgresql", "operation": "health" }, { "component": "forgejo", "operation": "health" }, { "component": "woodpecker", "operation": "health" }, { "component": "zot", "operation": "health" } ] } ] } }