5a2babd514
This patchset introduces the framework by which all OSH-based database systems can use to backup and restore their databases. The framework is refactored from the Postgresql backup and restore logic. This will prevent alot of code duplication in the backup restore scripts across each cluster. In the process, some improvements needed to be made: 1) Removing the need for 2 separate containers to do the backup and restore work to a remote gateway. This simplifies the design and enables a higher level of robustness. 2) Adding separate "days to keep" config value for remote backup files, as there may be different requirements for the remote files than the local backup files. 3) Adding capability to send Storage_Policy when creating the remote RGW swift container. 4) Making coding style improvement for readability and maintainability. 5) Fixing a deployment bug that occurs when remote backup is disabled. Change-Id: I3a3482ad67320e89f04305b17da79abf7ad6eb45
65 lines
2.7 KiB
YAML
65 lines
2.7 KiB
YAML
{{/*
|
|
This manifest results in two secrets being created:
|
|
1) Keystone "postgresql" secret, which is needed to access the cluster
|
|
(remote or same cluster) for storing postgresql backups. If the
|
|
cluster is remote, the auth_url would be non-null.
|
|
2) Keystone "admin" secret, which is needed to create the "postgresql"
|
|
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 := "postgresql" }}
|
|
{{- $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 := "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 }}
|