|
1 |
| -#!/bin/sh |
| 1 | +#!/usr/bin/env bash |
2 | 2 |
|
3 |
| -if [ $# -ne 1 ]; then |
| 3 | +# Check arguments |
| 4 | +if [ "$#" -ne 1 ]; then |
4 | 5 | echo "$(basename "$0") <output-file>" >&2
|
5 | 6 | exit 1
|
6 | 7 | fi
|
7 | 8 |
|
| 9 | +# Enable safer bash settings |
8 | 10 | set -o pipefail
|
9 | 11 |
|
10 |
| -if ! type -p yq > /dev/null; then |
| 12 | +# Check dependencies |
| 13 | +if ! command -v yq >/dev/null; then |
11 | 14 | echo "You must have yq installed to use this script" >&2
|
12 | 15 | exit 1
|
13 | 16 | fi
|
14 | 17 |
|
15 |
| -if ! type -p kubectl > /dev/null; then |
| 18 | +if ! command -v kubectl >/dev/null; then |
16 | 19 | echo "You must have kubectl installed to use this script" >&2
|
17 | 20 | exit 1
|
18 | 21 | fi
|
19 | 22 |
|
20 |
| -KUSTOMIZE_VERSION=$(kubectl version --client -o yaml | yq .kustomizeVersion) |
21 |
| -if ! (echo -e "v5.0.0\n$KUSTOMIZE_VERSION" | sort -V -C); then |
22 |
| - echo "kustomize needs to be at version 5.0.0 or newer (comes with kubectl 1.27+)" |
23 |
| - exit 1 |
| 23 | +# Get kustomize version (declare/assign separately) |
| 24 | +KUSTOMIZE_VERSION="" |
| 25 | +KUSTOMIZE_VERSION=$(kubectl version --client -o yaml | yq '.kustomizeVersion') |
| 26 | +if ! (printf '%s\n' "v5.0.0" "$KUSTOMIZE_VERSION" | sort -V -C); then |
| 27 | + echo "kustomize needs to be at version 5.0.0 or newer (comes with kubectl 1.27+)" |
| 28 | + exit 1 |
24 | 29 | fi
|
25 | 30 |
|
26 |
| -SCRIPTS_DIR="$(dirname "$0")" |
| 31 | +# Scripts directory |
| 32 | +SCRIPTS_DIR="" |
| 33 | +SCRIPTS_DIR=$(dirname "$0") |
27 | 34 |
|
28 | 35 | echo "This script will attempt to look up the existing values this repo used"
|
29 | 36 | echo "or will generate new values. The output below will be related to that."
|
30 | 37 |
|
31 | 38 | # memcache secret key
|
32 |
| -export MEMCACHE_SECRET_KEY=$("${SCRIPTS_DIR}/pwgen.sh" 64) |
| 39 | +MEMCACHE_SECRET_KEY="" |
| 40 | +MEMCACHE_SECRET_KEY=$("${SCRIPTS_DIR}/pwgen.sh" 64) |
| 41 | +export MEMCACHE_SECRET_KEY |
33 | 42 |
|
34 | 43 | # keystone admin
|
35 |
| -export KEYSTONE_ADMIN_PASSWORD=$(kubectl -n openstack get secret keystone-admin -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 44 | +KEYSTONE_ADMIN_PASSWORD="" |
| 45 | +KEYSTONE_ADMIN_PASSWORD=$(kubectl -n openstack get secret keystone-admin \ |
| 46 | + -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 47 | +export KEYSTONE_ADMIN_PASSWORD |
| 48 | + |
36 | 49 | # keystone mariadb
|
37 |
| -export KEYSTONE_DB_PASSWORD=$(kubectl -n openstack get secret keystone-db-password -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 50 | +KEYSTONE_DB_PASSWORD="" |
| 51 | +KEYSTONE_DB_PASSWORD=$(kubectl -n openstack get secret keystone-db-password \ |
| 52 | + -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 53 | +export KEYSTONE_DB_PASSWORD |
| 54 | + |
38 | 55 | # keystone rabbitmq
|
39 |
| -export KEYSTONE_RABBITMQ_PASSWORD=$(kubectl -n openstack get secret keystone-rabbitmq-password -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 56 | +KEYSTONE_RABBITMQ_PASSWORD="" |
| 57 | +KEYSTONE_RABBITMQ_PASSWORD=$(kubectl -n openstack get secret keystone-rabbitmq-password \ |
| 58 | + -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 59 | +export KEYSTONE_RABBITMQ_PASSWORD |
40 | 60 |
|
41 | 61 | # ironic keystone service account
|
42 |
| -export IRONIC_KEYSTONE_PASSWORD=$(kubectl -n openstack get secret ironic-keystone-password -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 62 | +IRONIC_KEYSTONE_PASSWORD="" |
| 63 | +IRONIC_KEYSTONE_PASSWORD=$(kubectl -n openstack get secret ironic-keystone-password \ |
| 64 | + -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 65 | +export IRONIC_KEYSTONE_PASSWORD |
| 66 | + |
43 | 67 | # ironic mariadb
|
44 |
| -export IRONIC_DB_PASSWORD=$(kubectl -n openstack get secret ironic-db-password -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 68 | +IRONIC_DB_PASSWORD="" |
| 69 | +IRONIC_DB_PASSWORD=$(kubectl -n openstack get secret ironic-db-password \ |
| 70 | + -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 71 | +export IRONIC_DB_PASSWORD |
| 72 | + |
45 | 73 | # ironic rabbitmq
|
46 |
| -export IRONIC_RABBITMQ_PASSWORD=$(kubectl -n openstack get secret ironic-rabbitmq-password -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 74 | +IRONIC_RABBITMQ_PASSWORD="" |
| 75 | +IRONIC_RABBITMQ_PASSWORD=$(kubectl -n openstack get secret ironic-rabbitmq-password \ |
| 76 | + -o jsonpath='{.data.password}' | base64 -d || "${SCRIPTS_DIR}/pwgen.sh") |
| 77 | +export IRONIC_RABBITMQ_PASSWORD |
47 | 78 |
|
| 79 | +# Generate output |
48 | 80 | yq '(.. | select(tag == "!!str")) |= envsubst' \
|
49 | 81 | "${SCRIPTS_DIR}/../components/openstack-secrets.tpl.yaml" \
|
50 | 82 | > "$1"
|
0 commit comments