diff --git a/.github/renovate/folders/clusters.json5 b/.github/renovate/folders/clusters.json5 index 7d178ee2ebc..5c60941b8c4 100644 --- a/.github/renovate/folders/clusters.json5 +++ b/.github/renovate/folders/clusters.json5 @@ -1,4 +1,10 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/kinds/flux.json5", + "github>truecharts/public//.github/renovate/kinds/helm-values.json5", + "github>truecharts/public//.github/renovate/kinds/docker.json5", + "github>truecharts/public//.github/renovate/special/talconfig.json5" + ] } \ No newline at end of file diff --git a/.github/renovate/folders/clustertool.json5 b/.github/renovate/folders/clustertool.json5 index 7d178ee2ebc..6dd8be0832c 100644 --- a/.github/renovate/folders/clustertool.json5 +++ b/.github/renovate/folders/clustertool.json5 @@ -1,4 +1,7 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/kinds/go.json5" + ] } \ No newline at end of file diff --git a/.github/renovate/folders/containers.json5 b/.github/renovate/folders/containers.json5 index 7d178ee2ebc..92c688b5b0d 100644 --- a/.github/renovate/folders/containers.json5 +++ b/.github/renovate/folders/containers.json5 @@ -1,4 +1,7 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/kinds/docker.json5" + ] } \ No newline at end of file diff --git a/.github/renovate/folders/github.json5 b/.github/renovate/folders/github.json5 index 7d178ee2ebc..c056b8a75a8 100644 --- a/.github/renovate/folders/github.json5 +++ b/.github/renovate/folders/github.json5 @@ -1,4 +1,8 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/kinds/githubactions.json5", + "github>truecharts/public//.github/renovate/kinds/docker.json5" + ] } \ No newline at end of file diff --git a/.github/renovate/folders/repositories.json5 b/.github/renovate/folders/repositories.json5 index 7d178ee2ebc..57824f08ebc 100644 --- a/.github/renovate/folders/repositories.json5 +++ b/.github/renovate/folders/repositories.json5 @@ -1,4 +1,7 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/kinds/flux.json5" + ] } \ No newline at end of file diff --git a/.github/renovate/folders/website.json5 b/.github/renovate/folders/website.json5 index 7d178ee2ebc..ce39481dac7 100644 --- a/.github/renovate/folders/website.json5 +++ b/.github/renovate/folders/website.json5 @@ -1,4 +1,7 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/kinds/astro.json5" + ] } \ No newline at end of file diff --git a/.github/renovate/kinds/astro.json5 b/.github/renovate/kinds/astro.json5 new file mode 100644 index 00000000000..0c477a59831 --- /dev/null +++ b/.github/renovate/kinds/astro.json5 @@ -0,0 +1,19 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + // Astro project Renovate configuration for managing dependencies + "astro": { + "fileMatch": [ + "astro\\.config\\.(mjs|js|ts)$", // Matches Astro configuration files + "package\\.json$" // Matches package.json files for dependency management + ], + "enabled": true, // Enable updates for Astro dependencies + "commitMessageSuffix": "fix: update Astro dependencies", // Customize commit message suffix + "updateTypes": ["major", "minor", "patch", "digest"], // Allow updates for all version types + "ignore": [ + // Specify any dependencies or versions to ignore + ] + }, + "ignoreDeps": [ + // List any dependencies to ignore globally if needed + ] +} \ No newline at end of file diff --git a/.github/renovate/kinds/docker.json5 b/.github/renovate/kinds/docker.json5 new file mode 100644 index 00000000000..7c4dc64f7a9 --- /dev/null +++ b/.github/renovate/kinds/docker.json5 @@ -0,0 +1,22 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + // Dockerfile Renovate configuration for managing image updates + "docker": { + "fileMatch": [ + "Dockerfile$", // Matches Dockerfile files regardless of their path + "docker-compose\\.ya?ml$", // Matches docker-compose files + "docker-compose\\.ya?ml\\.j2$", // Matches Jinja2 templated docker-compose files + "\\.github/workflows/.*\\.ya?ml$", // Matches all workflow YAML files + "\\.github/workflows/.*\\.ya?ml\\.j2$" // Matches Jinja2 templated workflow files + ], + "enabled": true, // Enable Docker image updates + "commitMessageSuffix": "fix: update Docker image", // Customize commit message suffix + "updateTypes": ["major", "minor", "patch", "digest"], // Allow updates for all version types + "ignore": [ + "talconfig.yaml" // Exclude any file named talconfig.yaml + ] + }, + "ignoreDeps": [ + // List any dependencies to ignore globally if needed + ] +} \ No newline at end of file diff --git a/.github/renovate/kinds/flux.json5 b/.github/renovate/kinds/flux.json5 index b5b775f2e0f..77b1b3b690e 100644 --- a/.github/renovate/kinds/flux.json5 +++ b/.github/renovate/kinds/flux.json5 @@ -1,12 +1,15 @@ { + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "flux": { "fileMatch": [ ".ya?ml(?:\\.j2)?$" // Matches all .yaml and .yml files, optionally with a .j2 extension ], "enabled": true, // Enable Flux updates "updateTypes": ["major", "minor", "patch"], // Allow updates for all version types - "commitMessageSuffix": "fix: update Flux resource" // Customize commit message suffix + "commitMessageSuffix": "fix: update Flux helm-release" // Customize commit message suffix }, + "ignore": [ // Add any global ignores here ] diff --git a/.github/renovate/kinds/githubactions.json5 b/.github/renovate/kinds/githubactions.json5 new file mode 100644 index 00000000000..d253387edad --- /dev/null +++ b/.github/renovate/kinds/githubactions.json5 @@ -0,0 +1,19 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + // GitHub Actions Renovate configuration for managing workflow updates + "github-actions": { + "fileMatch": [ + "\\.github/workflows/.*\\.ya?ml$", // Matches all workflow YAML files + "\\.github/workflows/.*\\.ya?ml\\.j2$" // Matches Jinja2 templated workflow files + ], + "enabled": true, // Enable GitHub Actions updates + "commitMessageSuffix": "fix: update GitHub Actions", // Customize commit message suffix + "updateTypes": ["major", "minor", "patch", "digest"], // Allow updates for all version types + "ignore": [ + // Specify any actions or workflows to ignore + ] + } + "ignoreDeps": [ + // List any dependencies to ignore globally if needed + ] +} diff --git a/.github/renovate/kinds/go.json5 b/.github/renovate/kinds/go.json5 new file mode 100644 index 00000000000..709c3ac652c --- /dev/null +++ b/.github/renovate/kinds/go.json5 @@ -0,0 +1,19 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + // Go modules Renovate configuration for managing Go module updates + "go": { + "fileMatch": [ + "go\\.mod$", // Matches Go module files + "go\\.sum$" // Matches Go sum files + ], + "enabled": true, // Enable Go module updates + "commitMessageSuffix": "fix: update Go modules", // Customize commit message suffix + "updateTypes": ["major", "minor", "patch", "digest"], // Allow updates for all version types + "ignore": [ + // Specify any modules or versions to ignore + ] + }, + "ignoreDeps": [ + // List any dependencies to ignore globally if needed + ] +} diff --git a/.github/renovate/kinds/helm-values.json5 b/.github/renovate/kinds/helm-values.json5 index 2bc52ee7f77..27185a0a5d6 100644 --- a/.github/renovate/kinds/helm-values.json5 +++ b/.github/renovate/kinds/helm-values.json5 @@ -1,10 +1,12 @@ { + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "helm-values": { "fileMatch": [ ".ya?ml(?:\\.j2)?$" // Matches all .yaml and .yml files, optionally with a .j2 extension ], "enabled": true, // Enable image reference updates in values.yaml - "updateTypes": ["major", "minor", "patch"], // Allow updates for all version types + "updateTypes": ["major", "minor", "patch", "digest"], // Allow updates for all version types "commitMessageSuffix": "fix: update image references" // Customize commit message suffix }, "ignore": [ diff --git a/.github/renovate/kinds/helm.json5 b/.github/renovate/kinds/helm.json5 index 198cc8fcbc0..0e41f1898ed 100644 --- a/.github/renovate/kinds/helm.json5 +++ b/.github/renovate/kinds/helm.json5 @@ -1,4 +1,6 @@ { + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "helm": { "fileMatch": [ "Chart\\.ya?ml(?:\\.j2)?$" // Matches Chart.yaml or Chart.yml files, optionally with a .j2 extension diff --git a/.github/renovate/main.json5 b/.github/renovate/main.json5 index 17ad34fc3b3..6f6e464dc09 100644 --- a/.github/renovate/main.json5 +++ b/.github/renovate/main.json5 @@ -1,5 +1,13 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>truecharts/public//.github/renovate/updates/digest.json5", + "github>truecharts/public//.github/renovate/updates/update.json5", + "github>truecharts/public//.github/renovate/updates/minor.json5", + "github>truecharts/public//.github/renovate/updates/major.json5", + "github>truecharts/public//.github/renovate/updates/calver.json5", + "github>truecharts/public//.github/renovate/special/automerge.json5" + ] // Main Renovate configuration that lists package rules for various paths "packageRules": [ { diff --git a/.github/renovate/special/automerge.json5 b/.github/renovate/special/automerge.json5 new file mode 100644 index 00000000000..1880eec85a0 --- /dev/null +++ b/.github/renovate/special/automerge.json5 @@ -0,0 +1,29 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "packageRules": [ + { + "description": ["Auto-merge container digests, patch and minor updates for trusted containers"], + "matchDatasources": ["docker"], + "automerge": true, + "automergeType": "branch", + "matchUpdateTypes": ["digest", "patch", "minor"], + "matchPackagePatterns": ["ghcr.io/bjw-s", "ghcr.io/onedr0p", "tccr.io/tccr/.*", "tccr.io/tccrbase/.*" ] + }, +{ + "description": ["Auto-merge chart updates, patch, and minor updates for OCI Helm charts from tccr.io/truecharts"], + "matchDatasources": ["helm"], // Use 'helm' datasource to match Helm charts + "automerge": true, + "automergeType": "branch", + "matchUpdateTypes": ["digest", "patch", "minor"], // Specify the types of updates to automate + "matchPackagePatterns": ["tccr.io/truecharts/.*"] // Matches all OCI Helm charts under tccr.io/truecharts +}, + { + "description": ["Auto-merge GitHub Actions for minor and patch"], + "matchManagers": ["github-actions"], + "matchDatasources": ["github-tags"], + "automerge": true, + "automergeType": "branch", + "matchUpdateTypes": ["minor", "patch"] + } + ] +} \ No newline at end of file diff --git a/.github/renovate/special/talconfig.json5 b/.github/renovate/special/talconfig.json5 new file mode 100644 index 00000000000..0a5fbbff84c --- /dev/null +++ b/.github/renovate/special/talconfig.json5 @@ -0,0 +1,26 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "packageRules": [ + { + "paths": ["**/talconfig.yaml"], // Matches any file named talconfig.yaml in any directory + "enabled": true, // Enable processing for these files + "datasource": "docker", // Specify that this is a Docker datasource + "depName": "ghcr.io/siderolabs/installer", // Specific dependency to process + "ignore": [ + // Specify any dependencies to ignore if necessary + ] + }, + { + "paths": ["**/talconfig.yaml"], // Matches any file named talconfig.yaml in any directory + "enabled": true, // Enable processing for these files + "datasource": "docker", // Specify that this is a Docker datasource + "depName": "ghcr.io/siderolabs/kubelet", // Specific dependency to process + "ignore": [ + // Specify any dependencies to ignore if necessary + ] + } + ], + "ignoreDeps": [ + // List any other dependencies to ignore globally if needed + ] +} \ No newline at end of file diff --git a/.github/renovate/updates/calver.json5 b/.github/renovate/updates/calver.json5 new file mode 100644 index 00000000000..08247a838ff --- /dev/null +++ b/.github/renovate/updates/calver.json5 @@ -0,0 +1,15 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "calver": { + "enabled": true, // Enable CalVer updates + "versioning": ["calver"], // Specify that this uses CalVer versioning + "commitMessageSuffix": "fix: update CalVer dependencies", // Customize commit message suffix + "regexVersioning": { + "versioning": "calver", // Specify CalVer as the versioning strategy + "versioningRegex": "^\\d{4}\\.\\d{1,2}(\\.\\d{1,2})?$" // Example regex for CalVer: YYYY.MM or YYYY.MM.DD + } + }, + "ignore": [ + // Add any paths or patterns to ignore specific CalVer updates, if necessary + ] +} \ No newline at end of file diff --git a/.github/renovate/updates/digest.json5 b/.github/renovate/updates/digest.json5 new file mode 100644 index 00000000000..5dfcdb89664 --- /dev/null +++ b/.github/renovate/updates/digest.json5 @@ -0,0 +1,11 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "digest": { + "enabled": true, // Enable digest updates + "automerge": true, + "commitMessageSuffix": "fix: update image digest" // Customize commit message suffix for digest updates + }, + "ignore": [ + // Add any paths or patterns to ignore specific digest updates, if necessary + ] +} \ No newline at end of file diff --git a/.github/renovate/updates/major.json5 b/.github/renovate/updates/major.json5 new file mode 100644 index 00000000000..e06ac920c70 --- /dev/null +++ b/.github/renovate/updates/major.json5 @@ -0,0 +1,10 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "major": { + "enabled": true, // Enable minor updates + "commitMessageSuffix": "major: BREAKING CHANGE update dependencies" // Customize commit message suffix for minor updates + }, + "ignore": [ + // Add any paths or patterns to ignore specific minor updates, if necessary + ] +} \ No newline at end of file diff --git a/.github/renovate/updates/minor.json5 b/.github/renovate/updates/minor.json5 new file mode 100644 index 00000000000..18049d85987 --- /dev/null +++ b/.github/renovate/updates/minor.json5 @@ -0,0 +1,10 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "minor": { + "enabled": true, // Enable minor updates + "commitMessageSuffix": "feat: update dependencies" // Customize commit message suffix for minor updates + }, + "ignore": [ + // Add any paths or patterns to ignore specific minor updates, if necessary + ] +} \ No newline at end of file diff --git a/.github/renovate/updates/patch.json5 b/.github/renovate/updates/patch.json5 new file mode 100644 index 00000000000..82c021b3cfc --- /dev/null +++ b/.github/renovate/updates/patch.json5 @@ -0,0 +1,11 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "patch": { + "enabled": true, // Enable patch updates + "automerge": true, + "commitMessageSuffix": "fix: update dependencies" // Customize commit message suffix for patch updates + }, + "ignore": [ + // Add any paths or patterns to ignore specific patch updates, if necessary + ] +} \ No newline at end of file