fix(sizing): CI memory caps and swap; Linode prod/DR/staging sized like OVH #257

Closed
jfraeys wants to merge 0 commits from jfraeys/fix/stable-baseline-sizing into main
Owner

What

  • CI VM (playbooks/ci-ephemeral.yml): the runner cgroup cap was 3500M on a 2 GB VM (never applied) and the VM had no swap. Now 1700M + 1G swap cap, swap role added.
  • ci_cache_host: MemoryHigh/MemoryMax so cache bursts can't starve Forgejo on services.
  • linode/prod.tfvars: web g6-standard-1, services g6-standard-2 (match OVH d2-2 / d2-4). Resize per docs/runbooks/resize-node.md (in-place ~ type, not a replace).
  • linode/dr.tfvars created from the example; ovh/dr.tfvars services now d2-4.
  • Staging runs at production sizes (staging-validate.yml), so the on-box go build fallback doesn't OOM at 1 GB.

Test plan

  • staging-validate green
  • operator: tofu plan on linode shows ~ type only, then apply services first
  • 3 coaching_site build jobs in a row, no OOM in journalctl -k

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ

## What - CI VM (`playbooks/ci-ephemeral.yml`): the runner cgroup cap was 3500M on a 2 GB VM (never applied) and the VM had no swap. Now 1700M + 1G swap cap, `swap` role added. - `ci_cache_host`: `MemoryHigh`/`MemoryMax` so cache bursts can't starve Forgejo on `services`. - `linode/prod.tfvars`: web `g6-standard-1`, services `g6-standard-2` (match OVH d2-2 / d2-4). Resize per `docs/runbooks/resize-node.md` (in-place `~ type`, not a replace). - `linode/dr.tfvars` created from the example; `ovh/dr.tfvars` services now d2-4. - Staging runs at production sizes (`staging-validate.yml`), so the on-box `go build` fallback doesn't OOM at 1 GB. ## Test plan - [ ] staging-validate green - [ ] operator: `tofu plan` on `linode` shows `~ type` only, then apply services first - [ ] 3 coaching_site build jobs in a row, no OOM in `journalctl -k` 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ
fix(sizing): CI memory caps and swap; Linode prod/DR/staging sized like OVH
All checks were successful
Lint / lint (pull_request) Successful in 2m59s
Secret scan / scan (pull_request) Successful in 16s
5f4272f6d0
CI VM: real cgroup cap (3500M exceeded the 2 GB VM), swap role, cache-server MemoryMax.
Linode prod -> web g6-standard-1 / services g6-standard-2 (match OVH d2-2/d2-4);
linode/dr.tfvars from the example; ovh/dr.tfvars services d2-4; staging at prod sizes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ
jfraeys closed this pull request 2026-10-16 22:30:53 -04:00
All checks were successful
Lint / lint (pull_request) Successful in 2m59s
Secret scan / scan (pull_request) Successful in 16s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
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
jfraeys/infra!257
No description provided.