Add remote backups failover support
This PS adds a support for a failover location to upload and retrieve remote backups. Change-Id: I9f79649ebb6efe112bf57d7fbac8d62e8c22a3db
This commit is contained in:
@@ -13,4 +13,4 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
description: etcdctl Client
|
description: etcdctl Client
|
||||||
name: etcdctl-utility
|
name: etcdctl-utility
|
||||||
version: 0.1.6
|
version: 0.1.7
|
||||||
|
|||||||
@@ -146,43 +146,24 @@ EOF
|
|||||||
|
|
||||||
if $ETCD_REMOTE_BACKUP_ENABLED; then
|
if $ETCD_REMOTE_BACKUP_ENABLED; then
|
||||||
export ETCD_RGW_SECRET={{ $envAll.Values.conf.etcd_backup_restore.secrets.kube_system.rgw_secret }}
|
export ETCD_RGW_SECRET={{ $envAll.Values.conf.etcd_backup_restore.secrets.kube_system.rgw_secret }}
|
||||||
cat >> $TMP_FILE << EOF
|
|
||||||
- name: OS_AUTH_URL
|
# Get the list of keys and their values from the secret
|
||||||
|
SECRET_DATA=$(kubectl get secret $ETCD_RGW_SECRET -n $ETCD_POD_NAMESPACE -o jsonpath="{.data}")
|
||||||
|
|
||||||
|
# Iterate over each key
|
||||||
|
for KEY_NAME in $(echo $SECRET_DATA | jq -r 'keys[]'); do
|
||||||
|
KEY_VALUE=$(echo $SECRET_DATA | jq -r --arg key "$KEY_NAME" '.[$key]')
|
||||||
|
if [ -n "$KEY_VALUE" ]; then
|
||||||
|
cat >> $TMP_FILE << EOF
|
||||||
|
- name: ${KEY_NAME}
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: ${ETCD_RGW_SECRET}
|
name: ${ETCD_RGW_SECRET}
|
||||||
key: OS_AUTH_URL
|
key: ${KEY_NAME}
|
||||||
- name: OS_REGION_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${ETCD_RGW_SECRET}
|
|
||||||
key: OS_REGION_NAME
|
|
||||||
- name: OS_USERNAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${ETCD_RGW_SECRET}
|
|
||||||
key: OS_USERNAME
|
|
||||||
- name: OS_PROJECT_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${ETCD_RGW_SECRET}
|
|
||||||
key: OS_PROJECT_NAME
|
|
||||||
- name: OS_USER_DOMAIN_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${ETCD_RGW_SECRET}
|
|
||||||
key: OS_USER_DOMAIN_NAME
|
|
||||||
- name: OS_PROJECT_DOMAIN_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${ETCD_RGW_SECRET}
|
|
||||||
key: OS_PROJECT_DOMAIN_NAME
|
|
||||||
- name: OS_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${ETCD_RGW_SECRET}
|
|
||||||
key: OS_PASSWORD
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat >> $TMP_FILE << EOF
|
cat >> $TMP_FILE << EOF
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
description: Porthole MySql Client
|
description: Porthole MySql Client
|
||||||
name: mysqlclient-utility
|
name: mysqlclient-utility
|
||||||
version: 0.1.9
|
version: 0.1.10
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ export MARIADB_BACKUP_BASE_PATH=$(kubectl get secret -n ${MARIADB_POD_NAMESPACE}
|
|||||||
MARIADB_REMOTE_BACKUP_ENABLED=$(kubectl get secret -n ${MARIADB_POD_NAMESPACE} ${MARIADB_CONF_SECRET} -o json | jq -r .data.REMOTE_BACKUP_ENABLED | base64 -d)
|
MARIADB_REMOTE_BACKUP_ENABLED=$(kubectl get secret -n ${MARIADB_POD_NAMESPACE} ${MARIADB_CONF_SECRET} -o json | jq -r .data.REMOTE_BACKUP_ENABLED | base64 -d)
|
||||||
export MARIADB_REMOTE_BACKUP_ENABLED=$(echo $MARIADB_REMOTE_BACKUP_ENABLED | sed 's/"//g')
|
export MARIADB_REMOTE_BACKUP_ENABLED=$(echo $MARIADB_REMOTE_BACKUP_ENABLED | sed 's/"//g')
|
||||||
|
|
||||||
|
|
||||||
export TMP_FILE=$(mktemp -p /tmp)
|
export TMP_FILE=$(mktemp -p /tmp)
|
||||||
|
|
||||||
if ! kubectl -n ${MARIADB_POD_NAMESPACE} --no-headers=true get secret {{ $envAll.Values.conf.mariadb_backup_restore.secrets.tls_secret }} > /dev/null 2>&1 ; then
|
if ! kubectl -n ${MARIADB_POD_NAMESPACE} --no-headers=true get secret {{ $envAll.Values.conf.mariadb_backup_restore.secrets.tls_secret }} > /dev/null 2>&1 ; then
|
||||||
@@ -171,43 +170,24 @@ EOF
|
|||||||
|
|
||||||
if $MARIADB_REMOTE_BACKUP_ENABLED; then
|
if $MARIADB_REMOTE_BACKUP_ENABLED; then
|
||||||
export MARIADB_RGW_SECRET={{ $envAll.Values.conf.mariadb_backup_restore.secrets.rgw_secret }}
|
export MARIADB_RGW_SECRET={{ $envAll.Values.conf.mariadb_backup_restore.secrets.rgw_secret }}
|
||||||
cat >> $TMP_FILE << EOF
|
|
||||||
- name: OS_AUTH_URL
|
# Get the list of keys and their values from the secret
|
||||||
|
SECRET_DATA=$(kubectl get secret $MARIADB_RGW_SECRET -n $MARIADB_POD_NAMESPACE -o jsonpath="{.data}")
|
||||||
|
|
||||||
|
# Iterate over each key
|
||||||
|
for KEY_NAME in $(echo $SECRET_DATA | jq -r 'keys[]'); do
|
||||||
|
KEY_VALUE=$(echo $SECRET_DATA | jq -r --arg key "$KEY_NAME" '.[$key]')
|
||||||
|
if [ -n "$KEY_VALUE" ]; then
|
||||||
|
cat >> $TMP_FILE << EOF
|
||||||
|
- name: ${KEY_NAME}
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: ${MARIADB_RGW_SECRET}
|
name: ${MARIADB_RGW_SECRET}
|
||||||
key: OS_AUTH_URL
|
key: ${KEY_NAME}
|
||||||
- name: OS_REGION_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${MARIADB_RGW_SECRET}
|
|
||||||
key: OS_REGION_NAME
|
|
||||||
- name: OS_USERNAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${MARIADB_RGW_SECRET}
|
|
||||||
key: OS_USERNAME
|
|
||||||
- name: OS_PROJECT_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${MARIADB_RGW_SECRET}
|
|
||||||
key: OS_PROJECT_NAME
|
|
||||||
- name: OS_USER_DOMAIN_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${MARIADB_RGW_SECRET}
|
|
||||||
key: OS_USER_DOMAIN_NAME
|
|
||||||
- name: OS_PROJECT_DOMAIN_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${MARIADB_RGW_SECRET}
|
|
||||||
key: OS_PROJECT_DOMAIN_NAME
|
|
||||||
- name: OS_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${MARIADB_RGW_SECRET}
|
|
||||||
key: OS_PASSWORD
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $TLS_ENABLED; then
|
if $TLS_ENABLED; then
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
description: PostgreSQL Client
|
description: PostgreSQL Client
|
||||||
name: postgresql-utility
|
name: postgresql-utility
|
||||||
version: 0.1.5
|
version: 0.1.6
|
||||||
|
|||||||
@@ -159,43 +159,24 @@ EOF
|
|||||||
|
|
||||||
if $POSTGRESQL_REMOTE_BACKUP_ENABLED; then
|
if $POSTGRESQL_REMOTE_BACKUP_ENABLED; then
|
||||||
export POSTGRESQL_RGW_SECRET={{ $envAll.Values.conf.postgresql_backup_restore.secrets.rgw_secret }}
|
export POSTGRESQL_RGW_SECRET={{ $envAll.Values.conf.postgresql_backup_restore.secrets.rgw_secret }}
|
||||||
cat >> $TMP_FILE << EOF
|
|
||||||
- name: OS_AUTH_URL
|
# Get the list of keys and their values from the secret
|
||||||
|
SECRET_DATA=$(kubectl get secret $POSTGRESQL_RGW_SECRET -n $POSTGRESQL_POD_NAMESPACE -o jsonpath="{.data}")
|
||||||
|
|
||||||
|
# Iterate over each key
|
||||||
|
for KEY_NAME in $(echo $SECRET_DATA | jq -r 'keys[]'); do
|
||||||
|
KEY_VALUE=$(echo $SECRET_DATA | jq -r --arg key "$KEY_NAME" '.[$key]')
|
||||||
|
if [ -n "$KEY_VALUE" ]; then
|
||||||
|
cat >> $TMP_FILE << EOF
|
||||||
|
- name: ${KEY_NAME}
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
name: ${POSTGRESQL_RGW_SECRET}
|
||||||
key: OS_AUTH_URL
|
key: ${KEY_NAME}
|
||||||
- name: OS_REGION_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
|
||||||
key: OS_REGION_NAME
|
|
||||||
- name: OS_USERNAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
|
||||||
key: OS_USERNAME
|
|
||||||
- name: OS_PROJECT_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
|
||||||
key: OS_PROJECT_NAME
|
|
||||||
- name: OS_USER_DOMAIN_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
|
||||||
key: OS_USER_DOMAIN_NAME
|
|
||||||
- name: OS_PROJECT_DOMAIN_NAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
|
||||||
key: OS_PROJECT_DOMAIN_NAME
|
|
||||||
- name: OS_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ${POSTGRESQL_RGW_SECRET}
|
|
||||||
key: OS_PASSWORD
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat >> $TMP_FILE << EOF
|
cat >> $TMP_FILE << EOF
|
||||||
@@ -248,4 +229,4 @@ cat >> $TMP_FILE << EOF
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
kubectl create -n $POSTGRESQL_POD_NAMESPACE -f $TMP_FILE
|
kubectl create -n $POSTGRESQL_POD_NAMESPACE -f $TMP_FILE
|
||||||
rm -rf $TMP_FILE
|
# rm -rf $TMP_FILE
|
||||||
|
|||||||
Reference in New Issue
Block a user