mirror of
https://github.com/games-on-whales/ansible-role-run-gow.git
synced 2026-10-15 12:51:48 +00:00
[PR #1] [MERGED] feat: optional dedicated data volume for GoW state (keep game libraries off root) #1
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/ansible-role-run-gow#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/games-on-whales/ansible-role-run-gow/pull/1
Author: @JBailes
Created: 6/5/2026
Status: ✅ Merged
Merged: 6/5/2026
Merged by: @JBailes
Base:
main← Head:feat/optional-data-volume📝 Commits (1)
4f39d95feat: optional dedicated data volume for GoW state (keep game libraries off root)📊 Changes
3 files changed (+101 additions, -2 deletions)
View changed files
📝
README.md(+26 -0)📝
defaults/main.yml(+20 -1)📝
tasks/main.yml(+55 -1)📄 Description
Why
GoW's persistent state (
gow_paths.state/local_state) holds app data and game libraries — tens to hundreds of GB. On a host where that path is on the OS root filesystem, a game download silently fills root and destabilizes the whole node (exactly what happened on a PVE box where Wolf'sprofile-datasat on a 26 G root pool).What
An optional, disabled-by-default
gow_data_volume. When enabled, the role — before any state is created/written — formats (optional, only a blank device, never wipes data) and mounts an operator-provided block device at the state path, persisted in/etc/fstab:The block device is operator-provided (LV/partition/disk); for an LVM thin pool:
lvcreate -V 1024G --thinpool <pool> -n gow-data <vg>.Implementation: builtin modules only (no new collection deps), idempotent — probe-before-format, mountpoint guard, fstab keyed by mountpoint. Disabled by default → existing deployments unchanged.
Also
Fixes a pre-existing one-line indentation error in
tasks/main.yml(the First time setupwhen:was indented 3 spaces, making the whole file fail to parse as YAML). Without it the role — including this new block — can't load. Verified bothdefaults/main.ymlandtasks/main.ymlnow parse cleanly.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.