Compare commits

..

2 Commits

Author SHA1 Message Date
admin a47111cce1 renovate: termix customManager — use regex versioning instead of loose+extractVersion
Third attempt. Debug run confirmed `loose` + `extractVersion` STILL produces:

  DEBUG: Dependency Termix-SSH/Termix has unsupported/unversioned value
         release-1.11.0 (versioning=loose)
  DEBUG: Skipping Termix-SSH/Termix because no currentDigest or pinDigests

`extractVersion` is only applied to CANDIDATE versions (from the datasource),
not to currentValue. Renovate's pre-validation runs the raw `release-1.11.0`
through `loose`, which can't parse it (the `release-` prefix breaks semver
detection), so Renovate falls back to digest-only and gives up.

`regex` versioning is the only mode that parses the prefixed value directly
(no extractVersion needed) — Renovate's regex.matches() accepts `release-1.11.0`
because the rule's pattern captures the whole tag. github-releases datasource
returns the upstream `release-X.Y.Z` tag_names which the same regex parses.
No conversion needed; the new tag written back to the manifest is the same
`release-X.Y.Z` form, valid in the ghcr.io/lukegus/termix registry.

Removes extractVersionTemplate (no longer needed).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-06 10:03:54 +02:00
admin c5bbe3d17f renovate: termix via customManagers (kubernetes manager doesn't honor inline comments)
The previous attempt (inline `# renovate:` comment in termix.yaml) silently
did nothing -- after merge + manual run, the dashboard's
`termix-system/termix.yaml (2)` was the resource count (Deployment +
Ingress), not detected updates. No PRs opened, no termix branches, no
queue entries anywhere.

Root cause: Renovate's `kubernetes` manager does NOT process inline
`# renovate:` comments. Those work for dockerfile/flux/helmfile/github-
actions/helm-values/etc., but kubernetes is missing from that list.

Correct fix: a `customManagers.regex` entry that extracts termix's image
directly with the right datasource/versioning/extractVersion set at
EXTRACTION time -- before any docker-version pre-check can reject the
prefixed tag. Plus a packageRule disabling the kubernetes manager for
termix so it doesn't silently skip the dep and clutter the dashboard.

Changes:
  - admin-system/renovate.yaml:
    * enabledManagers += "custom.regex"
    * customManagers: termix.yaml regex extraction -> github-releases
      datasource on Termix-SSH/Termix with `extractVersion=^release-(?<version>.+)$`
    * packageRules: disable kubernetes manager for ghcr.io/lukegus/termix
  - termix-system/termix.yaml: drop the useless inline comment, leave a
    NOTE explaining where the actual config lives.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-06 09:42:12 +02:00
11 changed files with 37 additions and 15 deletions
+20 -1
View File
@@ -46,10 +46,23 @@ data:
"dependencyDashboardTitle": "Renovate Dependency Dashboard",
"prHourlyLimit": 16,
"prConcurrentLimit": 16,
"enabledManagers": ["kubernetes", "helm-values"],
"enabledManagers": ["kubernetes", "helm-values", "custom.regex"],
"kubernetes": {
"managerFilePatterns": ["/.+\\.ya?ml$/"]
},
"customManagers": [
{
"description": "termix uses a release-X.Y.Z prefixed tag. extractVersion + loose doesn't work because Renovate validates the raw currentValue BEFORE applying extractVersion. Using regex versioning (which parses the prefixed value directly) sidesteps the pre-check. Datasource redirected to GitHub Releases at Termix-SSH/Termix so the 3-day stability gate has real timestamps to work with.",
"customType": "regex",
"managerFilePatterns": ["/termix-system/.+\\.ya?ml$/"],
"matchStrings": [
"image:\\s+(?<depName>ghcr\\.io/lukegus/termix):(?<currentValue>release-\\d+\\.\\d+\\.\\d+)"
],
"datasourceTemplate": "github-releases",
"packageNameTemplate": "Termix-SSH/Termix",
"versioningTemplate": "regex:^release-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$"
}
],
"packageRules": [
{
"description": "All apps: 3-day stability gate before any PR opens",
@@ -94,6 +107,12 @@ data:
"description": "wanderer: db + web update together in one PR",
"matchPackageNames": ["flomp/wanderer-db", "flomp/wanderer-web"],
"groupName": "wanderer"
},
{
"description": "termix: kubernetes manager would extract the image with versioning=docker and silently skip it (release-1.11.0 fails the docker pre-check). Disable that extraction; customManagers above does the real work via github-releases.",
"matchManagers": ["kubernetes"],
"matchPackageNames": ["ghcr.io/lukegus/termix"],
"enabled": false
}
],
"labels": ["renovate"]
+1 -1
View File
@@ -50,7 +50,7 @@ spec:
fsGroup: 1000
containers:
- name: code-server
image: codercom/code-server:4.122.1
image: codercom/code-server:4.121.0
args:
- --bind-addr=0.0.0.0:8080
- --auth=none
+1 -1
View File
@@ -48,7 +48,7 @@ spec:
fsGroup: 999
containers:
- name: healthchecks
image: healthchecks/healthchecks:v4.2
image: healthchecks/healthchecks:v4.0
ports:
- containerPort: 8000
env:
+2 -2
View File
@@ -123,7 +123,7 @@ initContainer:
registry: index.docker.io
repository: alpine
# -- If unset use latest
tag: "3.23"
tag: "3.22"
sha: ""
pullPolicy: IfNotPresent
@@ -181,7 +181,7 @@ rclone:
registry: index.docker.io
repository: rclone/rclone
# -- If unset use latest
tag: 1.74.2
tag: 1.70.3
sha: ""
pullPolicy: IfNotPresent
+1 -1
View File
@@ -416,7 +416,7 @@ spec:
value: http://immich-machine-learning:3003
- name: REDIS_HOSTNAME
value: immich-valkey
image: docker.io/valkey/valkey:9.1-alpine@sha256:a35428eba9043cc0b79dbe54100f0c92784f2de00ad09b01182bfb1c5c83d1bd
image: docker.io/valkey/valkey:9.0-alpine@sha256:d1cc70645bbcef743615463a2fa4616e841407545e18f560aed0c49671a90147
imagePullPolicy: IfNotPresent
livenessProbe:
exec:
+1 -1
View File
@@ -529,7 +529,7 @@ spec:
runAsGroup: 472
containers:
- name: grafana
image: grafana/grafana:12.4.4
image: grafana/grafana:12.3.2
ports:
- containerPort: 3000
name: http
+2 -2
View File
@@ -552,7 +552,7 @@ spec:
failureThreshold: 3
initContainers:
- name: postgresql-isready
image: docker.io/bitnamilegacy/postgresql:17.6.0-debian-12-r3
image: docker.io/bitnamilegacy/postgresql:17.5.0-debian-12-r3
resources: {}
securityContext: {}
env:
@@ -637,7 +637,7 @@ spec:
hostIPC: false
containers:
- name: postgresql
image: docker.io/bitnamilegacy/postgresql:17.6.0-debian-12-r3
image: docker.io/bitnamilegacy/postgresql:17.5.0-debian-12-r3
imagePullPolicy: "IfNotPresent"
securityContext:
allowPrivilegeEscalation: false
+2 -2
View File
@@ -89,7 +89,7 @@ spec:
initContainers:
# Configure proxy auth in database before starting
- name: configure-auth
image: filebrowser/filebrowser:v2.63.5
image: filebrowser/filebrowser:v2.54.0
command:
- sh
- -c
@@ -109,7 +109,7 @@ spec:
runAsGroup: 1001
containers:
- name: filebrowser
image: filebrowser/filebrowser:v2.63.5
image: filebrowser/filebrowser:v2.54.0
command:
- filebrowser
- --database=/config/filebrowser.db
+4 -1
View File
@@ -41,7 +41,10 @@ spec:
spec:
containers:
- name: termix
# renovate: datasource=github-releases depName=Termix-SSH/Termix versioning=loose extractVersion=^release-(?<version>.+)$
# NOTE: termix uses a non-semver tag pattern (release-X.Y.Z).
# Renovate handles it via a customManagers regex defined in
# admin-system/renovate.yaml (the kubernetes manager doesn't
# process inline `# renovate:` comments).
image: ghcr.io/lukegus/termix:release-1.11.0
imagePullPolicy: IfNotPresent
ports:
+1 -1
View File
@@ -57,7 +57,7 @@ spec:
spec:
containers:
- name: meilisearch
image: getmeili/meilisearch:v1.45.2
image: getmeili/meilisearch:v1.11.3
env:
- name: MEILI_MASTER_KEY
valueFrom:
+2 -2
View File
@@ -130,7 +130,7 @@ spec:
initContainers:
# Configure proxy auth in database before starting
- name: configure-auth
image: filebrowser/filebrowser:v2.63.5
image: filebrowser/filebrowser:v2.54.0
command:
- sh
- -c
@@ -151,7 +151,7 @@ spec:
runAsGroup: 1000
containers:
- name: filebrowser
image: filebrowser/filebrowser:v2.63.5
image: filebrowser/filebrowser:v2.54.0
command:
- filebrowser
- --database=/config/filebrowser.db