test: add integration test for issue-2515 (post-renderer with output-dir-template)

Verifies that --post-renderer output is written to files when
--output-dir-template is set, instead of pre-renderer content.

Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
yxxhero 2026-04-10 07:30:54 +08:00 committed by yxxhero
parent 8de2d66952
commit 9685ec2bb1
4 changed files with 50 additions and 0 deletions

View File

@ -115,6 +115,7 @@ ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${tes
. ${dir}/test-cases/yaml-overwrite.sh
. ${dir}/test-cases/chart-needs.sh
. ${dir}/test-cases/postrender.sh
. ${dir}/test-cases/issue-2515.sh
. ${dir}/test-cases/chartify.sh
. ${dir}/test-cases/deps-mr-1011.sh
. ${dir}/test-cases/deps-kustomization-i-1402.sh

View File

@ -0,0 +1,34 @@
issue_2515_case_dir="${cases_dir}/issue-2515"
issue_2515_tmp=$(mktemp -d)
if [ "${HELMFILE_HELM4}" = "1" ]; then
info "Skipping issue-2515 test for Helm 4 (post-renderer requires plugin)"
test_start "issue-2515 post-renderer with output-dir-template (skipped for Helm 4)"
test_pass "issue-2515 post-renderer with output-dir-template (skipped for Helm 4)"
else
test_start "issue-2515 post-renderer with output-dir-template"
info "Testing that --post-renderer output is written to files when --output-dir-template is set"
issue_2515_output_dir="${issue_2515_tmp}/output"
${helmfile} -f ${issue_2515_case_dir}/input/helmfile.yaml \
template \
--post-renderer ${issue_2515_case_dir}/input/filter.bash \
--output-dir-template "${issue_2515_output_dir}/{{.Release.Name}}" \
&> ${issue_2515_tmp}/log || fail "helmfile template should not fail"
issue_2515_output_file="${issue_2515_output_dir}/issue-2515/issue-2515.yaml"
if [ ! -f "${issue_2515_output_file}" ]; then
fail "Expected output file ${issue_2515_output_file} to exist"
fi
if grep -q "original-cm" "${issue_2515_output_file}"; then
fail "Output should contain post-renderer output (Namespace), not original templates (original-cm). File contents: $(cat ${issue_2515_output_file})"
fi
if ! grep -q "postrendered" "${issue_2515_output_file}"; then
fail "Output should contain post-renderer content (namespace postrendered). File contents: $(cat ${issue_2515_output_file})"
fi
test_pass "issue-2515 post-renderer with output-dir-template"
fi

View File

@ -0,0 +1,2 @@
#!/usr/bin/env bash
printf -- "---\napiVersion: v1\nkind: Namespace\nmetadata:\n name: postrendered\n"

View File

@ -0,0 +1,13 @@
releases:
- name: issue-2515
chart: ../../charts/raw
values:
- templates:
- |
apiVersion: v1
kind: ConfigMap
metadata:
name: original-cm
namespace: {{ .Release.Namespace }}
data:
key: value