This is the standard code-only operator flow for global router rollout.
RUNFABRIC_ROUTER_API_TOKEN (or extensions.router.credentials.apiTokenSecretRef)RUNFABRIC_ROUTER_ZONE_IDRUNFABRIC_ROUTER_ACCOUNT_ID (optional for DNS-only mode)RUNFABRIC_DNS_SYNC_REASONrunfabric router deploy -c <config> --stage <stage>
runfabric router dns-reconcile -c <config> --stage <stage>
This reports create/update/no-op/delete-candidate actions and prints trend analytics from sync history.
runfabric router dns-reconcile -c <config> --stage <stage> --apply
For prod, include --allow-prod-dns-sync and rollout approval envs as required by policy.
runfabric router status -c <config> --stage <stage>
runfabric router dns-history -c <config> --stage <stage>
runfabric router simulate -c <config> --stage <stage> --requests 500
runfabric router chaos-verify -c <config> --stage <stage>
dns-history includes operation IDs, before/after summaries, and trend windows for audit/replay.
runfabric router dns-shift -c <config> --stage <stage> --provider <endpoint-name> --percent 20 --dry-run
runfabric router dns-shift -c <config> --stage <stage> --provider <endpoint-name> --percent 20
Use repeated dns-shift calls (for example 10 -> 20 -> 50 -> 80) for controlled rollout.
Restore previous applied snapshot:
runfabric router dns-restore -c <config> --stage <stage>
Restore a specific snapshot:
runfabric router dns-restore -c <config> --stage <stage> --snapshot-id <id>
Preview restore first:
runfabric router dns-restore -c <config> --stage <stage> --dry-run
preflight: hostname is empty or endpoint errors: fix fabric.routing and endpoint outputs.extensions.router.credentials.* and extensions.router.credentialPolicy.runfabric router dns-history and .runfabric/router-sync-<stage>.json.