@@ -64,23 +64,8 @@ render_chart_values cassandra "$cassandra_values"
6464render_chart_values openbao-server " $openbao_values "
6565
6666cassandra_password=" $( yq -r ' .cassandra.serviceRolePassword // ""' " $cassandra_values " ) "
67- openbao_password_count=" $( yq -r '
68- [.openbao.migrations.env[] |
69- select(.name == "DEFAULT_CASSANDRA_PASSWORD")] |
70- length
71- ' " $openbao_values " ) "
72- test " $openbao_password_count " = " 1" ||
73- fail " OpenBao migrations must receive exactly one application-role password"
74- openbao_password=" $( yq -r '
75- .openbao.migrations.env[] |
76- select(.name == "DEFAULT_CASSANDRA_PASSWORD") |
77- .value
78- ' " $openbao_values " ) "
79-
8067test -n " $cassandra_password " ||
8168 fail " Cassandra migrations received no application-role password"
82- test -n " $openbao_password " ||
83- fail " OpenBao migrations received no application-role password"
8469
8570cassandra_manifest=" $work_dir /cassandra-manifest.yaml"
8671helm template cassandra " $helm_dir /cassandra/helm" \
@@ -98,7 +83,51 @@ test -n "$cassandra_job_password" ||
9883 fail " Cassandra migration Job received no application-role password"
9984test " $cassandra_job_password " = " $cassandra_password " ||
10085 fail " Cassandra migration Job did not receive the rendered stack password"
101- test " $cassandra_job_password " = " $openbao_password " ||
86+
87+ # The wrapper chart's migration Job does not depend on upstream OpenBao
88+ # templates. Supply an empty dependency chart in the isolated copy so this
89+ # focused render stays offline while exercising the real wrapper template.
90+ openbao_chart=" $work_dir /openbao-chart"
91+ cp -R " $helm_dir /openbao/helm" " $openbao_chart "
92+ mkdir -p " $openbao_chart /charts/openbao"
93+ openbao_dependency_version=" $( yq -r '
94+ .dependencies[] |
95+ select(.name == "openbao") |
96+ .version
97+ ' " $openbao_chart /Chart.yaml" ) "
98+ test -n " $openbao_dependency_version " ||
99+ fail " OpenBao wrapper chart has no OpenBao dependency version"
100+ printf ' %s\n' \
101+ ' apiVersion: v2' \
102+ ' name: openbao' \
103+ " version: $openbao_dependency_version " > " $openbao_chart /charts/openbao/Chart.yaml"
104+
105+ openbao_manifest=" $work_dir /openbao-manifest.yaml"
106+ helm template openbao-server " $openbao_chart " \
107+ --namespace vault-system \
108+ --values " $openbao_values " \
109+ --show-only templates/hook-post-02-migrations.yaml > " $openbao_manifest " ||
110+ fail " OpenBao migration Job did not render"
111+ openbao_job_password_count=" $( yq -r '
112+ [.spec.template.spec.containers[] |
113+ select(.name == "bao-migrations") |
114+ .env[] |
115+ select(.name == "DEFAULT_CASSANDRA_PASSWORD")] |
116+ length
117+ ' " $openbao_manifest " ) "
118+ test " $openbao_job_password_count " = " 1" ||
119+ fail " OpenBao migration Job must receive exactly one application-role password"
120+ openbao_job_password=" $( yq -r '
121+ .spec.template.spec.containers[] |
122+ select(.name == "bao-migrations") |
123+ .env[] |
124+ select(.name == "DEFAULT_CASSANDRA_PASSWORD") |
125+ .value
126+ ' " $openbao_manifest " ) "
127+
128+ test -n " $openbao_job_password " ||
129+ fail " OpenBao migration Job received no application-role password"
130+ test " $cassandra_job_password " = " $openbao_job_password " ||
102131 fail " Cassandra and OpenBao migrations received different application-role passwords"
103132
104133echo " cassandra-openbao-credential-wiring: all checks passed"
0 commit comments