renovate.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
"helpers:pinGitHubActionDigests"
],
"ignorePaths": [
"ansible/tasks/docker-compose-up.yml",
"kubernetes/apps/arca/chart/values.yaml",
"kubernetes/apps/rfd-enrich/chart/values.yaml"
],
"schedule": [
"on the 1st day of the month"
],
"customDatasources": {
"kubernetes": {
"defaultRegistryUrlTemplate": "https://api.github.com/repos/kubernetes/kubernetes/releases?per_page=100",
"format": "json",
"transformTemplates": [
"{\"releases\": [$map($filter($, function($release) { $not($release.draft) and $not($release.prerelease) and $match($release.tag_name, /^v[0-9]+\\.[0-9]+\\.[0-9]+$/) }), function($release) { {\"version\": $substring($release.tag_name, 1), \"releaseTimestamp\": $release.published_at} })]}"
]
},
"talos": {
"defaultRegistryUrlTemplate": "https://api.github.com/repos/siderolabs/talos/releases?per_page=100",
"format": "json",
"transformTemplates": [
"{\"releases\": [$map($filter($, function($release) { $not($release.draft) and $not($release.prerelease) and $substring($release.tag_name, 0, $length($replace(\"{{{currentValue}}}\", /\\d+$/, \"\"))) = $replace(\"{{{currentValue}}}\", /\\d+$/, \"\") and $count($filter($release.assets, function($asset) { $asset.name = 'metal-amd64.iso' and $exists($asset.digest) })) > 0 }), function($release) { {\"version\": $release.tag_name, \"digest\": $substring($lookup($filter($release.assets, function($asset) { $asset.name = 'metal-amd64.iso' })[0], \"digest\"), 7), \"releaseTimestamp\": $release.published_at} })]}"
]
}
},
"customManagers": [
{
"customType": "regex",
"description": "Track stable Kubernetes releases for upgrade notifications",
"managerFilePatterns": [
"/^kubernetes/cluster/vars\\.yaml$/"
],
"matchStrings": [
"# renovate: datasource=custom\\.kubernetes depName=kubernetes/kubernetes versioning=semver\\n\\s*kubernetes_version: (?<currentValue>1\\.[0-9]+\\.[0-9]+)"
],
"datasourceTemplate": "custom.kubernetes",
"depNameTemplate": "kubernetes/kubernetes",
"versioningTemplate": "semver"
},
{
"customType": "regex",
"description": "Keep the Talos patch version, ISO filename, and ISO checksum in sync",
"managerFilePatterns": [
"/^kubernetes/cluster/vars\\.yaml$/"
],
"matchStrings": [
"# renovate: datasource=custom\\.talos depName=siderolabs/talos versioning=semver\\n(?<indent>[ ]*)talos_version: (?<currentValue>v[0-9]+\\.[0-9]+\\.[0-9]+)\\n[ ]*talos_iso_filename: metal-amd64-v[0-9]+\\.[0-9]+\\.[0-9]+\\.iso\\n[ ]*talos_iso_sha256: (?<currentDigest>[a-f0-9]{64})"
],
"autoReplaceStringTemplate": "# renovate: datasource=custom.talos depName=siderolabs/talos versioning=semver\\n{{{indent}}}talos_version: {{{newValue}}}\\n{{{indent}}}talos_iso_filename: metal-amd64-{{{newValue}}}.iso\\n{{{indent}}}talos_iso_sha256: {{{newDigest}}}",
"datasourceTemplate": "custom.talos",
"depNameTemplate": "siderolabs/talos",
"versioningTemplate": "semver"
},
{
"customType": "regex",
"description": "Version pins annotated with a renovate: comment",
"managerFilePatterns": [
"/^ansible/group_vars/all/vars\\.yaml$/",
"/^\\.github/workflows/[^/]+\\.yml$/"
],
"matchStrings": [
"#\\s*renovate:\\s*datasource=(?<datasource>[a-z-]+)\\s+depName=(?<depName>[^\\s]+)\\s*\\n\\s*[A-Za-z_]+:\\s*\"?(?<currentValue>[^\"\\s]+)\"?"
],
"versioningTemplate": "semver",
"extractVersionTemplate": "^v?(?<version>.*)$"
},
{
"customType": "regex",
"description": "Argo CD image tag and digest",
"managerFilePatterns": [
"/^kubernetes/apps/argocd/values\\.yaml$/"
],
"matchStrings": [
"tag: (?<currentValue>v[0-9]+\\.[0-9]+\\.[0-9]+)@(?<currentDigest>sha256:[a-f0-9]+)"
],
"autoReplaceStringTemplate": "tag: {{{newValue}}}@{{{newDigest}}}",
"datasourceTemplate": "docker",
"depNameTemplate": "quay.io/argoproj/argocd"
},
{
"customType": "regex",
"description": "Cilium chart version in Ansible-rendered Application",
"managerFilePatterns": [
"/^kubernetes/apps/cilium/vars\\.yaml$/"
],
"matchStrings": [
"# renovate: datasource=helm depName=cilium registryUrl=https://helm\\.cilium\\.io/\\n\\s*cilium_chart_version: \\\"(?<currentValue>[^\\\"\\s]+)\\\""
],
"datasourceTemplate": "helm",
"depNameTemplate": "cilium",
"registryUrlTemplate": "https://helm.cilium.io/",
"versioningTemplate": "semver"
},
{
"customType": "regex",
"description": "Keep Kubernetes Helm image tags and digests in sync",
"managerFilePatterns": [
"/^kubernetes/apps/audiobookshelf/values\\.production\\.yaml$/",
"/^kubernetes/apps/beszel/values\\.production\\.yaml$/",
"/^kubernetes/apps/changedetection/values\\.production\\.yaml$/",
"/^kubernetes/apps/freshrss/chart/values\\.yaml$/",
"/^kubernetes/apps/freshrss/values\\.production\\.yaml$/",
"/^kubernetes/apps/forgejo/values\\.production\\.yaml$/",
"/^kubernetes/apps/immich/values\\.production\\.yaml$/",
"/^kubernetes/apps/invidious/values\\.production\\.yaml$/",
"/^kubernetes/apps/jellyfin/values\\.production\\.yaml$/",
"/^kubernetes/apps/k8s-readonly/values\\.production\\.yaml$/",
"/^kubernetes/apps/lidarr/values\\.production\\.yaml$/",
"/^kubernetes/apps/lubelogger/values\\.production\\.yaml$/",
"/^kubernetes/apps/maloja/values\\.production\\.yaml$/",
"/^kubernetes/apps/navidrome/values\\.production\\.yaml$/",
"/^kubernetes/apps/paperless-ngx/values\\.production\\.yaml$/",
"/^kubernetes/apps/prowlarr/values\\.production\\.yaml$/",
"/^kubernetes/apps/qbittorrent/values\\.production\\.yaml$/",
"/^kubernetes/apps/radarr/values\\.production\\.yaml$/",
"/^kubernetes/apps/romm/values\\.production\\.yaml$/",
"/^kubernetes/apps/seerr/values\\.production\\.yaml$/",
"/^kubernetes/apps/sonarr/values\\.production\\.yaml$/",
"/^kubernetes/apps/speedtest-tracker/values\\.production\\.yaml$/",
"/^kubernetes/apps/umami/values\\.production\\.yaml$/",
"/^kubernetes/apps/gaswatch/chart/values\\.yaml$/",
"/^kubernetes/apps/gaswatch/values\\.production\\.yaml$/",
"/^kubernetes/apps/rfd-notify/chart/values\\.yaml$/"
],
"matchStrings": [
"(?:(?<registryIndent>[ \\t]*)registry: (?<registry>[^ \\t\\n]+)\\n)?(?<repoIndent>[ \\t]*)repository: (?<imageRepository>[^ \\t\\n]+)(?<repoComments>(?:\\n[ \\t]*#[^\\n]*)*)\\n(?<fieldIndent>[ \\t]+)tag: (?<tagQuote>[\\\"']?)(?<currentValue>[^\\\"'\\s]+)[\\\"']?\\n[ \\t]+digest: (?<currentDigest>sha256:[a-f0-9]+)"
],
"autoReplaceStringTemplate": "{{#if registryIndent}}{{{registryIndent}}}registry: {{{registry}}}\\n{{/if}}{{{repoIndent}}}repository: {{{imageRepository}}}{{{repoComments}}}\\n{{{fieldIndent}}}tag: {{{tagQuote}}}{{{newValue}}}{{{tagQuote}}}\\n{{{fieldIndent}}}digest: {{{newDigest}}}",
"depNameTemplate": "{{#if registry}}{{{registry}}}/{{{imageRepository}}}{{else}}{{{imageRepository}}}{{/if}}",
"datasourceTemplate": "docker"
}
],
"argocd": {
"managerFilePatterns": [
"/^kubernetes/apps/argocd/.+\\.ya?ml$/"
]
},
"helm-values": {
"managerFilePatterns": [
"/^kubernetes/apps/.+/values[^/]*\\.ya?ml$/"
]
},
"kubernetes": {
"managerFilePatterns": [
"/^kubernetes/apps/.+\\.ya?ml$/"
]
},
"packageRules": [
{
"description": "Nothing auto-merges: a merge to main applies to live hosts",
"matchUpdateTypes": [
"minor",
"patch",
"pin",
"digest"
],
"automerge": false
},
{
"matchDatasources": [
"docker"
],
"pinDigests": true
},
{
"description": "Skip digest pinning for OCI charts managed by Argo CD",
"matchManagers": [
"argocd"
],
"matchDatasources": [
"docker"
],
"pinDigests": false
},
{
"description": "Temporarily skip digest pinning for the Arca image",
"matchPackageNames": [
"forgejo.davegallant.ca/dave/arca"
],
"pinDigests": false
},
{
"description": "Temporarily skip digest pinning for the RFD Enricher image",
"matchPackageNames": [
"ghcr.io/davegallant/rfd-enricher"
],
"pinDigests": false
},
{
"description": "Keep the beszel agent .deb and the beszel hub image in lockstep",
"matchPackageNames": [
"henrygd/beszel",
"docker.io/henrygd/beszel"
],
"groupName": "beszel"
},
{
"matchDepNames": [
"docker.io/searxng/searxng"
],
"versioning": "regex:^(?<major>\\d{4})\\.(?<minor>\\d+)\\.(?<patch>\\d+)-[a-f0-9]+$"
},
{
"matchDepNames": [
"quay.io/invidious/invidious",
"quay.io/invidious/invidious-companion"
],
"versioning": "regex:^(?<major>\\d{4})\\.(?<minor>\\d+)\\.(?<patch>\\d+)-[a-f0-9]+$"
},
{
"description": "Use the custom manager for Helm images with separate tag and digest fields",
"matchManagers": [
"helm-values"
],
"matchFileNames": [
"kubernetes/apps/audiobookshelf/values.production.yaml",
"kubernetes/apps/beszel/values.production.yaml",
"kubernetes/apps/changedetection/values.production.yaml",
"kubernetes/apps/freshrss/chart/values.yaml",
"kubernetes/apps/freshrss/values.production.yaml",
"kubernetes/apps/immich/values.production.yaml",
"kubernetes/apps/invidious/values.production.yaml",
"kubernetes/apps/jellyfin/values.production.yaml",
"kubernetes/apps/k8s-readonly/values.production.yaml",
"kubernetes/apps/lidarr/values.production.yaml",
"kubernetes/apps/lubelogger/values.production.yaml",
"kubernetes/apps/maloja/values.production.yaml",
"kubernetes/apps/navidrome/values.production.yaml",
"kubernetes/apps/paperless-ngx/values.production.yaml",
"kubernetes/apps/prowlarr/values.production.yaml",
"kubernetes/apps/qbittorrent/values.production.yaml",
"kubernetes/apps/radarr/values.production.yaml",
"kubernetes/apps/romm/values.production.yaml",
"kubernetes/apps/seerr/values.production.yaml",
"kubernetes/apps/sonarr/values.production.yaml",
"kubernetes/apps/speedtest-tracker/values.production.yaml",
"kubernetes/apps/umami/values.production.yaml",
"kubernetes/apps/gaswatch/chart/values.yaml",
"kubernetes/apps/gaswatch/values.production.yaml",
"kubernetes/apps/rfd-notify/chart/values.yaml"
],
"enabled": false
},
{
"description": "Use the custom manager for Forgejo\u2019s separate image tag and digest fields",
"matchManagers": [
"helm-values"
],
"matchFileNames": [
"kubernetes/apps/forgejo/values.production.yaml"
],
"matchDepNames": [
"codeberg.org/forgejo/forgejo"
],
"enabled": false
}
]
}