Skip to content

Build phoenix, the deployment host on ImaginationLAN (ADR-0043) #436

Description

@Gerrrt

Decided; now build it

The half of this issue that was a question is answered: ADR-0043 (#505, 2026-09-18) keeps the CA on prometheus and builds phoenix as the deployment host. The body as filed assumed step-ca sits beneath the estate root; it does not — the root is pathlen:0 (ADR-0037), which is why the tier has its own. The CA-key custody gap the ADR found is #496.

docs/runbooks/build-the-jumpbox.md is the procedure: phoenix, 10.0.30.70, VMID 170, a VM not an LXC, 2 vCPU / 4 GiB / 32 GB, no stack, no Docker, no age key, no CA — with a CAUTION that certificates/ca-key.pem does not come here. One cost the issue did not count and the ADR did: the Proxmox firewall on Saruman admits 8006 from Hicks only, so this widens ADR-0014's rule by one address on one port.

Why it moved

It is the root of the automation chain — #440, #445 and #448 hang on it, and only #449#451 hang on #414 — and it has no predecessor: it needs Saruman, which exists. A milestone described as a strict chain should not hold the one item in it that is not blocked. Moved to the Saruman milestone beside #527.

Done when

phoenix is in network.md and hardware.md, architecture.md no longer says Not built yet, check_docs.py's absence marker is removed, and a make deploy from it has landed on one host.


Body as filed, superseded 2026-09-19

This estate has 34 ADRs, 20 runbooks, 95 alert rules and a convergence loop
that refuses to deploy without a pinned GPG signature — and it builds virtual
machines by clicking. The Packer, OpenTofu and Ansible issues that follow this
one close that gap. This is their prerequisite: there is nowhere for the
toolchain to live.

Today Proxmox is driven from a Hicks workstation by hand. Packer, OpenTofu and
Ansible want a host that holds an API token, an SSH key and a checkout, and that
host is a pet — it is the thing that rebuilds everything else.

What is decided by placement

VLAN 30, not 99. It drives the lab, and ADR-0031
already grants Hicks all of ImaginationLAN, so it needs no new rule. Putting it
on Winterfell would widen the management segment for exactly the reason
ADR-0008 argues against —
"Winterfell becomes busier and less special."

A dedicated Proxmox user and API token, not root@pam, per the same instinct
that gave the lab guest its own age recipient under
ADR-0020:
the token that can create VMs should not be the token that can do everything.

The open question this issue carries

The estate's CA currently lives on prometheus. scripts/gen-certs.sh
deliberately leaves the CA key without a passphrase — the trade is written down,
that interactive issuance leads to certificates nobody dares reissue — and
SECURITY.md records that host's disk and swap as unencrypted. So the root of
trust for the estate sits on the monitoring box, protected by file permissions.

Moving it to the jumpbox is not obviously right; it trades one unencrypted disk
for another. But it is worth deciding rather than inheriting. stacks/sensitive's
step-ca is already an intermediate beneath that root (#130),
so the tree is shaped for it either way. Decide here, record it, and do not
move the key as a side effect of this build.

Order of work

  1. Guest on Saruman, VLAN 30, static below .100 with a Kea reservation.
  2. Proxmox user and API token, privilege separation off, credential into
    secrets/.
  3. Alloy agent via scripts/deploy-agent.sh — it is a lab host, so it pushes to
    the lab's stack on alexander, never to 10.0.99.20
    (ADR-0007).
  4. Decide the CA question. Record it.

Purchases this needs

None.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestlabstacks/lab on alexander (VLAN 30)seq/1Step 1 within its milestone; same number = can run in parallel

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions