| Dennis Dmitriev | 7d538c6 | 2016-10-18 13:51:17 +0300 | [diff] [blame] | 1 | # tcp-qa |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 2 | |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 3 | Contribute |
| 4 | ---------- |
| 5 | |
| 6 | Please send patches using gerrithub.io: |
| 7 | |
| 8 | ``` |
| 9 | git remote add gerrit ssh://review.gerrithub.io:29418/Mirantis/tcp-qa |
| 10 | git review |
| 11 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 12 | |
| 13 | Clone the repo |
| 14 | -------------- |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 15 | ``` |
| Dennis Dmitriev | 5bd9f56 | 2016-10-18 13:50:47 +0300 | [diff] [blame] | 16 | git clone https://github.com/Mirantis/tcp-qa |
| Dennis Dmitriev | 5bd9f56 | 2016-10-18 13:50:47 +0300 | [diff] [blame] | 17 | cd ./tcp-qa |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 18 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 19 | |
| 20 | Install requirements |
| 21 | -------------------- |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 22 | ``` |
| Dennis Dmitriev | 9cc4ca3 | 2016-11-03 13:50:45 +0200 | [diff] [blame] | 23 | pip install -r ./tcp_tests/requirements.txt |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 24 | ``` |
| Dennis Dmitriev | f624fb0 | 2016-11-07 15:00:34 +0200 | [diff] [blame] | 25 | * Note: Please read [1] if you don't have fuel-devops installed, because there are required some additional packages and configuration. |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 26 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 27 | Get cloudinit image |
| 28 | ------------------- |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 29 | ``` |
| Dennis Dmitriev | 7080d8d | 2016-10-26 13:43:37 +0300 | [diff] [blame] | 30 | wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img -O ./xenial-server-cloudimg-amd64.qcow2 |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 31 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 32 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 33 | Choose the name of the cluster model |
| 34 | ------------------------------------ |
| 35 | LAB_CONFIG_NAME variable maps cluster name from the model repository with |
| 36 | the set of templates in the ./tcp_tests/templates/ folder. |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 37 | ``` |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 38 | export LAB_CONFIG_NAME=virtual-mcp-ocata-dvr # OVS-DVR with ocata packages |
| 39 | export LAB_CONFIG_NAME=virtual-mcp-ocata-ovs # OVS-NO-DVR with ocata packages |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 40 | export LAB_CONFIG_NAME=virtual-mcp-ocata-cicd # Operational Support System Tools |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 41 | export LAB_CONFIG_NAME=virtual-mcp11-dvr # OVS-DVR with neutron packages |
| 42 | export LAB_CONFIG_NAME=virtual-mcp11-ovs # OVS-NO-DVR with neutron packages |
| 43 | export LAB_CONFIG_NAME=virtual-mcp11-dpdk # OVS-DPDK with neutron packages |
| 44 | ``` |
| 45 | |
| 46 | Run deploy test |
| 47 | --------------- |
| 48 | ``` |
| Dennis Dmitriev | 7080d8d | 2016-10-26 13:43:37 +0300 | [diff] [blame] | 49 | export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 50 | export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 51 | export REPOSITORY_SUITE=testing |
| dis | 2b2d863 | 2016-12-08 17:56:57 +0200 | [diff] [blame] | 52 | |
| 53 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_default |
| Dennis Dmitriev | 98449d9 | 2016-12-22 11:55:03 +0200 | [diff] [blame] | 54 | ``` |
| Dennis Dmitriev | 98449d9 | 2016-12-22 11:55:03 +0200 | [diff] [blame] | 55 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 56 | Run deploy test and rally verify (tempest) |
| 57 | ------------------------------------------ |
| Dennis Dmitriev | 5e81a4b | 2017-04-27 03:32:01 +0300 | [diff] [blame] | 58 | ``` |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 59 | export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| 60 | export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 61 | export REPOSITORY_SUITE=testing |
| Dennis Dmitriev | 5e81a4b | 2017-04-27 03:32:01 +0300 | [diff] [blame] | 62 | |
| 63 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_run_rally |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 64 | ``` |
| Dennis Dmitriev | 5e81a4b | 2017-04-27 03:32:01 +0300 | [diff] [blame] | 65 | |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 66 | Run OSS deploy |
| 67 | -------------- |
| 68 | ``` |
| 69 | export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| 70 | export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| 71 | export REPOSITORY_SUITE=testing |
| 72 | |
| 73 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_oss_install_default |
| 74 | ``` |
| 75 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 76 | Run deploy test for mk22-qa-lab01 (outdated) |
| 77 | -------------------------------------------- |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 78 | Note: This lab is not finished yet. TBD: configure vsrx node |
| 79 | ``` |
| dis | 2b2d863 | 2016-12-08 17:56:57 +0200 | [diff] [blame] | 80 | export ENV_NAME=tcpcloud-mk22 # You can set any env name |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 81 | export LAB_CONFIG_NAME=mk22-qa-lab01 # Name of set of templates |
| 82 | export VSRX_PATH=./vSRX.img # /path/to/vSRX.img, or to ./xenial-server-cloudimg-amd64.qcow2 as a temporary workaround |
| 83 | |
| 84 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_default |
| 85 | ``` |
| dis | f0924fb | 2016-12-03 04:01:12 +0200 | [diff] [blame] | 86 | , or as an alternative there is another test that use deploy scripts from models repository written on bash [2]: |
| 87 | ``` |
| 88 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_with_scripts |
| 89 | ``` |
| 90 | |
| 91 | Labs with names mk22-lab-basic and mk22-lab-avdanced are deprecated and not recommended to use. |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 92 | |
| Dennis Dmitriev | b3fc424 | 2017-07-14 16:01:51 +0300 | [diff] [blame] | 93 | Use HugePages for environments based on qemu-kvm VMs |
| 94 | ---------------------------------------------------- |
| 95 | |
| 96 | To create VMs using HugePages, configure the server (see below) and then use the following variable: |
| 97 | |
| 98 | ``` |
| 99 | export DRIVER_USE_HUGEPAGES=true |
| 100 | ``` |
| 101 | |
| 102 | Configure HugePages without reboot |
| 103 | ================================== |
| 104 | This is a runtime-based steps. To make it persistent, you need to edit some configs. |
| 105 | |
| 106 | 1. Remove apparmor |
| 107 | ``` |
| 108 | service apparmor stop |
| 109 | service apparmor teardown |
| 110 | update-rc.d -f apparmor remove |
| 111 | apt-get remove apparmor |
| 112 | ``` |
| 113 | |
| 114 | 2. Allocate memory for Hugepages |
| 115 | |
| 116 | 2Mb * 30000 = ~60Gb RAM will be used for HugePages. |
| 117 | Suitable for CI servers with 64Gb RAM and no other heavy services except libvirt. |
| 118 | |
| 119 | WARNING! Too high value will hang your server, be carefull and try lower values first. |
| 120 | ``` |
| Dennis Dmitriev | ea7ee49 | 2017-07-14 20:16:07 +0300 | [diff] [blame^] | 121 | echo 28000 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages |
| Dennis Dmitriev | b3fc424 | 2017-07-14 16:01:51 +0300 | [diff] [blame] | 122 | apt-get install -y hugepages |
| 123 | hugeadm --set-recommended-shmmax |
| 124 | cat /proc/meminfo | grep HugePages |
| 125 | ``` |
| 126 | |
| 127 | 3. Mount hugetlbfs to use it with qemu-kvm |
| 128 | ``` |
| 129 | mkdir -p /mnt/hugepages2M |
| 130 | mount -t hugetlbfs hugetlbfs /mnt/hugepages2M |
| 131 | ``` |
| 132 | |
| 133 | 4. Enable HugePages for libvirt |
| 134 | ``` |
| 135 | echo "hugetlbfs_mount = '/mnt/hugepages2M'" > /etc/libvirt/qemu.conf |
| 136 | service libvirt-bin restart |
| 137 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 138 | |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 139 | Create and start the env for manual tests |
| 140 | ----------------------------------------- |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 141 | ``` |
| Dennis Dmitriev | 2c5693f | 2016-11-04 01:10:22 +0200 | [diff] [blame] | 142 | dos.py create-env ./tcp_tests/templates/underlay/mk22-lab-basic.yaml |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 143 | dos.py start "${ENV_NAME}" |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 144 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 145 | |
| Dennis Dmitriev | 7080d8d | 2016-10-26 13:43:37 +0300 | [diff] [blame] | 146 | Then, wait until cloud-init is finished and port 22 is open (~3-4 minutes), and login with root:r00tme |
| Dennis Dmitriev | f624fb0 | 2016-11-07 15:00:34 +0200 | [diff] [blame] | 147 | |
| 148 | [1] https://github.com/openstack/fuel-devops/blob/master/doc/source/install.rst |
| 149 | |
| 150 | [2] https://github.com/Mirantis/mk-lab-salt-model/tree/dash/scripts |