@@ -218,14 +218,12 @@ mkdir -p "${DEST_DIR}/dex/"
218
218
for client in nautobot argo argocd keystone grafana; do
219
219
if [ ! -f " ${DEST_DIR} /dex/secret-${client} -sso-dex.yaml" ]; then
220
220
SSO_SECRET=$( " ${SCRIPTS_DIR} /pwgen.sh" )
221
- SSO_CRYPTO_PASSPHRASE=$( " ${SCRIPTS_DIR} /pwgen.sh" )
222
221
kubectl --namespace dex \
223
222
create secret generic " ${client} -sso" \
224
223
--dry-run=client \
225
224
-o yaml \
226
225
--type Opaque \
227
226
--from-literal=client-secret=" $SSO_SECRET " \
228
- --from-literal=oidc-crypto-passphrase=" $SSO_CRYPTO_PASSPHRASE " \
229
227
--from-literal=client-id=" ${client} " \
230
228
--from-literal=issuer=" https://dex.${DNS_ZONE} " \
231
229
| secret-seal-stdin " ${DEST_DIR} /dex/secret-${client} -sso-dex.yaml"
@@ -263,10 +261,20 @@ convert_to_var_name() {
263
261
convert_to_secret_name () {
264
262
echo " $1 " | tr ' [:upper:]' ' [:lower:]' | tr ' _' ' -'
265
263
}
264
+ # Default password generator using pwgen.sh
265
+ default_pwgen () {
266
+ " ${SCRIPTS_DIR} /pwgen.sh" 2> /dev/null
267
+ }
268
+
269
+ # Custom password generator with only alphabets
270
+ alpha_only_pwgen () {
271
+ head /dev/urandom | tr -dc A-Za-z | head -c 32
272
+ }
266
273
267
274
load_or_gen_os_secret () {
268
275
local data_var=$1
269
276
local secret_var=$2
277
+ local gen_func=${3:- default_pwgen}
270
278
271
279
if kubectl -n openstack get secret " ${secret_var} " & > /dev/null; then
272
280
data=" $( kubectl -n openstack get secret " ${secret_var} " -o jsonpath=' {.data.password}' | base64 -d) "
@@ -276,7 +284,7 @@ load_or_gen_os_secret() {
276
284
return 1
277
285
else
278
286
echo " Generating ${secret_var} "
279
- data=" $( " ${SCRIPTS_DIR} /pwgen.sh " 2> /dev/null ) "
287
+ data=" $( ${gen_func} ) "
280
288
# good ol' bash 3 compat for macOS
281
289
eval " ${data_var} =\" ${data} \" "
282
290
# return 0 because we need to write this out
@@ -369,4 +377,18 @@ find "${DEST_DIR}" -maxdepth 1 -mindepth 1 -type d | while read -r component; do
369
377
fi
370
378
done
371
379
380
+ echo " Checking keystone oidc passphrase Sealed Secret"
381
+ mkdir -p " ${DEST_DIR} /keystone"
382
+
383
+ # Generate or retrieve passphrase
384
+ VARNAME_PASSPHRASE=" OS_SSO_PASSPHRASE"
385
+ SECRET_PASSPHRASE=" sso-passphrase"
386
+
387
+ load_or_gen_os_secret " ${VARNAME_PASSPHRASE} " " ${SECRET_PASSPHRASE} " alpha_only_pwgen && \
388
+ create_os_secret " PASSPHRASE" " keystone" " passphrase"
389
+
390
+ # Export for Helm templating if needed
391
+ export OS_SSO_PASSPHRASE
392
+
393
+
372
394
exit 0
0 commit comments