From 1d08156d8133c6f8e52581e6de00204fa09a69c9 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sat, 6 Jun 2026 13:25:49 +0200 Subject: [PATCH] version tracking: tune annotations + add customManagers for linuxserver servarr Several images were showing as outdated in version-checker / unhandled by Renovate. Each had a distinct cause; this PR fixes the auto-tractable ones. 1) admin-system/renovate.yaml: bump `app.kubernetes.io/version` labels `43.197.0 -> 43.209.3` (3 occurrences) to match the live image. Renovate's own self-update PR bumped the image tag but left the labels stale; the version-checker widget appears to read the label. Long-term, this label will drift again on each self-update -- worth a customManager later if it becomes a recurring annoyance. 2) admin-system/renovate.yaml: add a customManager + packageRule pair for linuxserver servarr apps. Tag pattern is `version-X.Y.Z.B` (4 segments + `version-` prefix) which the kubernetes manager's default docker versioning rejects at the pre-check, same failure class as termix. Regex versioning parses the prefixed 4-segment form; the same customManager handles prowlarr/radarr/sonarr (depName captured from the regex). kubernetes-manager extraction for these three depnames is disabled via packageRule so the dashboard isn't cluttered with the failing fallback. 3) nextcloud-system/nextcloud.yaml: add `match-regex.version-checker.io/nextcloud: '^\d+\.\d+\.\d+-apache$'` so version-checker doesn't treat the bare `33.0.5` server tag as a newer version of our `33.0.5-apache` image. The widget was showing `33.0.5-apache -> 33.0.5` -- false positive; image is already current. 4) helm/plex/values.yaml: tighten the version-checker regex from `^\d+\.\d+\.\d+\.\d+-.*$` to `^\d+\.\d+\.\d+\.\d+-[a-f0-9]+$` so per-arch tags (`-armhf`, `-arm64`, ...) are excluded. The widget was showing an `-armhf` tag as "newer" than our x86_64 install. Co-Authored-By: Claude Opus 4.7 (1M context) --- admin-system/renovate.yaml | 27 ++++++++++++++++++++++++--- helm/plex/values.yaml | 5 ++++- nextcloud-system/nextcloud.yaml | 3 +++ 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/admin-system/renovate.yaml b/admin-system/renovate.yaml index 178422d..e6386bc 100644 --- a/admin-system/renovate.yaml +++ b/admin-system/renovate.yaml @@ -62,6 +62,17 @@ data: "packageNameTemplate": "Termix-SSH/Termix", "versioningTemplate": "regex:^release-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", "extractVersionTemplate": "^(?release-\\d+\\.\\d+\\.\\d+)" + }, + { + "description": "linuxserver servarr apps (prowlarr, radarr, sonarr) use tag pattern `version-X.Y.Z.B` (4 segments + `version-` prefix). The kubernetes manager's default docker versioning rejects them at the pre-check (same failure class as termix), so no PRs ever open. Use regex versioning to parse the prefixed 4-segment form; depName is captured from the regex so the same customManager handles all three apps.", + "customType": "regex", + "managerFilePatterns": ["/servarr-system/.+\\.ya?ml$/"], + "matchStrings": [ + "image:\\s+linuxserver/(?prowlarr|radarr|sonarr):(?version-\\d+\\.\\d+\\.\\d+\\.\\d+)" + ], + "datasourceTemplate": "docker", + "packageNameTemplate": "linuxserver/{{depName}}", + "versioningTemplate": "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)\\.(?\\d+)$" } ], "packageRules": [ @@ -128,6 +139,16 @@ data: "matchManagers": ["kubernetes"], "matchPackageNames": ["ghcr.io/lukegus/termix"], "enabled": false + }, + { + "description": "linuxserver servarr apps: same disable pattern as termix. The customManager above handles extraction with the right versioning; turn off the default kubernetes-manager extraction so it doesn't silently skip + clutter the dashboard.", + "matchManagers": ["kubernetes"], + "matchPackageNames": [ + "linuxserver/prowlarr", + "linuxserver/radarr", + "linuxserver/sonarr" + ], + "enabled": false } ], "labels": ["renovate"] @@ -141,7 +162,7 @@ metadata: labels: app.kubernetes.io/instance: renovate app.kubernetes.io/name: renovate - app.kubernetes.io/version: "43.197.0" + app.kubernetes.io/version: "43.209.3" spec: # Sat 02:00 Europe/Budapest — leaves the full weekend for troubleshooting # if a Renovate-merged update breaks something. @@ -156,14 +177,14 @@ spec: labels: app.kubernetes.io/instance: renovate app.kubernetes.io/name: renovate - app.kubernetes.io/version: "43.197.0" + app.kubernetes.io/version: "43.209.3" spec: template: metadata: labels: app.kubernetes.io/instance: renovate app.kubernetes.io/name: renovate - app.kubernetes.io/version: "43.197.0" + app.kubernetes.io/version: "43.209.3" annotations: # Renovate uses plain X.Y.Z semver tags (no -slim suffix anymore) match-regex.version-checker.io/renovate: '^\d+\.\d+\.\d+$' diff --git a/helm/plex/values.yaml b/helm/plex/values.yaml index b4baa8c..16bdd14 100755 --- a/helm/plex/values.yaml +++ b/helm/plex/values.yaml @@ -235,7 +235,10 @@ statefulSet: annotations: {} # -- Optional extra annotations to add to the pods in the statefulset podAnnotations: - match-regex.version-checker.io/plex-plex-media-server-pms: ^\d+\.\d+\.\d+\.\d+-.*$ + # Match only `-` (the amd64/native tag form) and exclude + # per-arch tags (e.g. `-armhf`, `-arm64`) so version-checker doesn't show an + # ARM tag as "newer" than our x86_64 install. + match-regex.version-checker.io/plex-plex-media-server-pms: '^\d+\.\d+\.\d+\.\d+-[a-f0-9]+$' service: type: LoadBalancer diff --git a/nextcloud-system/nextcloud.yaml b/nextcloud-system/nextcloud.yaml index 1c85e0a..0b06624 100644 --- a/nextcloud-system/nextcloud.yaml +++ b/nextcloud-system/nextcloud.yaml @@ -392,6 +392,9 @@ spec: nextcloud-config-hash: 06b49913be13b1f9a81745166dd75ada59e7ddd39e8f6a2c5538affe2a6d1093 php-config-hash: 5a497358af870e06b42325eee83d7c0e5466b7f6819cb49b598559d96def7428 hooks-hash: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a + # Only match the `X.Y.Z-apache` variant tags so version-checker doesn't + # treat the bare `X.Y.Z` server tag as a "newer" version of our apache image. + match-regex.version-checker.io/nextcloud: '^\d+\.\d+\.\d+-apache$' spec: containers: - name: nextcloud -- 2.52.0