@@ -71,14 +71,24 @@ function report_success() {
7171
7272function encrypt_file() {
7373 file=$1
74+ if [ ! -f $file ]; then
75+ echo " File $file was not found."
76+ return 0
77+ fi
7478 # Make it idempotent by skipping encrypted files.
7579 if [[ ! $( head -n 1 $file ) =~ ' $ANSIBLE_VAULT;' ]]; then
7680 ansible-vault encrypt --vault-password-file ~ /vault.password $file
81+ else
82+ echo " Skipping... The file $file is already encrypted."
7783 fi
7884}
7985
8086function decrypt_file() {
8187 file=$1
88+ if [ ! -f $file ]; then
89+ echo " File $file was not found."
90+ return 0
91+ fi
8292 ansible-vault decrypt --vault-password-file ~ /vault.password $file
8393}
8494
@@ -115,10 +125,14 @@ function deploy_seed() {
115125
116126function deploy_seed_vault() {
117127 # Deploy hashicorp vault to the seed
118- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault-deploy-seed.yml
128+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store-deploy-seed.yml
129+ # Encrypt either vault or openbao certificate keys
119130 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /vault/OS-TLS-INT.pem
120131 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /vault/seed-vault-keys.json
121132 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /vault/* .key
133+ encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /openbao/OS-TLS-INT.pem
134+ encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /openbao/seed-openbao-keys.json
135+ encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /openbao/* .key
122136}
123137
124138function get_seed_ssh() {
@@ -130,15 +144,25 @@ function get_seed_ssh() {
130144}
131145
132146function copy_ca_to_seed() {
133- # Add the Vault CA to the trust store on the seed.
147+ # Add the Vault or OpenBao CA to the trust store on the seed.
134148 seed_ssh=$( get_seed_ssh)
149+ vault_cert_path=$KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/ca/vault.crt
150+ openbao_cert_path=$KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/ca/openbao.crt
151+
152+ if [ -f $openbao_cert_path ]; then
153+ scp -oStrictHostKeyChecking=no $openbao_cert_path ${seed_ssh} :~ /OS-TLS-ROOT.crt
154+ elif [ -f $vault_cert_path ]; then
155+ scp -oStrictHostKeyChecking=no $vault_cert_path ${seed_ssh} :~ /OS-TLS-ROOT.crt
156+ else
157+ echo " Error: No root CA certificate was found."
158+ return 1
159+ fi
135160
136- scp -oStrictHostKeyChecking=no $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/ca/vault.crt ${seed_ssh} :
137161 if [[ $( grep ' ^ID=' /etc/os-release | cut -d= -f2) == " ubuntu" ]]; then
138- ssh -oStrictHostKeyChecking=no ${seed_ssh} sudo cp vault .crt /usr/local/share/ca-certificates/OS-TLS-ROOT.crt
162+ ssh -oStrictHostKeyChecking=no ${seed_ssh} sudo cp OS-TLS-ROOT .crt /usr/local/share/ca-certificates/OS-TLS-ROOT.crt
139163 ssh -oStrictHostKeyChecking=no ${seed_ssh} sudo update-ca-certificates
140164 else
141- ssh -oStrictHostKeyChecking=no ${seed_ssh} sudo cp vault .crt /etc/pki/ca-trust/source/anchors/OS-TLS-ROOT.crt
165+ ssh -oStrictHostKeyChecking=no ${seed_ssh} sudo cp OS-TLS-ROOT .crt /etc/pki/ca-trust/source/anchors/OS-TLS-ROOT.crt
142166 ssh -oStrictHostKeyChecking=no ${seed_ssh} sudo update-ca-trust
143167 fi
144168}
@@ -158,19 +182,21 @@ function deploy_overcloud_vault() {
158182 fi
159183
160184 # Deploy hashicorp vault to the controllers
161- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault-deploy-overcloud.yml
185+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store-deploy-overcloud.yml
186+ # Encrypt either vault or openbao certificate keys
162187 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /vault/overcloud-vault-keys.json
188+ encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /openbao/overcloud-openbao-keys.json
163189}
164190
165191function generate_overcloud_certs() {
166192 # Generate external tls certificates
167- if [[ -f $KAYOBE_CONFIG_PATH /ansible/vault -generate-test-external-tls.yml ]]; then
168- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault -generate-test-external-tls.yml
193+ if [[ -f $KAYOBE_CONFIG_PATH /ansible/secret-store -generate-test-external-tls.yml ]]; then
194+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store -generate-test-external-tls.yml
169195 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/haproxy.pem
170196 fi
171197
172198 # Generate internal tls certificates
173- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault -generate-internal-tls.yml
199+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store -generate-internal-tls.yml
174200 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/haproxy-internal.pem
175201
176202 # If ProxySQL certificate and key are generated, encrypt them
@@ -179,7 +205,7 @@ function generate_overcloud_certs() {
179205 done
180206
181207 # Generate backend tls certificates
182- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault -generate-backend-tls.yml
208+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store -generate-backend-tls.yml
183209 for cert in $( ls -1 $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/* -key.pem) ; do
184210 encrypt_file $cert
185211 done
@@ -201,7 +227,7 @@ function generate_barbican_secrets() {
201227 decrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /secrets.yml
202228 sed -i " s/secret_id:.*/secret_id: $( uuidgen) /g" $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /secrets.yml
203229 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /secrets.yml
204- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault -deploy-barbican.yml
230+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store -deploy-barbican.yml
205231 decrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /secrets.yml
206232 sed -i " s/role_id:.*/role_id: $( cat /tmp/barbican-role-id) /g" $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /secrets.yml
207233 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /secrets.yml
@@ -361,8 +387,8 @@ function deploy_full() {
361387
362388function upgrade_overcloud() {
363389 # Generate external tls certificates if it was previously disabled.
364- if [[ -f $KAYOBE_CONFIG_PATH /ansible/vault -generate-test-external-tls.yml ]] && [[ ! -f $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/haproxy.pem ]]; then
365- run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/vault -generate-test-external-tls.yml
390+ if [[ -f $KAYOBE_CONFIG_PATH /ansible/secret-store -generate-test-external-tls.yml ]] && [[ ! -f $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/haproxy.pem ]]; then
391+ run_kayobe playbook run $KAYOBE_CONFIG_PATH /ansible/secret-store -generate-test-external-tls.yml
366392 encrypt_file $KAYOBE_CONFIG_PATH /environments/$KAYOBE_ENVIRONMENT /kolla/certificates/haproxy.pem
367393 fi
368394
0 commit comments