domain cutover (host side): oc.ci host + recipe-report URLs + cc-ci input to c5106bc

- opencode UI: opencodeUiHost=oc.ci.autonomic.zone with the legacy name kept via the new
  opencodeUiExtraHosts (dual traefik router rule + nginx serverAliases) during the bake.
- networking.hosts: new names pinned, legacy names kept.
- recipe-report.py: publish/verify/footer URLs → report.ci.autonomic.zone.
- flake.lock: cc-ci input → c5106bc (PR #39 + #40: dual-zone SAN cert, front-door rules,
  drone rename, harness naming).
This commit is contained in:
2026-09-21 16:58:11 +00:00
parent ac73f1b63a
commit 5c5d194f61
4 changed files with 30 additions and 11 deletions
+10 -2
View File
@@ -30,8 +30,10 @@
# Weekly self-update (Tue 03:00 UTC; skips itself while CI is busy; see nix/modules/auto-update.nix).
cc-ci-orchestrator.autoUpdate.enable = true;
# The opencode UI: traefik (public 443, the *.ci.commoninternet.net cert) → nginx basic auth.
cc-ci-orchestrator.opencodeUiHost = "oc.ci.commoninternet.net";
# The opencode UI: traefik (public 443, the dual-zone wildcard cert) → nginx basic auth.
# Domain cutover 2026-09: new name primary; legacy name kept answering during the bake window.
cc-ci-orchestrator.opencodeUiHost = "oc.ci.autonomic.zone";
cc-ci-orchestrator.opencodeUiExtraHosts = [ "oc.ci.commoninternet.net" ];
cc-ci-orchestrator.opencodeUiTraefikNetwork = "proxy";
# ---- no tailscale on this host (operator 2026-09-07) --------------------------------------
@@ -124,7 +126,13 @@
# This host's own public names resolve to itself regardless of external DNS state (host
# processes: the drone runner, the harness, the orchestrator; containers use the resolvers
# above). Per-run recipe domains are random and cannot be pinned — those follow public DNS.
# Domain cutover 2026-09: new names pinned; legacy names kept during the bake window.
networking.hosts."195.201.88.249" = [
"ci.autonomic.zone"
"drone.ci.autonomic.zone"
"report.ci.autonomic.zone"
"traefik.ci.autonomic.zone"
"oc.ci.autonomic.zone"
"ci.commoninternet.net"
"drone.ci.commoninternet.net"
"report.ci.commoninternet.net"
+12 -1
View File
@@ -62,6 +62,16 @@ in
description = "nginx server_name for the opencode web UI (TLS + basic auth).";
};
opencodeUiExtraHosts = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = ''
Extra hostnames routed to the opencode UI alongside opencodeUiHost, rendered as
`||`-joined Host conditions on the same router. Domain cutover 2026-09: the
legacy oc.ci.commoninternet.net keeps answering here during the bake window.
'';
};
opencodeUiHtpasswdFile = lib.mkOption {
type = lib.types.str;
default = "/secrets/nginx/oc-htpasswd";
@@ -216,6 +226,7 @@ SSHCFG
recommendedProxySettings = true;
virtualHosts.${cfg.opencodeUiHost} = {
listen = [ { addr = "0.0.0.0"; port = cfg.opencodeUiBackendPort; } ];
serverAliases = cfg.opencodeUiExtraHosts;
basicAuthFile = cfg.opencodeUiHtpasswdFile;
extraConfig = ''
# traefik sits on the docker networks (ingress 10.0.0.0/24, gwbridge 172.18.0.0/16)
@@ -256,7 +267,7 @@ SSHCFG
replicas: 1
labels:
- "traefik.enable=true"
- "traefik.http.routers.opencode-ui.rule=Host(`${cfg.opencodeUiHost}`)"
- "traefik.http.routers.opencode-ui.rule=${lib.concatStringsSep " || " (map (h: "Host(`${h}`)") ([ cfg.opencodeUiHost ] ++ cfg.opencodeUiExtraHosts))}"
- "traefik.http.routers.opencode-ui.entrypoints=web-secure"
- "traefik.http.routers.opencode-ui.tls=true"
- "traefik.http.services.opencode-ui.loadbalancer.server.port=${toString cfg.opencodeUiBackendPort}"