|
58 | 58 | if [ -f "${MATRIX_CHART}/Chart.yaml" ]; then
|
59 | 59 | helm dependency update "${MATRIX_CHART}"
|
60 | 60 | values_files="${MATRIX_CHART}"/values-*
|
61 |
| - for values_file in $(basename -a $values_files); do |
62 |
| - helm template "${MATRIX_CHART}" -f "${MATRIX_CHART}/values.yaml" -f "${MATRIX_CHART}/${values_file}" --output-dir "shared/head-charts/${MATRIX_CHART}/${values_file}" |
63 |
| - done |
| 61 | + for values_path in ${values_files}; do |
| 62 | + values_file=$(basename "$values_path") |
| 63 | + env=$(echo "$values_file" | sed -E 's/^values-([a-z0-9]+)(-.+)?\.yaml$/\1/') |
| 64 | + region=$(echo "$values_file" | sed -nE "s/^values-${env}-(.+)\.yaml$/\1/p") |
| 65 | +
|
| 66 | + output_name=$(basename "$values_file" .yaml) |
| 67 | + render_path="shared/head-charts/${MATRIX_CHART}/${output_name}" |
| 68 | + mkdir -p "$render_path" |
| 69 | +
|
| 70 | + if [[ -n "$region" && -f "${MATRIX_CHART}/values-${env}.yaml" ]]; then |
| 71 | + # Render with three layers: base, env, env-region |
| 72 | + helm template "${MATRIX_CHART}" \ |
| 73 | + -f "${MATRIX_CHART}/values.yaml" \ |
| 74 | + -f "${MATRIX_CHART}/values-${env}.yaml" \ |
| 75 | + -f "${MATRIX_CHART}/${values_file}" \ |
| 76 | + --output-dir "$render_path" |
| 77 | + else |
| 78 | + # Only base + environment file |
| 79 | + helm template "${MATRIX_CHART}" \ |
| 80 | + -f "${MATRIX_CHART}/values.yaml" \ |
| 81 | + -f "${MATRIX_CHART}/${values_file}" \ |
| 82 | + --output-dir "$render_path" |
| 83 | + fi |
| 84 | + done |
64 | 85 | fi
|
65 | 86 | echo sanitized_name=$(echo "${MATRIX_CHART}" | sed 's/\//-/g') >> $GITHUB_OUTPUT
|
66 | 87 | env:
|
@@ -95,9 +116,31 @@ jobs:
|
95 | 116 | if [ -f "${MATRIX_CHART}/Chart.yaml" ]; then
|
96 | 117 | helm dependency update "${MATRIX_CHART}"
|
97 | 118 | values_files="${MATRIX_CHART}"/values-*
|
98 |
| - for values_file in $(basename -a $values_files); do |
99 |
| - helm template "${MATRIX_CHART}" -f "${MATRIX_CHART}/values.yaml" -f "${MATRIX_CHART}/${values_file}" --output-dir "shared/base-charts/${MATRIX_CHART}/${values_file}" |
100 |
| - done |
| 119 | +
|
| 120 | + for values_path in ${values_files}; do |
| 121 | + values_file=$(basename "$values_path") |
| 122 | + env=$(echo "$values_file" | sed -E 's/^values-([a-z0-9]+)(-.+)?\.yaml$/\1/') |
| 123 | + region=$(echo "$values_file" | sed -nE "s/^values-${env}-(.+)\.yaml$/\1/p") |
| 124 | +
|
| 125 | + output_name=$(basename "$values_file" .yaml) |
| 126 | + render_path="shared/base-charts/${MATRIX_CHART}/${output_name}" |
| 127 | + mkdir -p "$render_path" |
| 128 | +
|
| 129 | + if [[ -n "$region" && -f "${MATRIX_CHART}/values-${env}.yaml" ]]; then |
| 130 | + # Render with three layers: base, env, env-region |
| 131 | + helm template "${MATRIX_CHART}" \ |
| 132 | + -f "${MATRIX_CHART}/values.yaml" \ |
| 133 | + -f "${MATRIX_CHART}/values-${env}.yaml" \ |
| 134 | + -f "${MATRIX_CHART}/${values_file}" \ |
| 135 | + --output-dir "$render_path" |
| 136 | + else |
| 137 | + # Only base + environment file |
| 138 | + helm template "${MATRIX_CHART}" \ |
| 139 | + -f "${MATRIX_CHART}/values.yaml" \ |
| 140 | + -f "${MATRIX_CHART}/${values_file}" \ |
| 141 | + --output-dir "$render_path" |
| 142 | + fi |
| 143 | + done |
101 | 144 | fi
|
102 | 145 | echo sanitized_name=$(echo "${MATRIX_CHART}" | sed 's/\//-/g') >> $GITHUB_OUTPUT
|
103 | 146 | env:
|
|
0 commit comments