Files
proxmox/config/gitea-phoenix
defiQUG 377369a5be
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 2s
feat(gitea-phoenix): gov runtime, deploy/template parity, workflow dedupe docs
- Add gov-portals-runtime.v1.json + schema; jq gate in validate-config-files
- Python: parity-deploy-targets, parity-operational-template (IP strict, hostname WARN),
  parity-gov-portals-runtime; validate-vm-routing-parity.sh wrapper
- check-gov-portal-workflow-canonical-strings.sh for monorepo Pattern A
- PORTAL_WORKFLOW_PARITY.md; template headers; repos README; operator checklist secrets
- report-gitea-cd-parity runs full VM routing parity; task doc marked complete
- GOV_PORTALS_XOM_DEV + GITEA_GOV + MASTER_INDEX + matrix doc cross-links

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 15:55:50 -07:00
..

Gitea / Phoenix non-blockchain VM routing matrix

Machine-readable coverage of cluster guests that are not Besu-fleet nodes (see besu-vmid-exclusions.v1.json) for Gitea Actions + Phoenix deploy alignment.

File Purpose
besu-vmid-exclusions.v1.json Hostname rules marking Besu validators/sentries/RPC (excluded from matrix closure).
non-blockchain-vm-routing-matrix.v1.json One row per in-scope running guest from the last committed reports/status/live_inventory.json snapshot.
non-blockchain-vm-routing-matrix.v1.schema.json JSON Schema for the matrix file.
gov-portals-runtime.v1.json CT 7804 xom-dev: ports 30013004, Gitea repos, Phoenix target names, pnpm filters (kept in sync with deploy-targets + monorepo CI).
gov-portals-runtime.v1.schema.json JSON Schema for the runtime file.

Regenerate after inventory export

From repo root (LAN / operator host with live_inventory.json refreshed):

python3 scripts/lib/non_blockchain_vm_routing_matrix.py generate \
  --inventory reports/status/live_inventory.json \
  --exclusions config/gitea-phoenix/besu-vmid-exclusions.v1.json \
  --out config/gitea-phoenix/non-blockchain-vm-routing-matrix.v1.json

Then hand-fill gitea_repos, deploy_target, workflow_glob, and health_url for Phoenix-backed services; use allowed_missing only with an explicit reason for intentional gaps. When 7804 portal list changes, update gov-portals-runtime.v1.json in the same change set.

Validate (inventory + parity gates)

bash scripts/verify/validate-vm-routing-parity.sh

Subcommands (see scripts/lib/non_blockchain_vm_routing_matrix.py):

  • validate — inventory closure vs matrix
  • parity-deploy-targets — each Phoenix deploy targets repo appears on the matrix row for its VMID (health URL match for single-repo rows)
  • parity-operational-template — IPv4 alignment vs config/proxmox-operational-template.json (hostname drift warns only; NPMplus 10233 dual-homed .166/.167 documented)
  • parity-gov-portals-runtime — matrix 7804 gitea_repos equals runtime portal list

Gov portal workflow dedupe

Canonical doc: ../gitea-workflow-templates/PORTAL_WORKFLOW_PARITY.md. Optional drift check when the monorepo clone exists:

bash scripts/verify/check-gov-portal-workflow-canonical-strings.sh
# or: GOV_PORTALS_MONOREPO_ROOT=/path/to/gov-portals-monorepo bash ...

Task narrative: docs/04-configuration/GITEA_PHOENIX_NON_BLOCKCHAIN_VM_ROUTING_CLEANUP_TASK.md.