helmfile/test/integration/test-cases
Aditya Menon d40bfced56
test: add integration test for issue #2291 (CRD preservation with strategicMergePatches) (#2292)
* test: add integration test for issue #2291 with all fixes

Add comprehensive integration test for issue #2291 that validates CRD
preservation when using strategicMergePatches with chartify.

Problem:
When using strategicMergePatches, chartify was relocating CRDs from
templates/crds/ to root crds/ directory, changing how Helm manages them.
This caused helm diff to incorrectly show CRDs as being removed, even
though they were still present.

Solution:
Chartify now preserves the original CRD location in templates/crds/.
This integration test validates the fix by:
1. Templating a chart with CRDs in templates/crds/
2. Applying the chart with strategicMergePatches
3. Verifying CRD is installed
4. Running helm diff to ensure CRD is NOT marked for removal
5. Verifying the strategic merge patch was applied

Additional fixes included in this commit:
- Fixed grep command error when matching YAML deletion patterns
- Updated expected test output for Helm 4 diff behavior
- Fixed EXIT trap interference between test cases
- Added --plain-http flag for Helm 4 OCI registry compatibility
- Ensured CRD templates are valid (cluster-scoped, no namespace)
- Fixed strategic merge patch namespace matching

Test coverage:
- CRD preservation in templates/crds/ subdirectory
- Strategic merge patch application
- Helm diff behavior with CRDs
- Integration with chartify kustomize processing

Fixes #2291

Signed-off-by: Aditya Menon <amenon@canarytechnologies.com>

* switch chartify package to upstream one

Signed-off-by: Aditya Menon <amenon@canarytechnologies.com>

* implement copilot suggestion

Signed-off-by: Aditya Menon <amenon@canarytechnologies.com>

---------

Signed-off-by: Aditya Menon <amenon@canarytechnologies.com>
2025-11-25 09:19:41 +08:00
..
chart-needs feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
chartify feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
chartify-jsonPatches-and-strategicMergePatches Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
chartify-with-non-chart-dir build: update Helm and plugin versions in CI and Dockerfiles (#2059) 2025-05-30 11:45:28 +08:00
cli-overwrite-environment-values Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
deps-kustomization-i-1402/input skip helm dep up for kustomizations (#1424) 2024-03-26 07:45:39 +08:00
deps-mr-1011/input run deps without chart preparation (#1011) 2024-02-14 17:16:48 +08:00
diff-args feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
fetch-forl-local-chart/input refactor(filesystem): add CopyDir method and optimize Fetch function (#2111) 2025-07-28 16:10:25 -04:00
happypath Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
hcl-secrets Feature/support env hcl and interpolations (#1423) 2024-04-22 08:02:14 +08:00
helmfile-double-fetch/input fix: oci pull directory conflict when download twice (#914) 2023-07-23 21:10:03 +08:00
include-template-func feat: include func support more template functions (#1277) 2024-01-09 14:33:50 +08:00
issue-1749/input Ensure 'helm repo add' is also not pollute on helmfile template (#1887) 2025-01-22 20:42:33 +08:00
issue-1893/input Chartify v0.20.8 update (#1908) 2025-02-05 21:42:05 +08:00
issue-2247 Fix four critical bugs: array merging (#2281), AWS SDK logging (#2270), helmDefaults skip flags (#2269), and OCI chart versions (#2247) (#2288) 2025-11-22 09:27:51 +08:00
issue-2271/input 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
issue-2275/input 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
issue-2280/input 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
issue-2281-array-merge Fix four critical bugs: array merging (#2281), AWS SDK logging (#2270), helmDefaults skip flags (#2269), and OCI chart versions (#2247) (#2288) 2025-11-22 09:27:51 +08:00
issue-2291/input test: add integration test for issue #2291 (CRD preservation with strategicMergePatches) (#2292) 2025-11-25 09:19:41 +08:00
kustomized-fetch/input fix fetch does not work with kustomized releases (#624) 2023-01-15 09:19:01 +08:00
postrender feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
regression/input Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
secretssops Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
skip-diff-output build: update Helm and plugin versions in CI and Dockerfiles (#2059) 2025-05-30 11:45:28 +08:00
state-values-set-cli-args-in-environments feat: inject cli state values (--state-values-set) into environment templating context (#1917) 2025-02-14 20:49:07 +08:00
suppress-output-line-regex test: add integration test for issue #2291 (CRD preservation with strategicMergePatches) (#2292) 2025-11-25 09:19:41 +08:00
v1-subhelmfile-multi-bases-with-array-values Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
yaml-overwrite Use gopkg.in/yaml.v2 for Helmfile v0.x (#609) 2023-01-04 18:17:24 +09:00
chart-needs.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
chartify-jsonPatches-and-strategicMergePatches.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
chartify-with-non-chart-dir.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
chartify.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
cli-overwrite-environment-values.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
deps-kustomization-i-1402.sh skip helm dep up for kustomizations (#1424) 2024-03-26 07:45:39 +08:00
deps-mr-1011.sh run deps without chart preparation (#1011) 2024-02-14 17:16:48 +08:00
diff-args.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
fetch-forl-local-chart.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
happypath.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
hcl-secrets.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
helmfile-double-fetch.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
include-template-func.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
issue-1749.sh Add integration tests for #1749 (#1766) 2024-11-06 08:12:20 +08:00
issue-1893.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
issue-2247.sh test: add integration test for issue #2291 (CRD preservation with strategicMergePatches) (#2292) 2025-11-25 09:19:41 +08:00
issue-2271.sh 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
issue-2275.sh 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
issue-2280.sh 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
issue-2281-array-merge.sh Fix four critical bugs: array merging (#2281), AWS SDK logging (#2270), helmDefaults skip flags (#2269), and OCI chart versions (#2247) (#2288) 2025-11-22 09:27:51 +08:00
issue-2291.sh test: add integration test for issue #2291 (CRD preservation with strategicMergePatches) (#2292) 2025-11-25 09:19:41 +08:00
kustomized-fetch.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
postrender.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
regression.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
secretssops.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
skip-diff-output.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
state-values-set-cli-args-in-environments.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
suppress-output-line-regex.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
v1-subhelmfile-multi-bases-with-array-values.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
yaml-overwrite.sh feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00