Skip to content

revert(ci): revert "chore(deps): update dependency helm to v4"#439

Merged
rm3l merged 1 commit into
redhat-developer:mainfrom
rm3l:ci/revert_helm-v4-upgrade
Jun 17, 2026
Merged

revert(ci): revert "chore(deps): update dependency helm to v4"#439
rm3l merged 1 commit into
redhat-developer:mainfrom
rm3l:ci/revert_helm-v4-upgrade

Conversation

@rm3l

@rm3l rm3l commented Jun 17, 2026

Copy link
Copy Markdown
Member

Description of the change

Helm v4.2.1 causes "helm install" to hang indefinitely, ignoring the
--timeout flag entirely. No chart pods are ever created and helm
produces no output until the runner kills it after 2+ hours.

This reverts PR #430 and commit 26c43ea.

We'll need to investigate later. #437 is adding a way to catch those issues earlier in such dependency update PRs, by forcing the chart testing tool to run on all charts, even if no chart was modified.

Which issue(s) does this PR fix or relate to

Nightly job on main took 6+ hours before being canceled: https://github.com/redhat-developer/rhdh-chart/actions/runs/27651979368/job/81777873045

How to test changes / Special notes to the reviewer

Checklist

  • For each Chart updated, version bumped in the corresponding Chart.yaml according to Semantic Versioning.
  • For each Chart updated, variables are documented in the values.yaml and added to the corresponding README.md. The pre-commit utility can be used to generate the necessary content. Run pre-commit run --all-files to run the hooks and then push any resulting changes. The pre-commit Workflow will enforce this and warn you if needed.
  • JSON Schema template updated and re-generated the raw schema via the pre-commit hook.
  • Tests pass using the Chart Testing tool and the ct lint command.
  • If you updated the orchestrator-infra chart, make sure the versions of the Knative CRDs are aligned with the versions of the CRDs installed by the OpenShift Serverless operators declared in the values.yaml file. See Installing Knative Eventing and Knative Serving CRDs for more details.

…-developer#430)"

Helm v4.2.1 causes "helm install" to hang indefinitely, ignoring the
--timeout flag entirely. No chart pods are ever created and helm
produces no output until the runner kills it after 2+ hours.

This reverts commit 26c43ea.
@rm3l rm3l requested a review from a team as a code owner June 17, 2026 07:14
@rm3l rm3l changed the title revert(ci): revert "chore(deps): update dependency helm to v4 (#430)" revert(ci): revert "chore(deps): update dependency helm to v4" Jun 17, 2026
@sonarqubecloud

Copy link
Copy Markdown

@rhdh-qodo-merge

Copy link
Copy Markdown

PR Summary by Qodo

Revert CI Helm upgrade to v4; pin Helm back to v3.21.1
🐞 Bug fix ⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

Description

• Revert CI Helm version to v3.21.1 to avoid v4.2.1 install hangs.
• Restore reliable chart linting/rendering across all GitHub Actions workflows.
• Prevent long-running jobs that ignore Helm timeouts and stall runners.
Diagram

graph TD
  W["GitHub Workflows"] --> A{{"azure/setup-helm@v5"}} --> H["Helm v3.21.1"]
  W --> C["Composite action: test-charts"] --> A
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Keep Helm v4 and wrap Helm calls with a hard OS-level timeout
  • ➕ Retains forward progress toward Helm v4 adoption
  • ➕ Prevents indefinite hangs even if Helm ignores its own --timeout
  • ➖ Adds CI complexity and can mask underlying Helm v4 issues
  • ➖ May introduce flaky failures if charts legitimately need longer runtime
2. Run Helm in a pinned container image (toolchain containerization)
  • ➕ More deterministic environment than runner-installed binaries
  • ➕ Easier to test/roll forward different Helm builds (including patches)
  • ➖ More refactoring of workflows and potential performance overhead
  • ➖ Does not inherently solve Helm v4 hanging if the binary remains problematic
3. Gate dependency bumps with expanded chart-testing coverage (pre-merge)
  • ➕ Catches Helm/tooling regressions earlier during dependency update PRs
  • ➕ Reduces likelihood of main-branch nightly stalls
  • ➖ Longer CI time for dependency update PRs
  • ➖ Still requires choosing a stable Helm version in the meantime

Recommendation: Reverting to Helm v3.21.1 is the best short-term mitigation because it immediately restores CI reliability with minimal change surface. Consider adding a hard timeout wrapper and/or expanding chart-testing coverage for future dependency bumps so hangs are caught before merging, then re-attempt Helm v4 once root cause is understood.

Files changed (6) +6 / -6

Other (6) +6 / -6
action.ymlPin Helm back to v3.21.1 in test-charts composite action +1/-1

Pin Helm back to v3.21.1 in test-charts composite action

• Reverts the Helm setup step to install Helm v3.21.1 instead of v4.2.1. This avoids the observed 'helm install' hang during chart tests.

.github/actions/test-charts/action.yml

lint.yamlRevert Helm version to v3.21.1 in lint workflow +1/-1

Revert Helm version to v3.21.1 in lint workflow

• Updates the azure/setup-helm step to install Helm v3.21.1. This prevents lint jobs from stalling due to Helm v4.2.1 hangs.

.github/workflows/lint.yaml

pre-commit.yamlRevert Helm version to v3.21.1 in pre-commit workflow +1/-1

Revert Helm version to v3.21.1 in pre-commit workflow

• Pins Helm back to v3.21.1 in CI to keep helm-related hooks/tools stable. Removes reliance on Helm v4.2.1 which can hang indefinitely.

.github/workflows/pre-commit.yaml

snyk.yamlRevert Helm version to v3.21.1 in Snyk render workflow +1/-1

Revert Helm version to v3.21.1 in Snyk render workflow

• Pins Helm to v3.21.1 for template rendering steps used by Snyk scanning. Mitigates Helm v4.2.1 hangs during render/install-related operations.

.github/workflows/snyk.yaml

sync-lightspeed-configs.yamlRevert Helm version to v3.21.1 in Lightspeed sync workflow +1/-1

Revert Helm version to v3.21.1 in Lightspeed sync workflow

• Changes the workflow Helm setup to install v3.21.1. Prevents sync jobs from stalling due to Helm v4.2.1 behavior.

.github/workflows/sync-lightspeed-configs.yaml

sync-upstream-backstage.yamlRevert Helm version to v3.21.1 in upstream Backstage sync workflow +1/-1

Revert Helm version to v3.21.1 in upstream Backstage sync workflow

• Pins Helm back to v3.21.1 during sync operations. Avoids the Helm v4.2.1 hang that can block the runner until it is killed.

.github/workflows/sync-upstream-backstage.yaml

@rhdh-qodo-merge

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Qodo Logo

@rm3l rm3l merged commit cc3bd35 into redhat-developer:main Jun 17, 2026
5 of 6 checks passed
@rm3l rm3l deleted the ci/revert_helm-v4-upgrade branch June 17, 2026 07:21
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.

1 participant