add README.md for mdbci operations
This commit is contained in:
parent
2a93cfac8c
commit
41935fb6d3
@ -8,17 +8,15 @@ System level tests for MaxScale
|
||||
- >= 4 machines for Master/Slave
|
||||
- >= 4 machines for Galera cluster
|
||||
- environmental variables contains all information about backend: IPs, user names, passwords, paths to tools, etc
|
||||
- backed can be created with help of [MDBCI tool](https://github.com/OSLL/mdbci)
|
||||
- configuring of Master/Slave and Galera can be done with help of [build scripts package](https://github.com/mariadb-corporation/build-scripts-vagrant)
|
||||
- backed can be created with help of [MDBCI tool](https://github.com/mariadb-corporation/mdbci)
|
||||
- configuring of Master/Slave and Galera can be done with help of [maxscale-system-test/mdbci/run_test.sh script](mdbci/run_test.sh)
|
||||
|
||||
## Manuals
|
||||
|
||||
[How to run tests](https://github.com/mariadb-corporation/build-scripts-vagrant/blob/master/RUN_TEST.md)
|
||||
[MDBCI and running tests basics](mdbci/README.md)
|
||||
|
||||
[Hints: How to write a test](HOW_TO_WRITE_TEST.md)
|
||||
|
||||
[Build and test environment setup (if you want to play with MDBCI and Vagrant on your local machine](ENV_SETUP.md)
|
||||
|
||||
[Jenkins instructions](JENKINS.md)
|
||||
|
||||
## Environmental variables
|
||||
|
172
maxscale-system-test/mdbci/README.md
Normal file
172
maxscale-system-test/mdbci/README.md
Normal file
@ -0,0 +1,172 @@
|
||||
# Running Maxscale system tests on Virtual Machines with MDBCI
|
||||
|
||||
MDBCI is a tool to manage virtual machines (VMs).
|
||||
VMs can be described in the simple JSON format.
|
||||
JSON templates for test configuration can be found in
|
||||
[maxscale-system-test/mdbci/templates/](templates/)
|
||||
|
||||
'MDBCI_VM_PATH' have to be set before executing any MDBCI commands.
|
||||
This variable points to the directory to store 'Vagrantfile's
|
||||
for all VMs as well as all additional files (e.g. *network_config)
|
||||
|
||||
libvirt/qemu and AWS VMs are supported.
|
||||
|
||||
See [MDBCI README](https://github.com/mariadb-corporation/mdbci#mariadb-continuous-integration-infrastructure-mdbci) for details.
|
||||
|
||||
Installation instructions: [PREPARATION_FOR_MDBCI](https://github.com/mariadb-corporation/mdbci/blob/integration/PREPARATION_FOR_MDBCI.md)
|
||||
|
||||
## Basics of test setup
|
||||
|
||||
Test setup is described in template. Templates are stored in
|
||||
[maxscale-system-test/mdbci/templates/](templates/)
|
||||
Own template have to be put to the same directory.
|
||||
|
||||
Default environment for tests consists of:
|
||||
* one VM for Maxscale
|
||||
* 4 VMs for master/slave setup
|
||||
* 4 VMs for Galera cluster
|
||||
|
||||
Template for this configuration is
|
||||
[maxscale-system-test/mdbci/templates/default.json.template](templates/default.json.template)
|
||||
|
||||
Another templates:
|
||||
| ```nogalera``` |only 1 VM for Maxscale and 4 for Master/Slaves|
|
||||
| ```twomaxscales``` |2 VMs for Maxscale and 4 for Master/Slaves|
|
||||
| ```big``` |1 VM for Maxscale, 8 for Master/Slaves and 4 for Galera|
|
||||
| ```big15``` |1 VM for Maxscale, 15 for Master/Slaves and 4 for Galera|
|
||||
|
||||
```box``` for ```big``` and ```big15``` is hard-coded as ```centos_7_aws_large```
|
||||
|
||||
Template can contain references to any environmental variables - they all
|
||||
will be replaced with values before VMs starting
|
||||
|
||||
The [maxscale-system-test/mdbci/run_test.sh](run_test.sh) script
|
||||
brings test VMs configuration up and tries to execute
|
||||
```maxscale-system-test``` using 'ctest'.
|
||||
|
||||
Script can be executed without any parameters and without defining any
|
||||
environmental variables.
|
||||
In this case, tests will be executed for CentOS 7, MariaDB 10.2 and
|
||||
Maxscale from current 'develop' repository
|
||||
[http://max-tst-01.mariadb.com/ci-repository/develop/mariadb-maxscale/](http://max-tst-01.mariadb.com/ci-repository/develop/mariadb-maxscale/)
|
||||
VMs will not be destroyed after the tests.
|
||||
|
||||
The name of test run (and name of VMs set) is generated based on ```box``` parameter
|
||||
and current date/time
|
||||
|
||||
### Basic run_test.sh parameters
|
||||
|
||||
|```target``` |name of binary repository to install Maxscale from|
|
||||
|```box``` |Vagrant box to be used to create VMs |
|
||||
|```test_set``` |Set of test to be executed in the 'ctest' format|
|
||||
|```version```|Version of DB server in Master/Slave backend|
|
||||
|```galera_version```|Version of DB server in Galera backend|
|
||||
|```product```|Type of backend - 'mariadb' or 'mysql'|
|
||||
|```template```|Name of *.json.template file with VMs descriptions in MDBCI format|
|
||||
|```team_keys```|Path to the file with public ssh keys - this file is loaded to VMs|
|
||||
|```do_not_destroy_vm```|if 'yes' VMs stay alive after test|
|
||||
|```name```|The name of test run - any string to identify VMs set|
|
||||
|
||||
|
||||
For complete list of environmental variables see comments in
|
||||
[maxscale-system-test/mdbci/run_test.sh](run_test.sh)
|
||||
and file [maxscale-system-test/mdbci/set_run_test_variables.sh](set_run_test_variables.sh)
|
||||
|
||||
See [https://github.com/mariadb-corporation/mdbci/tree/integration/BOXES](https://github.com/mariadb-corporation/mdbci/tree/integration/BOXES)
|
||||
for available boxes.
|
||||
|
||||
```test_set``` examples
|
||||
|```-I 4,4```|Run single test number 4|
|
||||
|```-I 4,4,1,25,30```|Run tests number 4, 25 and 30 (the number '1' is a 'Stride' parameter)|
|
||||
|```-I 1,10```|Run tests from 1 to 10|
|
||||
|```-L REPL_BACKED```|Run all tests with 'REPL_BACKEND' label|
|
||||
|```-LE UNSTABLE```|Run all tests EXCEPT tests with 'UNSTABLE' label|
|
||||
|
||||
If ```galera_version``` is not defined the value of ```version``` is used also for Galera backend
|
||||
|
||||
### Test execution
|
||||
|
||||
After execution of 'run_test.sh` by default VMs stay alive and other tests can be executed.
|
||||
|
||||
Test use environmental variables to get all infio about test setup (about VMs).
|
||||
|
||||
The script [maxscale-system-test/mdbci/set_env.sh](set_env.sh)
|
||||
loads all needed values (IPs, paths to ssh keyfiles,
|
||||
user names, etc) into environmental variables. Script uses
|
||||
data from ```${MDBCI_VM_PATH}/${name}_network_config``` file
|
||||
and also calls MDBCI commands.
|
||||
|
||||
Script have to be sourced:
|
||||
|
||||
```bash
|
||||
source ./mdbci/set_env.sh $name
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
. ./mdbci/set_env.sh $name
|
||||
```
|
||||
|
||||
After it, any 'maxscale-system-test ' can be executed, e.g.:
|
||||
|
||||
```bash
|
||||
./sql_queries
|
||||
```
|
||||
|
||||
### Basic MDBCI and Vagrant operations
|
||||
|
||||
#### Restore ${name}.config_file
|
||||
|
||||
```bash
|
||||
${mdbci_dir}/mdbci show network_config $name
|
||||
```
|
||||
|
||||
#### Suspend VMs
|
||||
|
||||
Before rebooting computer it is recommended to suspend
|
||||
Vagrant-controlled VMs
|
||||
|
||||
```bash
|
||||
cd ${MDBCI_VM_PATH}/$name
|
||||
vagrant suspend
|
||||
```
|
||||
|
||||
#### Resume suspended VMs
|
||||
|
||||
```bash
|
||||
cd ${MDBCI_VM_PATH}/$name
|
||||
vagrant resume
|
||||
```
|
||||
|
||||
#### Destroying VMs
|
||||
|
||||
```bash
|
||||
${mdbci_dir}/mdbci destroy $name
|
||||
```
|
||||
|
||||
#### Restoring backend
|
||||
|
||||
Every test before any actions checks backend and tries to restore it if its broken.
|
||||
To restore backend separatelly and for intial backend setup check_backend' can be used:
|
||||
|
||||
```bash
|
||||
. ./mdbci/set_env.sh $name
|
||||
./check_backend
|
||||
```
|
||||
|
||||
#### Restoring VMs from snapshot
|
||||
|
||||
'run_test.sh' makes snapshot of all VMs before tests. The name of snapshot is 'clean'.
|
||||
|
||||
In case of problem, after 'snapshot revert' it is recommended to re-create
|
||||
${name}_network_config file, re-load environmental variables and run
|
||||
'check_backend'
|
||||
|
||||
```bash
|
||||
${mdbci_dir}/mdbci snapshot revert --path-to-nodes $name --snapshot-name clean
|
||||
${mdbci_dir}/mdbci show network_config $name
|
||||
. ./mdbci/set_env.sh $name
|
||||
./check_backend
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user