-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Description
Parent issue: #5521
Summary
The CI-repltests workflow needs to be migrated from depending on the private proxysql/jenkins-build-scripts repository to using the in-repo test/infra/ infrastructure.
What CI-repltests Does
This workflow runs replication chain tests — it spins up multiple MySQL backends in master-slave topologies, configures ProxySQL to route traffic across them, runs sysbench load, and validates data consistency. It tests across multiple MySQL versions and SSL configurations.
The test matrix executed by exec_all_repl_tests.sh:
- MySQL 5.6 no-ssl (without debezium)
- MySQL 5.7 no-ssl + debezium
- MySQL 5.7 ssl + debezium
- MySQL 8.0 no-ssl (without debezium)
- MySQL 8.0 ssl (without debezium)
Each test run (exec_repl_test.sh) does:
- Start a replication-capable MySQL infrastructure via docker-compose
- Start ProxySQL and configure it for the replication chain
- Run sysbench load through ProxySQL
- Validate data consistency across replicas
- Optionally verify debezium binlog reader
- Teardown and report results
Current jenkins-build-scripts Dependencies
| Script/Resource | Branch | Purpose |
|---|---|---|
env.sh |
proxysql_repl_tests |
Environment variables |
proxysql_repl_tests/exec_all_repl_tests.sh |
proxysql_repl_tests |
Master test orchestrator |
proxysql_repl_tests/exec_repl_test.sh |
proxysql_repl_tests |
Single replication test |
proxysql_repl_tests/docker-compose.yml |
proxysql_repl_tests |
Multi-node MySQL replication infra |
proxysql_repl_tests/docker-compose-init.bash |
proxysql_repl_tests |
Initialize replication topology |
proxysql_repl_tests/docker-compose-destroy.bash |
proxysql_repl_tests |
Teardown |
proxysql_repl_tests/bin/debezium-check.bash |
proxysql_repl_tests |
Debezium validation |
proxysql_repl_tests/bin/local-docker-benchmark.bash |
proxysql_repl_tests |
Sysbench load generation |
proxysql_repl_tests/constants |
proxysql_repl_tests |
Test constants |
proxysql_repl_tests/conf/ |
proxysql_repl_tests |
MySQL and ProxySQL configs for replication |
proxysql_repl_tests/.env |
proxysql_repl_tests |
Docker-compose env vars |
infra-docker-hoster/ |
proxysql_repl_tests |
DNS resolution for containers |
What Already Exists In-Repo
test/infra/infra-mysql57/— single MySQL 5.7 instance (not replication-ready)test/infra/control/— orchestration scriptstest/infra/common/env.sh— base environment
What's Missing (Needs to be Ported)
The entire proxysql_repl_tests/ directory needs to be brought into the proxysql repo. This is a self-contained test suite with its own docker-compose, configs, and test scripts. Key components:
- Replication docker-compose — multi-node MySQL topologies (master + slaves)
- Test orchestration —
exec_repl_test.shandexec_all_repl_tests.sh - Debezium integration — binlog reader validation
- Sysbench harness — load generation scripts
- Per-version MySQL configs — in
conf/subdirectory - Constants and .env — docker-compose variables for different MySQL versions
Migration Approach
- Port the
proxysql_repl_tests/directory into the proxysql repo (e.g., undertest/infra/repl-tests/ortest/repl/) - Update paths in the scripts to use in-repo locations instead of
$JENKINS_SCRIPTS_PATH - Update the
docker-composereferences (the workflow already patchesdocker-compose→docker compose) - Rewrite the CI-repltests workflow YAML to use the ported scripts directly
- Test the migrated workflow end-to-end
Notes
- CI-shuntest uses the same
proxysql_repl_testsbranch but runsexec_shun_test.shinstead. Porting the replication test suite will also unblock CI-shuntest migration. - The workflow only installs
sysbenchandgettextas dependencies — minimal external requirements.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels