Skip to content

fix(ark-survival-evolved): block startup on unmigrated worlds - #64

Merged
ValgulNecron merged 2 commits into
GameplanePanel:mainfrom
Baylem:fix/63-ark-legacy-volume-guard
Nov 12, 2026
Merged

ValgulNecron merged 2 commits into
GameplanePanel:mainfrom
Baylem:fix/63-ark-legacy-volume-guard

Conversation

@Baylem

@Baylem Baylem commented Nov 12, 2026 •

Copy link
Copy Markdown
Member

Closes #63. This catalog fix protects existing ARK: Survival Evolved worlds before the main repository advances its bundled modules pointer. Gameplane #926 review

The 1.0 primary PVC stored the contents of ShooterGame/Saved directly. The 1.1 claim stored the entire install, with cluster uploads under ShooterGame/Saved/clusters. The 2.x image reads the install under /app/server and transfers under /cluster. Starting it against either old claim can create a second world.

The 2.0.1 template checks the mounts and both layouts before running the vendor entrypoint. Residual 1.x data, mixed layouts and inaccessible paths produce exit 78 with recovery instructions in the container log and Kubernetes termination message. The guard reads the claims. An administrator chooses which data to retain if copies conflict. The catalog summary, panel template description and README describe the migration.

The real image at sha256:ce291990613e76f7019be31b96fe247188ce4957724c913c0e30097042c44bf5 declares /docker-entrypoint.sh and no default arguments. The operator passes the template’s command and arguments through to the game container. On a verified layout the wrapper executes the vendor entrypoint as PID 1.

Validation

  • Before the fix, nine unsafe test cases reached the vendor handoff. Four additional cases reproduced the historical 1.0 layout and its partial migrations. The updated regression uses the pinned image with network access disabled and temporary volumes. All 19 fixture cases passed, including completed migrations, old saves, conflicting or hidden cluster files, unreadable directories, dangling symlinks, and missing or redirected storage. It verifies saved file hashes and PID 1 on successful handoff. A separate test invokes the actual vendor script and uses its early configuration check to stop before the game download.
  • The catalog image validator scanned 29 modules with zero errors. The ARK image’s existing working-directory warnings were checked against the actual empty /app volume and its launcher at /docker-entrypoint.sh. The offline gp-module validate reported zero errors and three existing category warnings. Strict mode makes those category warnings fatal.
  • The public catalog’s 1.1.0 and latest tags resolved to the same digest. Both 2.0.0 and 2.0.1 returned HTTP 404 at review time. This PR does not publish a tag.
  • Hosted CI on commit 36f0b8dd passed all three jobs. The migration test ran the 19 layouts and the real vendor preflight in 14.966 seconds. Catalog image validation recorded 13 clean modules, 16 warning-only modules and zero errors. Validation log · amd64 devcontainer · arm64 devcontainer

Signed-off-by: Baylem <zelathis@gmail.com>
@coderabbitai

coderabbitai Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Pre-merge checks: Passed 1 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Title check Pending This assessment has not completed. The check will be retried on the next pre-merge check run.
Passed Passed checks: 1 passed

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Signed-off-by: Baylem <zelathis@gmail.com>
@ValgulNecron
ValgulNecron merged commit 1972363 into GameplanePanel:main Nov 12, 2026
4 checks passed
ValgulNecron pushed a commit to GameplanePanel/Gameplane that referenced this pull request Nov 12, 2026
Includes:
- fix(ark-survival-evolved): block startup on unmigrated worlds (GameplanePanel/module#64)
- fix(minecraft-java): add 26.1.2 and 26.2 to the version picker (GameplanePanel/module#62)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
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.

fix(ark-survival-evolved): block startup on unmigrated world data

2 participants