docs(pre): PRE's config lands on main; the parked forgejo-pre branch retires (#28) #37

Merged
pit merged 2 commits from hermes/28-merge-pre into main 2026-10-06 15:36:37 +00:00
Owner

Closes #28.

PRE's three config files move onto main, and the parked forgejo-pre branch is deleted on both remotes, so a rehearsal needs no branch checkout and no restore.

Acceptance criteria

  • The PRE Guest resource (tofu/pre.tf), its host-variable overrides (ansible/host_vars/forgejo-pre.yml) and its inventory entry (ansible/inventories/pre/hosts) are on main; forgejo-pre is deleted on origin and github (verified: git ls-remote --heads empty on both).
  • A hand-run tofu plan with the documented command proposes Prod only — verified live: the documented -target set reports No changes, while a bare plan proposes creating forgejo_pre.
  • Every tofu command in the runbook carries its -target set (plan/apply/destroy).
  • The parked-branch rehearsal and teardown sections are gone from the runbook, and the guest_pre variable description no longer references the branch.
  • The glossary's PRE entry stands without the "parked on the forgejo-pre branch" clause.

Notes

The README's Running section also gained the Guest -target set: with pre.tf on main, a bare plan there would have proposed the PRE Guest too — the same footgun the runbook fixes.

This is the prefactor for #29–#36: it removes the parked-branch mechanism (and its broken teardown) before any Target wraps the commands.

Closes #28. PRE's three config files move onto `main`, and the parked `forgejo-pre` branch is deleted on both remotes, so a rehearsal needs no branch checkout and no restore. ## Acceptance criteria - [x] The PRE Guest resource (`tofu/pre.tf`), its host-variable overrides (`ansible/host_vars/forgejo-pre.yml`) and its inventory entry (`ansible/inventories/pre/hosts`) are on `main`; `forgejo-pre` is deleted on origin and github (verified: `git ls-remote --heads` empty on both). - [x] A hand-run `tofu plan` with the documented command proposes Prod only — verified live: the documented `-target` set reports `No changes`, while a bare plan proposes creating `forgejo_pre`. - [x] Every tofu command in the runbook carries its `-target` set (plan/apply/destroy). - [x] The parked-branch rehearsal and teardown sections are gone from the runbook, and the `guest_pre` variable description no longer references the branch. - [x] The glossary's PRE entry stands without the "parked on the `forgejo-pre` branch" clause. ## Notes The README's Running section also gained the Guest `-target` set: with `pre.tf` on `main`, a bare plan there would have proposed the PRE Guest too — the same footgun the runbook fixes. This is the prefactor for #29–#36: it removes the parked-branch mechanism (and its broken teardown) before any Target wraps the commands.
- Move tofu/pre.tf, ansible/host_vars/forgejo-pre.yml and
  ansible/inventories/pre/hosts onto main. Those three paths are all the
  parked forgejo-pre branch genuinely owned; it is stale everywhere else.
- Runbook: every raw tofu command carries the -target set that selects the
  Guest in play, so a hand-run plan describes Prod only rather than proposing
  the PRE Guest.
- README: the Running section's Guest command gains the same -target set,
  since pre.tf now lives on main and a bare plan would propose PRE.
- Runbook: drop the parked-branch rehearsal and teardown sections, including
  the restore that could not undo its own checkout.
- variables.tf: the guest_pre description no longer references the branch.
- Glossary: PRE stands without the "parked on the branch" clause.

Prod and PRE now share one Stack and one state, told apart by -target
selection alone. The forgejo-pre branch is deleted on origin and github.
GLOSSARY.md Outdated
@ -49,3 +49,2 @@
The disposable rehearsal Guest (LXC 142) used to trial stack and playbook
changes before they touch Prod. Destroyed between rehearsals; its config is
parked on the `forgejo-pre` branch.
changes before they touch Prod. Destroyed between rehearsals. Its config lives
Author
Owner

You can remove Its config lives on main. It's a given

You can remove `Its config lives on main`. It's a given
pit marked this conversation as resolved
@ -109,1 +114,3 @@
tree would make every plan propose its creation.
changes before they reach Prod. It is destroyed between rehearsals. Its config
— `tofu/pre.tf`, `ansible/host_vars/forgejo-pre.yml` and
`ansible/inventories/pre/hosts` — lives on `main`, so a rehearsal needs no
Author
Owner

No need to mention the config lives on main. That's a given

No need to mention the config lives on main. That's a given
pit marked this conversation as resolved
@ -127,3 +137,1 @@
Notes that save a puzzled minute: the branch's `inventories/pre/hosts` names
its host line `forgejo-pre` while main's carries the parked `forgejo` line, so
use the branch copy as-is.
`tofu/variables.tf`'s `guest_pre` is on `main` alongside its consumer
Author
Owner

same here, no need to mention they live on main

same here, no need to mention they live on main
pit marked this conversation as resolved
@ -142,2 +150,4 @@
```
Only the PRE container is destroyed. The shared base image stays in state for
both Guests, and the config that described PRE stays on `main` — nothing is
Author
Owner

same here, no need to mention config lives on main

same here, no need to mention config lives on main
pit marked this conversation as resolved
@ -39,3 +39,3 @@
variable "guest_pre" {
description = "LXC PRE guest parameters (disposable Ansible rehearsal). Only consumed by tofu/pre.tf, which is parked on the forgejo-pre branch (kept here so a rehearsal needs no variable re-adds)."
description = "LXC PRE guest parameters (disposable Ansible rehearsal), consumed by tofu/pre.tf."
type = object({
Author
Owner

remove consumed by tofu/pre.tf

remove `consumed by tofu/pre.tf`
pit marked this conversation as resolved
Review follow-ups on PR #37: once PRE's config is ordinary main content,
saying so is noise.

- GLOSSARY: drop "Its config lives on `main`" from PRE.
- variables.tf: drop ", consumed by tofu/pre.tf" from guest_pre.
- Runbook: drop the "config … lives on `main`" clause from the PRE intro and
  the teardown note, and the "on `main` alongside its consumer" clause from
  the guest_pre note.
Author
Owner

Review follow-ups pushed in 754c6aa — all five handled:

  • GLOSSARY.md — dropped Its config lives on main from PRE.
  • tofu/variables.tf — dropped , consumed by tofu/pre.tf from guest_pre.
  • docs/runbooks/… — dropped the config … lives on main clause from the PRE intro, the on main alongside its consumer clause from the guest_pre note, and the config that described PRE stays on main clause from the teardown note.

The operational detail that survives (the -target split, and that guest_pre/pre.tf create nothing on their own) stays; only the now-obvious "it's on main" statements are gone.

Review follow-ups pushed in 754c6aa — all five handled: - GLOSSARY.md — dropped `Its config lives on main` from PRE. - tofu/variables.tf — dropped `, consumed by tofu/pre.tf` from `guest_pre`. - docs/runbooks/… — dropped the `config … lives on main` clause from the PRE intro, the `on main alongside its consumer` clause from the `guest_pre` note, and the `config that described PRE stays on main` clause from the teardown note. The operational detail that survives (the `-target` split, and that `guest_pre`/`pre.tf` create nothing on their own) stays; only the now-obvious "it's on main" statements are gone.
pit force-pushed hermes/28-merge-pre from 754c6aae70 to 9686fdc79c 2026-10-06 15:32:05 +00:00 Compare
Author
Owner

One addendum to 754c6aa (now 9686fdc): the same "whose config now lives on main" boilerplate also sat in the Guest section intro, which wasn't annotated. Same rationale, so I trimmed it too — the PR now carries no "lives on main" phrasing anywhere, and only the operational -target detail remains.

One addendum to 754c6aa (now 9686fdc): the same "whose config now lives on `main`" boilerplate also sat in the Guest section intro, which wasn't annotated. Same rationale, so I trimmed it too — the PR now carries no "lives on main" phrasing anywhere, and only the operational `-target` detail remains.
pit merged commit 505f15cec8 into main 2026-10-06 15:36:37 +00:00
pit deleted branch hermes/28-merge-pre 2026-10-06 15:36:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
olympus/infra-forge!37
No description provided.