Implements the cc-ci side of the domain migration (plan: cc-ci-orchestrator cc-ci-plan/plan-domain-migration-ci-autonomic-zone.md). DNS records are already live in the autonomic.zone Gandi zone (verified: apex+wildcard A 195.201.88.249, _acme-challenge CNAME → the existing acme-dns account).
Key simplification vs the plan: instead of dual-cert SNI in the traefik reconciler, ONE Let's Encrypt cert carries SANs for BOTH zones (ci + *.ci of autonomic.zone AND commoninternet.net) — the unchanged single-pair ssl_cert/ssl_key reconciler keeps working, and the legacy zone serves off the same cert until Phase 4 drops its SANs. The new zone's DNS-01 challenge goes through the SAME acme-dns account (storage re-keyed by a seed oneshot; disable_registration stays true; the CNAME already delegates to it).
Dual Host rules everywhere during the bake window; old names keep working until the operator's Phase 4 record cleanup. Warm stacks + backupbot deliberately stay on the legacy zone (data-warm volumes / restic password tied to the abra app name) — post-bake migration.
Verification so far: python/nix/shell syntax clean; deployment + cert issuance + e2e verified on the host after merge (see the orchestrator-side PR + deploy log).
Implements the cc-ci side of the domain migration (plan: cc-ci-orchestrator cc-ci-plan/plan-domain-migration-ci-autonomic-zone.md). DNS records are already live in the autonomic.zone Gandi zone (verified: apex+wildcard A 195.201.88.249, _acme-challenge CNAME → the existing acme-dns account).
Key simplification vs the plan: instead of dual-cert SNI in the traefik reconciler, ONE Let's Encrypt cert carries SANs for BOTH zones (ci + *.ci of autonomic.zone AND commoninternet.net) — the unchanged single-pair ssl_cert/ssl_key reconciler keeps working, and the legacy zone serves off the same cert until Phase 4 drops its SANs. The new zone's DNS-01 challenge goes through the SAME acme-dns account (storage re-keyed by a seed oneshot; disable_registration stays true; the CNAME already delegates to it).
Dual Host rules everywhere during the bake window; old names keep working until the operator's Phase 4 record cleanup. Warm stacks + backupbot deliberately stay on the legacy zone (data-warm volumes / restic password tied to the abra app name) — post-bake migration.
Verification so far: python/nix/shell syntax clean; deployment + cert issuance + e2e verified on the host after merge (see the orchestrator-side PR + deploy log).
- acme-dns.nix: ONE dual-zone SAN cert (ci+*.ci.autonomic.zone AND ci+*.ci.commoninternet.net)
via the same acmedns account — storage re-keyed by cc-ci-acme-storage-seed.service; handoff
reads the new cert dir. Single secret pair => zero changes to the traefik reconciler.
- dashboard/bridge/reports: dual Host rules during the bake window (bridge gets explicit
parentheses so && does not shadow the dashboard on the new host).
- drone abra app renamed to drone.ci.autonomic.zone (fresh DB supported: DRONE_USER_CREATE
re-injects the sops bridge token); runner RPC + bootstrap-drone-oauth.sh follow.
- harness: app_domain() issues *.ci.autonomic.zone run domains; RUN_APP_RE / stack-name
regexes / docker-prune accept BOTH zones during the bake. Warm stacks deliberately stay
on the legacy zone (data-warm volumes; post-bake migration).
- URLs in bridge/dashboard defaults + recipe-report.py follow the new names.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Implements the cc-ci side of the domain migration (plan: cc-ci-orchestrator cc-ci-plan/plan-domain-migration-ci-autonomic-zone.md). DNS records are already live in the autonomic.zone Gandi zone (verified: apex+wildcard A 195.201.88.249, _acme-challenge CNAME → the existing acme-dns account).
Key simplification vs the plan: instead of dual-cert SNI in the traefik reconciler, ONE Let's Encrypt cert carries SANs for BOTH zones (ci + *.ci of autonomic.zone AND commoninternet.net) — the unchanged single-pair ssl_cert/ssl_key reconciler keeps working, and the legacy zone serves off the same cert until Phase 4 drops its SANs. The new zone's DNS-01 challenge goes through the SAME acme-dns account (storage re-keyed by a seed oneshot; disable_registration stays true; the CNAME already delegates to it).
Dual Host rules everywhere during the bake window; old names keep working until the operator's Phase 4 record cleanup. Warm stacks + backupbot deliberately stay on the legacy zone (data-warm volumes / restic password tied to the abra app name) — post-bake migration.
Verification so far: python/nix/shell syntax clean; deployment + cert issuance + e2e verified on the host after merge (see the orchestrator-side PR + deploy log).