Files
homelab/renovate.json
hermes-bot d00ee70b23
review-bot reviewed: request changes
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
fix(hermes): run the Hermes image from the konairius org
2026-10-19 08:10:18 +00:00

240 lines
7.4 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>konairius/renovate-config"
],
"enabledManagers": [
"flux",
"kubernetes",
"woodpecker",
"dockerfile"
],
"ignorePaths": [
"kubernetes/clusters/homelab/flux-system/**"
],
"flux": {
"managerFilePatterns": [
"/^kubernetes/.+\\.ya?ml$/"
]
},
"kubernetes": {
"managerFilePatterns": [
"/^kubernetes/.+\\.ya?ml$/"
]
},
"packageRules": [
{
"description": "Flux image automation (kubernetes/infrastructure/image-automation) already bumps these images. Renovate must not open a second, competing update. Keep this list equal to the ImageRepository images there.",
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"apache/tika",
"deluan/navidrome",
"eclipse-mosquitto",
"everythingsmarthome/everything-presence-mmwave-configurator",
"ghcr.io/advplyr/audiobookshelf",
"ghcr.io/cloudnative-pg/plugin-barman-cloud",
"ghcr.io/cloudnative-pg/plugin-barman-cloud-sidecar",
"ghcr.io/home-assistant/home-assistant",
"ghcr.io/immich-app/immich-machine-learning",
"ghcr.io/immich-app/immich-server",
"ghcr.io/matter-js/python-matter-server",
"ghcr.io/music-assistant/server",
"ghcr.io/paperless-ngx/paperless-ngx",
"ghcr.io/usetrmnl/terminus",
"ghcr.io/usetrmnl/trmnl-ha-amd64",
"gitea.renner.uno/k.renner/shelly-manager",
"gitea.renner.uno/konairius/hermes",
"gitea.renner.uno/konairius/vsftpd",
"gitea.renner.uno/konairius/wiki",
"gotenberg/gotenberg",
"lscr.io/linuxserver/lidarr",
"netbirdio/netbird",
"quay.io/ceph/ceph",
"redis",
"rhasspy/wyoming-openwakeword",
"rhasspy/wyoming-speech-to-phrase",
"rhasspy/wyoming-whisper",
"shenxn/protonmail-bridge",
"twinproduction/gatus",
"valkey/valkey",
"velero/velero-plugin-for-aws",
"woodpeckerci/woodpecker-agent",
"woodpeckerci/woodpecker-server"
],
"enabled": false
},
{
"description": "homelab only: pinning a digest changes the pod spec and restarts the workload. Keep these out of the version-update PR, so a reviewer can merge them in a window, separately.",
"matchUpdateTypes": [
"pinDigest"
],
"groupName": "pin image digests",
"groupSlug": "pin-image-digests"
},
{
"description": "Cilium and Rook-Ceph: a minor version is a planned change with a window (maintainer duties). One PR per update, never in the weekly group.",
"matchPackageNames": [
"cilium",
"rook-ceph",
"rook-ceph-cluster"
],
"matchUpdateTypes": [
"minor",
"major"
],
"groupName": null
},
{
"description": "Our own images (gitea.renner.uno) are pinned by DATED TAG, never by digest (REN-315, ci-manifests-test no-digest-pins). Registry GC deletes their old digests, and a pod that restarts on a deleted digest cannot pull. Existing digest pins still get digest updates.",
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"gitea.renner.uno/**"
],
"pinDigests": false
},
{
"description": "Home Assistant namespace: one PR of its own, so Hestia can do the HA-impact review and it merges 02:00-05:00 (REN-240, REN-315).",
"matchFileNames": [
"kubernetes/apps/home-assistant/**"
],
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"groupName": "home-assistant non-major",
"groupSlug": "home-assistant-minor-patch"
},
{
"description": "CI only (pipelines and CI images): nothing here reaches the cluster, so it merges without a window (REN-315).",
"matchFileNames": [
".woodpecker/**",
"ci/images/**"
],
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"groupName": "CI non-major",
"groupSlug": "ci-minor-patch"
},
{
"description": "Stateful apps and the CNI: one PR each, never in a group (REN-315). A git revert does not undo a DB migration or a CNI change, so each needs its own review and, where it can disrupt the cluster, a window.",
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"matchPackageNames": [
"gitea/gitea"
],
"groupName": "gitea",
"groupSlug": "gitea"
},
{
"description": "authentik: chart and images together, one PR (REN-315, DB migrations).",
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"matchPackageNames": [
"authentik",
"ghcr.io/goauthentik/**"
],
"groupName": "authentik",
"groupSlug": "authentik"
},
{
"description": "InfluxDB: chart and image together, one PR (REN-315, data migrations).",
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"matchPackageNames": [
"influxdb",
"influxdb2"
],
"groupName": "influxdb",
"groupSlug": "influxdb"
},
{
"description": "OpenBao: chart and image together, one PR (REN-315, raft storage, the secrets backend). rangeStrategy bump: the default (replace) rewrote the bounded chart range \">=0.28.4 <0.29.0\" to \"<0.30.0\" (homelab #1054) and dropped the lower bound. bump keeps the shape, e.g. \">=0.29.6 <0.30.0\".",
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"matchPackageNames": [
"openbao",
"quay.io/openbao/openbao"
],
"groupName": "openbao",
"groupSlug": "openbao"
},
{
"matchDatasources": [
"helm"
],
"matchPackageNames": [
"openbao"
],
"rangeStrategy": "bump"
},
{
"description": "Multus, whereabouts and the CNI plugins: one PR for the directory (REN-315). A CNI change can cut pod networking on every node.",
"matchFileNames": [
"kubernetes/infrastructure/multus/**"
],
"matchUpdateTypes": [
"patch",
"minor",
"digest",
"pin"
],
"groupName": "multus CNI",
"groupSlug": "multus"
},
{
"description": "LinuxServer tags are <semver>-ls<n>; the default docker versioning reads -ls<n> as a compatibility suffix and never proposes a new one. Beets (REN-350) is Renovate-tracked, not Flux image automation.",
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"lscr.io/linuxserver/beets"
],
"versioning": "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-ls(?<build>\\d+)$"
},
{
"description": "Hermes image (ci/images/hermes): its merge rolls out to the cluster via Flux image automation, so it is not CI-only. One PR of its own.",
"matchFileNames": [
"ci/images/hermes/**"
],
"groupName": "hermes image",
"groupSlug": "hermes-image"
},
{
"description": "nousresearch/hermes-agent also carries the retired date-versioned tags (v2026.x), which sort above v0.x.",
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"nousresearch/hermes-agent"
],
"allowedVersions": "/^v0\\./"
}
]
}