diff --git a/ansible/roles/mariadb/tasks/backup.yml b/ansible/roles/mariadb/tasks/backup.yml index 0ddd8521d2..e92c64d36e 100644 --- a/ansible/roles/mariadb/tasks/backup.yml +++ b/ansible/roles/mariadb/tasks/backup.yml @@ -10,12 +10,10 @@ register: container_facts - name: Taking {{ mariadb_backup_type }} database backup via Mariabackup - vars: - cmd: "{{ 'kolla_mariadb_backup.sh' if mariadb_backup_target == 'active' else 'kolla_mariadb_backup_replica.sh' }}" become: true kolla_container: action: "start_container" - command: "bash -c 'sudo -E kolla_set_configs && /usr/local/bin/{{ cmd }}'" + command: "bash -c 'sudo -E kolla_set_configs && /usr/local/bin/kolla_mariadb_backup.sh'" common_options: "{{ docker_common_options }}" detach: False # NOTE(mgoddard): Try to use the same image as the MariaDB server container diff --git a/ansible/roles/mariadb/templates/backup.my.cnf.j2 b/ansible/roles/mariadb/templates/backup.my.cnf.j2 index 0620e046ab..8d1ae25933 100644 --- a/ansible/roles/mariadb/templates/backup.my.cnf.j2 +++ b/ansible/roles/mariadb/templates/backup.my.cnf.j2 @@ -2,5 +2,5 @@ default-character-set=utf8 user={{ mariadb_backup_database_user }} password={{ mariadb_backup_database_password }} -host={{ database_address }} -port={{ database_port }} +host={{ api_interface_address }} +port={{ mariadb_port }} diff --git a/releasenotes/notes/mariadb-backup-connect-locally-9f4c2d1e7b3a0c65.yaml b/releasenotes/notes/mariadb-backup-connect-locally-9f4c2d1e7b3a0c65.yaml new file mode 100644 index 0000000000..6b54520d47 --- /dev/null +++ b/releasenotes/notes/mariadb-backup-connect-locally-9f4c2d1e7b3a0c65.yaml @@ -0,0 +1,16 @@ +--- +fixes: + - | + Fixes MariaDB backups failing since MariaDB 10.11.19 and 11.4.13. + Mariabackup copied the data directory of ``mariadb_backup_host`` but + connected through the load balancer, which could route it to a different + Galera member. The backup lock then applied to the wrong node. It now + connects to the MariaDB instance on the host it backs up. +upgrade: + - | + ``mariadb_backup_target`` no longer has any effect. Backups are always + taken from ``mariadb_backup_host``. + - | + Full backups are now named ``mysqlbackup-.qp.xbc.xbs.gz`` and + incrementals ``incremental--mysqlbackup-.qp.xbc.xbs.gz``, + matching the restore documentation. Existing backups remain restorable. diff --git a/tests/setup_gate.sh b/tests/setup_gate.sh index 81618711f6..b447e24946 100755 --- a/tests/setup_gate.sh +++ b/tests/setup_gate.sh @@ -20,6 +20,7 @@ function prepare_images { python3 -m venv ~/kolla-venv source ~/kolla-venv/bin/activate + pip3 install -U pip if [[ "$CONTAINER_ENGINE" == "docker" ]]; then pip install "${KOLLA_SRC_DIR}" "docker" else diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index 86fa3bf0e0..40d7aa942a 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -200,6 +200,7 @@ scenario_images_extra: - ^cinder - ^redis + - ^valkey - job: name: kolla-ansible-magnum-base @@ -227,7 +228,7 @@ vars: scenario: octavia scenario_images_extra: - - ^redis + - ^valkey - ^octavia - job: @@ -279,6 +280,7 @@ - ^tacker - ^mistral - ^redis + - ^valkey - ^barbican - job: @@ -307,7 +309,7 @@ vars: scenario: ovn scenario_images_extra: - - ^redis + - ^valkey - ^octavia - ^ovn