| 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 | ``` |
| Vladimir Khlyunev | 25f1e74 | 2018-11-07 16:52:10 +0400 | [diff] [blame] | 38 | export LAB_CONFIG_NAME=cookied-mcp-ocata-dvr # OVS-DVR with ocata packages |
| 39 | export LAB_CONFIG_NAME=cookied-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 | |
| Matthew Mosesohn | 9c94d4e | 2017-08-14 16:49:07 +0300 | [diff] [blame] | 46 | Set packages repository |
| 47 | ----------------------- |
| 48 | Note: The recommended repo is `testing`. Possible choices: stable, testing, nightly. Nightly contains latest packages. |
| 49 | ``` |
| 50 | export REPOSITORY_SUITE=testing |
| 51 | ``` |
| 52 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 53 | Run deploy test |
| 54 | --------------- |
| 55 | ``` |
| Dennis Dmitriev | 7080d8d | 2016-10-26 13:43:37 +0300 | [diff] [blame] | 56 | export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 57 | export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| dis | 2b2d863 | 2016-12-08 17:56:57 +0200 | [diff] [blame] | 58 | |
| 59 | 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] | 60 | ``` |
| Dennis Dmitriev | 98449d9 | 2016-12-22 11:55:03 +0200 | [diff] [blame] | 61 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 62 | Run deploy test and rally verify (tempest) |
| 63 | ------------------------------------------ |
| Dennis Dmitriev | 5e81a4b | 2017-04-27 03:32:01 +0300 | [diff] [blame] | 64 | ``` |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 65 | export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| 66 | export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| Dennis Dmitriev | 5e81a4b | 2017-04-27 03:32:01 +0300 | [diff] [blame] | 67 | |
| 68 | 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] | 69 | ``` |
| Dennis Dmitriev | 5e81a4b | 2017-04-27 03:32:01 +0300 | [diff] [blame] | 70 | |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 71 | Run OSS deploy |
| 72 | -------------- |
| 73 | ``` |
| 74 | export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2 |
| 75 | export SHUTDOWN_ENV_ON_TEARDOWN=false # Optional |
| Dennis Dmitriev | eac3aab | 2017-07-12 16:36:41 +0300 | [diff] [blame] | 76 | |
| 77 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_oss_install_default |
| 78 | ``` |
| 79 | |
| Matthew Mosesohn | 9c94d4e | 2017-08-14 16:49:07 +0300 | [diff] [blame] | 80 | |
| Dennis Dmitriev | b4b5c10 | 2017-05-10 17:09:06 +0300 | [diff] [blame] | 81 | Run deploy test for mk22-qa-lab01 (outdated) |
| 82 | -------------------------------------------- |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 83 | Note: This lab is not finished yet. TBD: configure vsrx node |
| 84 | ``` |
| dis | 2b2d863 | 2016-12-08 17:56:57 +0200 | [diff] [blame] | 85 | export ENV_NAME=tcpcloud-mk22 # You can set any env name |
| dis | c529838 | 2016-11-23 16:03:33 +0200 | [diff] [blame] | 86 | export LAB_CONFIG_NAME=mk22-qa-lab01 # Name of set of templates |
| 87 | export VSRX_PATH=./vSRX.img # /path/to/vSRX.img, or to ./xenial-server-cloudimg-amd64.qcow2 as a temporary workaround |
| 88 | |
| 89 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_default |
| 90 | ``` |
| dis | f0924fb | 2016-12-03 04:01:12 +0200 | [diff] [blame] | 91 | , or as an alternative there is another test that use deploy scripts from models repository written on bash [2]: |
| 92 | ``` |
| 93 | LC_ALL=en_US.UTF-8 py.test -vvv -s -k test_tcp_install_with_scripts |
| 94 | ``` |
| 95 | |
| 96 | 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] | 97 | |
| Dennis Dmitriev | b3fc424 | 2017-07-14 16:01:51 +0300 | [diff] [blame] | 98 | Use HugePages for environments based on qemu-kvm VMs |
| 99 | ---------------------------------------------------- |
| 100 | |
| 101 | To create VMs using HugePages, configure the server (see below) and then use the following variable: |
| 102 | |
| 103 | ``` |
| 104 | export DRIVER_USE_HUGEPAGES=true |
| 105 | ``` |
| 106 | |
| 107 | Configure HugePages without reboot |
| 108 | ================================== |
| 109 | This is a runtime-based steps. To make it persistent, you need to edit some configs. |
| 110 | |
| 111 | 1. Remove apparmor |
| 112 | ``` |
| 113 | service apparmor stop |
| 114 | service apparmor teardown |
| 115 | update-rc.d -f apparmor remove |
| 116 | apt-get remove apparmor |
| 117 | ``` |
| 118 | |
| 119 | 2. Allocate memory for Hugepages |
| 120 | |
| 121 | 2Mb * 30000 = ~60Gb RAM will be used for HugePages. |
| 122 | Suitable for CI servers with 64Gb RAM and no other heavy services except libvirt. |
| 123 | |
| 124 | WARNING! Too high value will hang your server, be carefull and try lower values first. |
| 125 | ``` |
| Dennis Dmitriev | ea7ee49 | 2017-07-14 20:16:07 +0300 | [diff] [blame] | 126 | echo 28000 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages |
| Dennis Dmitriev | b3fc424 | 2017-07-14 16:01:51 +0300 | [diff] [blame] | 127 | apt-get install -y hugepages |
| 128 | hugeadm --set-recommended-shmmax |
| 129 | cat /proc/meminfo | grep HugePages |
| 130 | ``` |
| 131 | |
| 132 | 3. Mount hugetlbfs to use it with qemu-kvm |
| 133 | ``` |
| 134 | mkdir -p /mnt/hugepages2M |
| 135 | mount -t hugetlbfs hugetlbfs /mnt/hugepages2M |
| 136 | ``` |
| 137 | |
| 138 | 4. Enable HugePages for libvirt |
| 139 | ``` |
| 140 | echo "hugetlbfs_mount = '/mnt/hugepages2M'" > /etc/libvirt/qemu.conf |
| 141 | service libvirt-bin restart |
| 142 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 143 | |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 144 | Create and start the env for manual tests |
| 145 | ----------------------------------------- |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 146 | ``` |
| Dennis Dmitriev | 2c5693f | 2016-11-04 01:10:22 +0200 | [diff] [blame] | 147 | dos.py create-env ./tcp_tests/templates/underlay/mk22-lab-basic.yaml |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 148 | dos.py start "${ENV_NAME}" |
| Dmitry | a21a79d | 2016-11-09 19:08:21 +0200 | [diff] [blame] | 149 | ``` |
| Dennis Dmitriev | 6f59add | 2016-10-18 13:45:27 +0300 | [diff] [blame] | 150 | |
| Dennis Dmitriev | 7080d8d | 2016-10-26 13:43:37 +0300 | [diff] [blame] | 151 | 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] | 152 | |
| 153 | [1] https://github.com/openstack/fuel-devops/blob/master/doc/source/install.rst |
| 154 | |
| 155 | [2] https://github.com/Mirantis/mk-lab-salt-model/tree/dash/scripts |