573ac49939
Below enhancements are made to Mariadb backup: 1) Used new helm-toolkit function to send/retrieve Mariadb backups to/from RGW via OpenStack Swift API. 2) Modified the backup script such that the database backup tarball can be sent to RGW. 3) Added a keystone user for RGW access. 4) Added a secret for OpenStack Swift API access. 5) Changed the cronjob image and runAsUser 6) Modified the restore script so that archives stored remotely on RGW can be used for the restore data source. 7) Added functions to the restore script to retrieve data from an archive for tables, table rows and table schema of a databse 8) Added a secret containing all the backup/restore related configuration needed for invoking the backup/restore operation from a different application or namespace. Change-Id: Iadb9438fe419cded374897b43337039609077e61
79 lines
3.2 KiB
YAML
79 lines
3.2 KiB
YAML
{{/*
|
|
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.
|
|
|
|
|
|
This manifest results in two secrets being created:
|
|
1) Keystone "remote_rgw_user" secret, which is needed to access the cluster
|
|
(remote or same cluster) for storing mariadb backups. If the
|
|
cluster is remote, the auth_url would be non-null.
|
|
2) Keystone "remote_ks_admin" secret, which is needed to create the
|
|
"remote_rgw_user" keystone account mentioned above. This may not
|
|
be needed if the account is in a remote cluster (auth_url is non-null
|
|
in that case).
|
|
*/}}
|
|
|
|
{{- if .Values.conf.backup.remote_backup.enabled }}
|
|
|
|
{{- $envAll := . }}
|
|
{{- $userClass := "remote_rgw_user" }}
|
|
{{- $secretName := index $envAll.Values.secrets.identity $userClass }}
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: {{ $secretName }}
|
|
type: Opaque
|
|
data:
|
|
{{- $identityClass := index .Values.endpoints.identity.auth $userClass }}
|
|
{{- if $identityClass.auth_url }}
|
|
OS_AUTH_URL: {{ $identityClass.auth_url | b64enc }}
|
|
{{- else }}
|
|
OS_AUTH_URL: {{ tuple "identity" "internal" "api" $envAll | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | b64enc }}
|
|
{{- end }}
|
|
OS_REGION_NAME: {{ $identityClass.region_name | b64enc }}
|
|
OS_INTERFACE: {{ $identityClass.interface | default "internal" | b64enc }}
|
|
OS_PROJECT_DOMAIN_NAME: {{ $identityClass.project_domain_name | b64enc }}
|
|
OS_PROJECT_NAME: {{ $identityClass.project_name | b64enc }}
|
|
OS_USER_DOMAIN_NAME: {{ $identityClass.user_domain_name | b64enc }}
|
|
OS_USERNAME: {{ $identityClass.username | b64enc }}
|
|
OS_PASSWORD: {{ $identityClass.password | b64enc }}
|
|
OS_DEFAULT_DOMAIN: {{ $identityClass.default_domain_id | default "default" | b64enc }}
|
|
...
|
|
{{- if .Values.manifests.job_ks_user }}
|
|
{{- $userClass := "remote_ks_admin" }}
|
|
{{- $secretName := index $envAll.Values.secrets.identity $userClass }}
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: {{ $secretName }}
|
|
type: Opaque
|
|
data:
|
|
{{- $identityClass := index .Values.endpoints.identity.auth $userClass }}
|
|
{{- if $identityClass.auth_url }}
|
|
OS_AUTH_URL: {{ $identityClass.auth_url | b64enc }}
|
|
{{- else }}
|
|
OS_AUTH_URL: {{ tuple "identity" "internal" "api" $envAll | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | b64enc }}
|
|
{{- end }}
|
|
OS_REGION_NAME: {{ $identityClass.region_name | b64enc }}
|
|
OS_INTERFACE: {{ $identityClass.interface | default "internal" | b64enc }}
|
|
OS_PROJECT_DOMAIN_NAME: {{ $identityClass.project_domain_name | b64enc }}
|
|
OS_PROJECT_NAME: {{ $identityClass.project_name | b64enc }}
|
|
OS_USER_DOMAIN_NAME: {{ $identityClass.user_domain_name | b64enc }}
|
|
OS_USERNAME: {{ $identityClass.username | b64enc }}
|
|
OS_PASSWORD: {{ $identityClass.password | b64enc }}
|
|
OS_DEFAULT_DOMAIN: {{ $identityClass.default_domain_id | default "default" | b64enc }}
|
|
...
|
|
{{- end }}
|
|
{{- end }}
|