The orchestrator's flake now builds the machine it shares with the cc-ci CI
server: `nixosConfigurations.cc-ci` composes cc-ci's nixosModules.cc-ci-server
(new flake input, nixpkgs + sops-nix follow ours), this repo's orchestrator
module (nix/modules/cc-ci.nix, exported as cc-ci-orchestrator, `cc-ci` kept
as an alias for notplants-nix) and the new nix/modules/orchestrator-host.nix
— the host contract those units always assumed (loops user, claude/opencode
CLIs, opencode web server + tailnet-only UI on 8443 since traefik owns
80/443, nix-ld, tool set, `ssh cc-ci` → loopback).
nix/hosts/cc-ci/{hardware,networking}.nix are PROVISIONAL copies of the old
server's layout so the flake evaluates; they get replaced by the
nixos-infect output of 195.201.88.249.
README.md is the deploy guide (Hetzner Debian → nixos-infect → this flake →
staging → data restore → cutover). archive/ holds the retired Incus/Hetzner
orchestrator host configs, the old terraform and the migration plans;
references updated. cc-ci-plan/plan-cc-ci-combined-host.md is the working
plan for the move.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FqkQq3CDmFWcQ7u1LzoyRz
33 lines
801 B
Terraform
33 lines
801 B
Terraform
resource "hcloud_ssh_key" "cc_ci_orch" {
|
|
name = "cc-ci-orchestrator-deploy"
|
|
public_key = var.ssh_public_key
|
|
|
|
labels = {
|
|
project = "cc-ci-orchestrator"
|
|
managed = "terraform"
|
|
}
|
|
}
|
|
|
|
resource "hcloud_server" "cc_ci_orch" {
|
|
name = var.server_name
|
|
server_type = var.server_type
|
|
image = var.image
|
|
location = var.location
|
|
ssh_keys = [hcloud_ssh_key.cc_ci_orch.id]
|
|
|
|
# Stage 1: cloud-init runs nixos-infect on first boot, converting Debian to NixOS, then reboots.
|
|
# Wait ~5 min after apply, then SSH in and run Stage 2 per README.md.
|
|
user_data = file("${path.module}/user-data.sh")
|
|
|
|
public_net {
|
|
ipv4_enabled = true
|
|
ipv6_enabled = false
|
|
}
|
|
|
|
labels = {
|
|
project = "cc-ci-orchestrator"
|
|
managed = "terraform"
|
|
stage = "infect"
|
|
}
|
|
}
|