]> git.proxmox.com Git - ceph.git/blob - ceph/qa/workunits/rbd/run_devstack_tempest.sh
import ceph nautilus 14.2.2
[ceph.git] / ceph / qa / workunits / rbd / run_devstack_tempest.sh
1 #!/usr/bin/env bash
2 set -ex
3
4 STACK_BRANCH=stable/rocky
5 TEMPEST_BRANCH=19.0.0
6
7 STACK_USER=${STACK_USER:-stack}
8 STACK_GROUP=${STACK_GROUP:-stack}
9 TEMPEST_USER=${TEMPEST_USER:-tempest}
10
11 STACK_HOME_PATH=${STACK_HOME_PATH:-/home/stack}
12 STACK_OPT_PATH=${STACK_OPT_PATH:-/opt/stack}
13 STACK_LOG_PATH=${STACK_LOG_PATH:-/mnt/log/stack}
14
15 cleanup() {
16 echo "**** cleanup"
17
18 # ensure teuthology can clean up the logs
19 [ -d ${STACK_LOG_PATH} ] && chmod -R a+rwx ${STACK_LOG_PATH}
20
21 mkdir ${STACK_LOG_PATH}/etc
22 cp -dpr /etc/cinder ${STACK_LOG_PATH}/etc || true
23 cp -dpr /etc/glance ${STACK_LOG_PATH}/etc || true
24 cp -dpr /etc/nova ${STACK_LOG_PATH}/etc || true
25
26 # kill all OpenStack services
27 if [ -d ${STACK_OPT_PATH}/devstack ]; then
28 cd ${STACK_OPT_PATH}/devstack
29 sudo -H -u ${STACK_USER} ./unstack.sh || true
30 fi
31 }
32
33 trap cleanup INT TERM EXIT
34
35 # devstack configuration adapted from upstream gate
36 cat<<EOF > ${STACK_HOME_PATH}/local.conf
37 [[local|localrc]]
38 ENABLE_CEPH_CINDER=True
39 ENABLE_CEPH_GLANCE=True
40 ENABLE_CEPH_C_BAK=True
41 ENABLE_CEPH_NOVA=True
42 Q_USE_DEBUG_COMMAND=True
43 NETWORK_GATEWAY=10.1.0.1
44 USE_SCREEN=False
45 DATA_DIR=${STACK_OPT_PATH}/data
46 ACTIVE_TIMEOUT=90
47 BOOT_TIMEOUT=90
48 ASSOCIATE_TIMEOUT=60
49 TERMINATE_TIMEOUT=60
50 MYSQL_PASSWORD=secretmysql
51 DATABASE_PASSWORD=secretdatabase
52 RABBIT_PASSWORD=secretrabbit
53 ADMIN_PASSWORD=secretadmin
54 SERVICE_PASSWORD=secretservice
55 SERVICE_TOKEN=111222333444
56 SWIFT_HASH=1234123412341234
57 ROOTSLEEP=0
58 NOVNC_FROM_PACKAGE=True
59 ENABLED_SERVICES=c-api,c-bak,c-sch,c-vol,ceilometer-acentral,ceilometer-acompute,ceilometer-alarm-evaluator,ceilometer-alarm-notifier,ceilometer-anotification,ceilometer-api,ceilometer-collector,cinder,dstat,etcd3,g-api,g-reg,key,mysql,n-api,n-api-meta,n-cauth,n-cond,n-cpu,n-novnc,n-obj,n-sch,peakmem_tracker,placement-api,q-agt,q-dhcp,q-l3,q-meta,q-metering,q-svc,rabbit,s-account,s-container,s-object,s-proxy,tempest
60 SKIP_EXERCISES=boot_from_volume,bundle,client-env,euca
61 SYSLOG=False
62 SCREEN_LOGDIR=${STACK_LOG_PATH}/screen-logs
63 LOGFILE=${STACK_LOG_PATH}/devstacklog.txt
64 VERBOSE=True
65 FIXED_RANGE=10.1.0.0/20
66 IPV4_ADDRS_SAFE_TO_USE=10.1.0.0/20
67 FLOATING_RANGE=172.24.5.0/24
68 PUBLIC_NETWORK_GATEWAY=172.24.5.1
69 FIXED_NETWORK_SIZE=4096
70 VIRT_DRIVER=libvirt
71 SWIFT_REPLICAS=1
72 SWIFT_START_ALL_SERVICES=False
73 LOG_COLOR=False
74 UNDO_REQUIREMENTS=False
75 CINDER_PERIODIC_INTERVAL=10
76
77 export OS_NO_CACHE=True
78 LIBS_FROM_GIT=
79 EBTABLES_RACE_FIX=True
80 DEBUG_LIBVIRT_COREDUMPS=False
81 CINDER_VOLUME_CLEAR=none
82 LIBVIRT_TYPE=kvm
83 VOLUME_BACKING_FILE_SIZE=24G
84 TEMPEST_HTTP_IMAGE=http://git.openstack.org/static/openstack.png
85 FORCE_CONFIG_DRIVE=False
86
87 CINDER_ENABLED_BACKENDS=ceph:ceph
88 TEMPEST_STORAGE_PROTOCOL=ceph
89 REMOTE_CEPH=True
90
91 enable_plugin devstack-plugin-mariadb https://github.com/openstack/devstack-plugin-mariadb
92 enable_plugin devstack-plugin-ceph https://git.openstack.org/openstack/devstack-plugin-ceph
93 EOF
94
95 cat<<EOF > ${STACK_HOME_PATH}/start.sh
96 #!/usr/bin/env bash
97 set -ex
98 cd ${STACK_OPT_PATH}
99 git clone https://git.openstack.org/openstack-dev/devstack -b ${STACK_BRANCH}
100
101 # TODO workaround for https://github.com/pypa/setuptools/issues/951
102 git clone https://git.openstack.org/openstack/requirements.git -b ${STACK_BRANCH}
103 sed -i 's/appdirs===1.4.0/appdirs===1.4.3/' requirements/upper-constraints.txt
104
105 cd devstack
106 cp ${STACK_HOME_PATH}/local.conf .
107
108 export TEMPEST_BRANCH=${TEMPEST_BRANCH}
109 export PYTHONUNBUFFERED=true
110 export PROJECTS="openstack/devstack-plugin-ceph openstack/devstack-plugin-mariadb"
111
112 ./stack.sh
113 EOF
114
115 # execute devstack
116 chmod 0755 ${STACK_HOME_PATH}/start.sh
117 sudo -H -u ${STACK_USER} ${STACK_HOME_PATH}/start.sh
118
119 # switch to rbd profile caps
120 ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images'
121 ceph auth caps client.cinder-bak mon 'profile rbd' osd 'profile rbd pool=backups, profile rbd pool=volumes'
122 ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=images'
123
124 # execute tempest
125 chown -R ${TEMPEST_USER}:${STACK_GROUP} ${STACK_OPT_PATH}/tempest
126 chown -R ${TEMPEST_USER}:${STACK_GROUP} ${STACK_OPT_PATH}/data/tempest
127 chmod -R o+rx ${STACK_OPT_PATH}/devstack/files
128
129 cd ${STACK_OPT_PATH}/tempest
130 sudo -H -u ${TEMPEST_USER} tox -eall-plugin -- '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario)|(^cinder\.tests.tempest))' --concurrency=3