[
https://issues.apache.org/jira/browse/FLINK-40155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Purushottam Sinha updated FLINK-40155:
--------------------------------------
Description:
The operator's Helm CI and e2e tests run only on Helm 3, which reaches
end-of-life in November 2026. Helm 4 (4.1.1 GA) should be covered,
including real install/e2e testing — not just static checks.
The chart itself needs no changes: it is an apiVersion v2 chart that
Helm 4 installs natively (template / install / upgrade / uninstall /
CRD install all work as-is; a v3 chart is intentionally NOT adopted as
it would break Helm 3). The work is CI/e2e coverage:
- Run the Helm lint + helm-unittest job as a matrix over Helm 3 and 4.
- Pass --verify=false to the helm-unittest plugin install on Helm 4
(Helm 4 rejects git-based plugin installs without provenance; the flag
does not exist on Helm 3). Keep helm-unittest at 0.8.1 — v1.1.1's
platformHooks manifest field is unparseable by the pinned Helm 3.17.3.
- Keep helm lint --strict on Helm 3; drop it on Helm 4, where it flags
the Maven-style X.Y-SNAPSHOT dev version as non-SemVerV2.
- Add a Helm 4 smoke leg to the e2e workflow (install -> run job ->
uninstall on a live cluster).
- Document that the chart supports Helm 3 and Helm 4.
was:
Problem
Helm 4 is GA (4.1.1) and Helm 3 reaches EOL 2026-11-11. The operator's chart CI
and e2e are pinned to Helm 3 and unverified on Helm 4. Static checks alone
would claim "Helm 4 support" without ever installing the operator via Helm 4,
so support and e2e are one deliverable.
Evidence
- helm lint --strict (ci.yml:100) fails on Helm 4.1.1: version
'1.16-SNAPSHOT' is not valid SemVerV2; Helm 3.19 passes it silently
(Chart.yaml).
- helm-unittest 0.8.1 install (ci.yml:72) fails on Helm 4; 1.1.1 +
--verify=false → 62 tests pass.
- e2e.yaml has no Helm setup — uses the runner's Helm 3 (install :84,
uninstall :114). helm template renders 14 resources on Helm 4.
Proposed fix
- Fix chart version to valid semver (check
tools/releasing/update_branch_version.sh:65-66); bump helm-unittest ≥1.1.0 +
--verify=false.
- Matrix HELM_VERSION (v3.17.3 + v4.x) across lint/unittest and e2e.yaml;
verify chart-testing under Helm 4.
> Kubernetes Operator: support and end-to-end test Helm 4
> -------------------------------------------------------
>
> Key: FLINK-40155
> URL: https://issues.apache.org/jira/browse/FLINK-40155
> Project: Flink
> Issue Type: Improvement
> Components: Kubernetes Operator
> Reporter: Purushottam Sinha
> Priority: Major
> Labels: pull-request-available
>
> The operator's Helm CI and e2e tests run only on Helm 3, which reaches
> end-of-life in November 2026. Helm 4 (4.1.1 GA) should be covered,
> including real install/e2e testing — not just static checks.
> The chart itself needs no changes: it is an apiVersion v2 chart that
> Helm 4 installs natively (template / install / upgrade / uninstall /
> CRD install all work as-is; a v3 chart is intentionally NOT adopted as
> it would break Helm 3). The work is CI/e2e coverage:
> - Run the Helm lint + helm-unittest job as a matrix over Helm 3 and 4.
> - Pass --verify=false to the helm-unittest plugin install on Helm 4
> (Helm 4 rejects git-based plugin installs without provenance; the flag
> does not exist on Helm 3). Keep helm-unittest at 0.8.1 — v1.1.1's
> platformHooks manifest field is unparseable by the pinned Helm 3.17.3.
> - Keep helm lint --strict on Helm 3; drop it on Helm 4, where it flags
> the Maven-style X.Y-SNAPSHOT dev version as non-SemVerV2.
> - Add a Helm 4 smoke leg to the e2e workflow (install -> run job ->
> uninstall on a live cluster).
> - Document that the chart supports Helm 3 and Helm 4.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)