| # tcp-qa |
| |
| Contribute |
| ---------- |
| |
| Please send patches using gerrithub.io: |
| |
| ``` |
| git remote add gerrit ssh://review.gerrithub.io:29418/Mirantis/tcp-qa |
| git review |
| ``` |
| |
| Clone the repo |
| -------------- |
| ``` |
| git clone https://github.com/Mirantis/tcp-qa |
| cd ./tcp-qa |
| ``` |
| |
| Install requirements |
| -------------------- |
| ``` |
| pip install -r ./tcp_tests/requirements.txt |
| ``` |
| * Note: Please read [1] if you don't have fuel-devops installed, because there are required some additional packages and configuration. |
| |
| Get cloudinit image |
| ------------------- |
| ``` |
| wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img -O ./xenial-server-cloudimg-amd64.qcow2 |
| ``` |
| |
| Choose the name of the cluster model |
| ------------------------------------ |
| LAB_CONFIG_NAME variable maps cluster name from the model repository with |
| the set of templates in the ./tcp_tests/templates/ folder. |
| ``` |
| export LAB_CONFIG_NAME=cookied-mcp-ocata-dvr # OVS-DVR with ocata packages |
| export LAB_CONFIG_NAME=cookied-mcp-ocata-ovs # OVS-NO-DVR with ocata packages |
| export LAB_CONFIG_NAME=virtual-mcp-ocata-cicd # Operational Support System Tools |
| export LAB_CONFIG_NAME=virtual-mcp11-dvr # OVS-DVR with neutron packages |
| export LAB_CONFIG_NAME=virtual-mcp11-ovs # OVS-NO-DVR with neutron packages |
| export LAB_CONFIG_NAME=virtual-mcp11-dpdk # OVS-DPDK with neutron packages |
| ``` |
| |
| Set packages repository |
| ----------------------- |
| Note: The recommended repo is `testing`. Possible choices: stable, testing, nightly. Nightly contains latest packages. |
| ``` |
| export REPOSITORY_SUITE=testing |
| ``` |
| |
| Run deploy test |
| --------------- |
| ``` |
| export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| |
| LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_default |
| ``` |
| |
| Run deploy test and rally verify (tempest) |
| ------------------------------------------ |
| ``` |
| export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| |
| LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_run_rally |
| ``` |
| |
| Run OSS deploy |
| -------------- |
| ``` |
| export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| |
| LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_oss_install_default |
| ``` |
| |
| |
| Run deploy test for mk22-qa-lab01 (outdated) |
| -------------------------------------------- |
| Note: This lab is not finished yet. TBD: configure vsrx node |
| ``` |
| export ENV_NAME=tcpcloud-mk22 # You can set any env name |
| export LAB_CONFIG_NAME=mk22-qa-lab01 # Name of set of templates |
| export VSRX_PATH=./vSRX.img # /path/to/vSRX.img, or to ./xenial-server-cloudimg-amd64.qcow2 as a temporary workaround |
| |
| LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_default |
| ``` |
| , or as an alternative there is another test that use deploy scripts from models repository written on bash [2]: |
| ``` |
| LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_with_scripts |
| ``` |
| |
| Labs with names mk22-lab-basic and mk22-lab-avdanced are deprecated and not recommended to use. |
| |
| Use HugePages for environments based on qemu-kvm VMs |
| ---------------------------------------------------- |
| |
| To create VMs using HugePages, configure the server (see below) and then use the following variable: |
| |
| ``` |
| export DRIVER_USE_HUGEPAGES=true |
| ``` |
| |
| Configure HugePages without reboot |
| ================================== |
| This is a runtime-based steps. To make it persistent, you need to edit some configs. |
| |
| 1. Remove apparmor |
| ``` |
| service apparmor stop |
| service apparmor teardown |
| update-rc.d -f apparmor remove |
| apt-get remove apparmor |
| ``` |
| |
| 2. Allocate memory for Hugepages |
| |
| 2Mb * 30000 = ~60Gb RAM will be used for HugePages. |
| Suitable for CI servers with 64Gb RAM and no other heavy services except libvirt. |
| |
| WARNING! Too high value will hang your server, be carefull and try lower values first. |
| ``` |
| echo 28000 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages |
| apt-get install -y hugepages |
| hugeadm --set-recommended-shmmax |
| cat /proc/meminfo | grep HugePages |
| ``` |
| |
| 3. Mount hugetlbfs to use it with qemu-kvm |
| ``` |
| mkdir -p /mnt/hugepages2M |
| mount -t hugetlbfs hugetlbfs /mnt/hugepages2M |
| ``` |
| |
| 4. Enable HugePages for libvirt |
| ``` |
| echo "hugetlbfs_mount = '/mnt/hugepages2M'" > /etc/libvirt/qemu.conf |
| service libvirt-bin restart |
| ``` |
| |
| Create and start the env for manual tests |
| ----------------------------------------- |
| ``` |
| dos.py create-env ./tcp_tests/templates/underlay/mk22-lab-basic.yaml |
| dos.py start "${ENV_NAME}" |
| ``` |
| |
| Then, wait until cloud-init is finished and port 22 is open (~3-4 minutes), and login with root:r00tme |
| |
| [1] https://github.com/openstack/fuel-devops/blob/master/doc/source/install.rst |
| |
| [2] https://github.com/Mirantis/mk-lab-salt-model/tree/dash/scripts |