From 50f7ae09fbab76b5944134185409cb60936317d7 Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 15:54:57 -0500 Subject: [PATCH 1/7] fix: automate tested dependency updates --- .github/workflows/on-pr.yaml | 2 +- renovate.json | 56 +++++++++++++++++++++++++++++++----- upbound.yaml | 4 +-- 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/.github/workflows/on-pr.yaml b/.github/workflows/on-pr.yaml index 934537f..66cadee 100644 --- a/.github/workflows/on-pr.yaml +++ b/.github/workflows/on-pr.yaml @@ -10,7 +10,7 @@ on: - reopened - synchronize paths: - - ".github/workflows/on-pr.yaml" + - ".github/workflows/**" - ".gitops/**" - "apis/**" - "examples/**" diff --git a/renovate.json b/renovate.json index 74922bc..3fdf3fa 100644 --- a/renovate.json +++ b/renovate.json @@ -12,10 +12,20 @@ }, "packageRules": [ { - "description": "Automerge minor and patch updates that pass all checks", - "matchUpdateTypes": ["minor", "patch"], + "description": "Automerge minor and patch updates after all checks pass", + "matchUpdateTypes": [ + "minor", + "patch" + ], "automerge": true }, + { + "description": "Require manual review for major updates", + "matchUpdateTypes": [ + "major" + ], + "automerge": false + }, { "description": "Disable automatic updates for all hops-ops Docker images", "matchDatasources": [ @@ -27,7 +37,7 @@ ] }, { - "description": "Group all AWS provider packages together for batched updates", + "description": "Group AWS provider-family packages", "matchPackageNames": [ "/provider-family-aws/", "/provider-aws-.*/" @@ -88,7 +98,24 @@ }, { "customType": "regex", - "fileMatch": ["\\.yaml\\.gotmpl$"], + "description": "Annotated runtime dependencies in schemas, templates, examples, and tests", + "managerFilePatterns": [ + "apis/**/*.yaml", + "examples/**/*.yaml", + "functions/**/*.yaml.gotmpl", + "tests/**/*.k" + ], + "matchStrings": [ + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s+|:=\\s*|[\"']?(?:version|chartVersion|tag|default)[\"']?\\s*(?:[=:]\\s*|\\s+))[\"']?(?v?[0-9][^\\s\"'}]*)", + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s+|[\"']?image[\"']?\\s*[=:]\\s*)[\"']?[A-Za-z0-9._/-]+:(?v?[A-Za-z0-9][^\\s\"'}]*)", + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?package\\s*=\\s*\"[^\"]+:(?[^\"]+)\"" + ] + }, + { + "customType": "regex", + "managerFilePatterns": [ + "/\\.yaml\\.gotmpl$/" + ], "matchStrings": [ "\\s*chart:\\s*name:\\s+(?.*?)\\s*repository:\\s*(?.*?)\\s*version:\\s*\"?(?.*?)\"?\\s" ], @@ -96,11 +123,26 @@ }, { "customType": "regex", - "fileMatch": ["\\.gitops/deploy/Chart\\.yaml$"], - "matchStrings": ["appVersion:\\s+(?.*)"], + "managerFilePatterns": [ + "/\\.gitops/deploy/Chart\\.yaml$/" + ], + "matchStrings": [ + "appVersion:\\s+(?.*)" + ], "depNameTemplate": "aws-load-balancer-controller", "registryUrlTemplate": "https://aws.github.io/eks-charts", "datasourceTemplate": "helm" } - ] + ], + "ignorePaths": [ + "**/node_modules/**", + "**/bower_components/**", + "**/vendor/**", + "**/__tests__/**", + "**/test/**", + "**/__fixtures__/**" + ], + "automergeType": "pr", + "platformAutomerge": false, + "ignoreTests": false } diff --git a/upbound.yaml b/upbound.yaml index 64bcf03..b7c5b88 100644 --- a/upbound.yaml +++ b/upbound.yaml @@ -11,11 +11,11 @@ spec: - apiVersion: pkg.crossplane.io/v1 kind: Function package: xpkg.crossplane.io/crossplane-contrib/function-auto-ready - version: '>=v0.7.0' + version: '>=v0' - apiVersion: pkg.crossplane.io/v1 kind: Configuration package: ghcr.io/hops-ops/aws-pod-identity - version: '>=v0.13.0' + version: '>=v0' description: Installs the AWS Load Balancer Controller Helm chart with AWS Pod Identity. license: Apache-2.0 maintainer: Patrick Lee Scott From 02ca5c448664b1e2d9a8085ea38c2fbfee40378a Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 16:59:07 -0500 Subject: [PATCH 2/7] fix: bound dependencies below next major --- renovate.json | 16 ++++++++++++---- upbound.yaml | 6 +++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/renovate.json b/renovate.json index 3fdf3fa..b6166aa 100644 --- a/renovate.json +++ b/renovate.json @@ -71,30 +71,38 @@ { "customType": "regex", "description": "hops-ops Crossplane configurations (tracked via GitHub Releases)", + "matchStringsStrategy": "recursive", "managerFilePatterns": [ "apis/**/configuration.yaml", "upbound.yaml" ], "matchStrings": [ - "\\s*(configuration|function|package|provider):\\s*ghcr\\.io/hops-ops/(?.*?)\\s*version:\\s*(\"|')>=(?.*?)(\"|')\\s*" + "\\s*(configuration|function|package|provider):\\s*ghcr\\.io/hops-ops/(?.*?)\\s*version:\\s*(\"|')>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*=v{{{newMajor}}} [^/]+)\\/(?[^/]+)\\/(?[^/\\s]+)\\s*version:\\s*(\"|')>=(?.*?)(\"|')\\s*" + "\\s*(configuration|function|package|provider):\\s*(?[^/]+)\\/(?[^/]+)\\/(?[^/\\s]+)\\s*version:\\s*(\"|')>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*=v{{{newMajor}}} =v1' + version: '>=v1 =v0' + version: '>=v0 =v0' + version: '>=v0 From c129d533ee5ea366107ced2e89416334d61e3232 Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 17:10:42 -0500 Subject: [PATCH 3/7] fix: avoid overlapping Renovate extraction --- renovate.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/renovate.json b/renovate.json index b6166aa..519a4d4 100644 --- a/renovate.json +++ b/renovate.json @@ -87,14 +87,14 @@ }, { "customType": "regex", - "description": "Crossplane packages from other registries (tracked via Docker tags)", + "description": "Crossplane packages from xpkg registries (tracked via Docker tags)", "matchStringsStrategy": "recursive", "managerFilePatterns": [ "apis/**/configuration.yaml", "upbound.yaml" ], "matchStrings": [ - "\\s*(configuration|function|package|provider):\\s*(?[^/]+)\\/(?[^/]+)\\/(?[^/\\s]+)\\s*version:\\s*(\"|')>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*xpkg\\.[^/]+)\\/(?[^/]+)\\/(?[^/\\s]+)\\s*version:\\s*(\"|')>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s+|:=\\s*|[\"']?(?:version|chartVersion|tag|default)[\"']?\\s*(?:[=:]\\s*|\\s+))[\"']?(?v?[0-9][^\\s\"'}]*)", - "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s+|[\"']?image[\"']?\\s*[=:]\\s*)[\"']?[A-Za-z0-9._/-]+:(?v?[A-Za-z0-9][^\\s\"'}]*)", + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?[\"']?image[\"']?\\s*[=:]\\s*[\"']?[A-Za-z0-9._/-]+:(?v?[A-Za-z0-9][^\\s\"'}]*)", "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?package\\s*=\\s*\"[^\"]+:(?[^\"]+)\"" ] }, From 70d381176476c200c07466d0b1df597cbf2f616b Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 17:24:37 -0500 Subject: [PATCH 4/7] fix: address dependency review findings --- README.md | 6 +++--- renovate.json | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a95fae9..9120585 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,11 @@ A Crossplane Configuration package that installs the AWS Load Balancer Controlle - Crossplane installed in the cluster - Crossplane providers: - - `provider-helm` (>=v1.0.6) + - `provider-helm` (>=v1 =v0.5.0) + - `aws-pod-identity` (>=v0 =v0.6.0) + - `function-auto-ready` (>=v0 \\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s+|:=\\s*|[\"']?(?:version|chartVersion|tag|default)[\"']?\\s*(?:[=:]\\s*|\\s+))[\"']?(?v?[0-9][^\\s\"'}]*)", - "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?[\"']?image[\"']?\\s*[=:]\\s*[\"']?[A-Za-z0-9._/-]+:(?v?[A-Za-z0-9][^\\s\"'}]*)", + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s*:\\s*|[\"']?image[\"']?\\s*[=:]\\s*)[\"']?[A-Za-z0-9._/-]+:(?v?[A-Za-z0-9][^\\s\"'}]*)", "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?package\\s*=\\s*\"[^\"]+:(?[^\"]+)\"" ] }, @@ -148,7 +148,8 @@ "**/vendor/**", "**/__tests__/**", "**/test/**", - "**/__fixtures__/**" + "**/__fixtures__/**", + "**/fixtures/**" ], "automergeType": "pr", "platformAutomerge": false, From 901095fa43a07d5d5b848ec9db53714d71aa9c60 Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 17:25:56 -0500 Subject: [PATCH 5/7] fix: scope package dependency extraction --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index cd2e2bf..5420872 100644 --- a/renovate.json +++ b/renovate.json @@ -116,7 +116,7 @@ "matchStrings": [ "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s+|:=\\s*|[\"']?(?:version|chartVersion|tag|default)[\"']?\\s*(?:[=:]\\s*|\\s+))[\"']?(?v?[0-9][^\\s\"'}]*)", "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?(?:default\\s*:\\s*|[\"']?image[\"']?\\s*[=:]\\s*)[\"']?[A-Za-z0-9._/-]+:(?v?[A-Za-z0-9][^\\s\"'}]*)", - "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?package\\s*=\\s*\"[^\"]+:(?[^\"]+)\"" + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: registryUrl=(?\\S+))?\\s+[^\\n]*?package\\s*=\\s*\"xpkg\\.[^/]+/[^\"]+:(?[^\"]+)\"" ] }, { From 538e28e24cad7e02d93d52ef1c3b010a20fba413 Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 17:30:11 -0500 Subject: [PATCH 6/7] fix: validate Renovate configuration changes --- .github/workflows/on-pr.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/on-pr.yaml b/.github/workflows/on-pr.yaml index 66cadee..2d5138a 100644 --- a/.github/workflows/on-pr.yaml +++ b/.github/workflows/on-pr.yaml @@ -10,6 +10,7 @@ on: - reopened - synchronize paths: + - 'renovate.json' - ".github/workflows/**" - ".gitops/**" - "apis/**" From 0cd845c48be600bd6aeee0d8bd913d07e50325e7 Mon Sep 17 00:00:00 2001 From: Patrick Lee Scott Date: Sat, 29 Aug 2026 18:00:15 -0500 Subject: [PATCH 7/7] fix: use compatible major dependency ranges --- README.md | 6 +++--- renovate.json | 12 ++++++------ upbound.yaml | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 9120585..4ce8af8 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,11 @@ A Crossplane Configuration package that installs the AWS Load Balancer Controlle - Crossplane installed in the cluster - Crossplane providers: - - `provider-helm` (>=v1 =v0 =v0 .*?)\\s*version:\\s*(\"|')>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*.*?)\\s*version:\\s*(\"|')\\^v?[0-9]+(\"|')\\s*", + "(?\\^v?[0-9]+)" ], "datasourceTemplate": "github-releases", "versioningTemplate": "npm", "packageNameTemplate": "hops-ops/{{depName}}", - "autoReplaceStringTemplate": ">=v{{{newMajor}}} xpkg\\.[^/]+)\\/(?[^/]+)\\/(?[^/\\s]+)\\s*version:\\s*(\"|')>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*>=v?[0-9]+(?:\\.[0-9]+){0,2}(?:\\s*xpkg\\.[^/]+)\\/(?[^/]+)\\/(?[^/\\s]+)\\s*version:\\s*(\"|')\\^v?[0-9]+(\"|')\\s*", + "(?\\^v?[0-9]+)" ], "datasourceTemplate": "docker", "versioningTemplate": "npm", "registryUrlTemplate": "https://{{registryUrl}}", "depNameTemplate": "{{orgName}}/{{repoName}}", "packageNameTemplate": "{{orgName}}/{{repoName}}", - "autoReplaceStringTemplate": ">=v{{{newMajor}}} =v1 =v0 =v0