{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:recommended",
    ":automergeBranch",
    ":dependencyDashboard",
    ":disableRateLimiting",
    ":skipStatusChecks",
    ":timezone(America/Chicago)",
    "docker:enableMajor",
    "local>jahanson/theshire//.renovate/autoMerge.json5",
    "local>jahanson/theshire//.renovate/commitMessage.json5",
    "local>jahanson/theshire//.renovate/customManagers.json5",
    "local>jahanson/theshire//.renovate/grafanaDashboards.json5",
    "local>jahanson/theshire//.renovate/groups.json5",
    "local>jahanson/theshire//.renovate/labels.json5",
    "local>jahanson/theshire//.renovate/packageRules.json5"
  ],
  "ignorePaths": ["**/*.sops.*", "**/.archive/**", "**/resources/**"],
  "flux": {
    "fileMatch": ["kubernetes/.+\\.ya?ml$"]
  },
  "helm-values": {
    "fileMatch": ["kubernetes/.+\\.ya?ml$"]
  },
  "kubernetes": {
    "fileMatch": [
      "(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$",
      "(^|/)\\.taskfiles/.+\\.ya?ml(?:\\.j2)?$"
    ]
  },
  "customManagers": [
    {
      "customType": "regex",
      "description": [
        "Process CRD dependencies - Chart and Github Release are the same version"
      ],
      "fileMatch": ["kubernetes/.+\\.ya?ml$"],
      "matchStrings": [
        "# renovate: registryUrl=(?<registryUrl>\\S+) chart=(?<depName>\\S+)\n.*?(?<currentValue>[^-\\s]*)\n"
      ],
      "datasourceTemplate": "helm"
    },
    {
      "customType": "regex",
      "description": ["Generic Docker image Regex manager"],
      "fileMatch": ["infrastructure/.+\\.ya?ml$", "infrastructure/.+\\.tf$"],
      "matchStrings": [
        "# renovate: docker-image( versioning=(?<versioning>.*=?))?\\\n .*[:|=] \"?(?<depName>.*?):(?<currentValue>[^\"\\n]*=?)\"?"
      ],
      "datasourceTemplate": "docker",
      "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}"
    },
    {
      "customType": "regex",
      "description": ["Raw GitHub URL Regex manager"],
      "fileMatch": ["infrastructure/.+\\.ya?ml$", "kubernetes/.+\\.ya?ml$"],
      "matchStrings": [
        "https:\\/\\/raw.githubusercontent.com\\/(?<depName>[\\w\\d\\-_]+\\/[\\w\\d\\-_]+)\\/(?<currentValue>[\\w\\d\\.\\-_]+)\\/.*"
      ],
      "datasourceTemplate": "github-releases",
      "versioningTemplate": "semver"
    }
  ],
  "packageRules": [
    {
      "description": "Use custom versioning for Vector",
      "matchDatasources": ["docker"],
      "matchPackageNames": ["docker.io/timberio/vector"],
      "versioning": "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-(?<compatibility>.*)$"
    },
    {
      "description": "Use custom versioning for Minio",
      "matchDatasources": ["docker"],
      "versioning": "regex:^RELEASE\\.(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)T.*Z(-(?<compatibility>.*))?$",
      "matchPackageNames": ["quay.io/minio/minio"]
    },
    {
      "description": "Flux Group",
      "groupName": "Flux",
      "matchDatasources": ["docker", "github-tags"],
      "versioning": "semver",
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "separateMinorPatch": true,
      "matchPackageNames": ["/^flux/", "/^ghcr.io/fluxcd//"]
    },
    {
      "description": "Mastodon images",
      "groupName": "Mastodon",
      "matchDatasources": ["docker", "github-tags"],
      "versioning": "semver",
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "separateMinorPatch": true,
      "matchPackageNames": ["/mastodon/", "/^ghcr.io/mastodon//"]
    },
    {
      "description": "1Password Connect images",
      "groupName": "1password-connect",
      "matchPackageNames": [
        "docker.io/1password/connect-sync",
        "docker.io/1password/connect-api"
      ],
      "matchDatasources": ["docker"],
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "separateMinorPatch": true
    },
    {
      "description": "Rook-Ceph image and chart",
      "groupName": "Rook Ceph",
      "matchDatasources": ["docker", "helm"],
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "separateMinorPatch": true,
      "matchPackageNames": ["/rook.ceph/"]
    },
    {
      "description": "Cilium image and chart",
      "groupName": "cilium",
      "matchPackageNames": [
        "quay.io/cilium/cilium",
        "quay.io/cilium/operator-generic",
        "cilium"
      ],
      "matchDatasources": ["helm", "docker"],
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "separateMinorPatch": true
    },
    {
      "description": "External Snapshotter charts",
      "groupName": "External Snapshotter",
      "matchPackageNames": ["snapshot-controller", "snapshot-validation-webhook"],
      "matchDatasources": ["helm"],
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "separateMinorPatch": true
    },
    {
      "description": "Thanos image and chart - versions do not match",
      "groupName": "Thanos",
      "matchDatasources": ["docker", "github-releases", "helm"],
      "matchUpdateTypes": ["minor", "patch"],
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "matchPackageNames": ["/quay.io/thanos/thanos/", "/thanos/"]
    },
    {
      "description": "Vector image and chart - versions do not match",
      "groupName": "Vector",
      "matchDatasources": ["docker", "github-releases", "helm"],
      "matchUpdateTypes": ["minor", "patch"],
      "group": {
        "commitMessageTopic": "{{{groupName}}} group"
      },
      "matchPackageNames": ["/vector/"]
    }
  ]
}