From 2c8f3e61e92a372f7de9f05f06993b3a5162c534 Mon Sep 17 00:00:00 2001 From: valgulnecron <39313199+ValgulNecron@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:10:39 +0200 Subject: [PATCH] =?UTF-8?q?fix(7dtd):=20persist=20the=2017.5GB=20install?= =?UTF-8?q?=20on=20its=20own=20volume=20=E2=80=94=20it=20never=20started?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 7DtD's persistent state lives in TWO directories with no safe common parent: the ~17.5GB game install (serverfiles/) and the world saves (.local/share/7DaysToDie). Their only shared parent, /home/sdtdserver, also holds user.sh — the ENTRYPOINT — so mounting a PVC there shadows it and the container cannot even exec. With only one PVC available, it had to go on the saves. That left the 17.5GB install on the node's ephemeral disk, where SteamCMD died with Failure! Installing sdtdserver: SteamCMD: Not enough disk space to download server files and the server crash-looped, never once starting. spec.storage.extra (Gameplane#137) now lets a template declare additional volumes. serverfiles gets its own 45Gi PVC, so the install is downloaded once and never touches ephemeral node disk. Note: raising the PRIMARY PVC's size (an earlier attempt) did nothing — it was never the disk that filled. Always check WHICH disk. Signed-off-by: valgulnecron <39313199+ValgulNecron@users.noreply.github.com> --- 7-days-to-die/module.yaml | 2 +- 7-days-to-die/template.yaml | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/7-days-to-die/module.yaml b/7-days-to-die/module.yaml index 3d35750..b6845e8 100644 --- a/7-days-to-die/module.yaml +++ b/7-days-to-die/module.yaml @@ -1,7 +1,7 @@ apiVersion: gameplane.local/module/v1 name: 7-days-to-die displayName: 7 Days to Die -version: 2.0.1 +version: 2.0.2 game: 7-days-to-die summary: 7 Days to Die dedicated server (vinanrra/7dtd-server) with persistent world saves and image-native mod installers. No RCON console or wizard server settings — this image spreads them across directories the operator can't all mount at once. homepage: https://7daystodie.com/ diff --git a/7-days-to-die/template.yaml b/7-days-to-die/template.yaml index 61978c7..97248c7 100644 --- a/7-days-to-die/template.yaml +++ b/7-days-to-die/template.yaml @@ -43,7 +43,7 @@ metadata: spec: displayName: 7 Days to Die game: 7-days-to-die - version: 2.0.1 + version: 2.0.2 accentColor: "#8b0000" description: | 7 Days to Die dedicated server using @@ -90,8 +90,24 @@ spec: advertise: false storage: - size: 45Gi + # The worlds. 7DtD's persistent state lives in TWO directories with no + # safe common parent: the ~17.5GB game install (serverfiles/) and the + # world saves (.local/share/7DaysToDie). Their only shared parent, + # /home/sdtdserver, also holds user.sh — the ENTRYPOINT — so mounting a + # PVC there shadows it and the container cannot even exec. + # + # Before spec.storage.extra existed, the single PVC had to go on the + # saves, which left the 17.5GB install on the node's ephemeral disk. + # SteamCMD then died with "Not enough disk space to download server + # files" and the server crash-looped, never once starting. mountPath: /home/sdtdserver/.local/share/7DaysToDie + size: 10Gi + extra: + # The game install. Persisted so it is downloaded once, not on every + # pod start — and so it is not on ephemeral node disk at all. + - name: serverfiles + mountPath: /home/sdtdserver/serverfiles + size: 45Gi resources: requests: