[backups] Mariadb backups improvements
This PS removes mariadb-verify-server sidecar container from mariadb-backup cronjob in order to make backup process more resilient. Change-Id: I2517c2de435ead34397ca0483610f511c8035bdf
This commit is contained in:
parent
a656fc4875
commit
f66c924b2f
@ -15,7 +15,7 @@ apiVersion: v1
|
|||||||
appVersion: v1.0.0
|
appVersion: v1.0.0
|
||||||
description: OpenStack-Helm Helm-Toolkit
|
description: OpenStack-Helm Helm-Toolkit
|
||||||
name: helm-toolkit
|
name: helm-toolkit
|
||||||
version: 0.2.57
|
version: 0.2.58
|
||||||
home: https://docs.openstack.org/openstack-helm
|
home: https://docs.openstack.org/openstack-helm
|
||||||
icon: https://www.openstack.org/themes/openstack/images/project-mascots/OpenStack-Helm/OpenStack_Project_OpenStackHelm_vertical.png
|
icon: https://www.openstack.org/themes/openstack/images/project-mascots/OpenStack-Helm/OpenStack_Project_OpenStackHelm_vertical.png
|
||||||
sources:
|
sources:
|
||||||
|
@ -95,7 +95,7 @@ log_backup_error_exit() {
|
|||||||
log ERROR "${DB_NAME}_backup" "${DB_NAMESPACE} namespace: ${MSG}"
|
log ERROR "${DB_NAME}_backup" "${DB_NAMESPACE} namespace: ${MSG}"
|
||||||
rm -f $ERR_LOG_FILE
|
rm -f $ERR_LOG_FILE
|
||||||
rm -rf $TMP_DIR
|
rm -rf $TMP_DIR
|
||||||
exit $ERRCODE
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
log_verify_backup_exit() {
|
log_verify_backup_exit() {
|
||||||
@ -104,7 +104,7 @@ log_verify_backup_exit() {
|
|||||||
log ERROR "${DB_NAME}_verify_backup" "${DB_NAMESPACE} namespace: ${MSG}"
|
log ERROR "${DB_NAME}_verify_backup" "${DB_NAMESPACE} namespace: ${MSG}"
|
||||||
rm -f $ERR_LOG_FILE
|
rm -f $ERR_LOG_FILE
|
||||||
# rm -rf $TMP_DIR
|
# rm -rf $TMP_DIR
|
||||||
exit $ERRCODE
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ apiVersion: v1
|
|||||||
appVersion: v10.6.14
|
appVersion: v10.6.14
|
||||||
description: OpenStack-Helm MariaDB backups
|
description: OpenStack-Helm MariaDB backups
|
||||||
name: mariadb-backup
|
name: mariadb-backup
|
||||||
version: 0.0.2
|
version: 0.0.3
|
||||||
home: https://mariadb.com/kb/en/
|
home: https://mariadb.com/kb/en/
|
||||||
icon: http://badges.mariadb.org/mariadb-badge-180x60.png
|
icon: http://badges.mariadb.org/mariadb-badge-180x60.png
|
||||||
sources:
|
sources:
|
||||||
|
@ -441,8 +441,8 @@ verify_databases_backup_archives() {
|
|||||||
export ARCHIVE_DIR=${MARIADB_BACKUP_BASE_DIR}/db/${MARIADB_POD_NAMESPACE}/${DB_NAME}/archive
|
export ARCHIVE_DIR=${MARIADB_BACKUP_BASE_DIR}/db/${MARIADB_POD_NAMESPACE}/${DB_NAME}/archive
|
||||||
export BAD_ARCHIVE_DIR=${ARCHIVE_DIR}/quarantine
|
export BAD_ARCHIVE_DIR=${ARCHIVE_DIR}/quarantine
|
||||||
export MYSQL_OPTS="--silent --skip-column-names"
|
export MYSQL_OPTS="--silent --skip-column-names"
|
||||||
export MYSQL_LIVE="mysql --defaults-file=/etc/mysql/admin_user.cnf ${MYSQL_OPTS}"
|
export MYSQL_LIVE="mysql ${MYSQL_OPTS}"
|
||||||
export MYSQL_LOCAL_OPTS="--user=root --host=127.0.0.1"
|
export MYSQL_LOCAL_OPTS=""
|
||||||
export MYSQL_LOCAL_SHORT="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 2"
|
export MYSQL_LOCAL_SHORT="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 2"
|
||||||
export MYSQL_LOCAL_SHORT_SILENT="${MYSQL_LOCAL_SHORT} ${MYSQL_OPTS}"
|
export MYSQL_LOCAL_SHORT_SILENT="${MYSQL_LOCAL_SHORT} ${MYSQL_OPTS}"
|
||||||
export MYSQL_LOCAL="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 10"
|
export MYSQL_LOCAL="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 10"
|
||||||
|
@ -25,4 +25,5 @@ log () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log "Starting Mariadb server for backup verification..."
|
log "Starting Mariadb server for backup verification..."
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD=1 nohup bash -x docker-entrypoint.sh mysqld --user=nobody 2>&1
|
mysql_install_db --user=nobody --ldata=/var/lib/mysql >/dev/null 2>&1
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD=1 mysqld --user=nobody --verbose >/dev/null 2>&1
|
||||||
|
@ -50,12 +50,12 @@ spec:
|
|||||||
{{ tuple $envAll "mariadb-backup" "backup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
|
{{ tuple $envAll "mariadb-backup" "backup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
|
||||||
spec:
|
spec:
|
||||||
{{ dict "envAll" $envAll "application" "mariadb_backup" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 10 }}
|
{{ dict "envAll" $envAll "application" "mariadb_backup" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 10 }}
|
||||||
restartPolicy: OnFailure
|
|
||||||
serviceAccountName: {{ $serviceAccountName }}
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
|
restartPolicy: OnFailure
|
||||||
shareProcessNamespace: true
|
shareProcessNamespace: true
|
||||||
{{ if $envAll.Values.pod.tolerations.mariadb.enabled }}
|
{{- if $envAll.Values.pod.tolerations.mariadb.enabled }}
|
||||||
{{ tuple $envAll "mariadb" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 10 }}
|
{{ tuple $envAll "mariadb" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 10 }}
|
||||||
{{ end }}
|
{{- end }}
|
||||||
{{- if $envAll.Values.pod.affinity }}
|
{{- if $envAll.Values.pod.affinity }}
|
||||||
{{- if $envAll.Values.pod.affinity.mariadb_backup }}
|
{{- if $envAll.Values.pod.affinity.mariadb_backup }}
|
||||||
affinity:
|
affinity:
|
||||||
@ -104,8 +104,8 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- -c
|
- -c
|
||||||
- >-
|
- >-
|
||||||
/tmp/backup_mariadb.sh;
|
( /tmp/start_verification_server.sh ) &
|
||||||
/usr/bin/pkill mysqld
|
/tmp/backup_mariadb.sh
|
||||||
env:
|
env:
|
||||||
- name: MARIADB_BACKUP_BASE_DIR
|
- name: MARIADB_BACKUP_BASE_DIR
|
||||||
value: {{ .Values.conf.backup.base_path | quote }}
|
value: {{ .Values.conf.backup.base_path | quote }}
|
||||||
@ -156,47 +156,15 @@ spec:
|
|||||||
mountPath: /etc/mysql/admin_user.cnf
|
mountPath: /etc/mysql/admin_user.cnf
|
||||||
subPath: admin_user.cnf
|
subPath: admin_user.cnf
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{ dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.secrets.tls.oslo_db.server.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 16 }}
|
|
||||||
- name: mariadb-verify-server
|
|
||||||
{{ tuple $envAll "mariadb" | include "helm-toolkit.snippets.image" | indent 14 }}
|
|
||||||
{{ dict "envAll" $envAll "application" "mariadb_backup" "container" "mariadb_verify_server" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 14 }}
|
|
||||||
{{ tuple $envAll $envAll.Values.pod.resources.server | include "helm-toolkit.snippets.kubernetes_resources" | indent 14 }}
|
|
||||||
env:
|
|
||||||
{{- if $envAll.Values.manifests.certificates }}
|
|
||||||
- name: MARIADB_X509
|
|
||||||
value: "REQUIRE X509"
|
|
||||||
{{- end }}
|
|
||||||
- name: MYSQL_HISTFILE
|
|
||||||
value: /dev/null
|
|
||||||
- name: MARIADB_BACKUP_BASE_DIR
|
|
||||||
value: {{ .Values.conf.backup.base_path | quote }}
|
|
||||||
ports:
|
|
||||||
- name: mysql
|
|
||||||
protocol: TCP
|
|
||||||
containerPort: {{ tuple "oslo_db" "direct" "mysql" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
|
|
||||||
command:
|
|
||||||
- /tmp/start_verification_server.sh
|
|
||||||
volumeMounts:
|
|
||||||
- name: pod-tmp
|
|
||||||
mountPath: /tmp
|
|
||||||
- name: var-run
|
|
||||||
mountPath: /var/run/mysqld
|
|
||||||
- name: mycnfd
|
|
||||||
mountPath: /etc/mysql/conf.d
|
|
||||||
- name: mariadb-backup-etc
|
|
||||||
mountPath: /etc/mysql/my.cnf
|
|
||||||
subPath: my.cnf
|
|
||||||
readOnly: true
|
|
||||||
- name: mariadb-backup-secrets
|
|
||||||
mountPath: /etc/mysql/admin_user.cnf
|
|
||||||
subPath: admin_user.cnf
|
|
||||||
readOnly: true
|
|
||||||
- name: mysql-data
|
|
||||||
mountPath: /var/lib/mysql
|
|
||||||
- name: mariadb-backup-bin
|
- name: mariadb-backup-bin
|
||||||
mountPath: /tmp/start_verification_server.sh
|
mountPath: /tmp/start_verification_server.sh
|
||||||
readOnly: true
|
readOnly: true
|
||||||
subPath: start_verification_server.sh
|
subPath: start_verification_server.sh
|
||||||
|
- name: mysql-data
|
||||||
|
mountPath: /var/lib/mysql
|
||||||
|
- name: var-run
|
||||||
|
mountPath: /run/mysqld
|
||||||
|
{{ dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.secrets.tls.oslo_db.server.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 16 }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: pod-tmp
|
- name: pod-tmp
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
|
@ -73,10 +73,6 @@ pod:
|
|||||||
runAsUser: 65534
|
runAsUser: 65534
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
mariadb_verify_server:
|
|
||||||
runAsUser: 65534
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
tests:
|
tests:
|
||||||
pod:
|
pod:
|
||||||
runAsUser: 999
|
runAsUser: 999
|
||||||
|
@ -15,7 +15,7 @@ apiVersion: v1
|
|||||||
appVersion: v10.6.7
|
appVersion: v10.6.7
|
||||||
description: OpenStack-Helm MariaDB
|
description: OpenStack-Helm MariaDB
|
||||||
name: mariadb
|
name: mariadb
|
||||||
version: 0.2.36
|
version: 0.2.37
|
||||||
home: https://mariadb.com/kb/en/
|
home: https://mariadb.com/kb/en/
|
||||||
icon: http://badges.mariadb.org/mariadb-badge-180x60.png
|
icon: http://badges.mariadb.org/mariadb-badge-180x60.png
|
||||||
sources:
|
sources:
|
||||||
|
@ -441,8 +441,8 @@ verify_databases_backup_archives() {
|
|||||||
export ARCHIVE_DIR=${MARIADB_BACKUP_BASE_DIR}/db/${MARIADB_POD_NAMESPACE}/${DB_NAME}/archive
|
export ARCHIVE_DIR=${MARIADB_BACKUP_BASE_DIR}/db/${MARIADB_POD_NAMESPACE}/${DB_NAME}/archive
|
||||||
export BAD_ARCHIVE_DIR=${ARCHIVE_DIR}/quarantine
|
export BAD_ARCHIVE_DIR=${ARCHIVE_DIR}/quarantine
|
||||||
export MYSQL_OPTS="--silent --skip-column-names"
|
export MYSQL_OPTS="--silent --skip-column-names"
|
||||||
export MYSQL_LIVE="mysql --defaults-file=/etc/mysql/admin_user.cnf ${MYSQL_OPTS}"
|
export MYSQL_LIVE="mysql ${MYSQL_OPTS}"
|
||||||
export MYSQL_LOCAL_OPTS="--user=root --host=127.0.0.1"
|
export MYSQL_LOCAL_OPTS=""
|
||||||
export MYSQL_LOCAL_SHORT="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 2"
|
export MYSQL_LOCAL_SHORT="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 2"
|
||||||
export MYSQL_LOCAL_SHORT_SILENT="${MYSQL_LOCAL_SHORT} ${MYSQL_OPTS}"
|
export MYSQL_LOCAL_SHORT_SILENT="${MYSQL_LOCAL_SHORT} ${MYSQL_OPTS}"
|
||||||
export MYSQL_LOCAL="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 10"
|
export MYSQL_LOCAL="mysql ${MYSQL_LOCAL_OPTS} --connect-timeout 10"
|
||||||
|
@ -25,4 +25,5 @@ log () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log "Starting Mariadb server for backup verification..."
|
log "Starting Mariadb server for backup verification..."
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD=1 nohup bash -x docker-entrypoint.sh mysqld --user=nobody 2>&1
|
mysql_install_db --user=nobody --ldata=/var/lib/mysql >/dev/null 2>&1
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD=1 mysqld --user=nobody --verbose >/dev/null 2>&1
|
||||||
|
@ -104,8 +104,8 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- -c
|
- -c
|
||||||
- >-
|
- >-
|
||||||
/tmp/backup_mariadb.sh;
|
( /tmp/start_verification_server.sh ) &
|
||||||
/usr/bin/pkill mysqld
|
/tmp/backup_mariadb.sh
|
||||||
env:
|
env:
|
||||||
- name: MARIADB_BACKUP_BASE_DIR
|
- name: MARIADB_BACKUP_BASE_DIR
|
||||||
value: {{ .Values.conf.backup.base_path | quote }}
|
value: {{ .Values.conf.backup.base_path | quote }}
|
||||||
@ -157,46 +157,14 @@ spec:
|
|||||||
subPath: admin_user.cnf
|
subPath: admin_user.cnf
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{ dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.secrets.tls.oslo_db.server.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 16 }}
|
{{ dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.secrets.tls.oslo_db.server.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 16 }}
|
||||||
- name: mariadb-verify-server
|
|
||||||
{{ tuple $envAll "mariadb" | include "helm-toolkit.snippets.image" | indent 14 }}
|
|
||||||
{{ dict "envAll" $envAll "application" "mariadb_backup" "container" "mariadb_verify_server" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 14 }}
|
|
||||||
{{ tuple $envAll $envAll.Values.pod.resources.server | include "helm-toolkit.snippets.kubernetes_resources" | indent 14 }}
|
|
||||||
env:
|
|
||||||
{{- if $envAll.Values.manifests.certificates }}
|
|
||||||
- name: MARIADB_X509
|
|
||||||
value: "REQUIRE X509"
|
|
||||||
{{- end }}
|
|
||||||
- name: MYSQL_HISTFILE
|
|
||||||
value: /dev/null
|
|
||||||
- name: MARIADB_BACKUP_BASE_DIR
|
|
||||||
value: {{ .Values.conf.backup.base_path | quote }}
|
|
||||||
ports:
|
|
||||||
- name: mysql
|
|
||||||
protocol: TCP
|
|
||||||
containerPort: {{ tuple "oslo_db" "direct" "mysql" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
|
|
||||||
command:
|
|
||||||
- /tmp/start_verification_server.sh
|
|
||||||
volumeMounts:
|
|
||||||
- name: pod-tmp
|
|
||||||
mountPath: /tmp
|
|
||||||
- name: var-run
|
|
||||||
mountPath: /var/run/mysqld
|
|
||||||
- name: mycnfd
|
|
||||||
mountPath: /etc/mysql/conf.d
|
|
||||||
- name: mariadb-etc
|
|
||||||
mountPath: /etc/mysql/my.cnf
|
|
||||||
subPath: my.cnf
|
|
||||||
readOnly: true
|
|
||||||
- name: mariadb-secrets
|
|
||||||
mountPath: /etc/mysql/admin_user.cnf
|
|
||||||
subPath: admin_user.cnf
|
|
||||||
readOnly: true
|
|
||||||
- name: mysql-data
|
|
||||||
mountPath: /var/lib/mysql
|
|
||||||
- name: mariadb-bin
|
- name: mariadb-bin
|
||||||
mountPath: /tmp/start_verification_server.sh
|
mountPath: /tmp/start_verification_server.sh
|
||||||
readOnly: true
|
readOnly: true
|
||||||
subPath: start_verification_server.sh
|
subPath: start_verification_server.sh
|
||||||
|
- name: mysql-data
|
||||||
|
mountPath: /var/lib/mysql
|
||||||
|
- name: var-run
|
||||||
|
mountPath: /run/mysqld
|
||||||
volumes:
|
volumes:
|
||||||
- name: pod-tmp
|
- name: pod-tmp
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
|
@ -28,7 +28,7 @@ images:
|
|||||||
prometheus_mysql_exporter_helm_tests: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
|
prometheus_mysql_exporter_helm_tests: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
|
||||||
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
|
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
|
||||||
image_repo_sync: docker.io/library/docker:17.07.0
|
image_repo_sync: docker.io/library/docker:17.07.0
|
||||||
mariadb_backup: quay.io/airshipit/porthole-mysqlclient-utility:latest-ubuntu_bionic
|
mariadb_backup: quay.io/airshipit/porthole-mysqlclient-utility:latest-ubuntu_focal
|
||||||
ks_user: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
|
ks_user: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
|
||||||
scripted_test: docker.io/openstackhelm/mariadb:ubuntu_focal-20210415
|
scripted_test: docker.io/openstackhelm/mariadb:ubuntu_focal-20210415
|
||||||
pull_policy: "IfNotPresent"
|
pull_policy: "IfNotPresent"
|
||||||
@ -129,10 +129,6 @@ pod:
|
|||||||
runAsUser: 65534
|
runAsUser: 65534
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
mariadb_verify_server:
|
|
||||||
runAsUser: 65534
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
tests:
|
tests:
|
||||||
pod:
|
pod:
|
||||||
runAsUser: 999
|
runAsUser: 999
|
||||||
|
@ -64,4 +64,5 @@ helm-toolkit:
|
|||||||
- 0.2.55 Updated deprecated IngressClass annotation
|
- 0.2.55 Updated deprecated IngressClass annotation
|
||||||
- 0.2.56 Expose S3 credentials from Rook bucket CRD secret
|
- 0.2.56 Expose S3 credentials from Rook bucket CRD secret
|
||||||
- 0.2.57 Safer file removal
|
- 0.2.57 Safer file removal
|
||||||
|
- 0.2.58 Backups verification improvements
|
||||||
...
|
...
|
||||||
|
@ -2,4 +2,5 @@
|
|||||||
mariadb-backup:
|
mariadb-backup:
|
||||||
- 0.0.1 Initial Chart
|
- 0.0.1 Initial Chart
|
||||||
- 0.0.2 Added staggered backups support
|
- 0.0.2 Added staggered backups support
|
||||||
|
- 0.0.3 Backups verification improvements
|
||||||
...
|
...
|
||||||
|
@ -52,4 +52,5 @@ mariadb:
|
|||||||
- 0.2.34 Uplift ingress controller image to 1.8.2
|
- 0.2.34 Uplift ingress controller image to 1.8.2
|
||||||
- 0.2.35 Update apparmor override
|
- 0.2.35 Update apparmor override
|
||||||
- 0.2.36 Added staggered backups support
|
- 0.2.36 Added staggered backups support
|
||||||
|
- 0.2.37 Backups verification improvements
|
||||||
...
|
...
|
||||||
|
Loading…
Reference in New Issue
Block a user