mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-07-25 14:20:24 -07:00
Refactor the way server_id is set for replicas
The simple way is to add '--server-id 2' after the name of the image of the container. But GHA doesn't let us do that. The idea of mount a file from our repo doesn't work because the repo is check out later in the workflow and I failed to find a pre-job hook. Then I realized that this MySQL option is dynamic! So we will set that in the test target!
This commit is contained in:
parent
163a43ba80
commit
8d43f9e573
5 changed files with 17 additions and 18 deletions
4
.github/workflows/ansible-test-plugins.yml
vendored
4
.github/workflows/ansible-test-plugins.yml
vendored
|
@ -105,8 +105,6 @@ jobs:
|
|||
MYSQL_ROOT_PASSWORD: msandbox
|
||||
ports:
|
||||
- 3308:3306
|
||||
volumes:
|
||||
- ${{ github.workspace }}/tests/integration/setup_mysql/replica1/:/etc/mysql/conf.d/
|
||||
options: >-
|
||||
--health-cmd "mysqladmin ping -P 3306 -pmsandbox |grep alive || exit 1"
|
||||
--health-start-period 10s
|
||||
|
@ -121,8 +119,6 @@ jobs:
|
|||
MYSQL_ROOT_PASSWORD: msandbox
|
||||
ports:
|
||||
- 3309:3306
|
||||
volumes:
|
||||
- ${{ github.workspace }}/tests/integration/setup_mysql/replica2/:/etc/mysql/conf.d/
|
||||
options: >-
|
||||
--health-cmd "mysqladmin ping -P 3306 -pmsandbox |grep alive || exit 1"
|
||||
--health-start-period 10s
|
||||
|
|
4
Makefile
4
Makefile
|
@ -19,8 +19,6 @@ test-integration:
|
|||
--network podman \
|
||||
--publish 3308:3306 \
|
||||
--health-cmd 'mysqladmin ping -P 3306 -pmsandbox | grep alive || exit 1' \
|
||||
--security-opt label=disable \
|
||||
--volume ./tests/integration/targets/setup_mysql/replica1/:/etc/mysql/conf.d/ \
|
||||
mysql:8.0.22
|
||||
podman run \
|
||||
--detach \
|
||||
|
@ -30,8 +28,6 @@ test-integration:
|
|||
--network podman \
|
||||
--publish 3309:3306 \
|
||||
--health-cmd 'mysqladmin ping -P 3306 -pmsandbox | grep alive || exit 1' \
|
||||
--security-opt label=disable \
|
||||
--volume ./tests/integration/targets/setup_mysql/replica2/:/etc/mysql/conf.d/ \
|
||||
mysql:8.0.22
|
||||
while ! podman healthcheck run primary && [[ "$$SECONDS" -lt 120 ]]; do sleep 1; done
|
||||
-set -x; ansible-test integration -v --color --coverage --retry-on-error --continue-on-error --diff --docker --docker-network podman --python 3.8; set +x
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[mysqld]
|
||||
skip-host-cache
|
||||
skip-name-resolve
|
||||
server_id = 2
|
|
@ -1,4 +0,0 @@
|
|||
[mysqld]
|
||||
skip-host-cache
|
||||
skip-name-resolve
|
||||
server_id = 3
|
|
@ -26,13 +26,28 @@
|
|||
- db_engine == 'mysql'
|
||||
- db_version is version('8.0.22', '>=')
|
||||
|
||||
# We can't pass --server-id to service containers in GHA
|
||||
- name: Change replica1 server_id to 2
|
||||
mysql_variables:
|
||||
<<: *mysql_params
|
||||
login_port: '{{ mysql_replica1_port }}'
|
||||
variable: server_id
|
||||
value: 2
|
||||
|
||||
- name: Change replica2 server_id to 3
|
||||
mysql_variables:
|
||||
<<: *mysql_params
|
||||
login_port: '{{ mysql_replica2_port }}'
|
||||
variable: server_id
|
||||
value: 3
|
||||
|
||||
# Preparation:
|
||||
- name: Create user for mysql replication
|
||||
shell: "echo \"CREATE USER '{{ replication_user }}'@'{{ gateway_addr }}' IDENTIFIED WITH mysql_native_password BY '{{ replication_pass }}'; GRANT REPLICATION SLAVE ON *.* TO '{{ replication_user }}'@'{{ gateway_addr }}';\" | {{ mysql_command }}"
|
||||
shell: "echo \"CREATE USER '{{ replication_user }}'@'{{ mysql_host }}' IDENTIFIED WITH mysql_native_password BY '{{ replication_pass }}'; GRANT REPLICATION SLAVE ON *.* TO '{{ replication_user }}'@'{{ mysql_host }}';\" | {{ mysql_command }}"
|
||||
when: db_engine == 'mysql'
|
||||
|
||||
- name: Create user for mariadb replication
|
||||
shell: "echo \"CREATE USER '{{ replication_user }}'@'{{ gateway_addr }}' IDENTIFIED BY '{{ replication_pass }}'; GRANT REPLICATION SLAVE ON *.* TO '{{ replication_user }}'@'{{ gateway_addr }}';\" | {{ mysql_command }}"
|
||||
shell: "echo \"CREATE USER '{{ replication_user }}'@'{{ mysql_host }}' IDENTIFIED BY '{{ replication_pass }}'; GRANT REPLICATION SLAVE ON *.* TO '{{ replication_user }}'@'{{ mysql_host }}';\" | {{ mysql_command }}"
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Create test database
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue