Commit Graph
546 Commits
Author SHA1 Message Date
jlab-renovate[bot] 1fa5179813 Update docker.io/searxng/searxng Docker tag to v2026.9.11-ffe96f8a6 2026-09-14 07:02:09 +00:00
jklein 49ebd4be3c Merge pull request #243 from jk-cluster/renovate/lukevella-rallly-4.x
Update lukevella/rallly Docker tag to v4.14.0
2026-09-08 21:40:47 +00:00
jklein be5ebdbe07 Merge pull request #244 from jk-cluster/renovate/itzg-mc-router-1.x
Update itzg/mc-router Docker tag to v1.46.5
2026-09-08 21:40:39 +00:00
jklein 7c31ab45c5 Merge pull request #234 from jk-cluster/renovate/urlaubsverwaltung-urlaubsverwaltung-6.x
Update urlaubsverwaltung/urlaubsverwaltung Docker tag to v6.10.0
2026-09-08 21:40:24 +00:00
jklein 63a4783d55 Merge pull request #242 from jk-cluster/renovate/outlinewiki-outline-1.x
Update outlinewiki/outline Docker tag to v1.10.0
2026-09-08 21:40:11 +00:00
jlab-renovate[bot] e0c2de883c Update urlaubsverwaltung/urlaubsverwaltung Docker tag to v6.10.0 2026-09-08 21:34:41 +00:00
jlab-renovate[bot] 706dee7458 Update outlinewiki/outline Docker tag to v1.10.0 2026-09-08 21:34:30 +00:00
jlab-renovate[bot] 14412a4670 Update lukevella/rallly Docker tag to v4.14.0 2026-09-08 21:34:19 +00:00
jklein 2b7c24be09 Merge pull request #236 from jk-cluster/renovate/docker.io-searxng-searxng-2026.x
Update docker.io/searxng/searxng Docker tag to v2026.9.6-8b01679e8
2026-09-08 21:34:05 +00:00
jlab-renovate[bot] 9c0e1e6306 Update itzg/mc-router Docker tag to v1.46.5 2026-09-08 21:33:57 +00:00
jklein 024e4e9de1 Merge pull request #235 from jk-cluster/renovate/l4rm4nd-vouchervault-1.x
Update l4rm4nd/vouchervault Docker tag to v1.30.2
2026-09-08 21:32:27 +00:00
jlab-renovate[bot] b9a2e3daa3 Update docker.io/searxng/searxng Docker tag to v2026.9.6-8b01679e8 2026-09-08 18:02:03 +00:00
jlab-renovate[bot] 9f1c776672 Update l4rm4nd/vouchervault Docker tag to v1.30.2 2026-09-03 22:01:42 +00:00
jklein f49bfa4af8 Merge pull request #229 from jk-cluster/feat/minecraft-server-tag-override
Publish Helm Chart with patched Application Version / publish-helm-chart (push) Failing after 12s
Publish Minecraft-Server Helm Chart / Publish Minecraft-Server Helm Chart (push) Failing after 13s
Publish Helm Chart with patched Application Version / publish-helm-chart (push) Failing after 4s
Publish Satisfactory Helm Chart / Publish Satisfactory Helm Chart (push) Failing after 5s
Publish Helm Chart with patched Application Version / publish-helm-chart (push) Failing after 4s
Publish Urlaubsverwaltung Helm Chart / Publish Urlaubsverwaltung Helm Chart (push) Failing after 4s
minecraft-server: an overridable image tag and a Java-line guard (5.0.0+up2026.8.2.java25)
2026-09-02 12:08:07 +00:00
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
jklein 63662c8ea8 Merge pull request #228 from jk-cluster/fix/satisfactory-seasonal-events
satisfactory: game.enableSeasonalEvents says what it does (7.0.0+upv1.9.10)
2026-09-02 11:53:53 +00:00
jklein 485f4fa52b satisfactory: game.enableSeasonalEvents says what it does (7.0.0+upv1.9.10)
game.seasonalEvents was handed to the container unchanged, into the image's
DISABLESEASONALEVENTS. Its default true therefore wrote
DISABLESEASONALEVENTS=true: the seasonal events were OFF in every install
this chart has ever produced, while values.schema.json described the very
same key as "true means events are enabled" (#215).

Of the two ways out, this is the loud one. Inverting the template under the
old key would have flipped the behaviour of every existing release in
silence - the same class of mistake that created the issue. Renaming the key
cannot be missed: game.seasonalEvents no longer exists, additionalProperties
is false on the game block, and a values file that still carries it fails
schema validation on upgrade instead of quietly meaning the opposite.

The new key is positive (enableSeasonalEvents) to avoid a double negative,
so the chart negates it on the way into the env var. Go's "not" cannot do
that: it reads every non-empty string as true, and the schema deliberately
accepts the string form of booleans, so "false" would have flipped the wrong
way. The helper compares explicitly and fails on anything that is neither
true nor false rather than filing it under "off".

The default is enableSeasonalEvents: false, which renders the
DISABLESEASONALEVENTS this chart has always rendered. At chart defaults the
6.1.0 and 7.0.0 manifests are identical, so upgrading alone moves no server;
switching the events on is now a deliberate act with a key that means it.

Separate finding from the same issue, fixed here because it lives in the
block being touched: "--set game=null" - or a leftover "game:" whose
sub-keys were deleted - aborted the render with a nil pointer at
.Values.game.maxPlayers. The game block never got the null-safe treatment of
#99 that probes, security contexts and resources have. It now falls back to
the documented defaults, and the schema accepts the null accordingly. The
same gap remains in the dev and server blocks; it is reported, not fixed
here.

Major bump: a values key is removed, and the schema rejects it.
2026-09-02 13:42:39 +02:00
jklein b1709e6336 Merge pull request #226 from jk-cluster/fix/urlaubsverwaltung-health-probes
urlaubsverwaltung: readiness must see the database, health must not lie (9.0.0+up6.7.0)
2026-09-02 11:28:16 +00:00
jklein f761767630 urlaubsverwaltung: correct the env-collision claim, answer the recovery question
The chart told operators that adding a duplicate env name to an installed
release makes the next upgrade fail in the API server, quoting "The order in
patch list ... doesn't match $setElementOrder list". Measured against helm
3.19.0 and Kubernetes 1.35, it does not fail: the upgrade succeeds, helm prints
"Release has been upgraded", and Kubernetes merges the env list by name, so the
duplicate pair collapses to the chart's own entry and the operator's override is
discarded without a word. At install time the same values behave differently -
both entries reach the pod, the later one wins, and the API server says so with
"hides previous definition of ..., which may be dropped when using apply".

The advice that followed from the old claim survives - such a switch only takes
at install time - but the stated reason was wrong in the dangerous direction. A
reader who expects a loud failure treats a green upgrade as proof the override
took effect, and green is exactly what a silently dropped override looks like.
The text now names the real failure mode and tells the reader to read the value
back off the Deployment. README carries the same correction, because every chart
in this repo offers the same additive env block.

Also records what the earlier measurement left open. With the database scaled
back up the pod returns to Ready on its own after about five seconds, restart
count still 0, so leaving the liveness group untouched costs no manual recovery.
And the limit of that signal belongs next to it: the db indicator validates a
connection, not the schema, so a database that came back empty still put the pod
back to Ready with /actuator/health at 200.
2026-09-02 13:22:58 +02:00
jklein f8acdfdfe1 urlaubsverwaltung: readiness must see the database, health must not lie (9.0.0+up6.7.0)
MANAGEMENT_ENDPOINT_HEALTH_GROUP_READINESS_INCLUDE=readinessState,db puts the datasource into Spring Boot's readiness group, which shipped with readinessState alone: a total database outage left the pod 1/1 Ready while every request failed. Naming the members replaces the default, so readinessState is repeated. The liveness group stays untouched on purpose, because an outage has to keep traffic away rather than add a crash loop to it.

MANAGEMENT_HEALTH_MAIL_ENABLED=false removes the mail indicator, which pinned the aggregate /actuator/health at 503 for the whole life of a healthy release, because the chart's mail wiring points at localhost:1025 where nothing listens. values.yaml and NOTES.txt document what that costs and when it has to be switched back on.
2026-09-02 13:01:54 +02:00
jklein 757e4bea6f Merge pull request #224 from jk-cluster/ci/gitea-helm-registry
ci: Charts per HTTP-POST in die klassische Helm-Registry veröffentlichen
2026-09-01 16:19:28 +00:00
jklein 01f804a43a ci: publish charts to a classic index-based Helm registry
The publish step no longer speaks OCI. "helm registry login", "helm push"
and "helm registry logout" are replaced by a single HTTP POST of the
packaged .tgz to <charts-url>/api/charts, with Basic auth per request.

Credentials and the target URL come from a new 1Password item
op://GitHub-Actions/jlab-registry-access (username, password, charts-url).
The old item is left untouched, so a revert of this commit restores the
previous pipeline without any further work. No registry address enters
the repository.

The three properties of the old step survive:

- values are read via steps.<id>.outputs.* into the step's own env block
  and used as quoted shell variables, each guarded with ":?"
- credentials stay out of argv: "curl --config -" instead of "--user"
- a failed upload fails the job: "--fail-with-body", because curl exits 0
  on HTTP 401/403/409 without it and the publish would go green with
  nothing uploaded

The "<chart>-*.tgz" glob is replaced by the file name built from the
chart name and the version already read from Chart.yaml; --upload-file
takes exactly one file. Two small additions fall out of measuring the
new step: the registry host is masked, because a curl connection error
prints only "<host>:<port>" and the mask on the full URL does not cover
that, and whitespace in the credentials is rejected up front, because an
unquoted curl config value ends at the first space.

No chart is touched and no chart version is bumped.
2026-09-01 18:07:08 +02:00
jklein 487eb11b44 Merge pull request #220 from jk-cluster/renovate/docker.io-searxng-searxng-2026.x
Update docker.io/searxng/searxng Docker tag to v2026.8.29-d226b78bc
2026-09-01 15:34:44 +00:00
jklein d18d5710b5 Merge pull request #223 from jk-cluster/feat/minecraft-server-java25
minecraft-server: auf die java25-Linie (4.1.0+up2026.8.2.java25)
2026-09-01 15:34:23 +00:00
jklein bfa72181eb minecraft-server: move to the java25 line (4.1.0+up2026.8.2.java25)
Minecraft 26.2 requires Java 25, so the chart's default minecraft.version can
only be raised on a java25 image. appVersion becomes 2026.8.2-java25 - the same
dated upstream release the java21 line ships, so the only variables that change
are the JVM and the Minecraft version.

The chart version stays at 4.1.0: the Java lines are siblings of one chart
generation, not successors, and are told apart by the +up suffix.

The Java boundaries in the values.yaml / NOTES.txt comments are read off
Mojang's version manifest (javaVersion.majorVersion per release), not
estimated: 1.21.11 is the last release asking for Java 21, every release from
26.1 on asks for Java 25.
2026-09-01 17:30:22 +02:00
jlab-renovate[bot] a1e10a3928 Update docker.io/searxng/searxng Docker tag to v2026.8.29-d226b78bc 2026-09-01 09:01:16 +00:00
jklein a86eda2bbf Merge pull request #219 from jk-cluster/feat/ytdlp-web-player-chart
ytdlp-web-player: neuer Chart mit optionalem oauth2-proxy als Unterchart (1.0.0+upv1.2.0)
2026-08-30 15:59:09 +00:00
jklein 6b0d8c9232 ytdlp-web-player: new chart with an optional oauth2-proxy subchart (1.0.0+upv1.2.0)
Deploys matszwe02/ytdlp_web_player, a Flask app that fetches videos with
yt-dlp, transcodes them with ffmpeg and serves them as HLS. It ships no
authentication of any kind, so the chart carries a preconfigured oauth2-proxy
as an optional subchart, in the data path in front of the app.

This is the first chart in the repo with a dependency, so the rule "charts
have no dependencies" falls here. It is replaced in CLAUDE.md and README.md by
a bar: a dependency has to be optional and off by default, upstream's chart is
consumed as it comes (documented where it falls short of our conventions,
never patched), and the price is written down - above all that a subchart is
invisible to everything downstream watching Helm release versions, so a new
proxy release only reaches a cluster when this chart is republished.

CI learns the dependency in five places, not the three the plan expected:
helm lint, package, template and install all exit 1 while charts/ is unfilled,
so ci/helm-dependencies.sh runs before lint and package in validate-charts.yml,
before package in publish-helm-chart.yml, and inside run-install-test.sh,
run-trivy-config.sh and run-quantity-render-test.sh - the last of which renders
every chart on every PR and would have gone red first.

Notable chart decisions, each measured rather than assumed:

- The image has no USER and runs as root by default, but not by necessity: it
  runs under an arbitrary uid with readOnlyRootFilesystem and the full
  hardening baseline. Only the pinned uid is a deviation, and it is documented.
- Two emptyDirs, each justified separately. /data holds the video cache
  (DATA_PATH). /tmp is NOT mounted - measured across metadata extraction, HLS
  transcoding, sprite generation and audio extraction, the image never writes
  there. What it does write is $HOME/.cache, so /cache is mounted with HOME and
  XDG_CACHE_HOME pointed at it; without it yt-dlp re-downloads its JavaScript
  challenge-solver from github.com on every extraction.
- The proxy is wired through config.configFile, the only value the subchart
  passes through tpl - config.upstreams is emitted with toJson and would carry
  a literal {{ .Release.Name }} into the manifest.
- Rendering aborts when this chart's Ingress and the proxy's claim the same
  host: ingress-nginx rejects the second one and a Fleet bundle then sits in
  ErrApplied until forceSyncGeneration is bumped.

Fixes #214
2026-08-30 17:34:49 +02:00
jklein 3e1088410e Merge pull request #208 from jk-cluster/renovate/docker.io-linuxserver-bazarr-1.x
Update docker.io/linuxserver/bazarr Docker tag to v1.6.0
2026-08-30 01:21:23 +00:00
jlab-renovate[bot] df5e15b2b6 Update docker.io/linuxserver/bazarr Docker tag to v1.6.0 2026-08-30 01:20:22 +00:00
jklein 56b9ce032e Merge pull request #209 from jk-cluster/renovate/docker.io-linuxserver-prowlarr-2.x
Update docker.io/linuxserver/prowlarr Docker tag to v2.5.2
2026-08-30 01:18:37 +00:00
jlab-renovate[bot] ed1e59b691 Update docker.io/linuxserver/prowlarr Docker tag to v2.5.2 2026-08-30 01:18:21 +00:00
jklein 4bc508db61 Merge pull request #206 from jk-cluster/renovate/docker.io-linuxserver-sonarr-4.x
Update docker.io/linuxserver/sonarr Docker tag to v4.0.19
2026-08-30 01:16:20 +00:00
jklein 3407890335 Merge pull request #210 from jk-cluster/renovate/docker.io-linuxserver-radarr-6.x
Update docker.io/linuxserver/radarr Docker tag to v6.3.0
2026-08-30 01:15:18 +00:00
jklein 746e44b365 Merge pull request #212 from jk-cluster/renovate/ghcr.io-recyclarr-recyclarr-8.x
Update ghcr.io/recyclarr/recyclarr Docker tag to v8.7.1
2026-08-30 01:14:39 +00:00
jklein 972a572460 Merge pull request #213 from jk-cluster/renovate/ghcr.io-seerr-team-seerr-3.x
Update ghcr.io/seerr-team/seerr Docker tag to v3.4.1
2026-08-30 01:14:13 +00:00
jklein a46734043b Merge pull request #211 from jk-cluster/renovate/ghcr.io-paperless-ngx-paperless-ngx-3.x
Update ghcr.io/paperless-ngx/paperless-ngx Docker tag to v3.1.0
2026-08-30 00:44:50 +00:00
jklein a4ef64637f Merge pull request #205 from jk-cluster/renovate/docker.io-linuxserver-qbittorrent-5.x
Update docker.io/linuxserver/qbittorrent Docker tag to v5.2.3
2026-08-30 00:44:25 +00:00
jlab-renovate[bot] fd681dc12f Update ghcr.io/seerr-team/seerr Docker tag to v3.4.1 2026-08-30 00:09:29 +00:00
jlab-renovate[bot] ed4456618a Update ghcr.io/recyclarr/recyclarr Docker tag to v8.7.1 2026-08-30 00:09:16 +00:00
jlab-renovate[bot] fa2d0415c0 Update ghcr.io/paperless-ngx/paperless-ngx Docker tag to v3.1.0 2026-08-30 00:09:02 +00:00
jlab-renovate[bot] 4314660057 Update docker.io/linuxserver/radarr Docker tag to v6.3.0 2026-08-30 00:08:22 +00:00
jklein 31d1c34250 Merge pull request #207 from jk-cluster/renovate/ghcr.io-alam00000-bentopdf-simple-2.x
Update ghcr.io/alam00000/bentopdf-simple Docker tag to v2.8.8
2026-08-30 00:07:47 +00:00
jlab-renovate[bot] 0503442e7c Update ghcr.io/alam00000/bentopdf-simple Docker tag to v2.8.8 2026-08-30 00:07:07 +00:00
jlab-renovate[bot] 107397c3c2 Update docker.io/linuxserver/sonarr Docker tag to v4.0.19 2026-08-30 00:06:40 +00:00
jlab-renovate[bot] 131609fca1 Update docker.io/linuxserver/qbittorrent Docker tag to v5.2.3 2026-08-30 00:06:18 +00:00
JK-Helper [BOT] c2b4bbc790 Merge pull request #203 from jk-cluster/ci/quantity-render-test
ci: Render-Test gegen Mengenangaben in Exponentialschreibweise (alle Charts)
2026-08-28 23:39:02 +00:00
JK-Helper [BOT] 1dbe948005 Merge branch 'main' into ci/quantity-render-test 2026-08-29 01:38:14 +02:00
jklein 1ac4165c1c Merge pull request #176 from jk-cluster/renovate/lukevella-rallly-4.x
Update lukevella/rallly Docker tag to v4.13.1
2026-08-28 23:36:00 +00:00
JK-Helper [BOT] e7c62e1645 Merge pull request #204 from jk-cluster/docs/notes-readme-followup
README: every chart ships a NOTES.txt, plus two stale chart-table facts
2026-08-28 23:35:35 +00:00