Skip to content

fix(palworld): fsGroup — it could not chmod its own install (92 restarts) - #23

Merged
ValgulNecron merged 1 commit into
mainfrom
fix/palworld-fsgroup
Jul 14, 2026
Merged

ValgulNecron merged 1 commit into
mainfrom
fix/palworld-fsgroup

Conversation

@ValgulNecron

Copy link
Copy Markdown
Collaborator

The image starts as root but its entrypoint drops privileges to PUID/PGID (1000). The data PVC is root-owned, so once dropped the server could not chmod the files SteamCMD had just installed:

./PalServer.sh is not executable.

It then exited 0 and restart-looped — 92 times on the test cluster before SteamCMD's resume finally clawed through the install. Note the signature: a clean exit 0, not a crash — exactly how ARK's entrypoint bug hid.

fsGroup makes the kubelet chown the volume to gid 1000. Deliberately not runAsUser: the image must start as root in order to drop.

New validator rule: puid-image-needs-fsgroup

The existing rules all missed this, because the image's User is empty (root) — the privilege drop is invisible there and only shows up as PUID/PGID in Env.

It is a WARN, not an ERROR: a PUID image is a risk signal, not proof of breakage. factorio, rust and terraria all chown the volume themselves while still root and run fine with no fsGroup — failing the build on them would be a false positive. So it flags for a human instead.

The image starts as root but its entrypoint DROPS privileges to PUID/PGID
(1000). The data PVC is root-owned, so once dropped the server could not
chmod the files SteamCMD had just installed:

  ./PalServer.sh is not executable.

It then exited 0 and restart-looped — 92 times on the test cluster before
SteamCMD's resume finally clawed through the install. Note the signature:
a clean exit 0, not a crash, which is exactly how ARK's entrypoint bug hid.

fsGroup makes the kubelet chown the volume to gid 1000. Deliberately NOT
runAsUser: the image must START as root in order to drop.

Also adds a validator rule (puid-image-needs-fsgroup) for the class. It is a
WARN, not an ERROR, because a PUID image is a risk signal rather than proof
of breakage — factorio, rust and terraria all chown the volume themselves
while still root and run fine without fsGroup. Failing the build on those
would be a false positive.

Signed-off-by: valgulnecron <39313199+ValgulNecron@users.noreply.github.com>
@ValgulNecron
ValgulNecron merged commit d98c54c into main Jul 14, 2026
@ValgulNecron
ValgulNecron deleted the fix/palworld-fsgroup branch July 14, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant