From 94642833dd97e9ff397ef1af26449a51572d5b68 Mon Sep 17 00:00:00 2001 From: "Gupta, Sangeet (sg774j)" Date: Thu, 13 Aug 2020 20:55:40 +0000 Subject: [PATCH] [nova] fix cell0 database connection This patchset sets/updates the Database Connection for cell0 to correct value in the database. Change-Id: I4d445023691b748a7de0d256433bd17c7958cc04 --- nova/templates/bin/_db-sync.sh.tpl | 13 ++++++++++++ nova/templates/job-db-sync.yaml | 5 +++++ nova/templates/secret-db-cell0.yaml | 33 +++++++++++++++++++++++++++++ nova/values.yaml | 5 +++-- 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 nova/templates/secret-db-cell0.yaml diff --git a/nova/templates/bin/_db-sync.sh.tpl b/nova/templates/bin/_db-sync.sh.tpl index f8984d207d..fdcb92ed87 100755 --- a/nova/templates/bin/_db-sync.sh.tpl +++ b/nova/templates/bin/_db-sync.sh.tpl @@ -25,8 +25,21 @@ function manage_cells () { nova-manage cell_v2 list_cells | grep -q " cell1 " || \ nova-manage cell_v2 create_cell --name=cell1 --verbose + CELL0_ID=$(nova-manage cell_v2 list_cells | awk -F '|' '/ cell0 / { print $3 }' | tr -d ' ') CELL1_ID=$(nova-manage cell_v2 list_cells | awk -F '|' '/ cell1 / { print $3 }' | tr -d ' ') set +x + + CELL0_TRANSPORT=$(nova-manage cell_v2 list_cells | awk -F '|' '/ cell0 / { print $4 }' | tr -d ' ') + if [ -z "${DB_CONNECTION_CELL0}" ]; then + echo "ERROR: missing DB_CONNECTION_CELL0" + exit 1 + fi + nova-manage cell_v2 update_cell \ + --cell_uuid="${CELL0_ID}" \ + --name="cell0" \ + --transport-url="${CELL0_TRANSPORT}" \ + --database_connection="${DB_CONNECTION_CELL0}" + for VAR in TRANSPORT_URL DB_CONNECTION; do if [ -z "${!VAR}" ]; then echo "ERROR: missing $VAR variable" diff --git a/nova/templates/job-db-sync.yaml b/nova/templates/job-db-sync.yaml index a184c4cad7..00953419dc 100644 --- a/nova/templates/job-db-sync.yaml +++ b/nova/templates/job-db-sync.yaml @@ -25,6 +25,11 @@ env: secretKeyRef: name: {{ $envAll.Values.secrets.oslo_db.nova }} key: DB_CONNECTION + - name: DB_CONNECTION_CELL0 + valueFrom: + secretKeyRef: + name: {{ $envAll.Values.secrets.oslo_db_cell0.nova }} + key: DB_CONNECTION {{- end }} {{- if .Values.manifests.job_db_sync }} diff --git a/nova/templates/secret-db-cell0.yaml b/nova/templates/secret-db-cell0.yaml new file mode 100644 index 0000000000..100b57fc80 --- /dev/null +++ b/nova/templates/secret-db-cell0.yaml @@ -0,0 +1,33 @@ +{{/* +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- if .Values.manifests.secret_db_cell0 }} +{{- $envAll := . }} +{{- range $key1, $userClass := tuple "admin" "nova" }} +{{- $secretName := index $envAll.Values.secrets.oslo_db_cell0 $userClass }} +{{- $connection := tuple "oslo_db_cell0" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ $secretName }} +type: Opaque +data: +{{- if $envAll.Values.manifests.certificates }} + DB_CONNECTION: {{ (printf "%s?charset=utf8&ssl_ca=/etc/mysql/certs/ca.crt&ssl_key=/etc/mysql/certs/tls.key&ssl_cert=/etc/mysql/certs/tls.crt&ssl_verify_cert" $connection ) | b64enc -}} +{{- else }} + DB_CONNECTION: {{ $connection | b64enc -}} +{{- end }} +{{- end }} +{{- end }} diff --git a/nova/values.yaml b/nova/values.yaml index c7c8d9e704..ecf03396a4 100644 --- a/nova/values.yaml +++ b/nova/values.yaml @@ -1849,8 +1849,8 @@ secrets: admin: nova-db-api-admin nova: nova-db-api-user oslo_db_cell0: - admin: nova-db-api-admin - nova: nova-db-api-user + admin: nova-db-cell0-admin + nova: nova-db-cell0-user oslo_messaging: admin: nova-rabbitmq-admin nova: nova-rabbitmq-user @@ -2781,6 +2781,7 @@ manifests: pod_rally_test: true network_policy: false secret_db_api: true + secret_db_cell0: true secret_db: true secret_ingress_tls: true secret_keystone: true