Files
helm-charts/minecraft-server/Chart.yaml
T
jklein 9c0039685b minecraft-server: an overridable image tag and a Java-line guard (5.0.0+up2026.8.2.java25)
Only the newest Java line is maintained from now on. Publishing the chart once
per line out of one directory is what made the lines drift apart (#158): a
change reached whichever line happened to lie in the directory. java8 and java17
stay published as frozen artifacts at 4.0.0, java21 at 4.1.0, and none of them
gets another chart change.

Running an older JVM is now a decision at rollout time instead of a chart
version: image.tagOverride replaces the tag that otherwise comes from
appVersion. It is not called image.tag because it decouples the running image
from the chart version, and it is deliberately outside Renovate's reach -
renovate.json5 keeps tracking appVersion only.

The pairing of tag and minecraft.version is now checked at render time and fails
with both values named, the line each one belongs to, and where the tag came
from. Until now nothing checked it: a mismatch installed silently and only the
container failed afterwards. The boundaries are Mojang's, swept over all 102
releases of the piston-meta manifest (javaVersion.majorVersion): up to 1.16.5
Java 8, 1.17-1.17.1 Java 16, 1.18-1.20.4 Java 17, 1.20.5-1.21.11 Java 21, 26.1
and later Java 25. The 1.17 line was the one gap the chart's own notes did not
cover.

Two cases pass unchecked on purpose, documented in values.yaml and NOTES.txt: a
tag without a recognizable java<N> part, and a minecraft.version that is not a
plain numeric x[.y[.z]]. A guard that rejects what it does not understand gets
worked around instead of respected.

Major, because an installation that already runs a mismatched pair stops
rendering. It does not run today either - it now fails earlier and visibly.
2026-09-02 13:56:25 +02:00

31 lines
1.5 KiB
YAML

apiVersion: v2
name: minecraft-server
description: A Helm chart for deploying a itzg/minecraft-server
icon: https://avatars.githubusercontent.com/u/988985
type: application
# ONLY THE NEWEST JAVA LINE IS MAINTAINED (chart 5.0.0, issue #158).
# appVersion is the image tag and therefore fixes the JVM. Up to chart 4.1.0 the
# chart was published once per line (java8 / java17 / java21 / java25) out of
# this single directory, which is what made the lines drift apart: whatever
# change landed while a line happened to lie in the directory reached that line
# only. That is over. This directory carries exactly one line - the newest -
# and it is the only one that gets chart changes.
# The older lines stay published as frozen artifacts and are still installable:
# java8 and java17 at 4.0.0, java21 at 4.1.0. They will not be updated again.
# To run an older JVM with the CURRENT chart, set image.tagOverride in values
# instead of installing a frozen chart version; the chart then checks that
# minecraft.version fits the line of that tag and fails the render if it does
# not.
# Since chart 2.0.0 the tag is a DATED upstream release ("<release>-java<N>")
# instead of the rolling line tag ("java<N>"): the rolling tags are rebuilt
# continuously, so a pod restart could pull a different image than the last one
# without anything being recorded anywhere. The dated tags are immutable, so the
# image is now pinned by the chart version like every other chart in this repo.
version: 5.0.0+up2026.8.2.java25
appVersion: "2026.8.2-java25"
maintainers:
- name: jklein