@@ -70,10 +70,22 @@ yqNavigating(){
70
70
fi
71
71
}
72
72
73
+ b64encode (){
74
+ # Check if wrap is supported. Otherwise, break is supported.
75
+ if echo | base64 --wrap=0 & > /dev/null; then
76
+ base64 --wrap=0 $1
77
+ else
78
+ base64 --break=0 $1
79
+ fi
80
+ }
81
+
73
82
# Just blindly parse the cloud.yaml here, overwriting old vars.
74
83
CAPO_AUTH_URL=$( echo " $CAPO_OPENSTACK_CLOUD_YAML_CONTENT " | yqNavigating - clouds.${CAPO_CLOUD} .auth.auth_url)
75
84
CAPO_USERNAME=$( echo " $CAPO_OPENSTACK_CLOUD_YAML_CONTENT " | yqNavigating - clouds.${CAPO_CLOUD} .auth.username)
76
85
CAPO_PASSWORD=$( echo " $CAPO_OPENSTACK_CLOUD_YAML_CONTENT " | yqNavigating - clouds.${CAPO_CLOUD} .auth.password)
86
+ if [[ " $CAPO_PASSWORD " = " " || " $CAPO_PASSWORD " = " null" ]]; then
87
+ CAPO_PASSWORD=" ${OS_PASSWORD} "
88
+ fi
77
89
CAPO_REGION=$( echo " $CAPO_OPENSTACK_CLOUD_YAML_CONTENT " | yqNavigating - clouds.${CAPO_CLOUD} .region_name)
78
90
CAPO_PROJECT_ID=$( echo " $CAPO_OPENSTACK_CLOUD_YAML_CONTENT " | yqNavigating - clouds.${CAPO_CLOUD} .auth.project_id)
79
91
CAPO_PROJECT_NAME=$( echo " $CAPO_OPENSTACK_CLOUD_YAML_CONTENT " | yqNavigating - clouds.${CAPO_CLOUD} .auth.project_name)
@@ -94,9 +106,9 @@ export OPENSTACK_CLOUD="${CAPO_CLOUD}"
94
106
95
107
# Build OPENSTACK_CLOUD_YAML_B64
96
108
if [[ ${CAPO_YQ_VERSION} == * " version 1" * || ${CAPO_YQ_VERSION} == * " version 2" * || ${CAPO_YQ_VERSION} == * " version 3" * ]]; then
97
- CAPO_OPENSTACK_CLOUD_YAML_SELECTED_CLOUD_B64=$( echo " ${CAPO_OPENSTACK_CLOUD_YAML_CONTENT} " | yq r - clouds.${CAPO_CLOUD} | yq p - clouds.${CAPO_CLOUD} | base64 --wrap=0 )
109
+ CAPO_OPENSTACK_CLOUD_YAML_SELECTED_CLOUD_B64=$( echo " ${CAPO_OPENSTACK_CLOUD_YAML_CONTENT} " | yq r - clouds.${CAPO_CLOUD} | yq w - auth.password ${CAPO_PASSWORD} | yq p - clouds.${CAPO_CLOUD} | b64encode )
98
110
else
99
- CAPO_OPENSTACK_CLOUD_YAML_SELECTED_CLOUD_B64=$( echo " ${CAPO_OPENSTACK_CLOUD_YAML_CONTENT} " | yq e .clouds.${CAPO_CLOUD} - | yq eval ' {"clouds": {"' ${CAPO_CLOUD} ' ": . }}' - | base64 --wrap=0 )
111
+ CAPO_OPENSTACK_CLOUD_YAML_SELECTED_CLOUD_B64=$( echo " ${CAPO_OPENSTACK_CLOUD_YAML_CONTENT} " | yq e .clouds.${CAPO_CLOUD} - | PASSWORD= ${CAPO_PASSWORD} yq e ' .auth.password = env(PASSWORD) ' - | yq e ' {"clouds": {"' ${CAPO_CLOUD} ' ": . }}' - | b64encode )
100
112
fi
101
113
export OPENSTACK_CLOUD_YAML_B64=" ${CAPO_OPENSTACK_CLOUD_YAML_SELECTED_CLOUD_B64} "
102
114
146
158
if [[ " $CAPO_APPLICATION_CREDENTIAL_SECRET " != " " && " $CAPO_APPLICATION_CREDENTIAL_SECRET " != " null" ]]; then
147
159
echo " application-credential-secret=\" ${CAPO_APPLICATION_CREDENTIAL_SECRET} \" " >> ${CAPO_CLOUD_PROVIDER_CONF_TMP}
148
160
fi
149
- export OPENSTACK_CLOUD_PROVIDER_CONF_B64=" $( cat ${CAPO_CLOUD_PROVIDER_CONF_TMP} | base64 --wrap=0 ) "
161
+ export OPENSTACK_CLOUD_PROVIDER_CONF_B64=" $( cat ${CAPO_CLOUD_PROVIDER_CONF_TMP} | b64encode ) "
150
162
151
163
# Build OPENSTACK_CLOUD_CACERT_B64
152
- OPENSTACK_CLOUD_CACERT_B64=$( echo " " | base64 --wrap=0 )
164
+ OPENSTACK_CLOUD_CACERT_B64=$( echo " " | b64encode )
153
165
if [[ " $CAPO_CACERT_ORIGINAL " != " " && " $CAPO_CACERT_ORIGINAL " != " null" ]]; then
154
- OPENSTACK_CLOUD_CACERT_B64=$( cat " $CAPO_CACERT_ORIGINAL " | base64 --wrap=0 )
166
+ OPENSTACK_CLOUD_CACERT_B64=$( cat " $CAPO_CACERT_ORIGINAL " | b64encode )
155
167
fi
156
168
export OPENSTACK_CLOUD_CACERT_B64
0 commit comments