This commit adds comprehensive support for Helm 4 while maintaining full backward compatibility with Helm 3. The implementation includes: - Updated helm version detection to support both Helm 3 and Helm 4 - Added HELMFILE_HELM4 environment variable to control Helm version - Modified helm execution paths to handle version-specific binaries - Updated helm plugin installation to support split architecture - Helm 4: Uses split plugin architecture (3 separate .tgz files) - helm-secrets.tgz - helm-secrets-getter.tgz - helm-secrets-post-renderer.tgz - Helm 3: Continues using single plugin installation - Updated Dockerfiles, CI workflows, and core installation code - Helm 4 requires post-renderers to be plugins, not executable scripts - Created Helm plugin structure for integration tests - Updated helmfile.yaml templates to dynamically select renderer type - Added test plugins: add-cm, add-cm1, add-cm2 - Updated integration tests for Helm 3/4 compatibility - Created Helm 4 variant expected output files - Fixed test determinism issues (repo cleanup between iterations) - Added version-specific output filtering for warnings/messages - Updated workflows to test both Helm 3 and Helm 4 - Matrix testing across Helm versions - Updated helm-diff to v3.14.0 for compatibility - Updated README and docs with Helm 4 information - Added migration guidance - Updated version requirements All changes are backward compatible - existing Helm 3 users will see no behavior changes. fix: update Helm 4 lint expected output to match filtered output The grep filter removes the semver warning, so the expected output should not include it. Updated lint-helm4 files to match the filtered output (warning removed, no extra blank line). Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> |
||
|---|---|---|
| .. | ||
| testdata | ||
| .gitignore | ||
| README.md | ||
| snapshot_test.go | ||
| tmpl_test.go | ||
README.md
This directory contains a set of Go test source and testdata
to test the helmfile template's rendering result by calling helmfile build or helmfile template on test input
and comparing the output against the snapshot.
The testdata directory is composed of:
charts: The Helm charts used from within test helmfile configs (snapshpt/*/input.yaml) as local charts and remote chartssnapshot/$NAME/input.yaml: The input helmfile config for the test case of$NAMEsnapshot/$NAME/output.yaml: The expected output of the helmfile commandsnapshot/$NAME/config.yaml: The snapshot test configuration file. See theConfigstruct defined insnapshot_test.gofor more information