66# envsubst expands only the listed shell variables ($NAMESPACE etc.),
77# leaving Hadoop ${env.FOO} references untouched.
88#
9+ # The static vector.yaml is parameterised with Vector env-var refs like ${NAMESPACE}
10+ # that must stay literal in the ConfigMap. Since envsubst '$NAMESPACE' would expand
11+ # both `$NAMESPACE` (the core-site DNS, which we DO want substituted) and the literal
12+ # `${NAMESPACE}` in vector.yaml, we temporarily mask the braces form around envsubst.
13+ #
914# kuttl runs script commands with sh, not bash, so process substitution
1015# is unavailable. Temp files namespaced under $NAMESPACE are used for
1116# diff output to avoid collisions when tests run concurrently.
@@ -17,7 +22,7 @@ commands:
1722 # ConfigMap data snapshot: hdfs-namenode-default
1823 #
1924 - script: |
20- envsubst '$ NAMESPACE' < 31_configmap_hdfs-namenode-default.yaml > /tmp/$NAMESPACE-expected.yaml
25+ sed 's/${ NAMESPACE}/__VECTOR_NS__/g' 31_configmap_hdfs-namenode-default.yaml | envsubst '$NAMESPACE' | sed 's/__VECTOR_NS__/${NAMESPACE}/g' > /tmp/$NAMESPACE-expected.yaml
2126 kubectl -n $NAMESPACE get cm hdfs-namenode-default -o yaml | yq '.data' > /tmp/$NAMESPACE-actual.yaml
2227 if ! diff /tmp/$NAMESPACE-expected.yaml /tmp/$NAMESPACE-actual.yaml; then
2328 echo "ERROR: ConfigMap hdfs-namenode-default data drifted from snapshot."
@@ -32,7 +37,7 @@ commands:
3237{% else %}
3338 export DATANODE_DATA_DIR='[DISK]/stackable/data/data/datanode'
3439{% endif %}
35- envsubst '$ NAMESPACE $DATANODE_DATA_DIR' < 31_configmap_hdfs-datanode-default.yaml > /tmp/$NAMESPACE-expected.yaml
40+ sed 's/${ NAMESPACE}/__VECTOR_NS__/g' 31_configmap_hdfs-datanode-default.yaml | envsubst '$NAMESPACE $DATANODE_DATA_DIR' | sed 's/__VECTOR_NS__/${NAMESPACE}/g' > /tmp/$NAMESPACE-expected.yaml
3641 kubectl -n $NAMESPACE get cm hdfs-datanode-default -o yaml | yq '.data' > /tmp/$NAMESPACE-actual.yaml
3742 if ! diff /tmp/$NAMESPACE-expected.yaml /tmp/$NAMESPACE-actual.yaml; then
3843 echo "ERROR: ConfigMap hdfs-datanode-default data drifted from snapshot."
@@ -42,7 +47,7 @@ commands:
4247 # ConfigMap data snapshot: hdfs-journalnode-default
4348 #
4449 - script: |
45- envsubst '$ NAMESPACE' < 31_configmap_hdfs-journalnode-default.yaml > /tmp/$NAMESPACE-expected.yaml
50+ sed 's/${ NAMESPACE}/__VECTOR_NS__/g' 31_configmap_hdfs-journalnode-default.yaml | envsubst '$NAMESPACE' | sed 's/__VECTOR_NS__/${NAMESPACE}/g' > /tmp/$NAMESPACE-expected.yaml
4651 kubectl -n $NAMESPACE get cm hdfs-journalnode-default -o yaml | yq '.data' > /tmp/$NAMESPACE-actual.yaml
4752 if ! diff /tmp/$NAMESPACE-expected.yaml /tmp/$NAMESPACE-actual.yaml; then
4853 echo "ERROR: ConfigMap hdfs-journalnode-default data drifted from snapshot."
0 commit comments