Skip to content

ci: fix Renovate config blocking 8.9 image updates and address config debt#6251

Open
eamonnmoloney wants to merge 5 commits into
mainfrom
fix/renovate-remove-8.9-alpha-versioning
Open

ci: fix Renovate config blocking 8.9 image updates and address config debt#6251
eamonnmoloney wants to merge 5 commits into
mainfrom
fix/renovate-remove-8.9-alpha-versioning

Conversation

@eamonnmoloney

@eamonnmoloney eamonnmoloney commented May 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes Renovate not updating Camunda 8.9 image tags, resolves deprecated config warnings, and adds a CI guard to prevent recurrence.

Fixes

1. Alpha versioning regex blocking 8.9 GA updates (root cause)

The Renovate config forced an alpha-only versioning regex on all Camunda images in 8.9 files:

versioning: 'regex:^(?<major>\d+)(.(?<minor>\d+))(.(?<patch>\d+))(-(?<prerelease>alpha[1-9]))$'

This requires an -alpha[1-9] suffix. Since 8.9 went GA (chart version 14.3.0), releases use plain semver (8.9.44, 8.9.5), which don't match. Renovate silently skipped them.

Fix: Removed 8.9 from both alpha versioning rules. Moved 8.9 into the GA patch-only image update group (consistent with 8.3-8.8). 8.10 remains under alpha versioning.

Stale images this unblocks:

  • camunda/console: 8.9.37 -> 8.9.44
  • camunda/connectors-bundle: 8.9.3 -> 8.9.4
  • camunda/optimize: 8.9.4 -> 8.9.5
  • camunda/camunda: 8.9.4 -> 8.9.5

2. CI guard: alpha versioning consistency test

New Go test package at scripts/renovate-config-check/ that prevents this regression:

  • TestAlphaVersioningConsistency -- parses renovate.json5, finds alpha versioning rules, cross-references against each chart's Chart.yaml version field. Fails if a GA chart is still in an alpha rule.
  • TestGAChartsHavePatchUpdatesEnabled -- ensures every GA chart version is included in a Renovate image update group.

The renovate-config-check.yaml workflow now also triggers on Chart.yaml changes, so when a chart transitions from alpha to GA, CI immediately flags the stale Renovate rule.

3. Deprecated helmv3 -> helm migration

Renovate renamed the helmv3 manager/datasource to helm in v37+. The config still used the old name in matchManagers and matchDatasources, triggering the "Config Migration Needed" warning on the Dependency Dashboard.

Fix: Replaced all helmv3 references with helm.

4. Missing Elasticsearch version constraints for 8.8 and 8.9

Charts 8.3-8.7 all had allowedVersions for the ES Docker image tag, but 8.8 and 8.9 had none. Without a cap, Renovate could bump ES to 9.x when released.

Fix: Added allowedVersions: '~8.18.0' for both 8.8 and 8.9, consistent with the existing constraint pattern.

Not fixed here (requires Mend app admin)

registry.camunda.cloud package lookups all fail with "no-result" (enterprise images: console-sm, keycloak-ee, modeler-restapi, vendor-ee/postgresql, vendor-ee/elasticsearch). The hostRules in the config are correct -- the DISTRO_CAMUNDA_DOCKER_REGISTRY_PASSWORD secret likely needs to be verified/updated in the Mend Renovate App settings.

Open thread to fix the secret: https://camunda.slack.com/archives/C5AHF1D8T/p1779944595148519

