Skip to content
Snippets Groups Projects
renovate.json 4.62 KiB
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:best-practices",
    "docker:enableMajor",
    ":prHourlyLimitNone",
    "regexManagers:dockerfileVersions",
    "replacements:all",
    ":gomod",
    "security:openssf-scorecard",
    ":enableVulnerabilityAlertsWithLabel(security)",
    ":assignee(sheogorath)"
  ],
  "prConcurrentLimit": 20,
  "semanticCommits": "enabled",
  "osvVulnerabilityAlerts": true,
  "platformAutomerge": false,
  "automergeStrategy": "merge-commit",
  "flux": {
    "fileMatch": [
      "apps/.+\\.yaml$",
      "clusters/.+\\.yaml$",
      "shared/components/.+\\.yaml$",
      "shared/applications/.+\\.yaml$",
      "infrastructure/.+\\.yaml$"
    ],
    "ignorePaths": [
      "clusters/k8s01/flux-system/gotk-components.yaml",
      "clusters/k8s01/flux-system/gotk-sync.yaml"
    ]
  },
  "kubernetes": {
    "fileMatch": [
      "apps/.+\\.yaml$",
      "bootstrap/.+\\.yaml$",
      "clusters/.+\\.yaml$",
      "shared/components/.+\\.yaml$",
      "infrastructure/.+\\.yaml$"
    ]
  },
  "gitlabci": {
    "fileMatch": [
      "\\.gitlab-ci\\.yml$",
      "gitlab-ci\\.yaml$"
    ]
  },
  "customManagers": [
    {
      "customType": "regex",
      "fileMatch": [
        "Earthfile$"
      ],
      "matchStrings": [
        "FROM\\s+(?<depName>[a-z0-9.\\/-]+):?(?<currentValue>[a-z0-9-.]+)?@?(?<currentDigest>sha256:[a-f0-9]+)?"
      ],
      "datasourceTemplate": "docker",
      "versioningTemplate": "docker"
    },
    {
      "customType": "regex",
      "fileMatch": [
        "images/mirror/Earthfile$"
      ],
      "matchStrings": [
        "DO \\+MIRROR --image=\"?'?(?<depName>[^:\\s]+?):(?<currentValue>[a-z0-9-.]+?)?@?(?<currentDigest>sha256:[a-f0-9]+)?\"?'?\\s"
      ],
      "datasourceTemplate": "docker",
      "versioningTemplate": "docker"
    },
    {
      "customType": "regex",
      "fileMatch": [
        "\\.yaml$"
      ],
      "matchStrings": [
        "# renovate:\\n\\s+(?:\\S*)image: \"?'?(?<depName>[^:\\s]+?):(?<currentValue>[^\"]*?)@?(?<currentDigest>sha256:[a-f0-9]+)?\"?'?\\s"
      ],
      "datasourceTemplate": "docker",
      "versioningTemplate": "docker"
    },
    {
      "customType": "regex",
      "fileMatch": [
        "\\.yaml$"
      ],
      "matchStrings": [
        "# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\s]+?))?\\s+\\S+?: \"?(?<currentValue>.+?)@?(?<currentDigest>sha256:[a-f0-9]+)?\"?\\s"
      ]
    },
    {
      "customType": "regex",
      "fileMatch": [
        "Chart\\.yaml$"
      ],
      "matchStrings": [
        "# renovate:\\s+image=(?<depName>[^:\\s]+?)\\nappVersion:\\s+\"?'?(?<currentValue>[^\"]*)\"?'?"
      ],
      "datasourceTemplate": "docker",
      "versioningTemplate": "docker"
    },
    {
      "customType": "regex",
      "fileMatch": [
        "Dockerfile$",
        "Earthfile$"
      ],
      "matchStrings": [
        "#\\s*renovate:\\s*datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?\\s+(ENV|ARG) .*?_VERSION=\"?(?<currentValue>.*)\"?\\s"
      ],
      "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}"
    }
  ],
  "packageRules": [
    {
      "matchDatasources": [
        "docker"
      ],
      "matchPackageNames": [
        "quay.io/fedora/fedora",
        "docker.io/fedora",
        "docker.io/library/fedora",
        "registry.fedoraproject.org/fedora"
      ],
      "allowedVersions": "<40"
    },
    {
      "matchDatasources": [
        "docker"
      ],
      "matchPackageNames": [
        "quay.io/**"
      ],
      "pinDigests": false
    },
    {
      "matchDatasources":[
        "docker"
      ],
      "matchPackagePrefixes": [
        "gcr.io/distroless/"
      ],
      "groupName": "gcr.io/distroless"
    },
    {
      "matchDatasources": [
        "helm"
      ],
      "matchPackageNames": [
        "longhorn"
      ],
      "minimumReleaseAge": "14 days"
    },
    {
      "matchPackageNames": [
        "immich",
        "https://github.com/immich-app/immich.git"
      ],
      "groupName": "Immich"
    },
    {
      "matchDatasources": [
        "helm"
      ],
      "matchPackageNames": [
        "renovate"
      ],
      "schedule": [
        "on Monday"
      ],
      "automerge": true
    },
    {
      "matchFileNames": [
        "charts/**",
        "cluster/**/flux-system/**"
      ],
      "matchDatasources": [
        "docker"
      ],
      "pinDigests": false
    }
  ],
  "postUpdateOptions": [
    "helmUpdateSubChartArchives",
    "gomodTidy"
  ]
}