diff --git a/internal/templating/backups/template_prebackuppod.go b/internal/templating/backups/template_prebackuppod.go index d908e0c2..b558c248 100644 --- a/internal/templating/backups/template_prebackuppod.go +++ b/internal/templating/backups/template_prebackuppod.go @@ -41,20 +41,22 @@ func GeneratePreBackupPod( "lagoon.sh/version": lValues.LagoonVersion, } - // add any additional labels - additionalLabels := map[string]string{} - additionalAnnotations := map[string]string{} - if lValues.BuildType == "branch" { - additionalAnnotations["lagoon.sh/branch"] = lValues.Branch - } else if lValues.BuildType == "pullrequest" { - additionalAnnotations["lagoon.sh/prNumber"] = lValues.PRNumber - additionalAnnotations["lagoon.sh/prHeadBranch"] = lValues.PRHeadBranch - additionalAnnotations["lagoon.sh/prBaseBranch"] = lValues.PRBaseBranch - - } - // create the prebackuppods for _, serviceValues := range lValues.Services { + // add any additional labels + additionalLabels := map[string]string{} + additionalAnnotations := map[string]string{} + if lValues.BuildType == "branch" { + additionalAnnotations["lagoon.sh/branch"] = lValues.Branch + } else if lValues.BuildType == "pullrequest" { + additionalAnnotations["lagoon.sh/prNumber"] = lValues.PRNumber + additionalAnnotations["lagoon.sh/prHeadBranch"] = lValues.PRHeadBranch + additionalAnnotations["lagoon.sh/prBaseBranch"] = lValues.PRBaseBranch + } + additionalLabels["app.kubernetes.io/name"] = serviceValues.Type + additionalLabels["app.kubernetes.io/instance"] = serviceValues.Name + additionalLabels["lagoon.sh/service"] = serviceValues.Name + additionalLabels["lagoon.sh/service-type"] = serviceValues.Type if _, ok := preBackupPodSpecs[serviceValues.Type]; ok { switch lValues.Backup.K8upVersion { case "v1": @@ -94,10 +96,10 @@ func GeneratePreBackupPod( if prebackuppod.Spec.Pod.Spec.Containers[0].EnvFrom == nil && serviceValues.DBaasReadReplica { prebackuppod.Spec.Pod.Spec.Containers[0].Env = append(prebackuppod.Spec.Pod.Spec.Containers[0].Env, v1.EnvVar{ - Name: "BACKUP_DB_READREPLICAS", + Name: "BACKUP_DB_READREPLICA_HOSTS", ValueFrom: &v1.EnvVarSource{ ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - Key: fmt.Sprintf("%s_READREPLICAS", varFix(serviceValues.OverrideName)), + Key: fmt.Sprintf("%s_READREPLICA_HOSTS", varFix(serviceValues.OverrideName)), LocalObjectReference: v1.LocalObjectReference{ Name: "lagoon-env", }, @@ -180,10 +182,10 @@ func GeneratePreBackupPod( if prebackuppod.Spec.Pod.Spec.Containers[0].EnvFrom == nil && serviceValues.DBaasReadReplica { prebackuppod.Spec.Pod.Spec.Containers[0].Env = append(prebackuppod.Spec.Pod.Spec.Containers[0].Env, v1.EnvVar{ - Name: "BACKUP_DB_READREPLICAS", + Name: "BACKUP_DB_READREPLICA_HOSTS", ValueFrom: &v1.EnvVarSource{ ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - Key: fmt.Sprintf("%s_READREPLICAS", varFix(serviceValues.OverrideName)), + Key: fmt.Sprintf("%s_READREPLICA_HOSTS", varFix(serviceValues.OverrideName)), LocalObjectReference: v1.LocalObjectReference{ Name: "lagoon-env", }, @@ -261,8 +263,8 @@ type PreBackupPods map[string]string // this is just the first run at doing this, once the service template generator is introduced, this will need to be re-evaluated var preBackupPodSpecs = PreBackupPods{ "mariadb-dbaas": `backupCommand: > - /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICAS ]; then - BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICAS | cut -d ',' -f1); + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then + BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick @@ -315,8 +317,8 @@ pod: imagePullPolicy: Always name: {{ .Name }}-prebackuppod`, "postgres-dbaas": `backupCommand: > - /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICAS ]; then - BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICAS | cut -d ',' -f1); + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then + BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && PGPASSWORD=$BACKUP_DB_PASSWORD pg_dump --host=$BACKUP_DB_HOST --port=$BACKUP_DB_PORT diff --git a/internal/templating/backups/template_prebackuppod_test.go b/internal/templating/backups/template_prebackuppod_test.go index b70cf669..47698464 100644 --- a/internal/templating/backups/template_prebackuppod_test.go +++ b/internal/templating/backups/template_prebackuppod_test.go @@ -132,6 +132,41 @@ func TestGeneratePreBackupPod(t *testing.T) { }, want: "test-resources/result-prebackuppod4.yaml", }, + { + name: "test5 - multiple k8up/v1", + args: args{ + lValues: generator.BuildValues{ + Project: "example-project", + Environment: "environment-with-really-really-reall-3fdb", + EnvironmentType: "production", + Namespace: "myexample-project-environment-with-really-really-reall-3fdb", + BuildType: "branch", + LagoonVersion: "v2.x.x", + Kubernetes: "generator.local", + Branch: "environment-with-really-really-reall-3fdb", + Services: []generator.ServiceValues{ + { + Name: "mariadb-database", + OverrideName: "mariadb-database", + Type: "mariadb-dbaas", + DBaaSEnvironment: "development", + DBaasReadReplica: true, + }, + { + Name: "mariadb", + OverrideName: "mariadb", + Type: "mariadb-dbaas", + DBaaSEnvironment: "development", + DBaasReadReplica: true, + }, + }, + Backup: generator.BackupConfiguration{ + K8upVersion: "v2", + }, + }, + }, + want: "test-resources/result-prebackuppod5.yaml", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/internal/templating/backups/test-resources/result-prebackuppod1.yaml b/internal/templating/backups/test-resources/result-prebackuppod1.yaml index 730be873..ed28fe42 100644 --- a/internal/templating/backups/test-resources/result-prebackuppod1.yaml +++ b/internal/templating/backups/test-resources/result-prebackuppod1.yaml @@ -7,16 +7,20 @@ metadata: lagoon.sh/version: v2.x.x creationTimestamp: null labels: + app.kubernetes.io/instance: mariadb-database app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: mariadb-dbaas lagoon.sh/buildType: branch lagoon.sh/environment: environment-with-really-really-reall-3fdb lagoon.sh/environmentType: production lagoon.sh/project: example-project + lagoon.sh/service: mariadb-database + lagoon.sh/service-type: mariadb-dbaas prebackuppod: mariadb-database name: mariadb-database-prebackuppod spec: backupCommand: | - /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICAS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICAS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" fileExtension: .mariadb-database.sql pod: metadata: {} @@ -46,10 +50,10 @@ spec: configMapKeyRef: key: MARIADB_DATABASE_DATABASE name: lagoon-env - - name: BACKUP_DB_READREPLICAS + - name: BACKUP_DB_READREPLICA_HOSTS valueFrom: configMapKeyRef: - key: MARIADB_DATABASE_READREPLICAS + key: MARIADB_DATABASE_READREPLICA_HOSTS name: lagoon-env image: uselagoon/database-tools:latest imagePullPolicy: Always diff --git a/internal/templating/backups/test-resources/result-prebackuppod2.yaml b/internal/templating/backups/test-resources/result-prebackuppod2.yaml index 3cfbc1e4..870c21d2 100644 --- a/internal/templating/backups/test-resources/result-prebackuppod2.yaml +++ b/internal/templating/backups/test-resources/result-prebackuppod2.yaml @@ -7,16 +7,20 @@ metadata: lagoon.sh/version: v2.x.x creationTimestamp: null labels: + app.kubernetes.io/instance: postgres-database app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: postgres-dbaas lagoon.sh/buildType: branch lagoon.sh/environment: environment-with-really-really-reall-3fdb lagoon.sh/environmentType: production lagoon.sh/project: example-project + lagoon.sh/service: postgres-database + lagoon.sh/service-type: postgres-dbaas prebackuppod: postgres-database name: postgres-database-prebackuppod spec: backupCommand: | - /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICAS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICAS | cut -d ',' -f1); fi && PGPASSWORD=$BACKUP_DB_PASSWORD pg_dump --host=$BACKUP_DB_HOST --port=$BACKUP_DB_PORT --dbname=$BACKUP_DB_NAME --username=$BACKUP_DB_USERNAME --format=t -w" + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && PGPASSWORD=$BACKUP_DB_PASSWORD pg_dump --host=$BACKUP_DB_HOST --port=$BACKUP_DB_PORT --dbname=$BACKUP_DB_NAME --username=$BACKUP_DB_USERNAME --format=t -w" fileExtension: .postgres-database.tar pod: metadata: {} @@ -46,10 +50,10 @@ spec: configMapKeyRef: key: POSTGRES_DATABASE_DATABASE name: lagoon-env - - name: BACKUP_DB_READREPLICAS + - name: BACKUP_DB_READREPLICA_HOSTS valueFrom: configMapKeyRef: - key: POSTGRES_DATABASE_READREPLICAS + key: POSTGRES_DATABASE_READREPLICA_HOSTS name: lagoon-env image: uselagoon/database-tools:latest imagePullPolicy: Always diff --git a/internal/templating/backups/test-resources/result-prebackuppod3.yaml b/internal/templating/backups/test-resources/result-prebackuppod3.yaml index ec5289b4..92a21f7f 100644 --- a/internal/templating/backups/test-resources/result-prebackuppod3.yaml +++ b/internal/templating/backups/test-resources/result-prebackuppod3.yaml @@ -7,11 +7,15 @@ metadata: lagoon.sh/version: v2.x.x creationTimestamp: null labels: + app.kubernetes.io/instance: mongodb-database app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: mongodb-dbaas lagoon.sh/buildType: branch lagoon.sh/environment: environment-with-really-really-reall-3fdb lagoon.sh/environmentType: production lagoon.sh/project: example-project + lagoon.sh/service: mongodb-database + lagoon.sh/service-type: mongodb-dbaas prebackuppod: mongodb-database name: mongodb-database-prebackuppod spec: @@ -46,10 +50,10 @@ spec: configMapKeyRef: key: MONGODB_DATABASE_DATABASE name: lagoon-env - - name: BACKUP_DB_READREPLICAS + - name: BACKUP_DB_READREPLICA_HOSTS valueFrom: configMapKeyRef: - key: MONGODB_DATABASE_READREPLICAS + key: MONGODB_DATABASE_READREPLICA_HOSTS name: lagoon-env image: uselagoon/database-tools:latest imagePullPolicy: Always diff --git a/internal/templating/backups/test-resources/result-prebackuppod4.yaml b/internal/templating/backups/test-resources/result-prebackuppod4.yaml index 6d83e067..ceccd2da 100644 --- a/internal/templating/backups/test-resources/result-prebackuppod4.yaml +++ b/internal/templating/backups/test-resources/result-prebackuppod4.yaml @@ -7,16 +7,20 @@ metadata: lagoon.sh/version: v2.x.x creationTimestamp: null labels: + app.kubernetes.io/instance: mariadb-database app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: mariadb-dbaas lagoon.sh/buildType: branch lagoon.sh/environment: environment-with-really-really-reall-3fdb lagoon.sh/environmentType: production lagoon.sh/project: example-project + lagoon.sh/service: mariadb-database + lagoon.sh/service-type: mariadb-dbaas prebackuppod: mariadb-database name: mariadb-database-prebackuppod spec: backupCommand: | - /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICAS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICAS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" fileExtension: .mariadb-database.sql pod: metadata: {} @@ -46,10 +50,10 @@ spec: configMapKeyRef: key: MARIADB_DATABASE_DATABASE name: lagoon-env - - name: BACKUP_DB_READREPLICAS + - name: BACKUP_DB_READREPLICA_HOSTS valueFrom: configMapKeyRef: - key: MARIADB_DATABASE_READREPLICAS + key: MARIADB_DATABASE_READREPLICA_HOSTS name: lagoon-env image: uselagoon/database-tools:latest imagePullPolicy: Always diff --git a/internal/templating/backups/test-resources/result-prebackuppod5.yaml b/internal/templating/backups/test-resources/result-prebackuppod5.yaml new file mode 100644 index 00000000..b3a064c5 --- /dev/null +++ b/internal/templating/backups/test-resources/result-prebackuppod5.yaml @@ -0,0 +1,122 @@ +--- +apiVersion: k8up.io/v1 +kind: PreBackupPod +metadata: + annotations: + lagoon.sh/branch: environment-with-really-really-reall-3fdb + lagoon.sh/version: v2.x.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: mariadb-database + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: mariadb-dbaas + lagoon.sh/buildType: branch + lagoon.sh/environment: environment-with-really-really-reall-3fdb + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: mariadb-database + lagoon.sh/service-type: mariadb-dbaas + prebackuppod: mariadb-database + name: mariadb-database-prebackuppod +spec: + backupCommand: | + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" + fileExtension: .mariadb-database.sql + pod: + metadata: {} + spec: + containers: + - args: + - sleep + - infinity + env: + - name: BACKUP_DB_HOST + valueFrom: + configMapKeyRef: + key: MARIADB_DATABASE_HOST + name: lagoon-env + - name: BACKUP_DB_USERNAME + valueFrom: + configMapKeyRef: + key: MARIADB_DATABASE_USERNAME + name: lagoon-env + - name: BACKUP_DB_PASSWORD + valueFrom: + configMapKeyRef: + key: MARIADB_DATABASE_PASSWORD + name: lagoon-env + - name: BACKUP_DB_DATABASE + valueFrom: + configMapKeyRef: + key: MARIADB_DATABASE_DATABASE + name: lagoon-env + - name: BACKUP_DB_READREPLICA_HOSTS + valueFrom: + configMapKeyRef: + key: MARIADB_DATABASE_READREPLICA_HOSTS + name: lagoon-env + image: uselagoon/database-tools:latest + imagePullPolicy: Always + name: mariadb-database-prebackuppod + resources: {} +--- +apiVersion: k8up.io/v1 +kind: PreBackupPod +metadata: + annotations: + lagoon.sh/branch: environment-with-really-really-reall-3fdb + lagoon.sh/version: v2.x.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: mariadb + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: mariadb-dbaas + lagoon.sh/buildType: branch + lagoon.sh/environment: environment-with-really-really-reall-3fdb + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: mariadb + lagoon.sh/service-type: mariadb-dbaas + prebackuppod: mariadb + name: mariadb-prebackuppod +spec: + backupCommand: | + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" + fileExtension: .mariadb.sql + pod: + metadata: {} + spec: + containers: + - args: + - sleep + - infinity + env: + - name: BACKUP_DB_HOST + valueFrom: + configMapKeyRef: + key: MARIADB_HOST + name: lagoon-env + - name: BACKUP_DB_USERNAME + valueFrom: + configMapKeyRef: + key: MARIADB_USERNAME + name: lagoon-env + - name: BACKUP_DB_PASSWORD + valueFrom: + configMapKeyRef: + key: MARIADB_PASSWORD + name: lagoon-env + - name: BACKUP_DB_DATABASE + valueFrom: + configMapKeyRef: + key: MARIADB_DATABASE + name: lagoon-env + - name: BACKUP_DB_READREPLICA_HOSTS + valueFrom: + configMapKeyRef: + key: MARIADB_READREPLICA_HOSTS + name: lagoon-env + image: uselagoon/database-tools:latest + imagePullPolicy: Always + name: mariadb-prebackuppod + resources: {} diff --git a/test-resources/template-backups/test1-results/prebackuppods.yaml b/test-resources/template-backups/test1-results/prebackuppods.yaml index baa8c216..7c739c5b 100644 --- a/test-resources/template-backups/test1-results/prebackuppods.yaml +++ b/test-resources/template-backups/test1-results/prebackuppods.yaml @@ -7,16 +7,20 @@ metadata: lagoon.sh/version: v2.7.x creationTimestamp: null labels: + app.kubernetes.io/instance: mariadb app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: mariadb-dbaas lagoon.sh/buildType: branch lagoon.sh/environment: main lagoon.sh/environmentType: production lagoon.sh/project: example-project + lagoon.sh/service: mariadb + lagoon.sh/service-type: mariadb-dbaas prebackuppod: mariadb name: mariadb-prebackuppod spec: backupCommand: | - /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICAS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICAS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" + /bin/sh -c "if [ ! -z $BACKUP_DB_READREPLICA_HOSTS ]; then BACKUP_DB_HOST=$(echo $BACKUP_DB_READREPLICA_HOSTS | cut -d ',' -f1); fi && dump=$(mktemp) && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data --no-tablespaces -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE > $dump && mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info --no-tablespaces --skip-triggers -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE >> $dump && cat $dump && rm $dump" fileExtension: .mariadb.sql pod: metadata: {}