# Module: `control-plane`

Provisions the **control-plane baseline host** (API + MySQL + Redis), doc/04 §5.2.

Key properties:

- Deployed on a **stable cloud unrelated to the data-plane node vendors**. Nodes
  can all be destroyed without affecting the control plane, and vice-versa. The
  control plane carries **no proxy traffic**.
- `prevent_destroy = true` — it holds the user DB; it is never recreated
  implicitly. Application bring-up (containers, migrations) is done by the server
  deploy pipeline, not Terraform.
- Admin/SSH surface is **never on the open internet** (doc/06 §2): inbound is
  locked to `allowlist_cidrs`; the public API sits behind a CDN/proxy terminated
  elsewhere.

Disabled by default in the root module (`control_plane_enabled = false`) because
it changes rarely.

## Inputs

| name | description |
|------|-------------|
| `server_type` / `location` / `image` | host sizing |
| `ssh_key_ids` | authorised SSH keys |
| `allowlist_cidrs` | admin/SSH inbound allowlist (tighten in prod) |

## Outputs

`ipv4_address`, `server_id`.