After merge

  1. Renovate detects outdated 8.9 images on next run -> creates update PR
  2. Check values-latest.yaml files check starts passing -> unblocks automerge of other Renovate PRs (deps: update camunda-platform-images (patch) #6154)
  3. "Config Migration Needed" warning clears from Dependency Dashboard
  4. Future alpha->GA transitions caught immediately by CI

8.9 is now GA (chart version 14.3.0) but the Renovate config still
forces alpha-only versioning regex for Camunda images in 8.9 files.
This regex requires an -alpha[1-9] suffix, causing Renovate to ignore
all GA releases (e.g., 8.9.44, 8.9.5) as invalid versions.

Changes:
- Remove 8.9 from the alpha versioning rules (keep 8.10 only)
- Move 8.9 to the GA patch-only group (consistent with 8.3-8.8)
- Keep 8.10 in the major/minor/patch group with alpha versioning

This unblocks Renovate from updating console (8.9.37->8.9.44),
connectors-bundle (8.9.3->8.9.4), optimize (8.9.4->8.9.5), and
camunda (8.9.4->8.9.5).
Copilot AI review requested due to automatic review settings May 28, 2026 04:29
@eamonnmoloney eamonnmoloney requested a review from a team as a code owner May 28, 2026 04:29
@eamonnmoloney eamonnmoloney requested review from Ian-wang-liyang and removed request for a team May 28, 2026 04:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes alpha-only versioning constraints for chart 8.9 in Renovate config since 8.9 is now GA, and moves it into the GA patch-only image update group alongside 8.3–8.8. 8.10 remains under alpha versioning.

Changes:

  • Removes 8.9 from the alpha versioning regex rule
  • Adds 8.9 files to the GA patch/pin image update group
  • Updates description of the alpha semver rule to only reference 8.10

Adds a Go test (scripts/renovate-config-check/) that validates Renovate's
alpha versioning rules only reference chart versions that are actually
still in alpha. This prevents the bug where a chart transitions to GA but
the alpha-only regex remains, silently blocking all image updates.

The test:
- Parses .github/renovate.json5 with a JSON5 library
- Finds all packageRules with alpha versioning regex
- Cross-references against each chart's Chart.yaml version field
- Fails with an actionable message if a GA chart is in an alpha rule
- Also validates that all GA charts have patch update rules enabled

The renovate-config-check.yaml workflow is extended to:
- Also trigger on Chart.yaml changes (catches GA transitions)
- Run the new consistency tests after the existing syntax validator
…/8.9

- Replace all 'helmv3' with 'helm' in matchManagers and matchDatasources
  (Renovate renamed this manager/datasource in v37+, triggering a
  'Config Migration Needed' warning on the Dependency Dashboard)

- Add Elasticsearch Docker image version constraints for 8.8 and 8.9
  charts (~8.18.0), preventing accidental bumps to ES 9.x when released.
  This is consistent with the existing constraints for 8.3-8.7.
@eamonnmoloney eamonnmoloney requested review from bkenez and removed request for Ian-wang-liyang May 28, 2026 04:54
@eamonnmoloney eamonnmoloney changed the title ci: remove alpha versioning constraint from 8.9 in Renovate config ci: fix Renovate config blocking 8.9 image updates and address config debt May 28, 2026
@eamonnmoloney

Copy link
Copy Markdown
Contributor Author

@bkenez I tested this Renovate config change on a fork before merge.

What I did:

  • Created/used fork branch: eamonnmoloney/camunda-platform-helm:renovate-pr-6251
  • Verified it matches this PR branch SHA: f409d4f2c1724e132e2dea1b9928d1ba6339b2c8
  • Ran renovate-config-validator
  • Ran the new Go checks from scripts/renovate-config-check
  • Ran Renovate against the fork branch with RENOVATE_DRY_RUN=full

Results:

  • renovate-config-validator passed.
  • go test ./... in scripts/renovate-config-check passed.
  • Renovate dry-run completed successfully against the fork branch.
  • The dry-run detected the expected 8.9 Camunda image patch updates, including:
    • camunda/console -> 8.9.44
    • camunda/connectors-bundle -> 8.9.4
    • camunda/optimize -> 8.9.5
    • camunda/camunda -> 8.9.5

Notes:

  • The registry.camunda.cloud lookup failures are not treated as a blocker for this PR, as those are already being handled separately through the IT Slack thread.
  • For the fork dry-run I provided a dummy DISTRO_CAMUNDA_DOCKER_REGISTRY_PASSWORD just to satisfy Renovate config interpolation, so private registry lookups were expected to fail there.

@CLAassistant

CLAassistant commented May 31, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@bkenez bkenez left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a go.mod version mismatch: scripts/renovate-config-check/go.mod declares go 1.25.0 but .tool-versions pins golang 1.26.3. The setup-go step reads from go.mod, so CI installs a different version than the rest of the repo. Suggest bumping to match before merge. @eamonnmoloney

@eamonnmoloney

Copy link
Copy Markdown
Contributor Author

@claude[agent] please do this "There is a go.mod version mismatch: scripts/renovate-config-check/go.mod declares go 1.25.0 but .tool-versions pins golang 1.26.3. The setup-go step reads from go.mod, so CI installs a different version than the rest of the repo. Suggest bumping to match before merge. @eamonnmoloney"

@Claude

Claude AI commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

@claude[agent] please do this "There is a go.mod version mismatch: scripts/renovate-config-check/go.mod declares go 1.25.0 but .tool-versions pins golang 1.26.3. The setup-go step reads from go.mod, s...

Done. Updated scripts/renovate-config-check/go.mod from go 1.25.0 to go 1.26 to match .tool-versions. Commit: 757fcfc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants