Zuul job
This commit adds a devstack multinode Zuul CI job. Playbooks to install requirements on the hosts as well as set them up for SSH access are included. Change-Id: I1dce6bdab8cb54de50d787e58ccadce03ea44a2b
This commit is contained in:
parent
8b3181615a
commit
2720f4bb54
67
.zuul.yaml
67
.zuul.yaml
@ -1,3 +1,64 @@
|
||||
# TODO(artom) Once https://review.opendev.org/#/c/679656/ merges, we can unify
|
||||
# the nodeset names and use the one in Nova. Until then, have a different name
|
||||
# here.
|
||||
- nodeset:
|
||||
name: multi-numa-multinode
|
||||
nodes:
|
||||
- name: controller
|
||||
label: multi-numa-ubuntu-bionic
|
||||
- name: compute
|
||||
label: multi-numa-ubuntu-bionic
|
||||
groups:
|
||||
# Node where tests are executed and test results collected
|
||||
- name: tempest
|
||||
nodes:
|
||||
- controller
|
||||
# Nodes running the compute service
|
||||
- name: compute
|
||||
nodes:
|
||||
- controller
|
||||
- compute
|
||||
# Nodes that are not the controller
|
||||
- name: subnode
|
||||
nodes:
|
||||
- compute
|
||||
# Switch node for multinode networking setup
|
||||
- name: switch
|
||||
nodes:
|
||||
- controller
|
||||
# Peer nodes for multinode networking setup
|
||||
- name: peers
|
||||
nodes:
|
||||
- compute
|
||||
|
||||
- job:
|
||||
name: whitebox-multinode-devstack
|
||||
nodeset: multi-numa-multinode
|
||||
parent: tempest-multinode-full-py3
|
||||
description: |
|
||||
Devstack multinode job.
|
||||
required-projects:
|
||||
x/whitebox-tempest-plugin
|
||||
pre-run: playbooks/whitebox.yaml
|
||||
vars:
|
||||
tox_envlist: all
|
||||
tempest_concurrency: 1
|
||||
tempest_test_regex: ^whitebox_tempest_plugin\.
|
||||
devstack_plugins:
|
||||
whitebox-tempest-plugin: https://opendev.org/x/whitebox-tempest-plugin.git
|
||||
devstack_localrc:
|
||||
MAX_COMPUTE_NODES: 2
|
||||
LIBVIRT_TYPE: kvm
|
||||
TEMPEST_PLUGINS: /opt/stack/whitebox-tempest-plugin
|
||||
WHITEBOX_PRIVKEY_PATH: /home/tempest/.ssh/id_rsa
|
||||
group-vars:
|
||||
subnode:
|
||||
num_hugepages: 2048
|
||||
devstack_localrc:
|
||||
LIBVIRT_TYPE: kvm
|
||||
tempest:
|
||||
num_hugepages: 512
|
||||
|
||||
- project:
|
||||
name: x/whitebox-tempest-plugin
|
||||
templates:
|
||||
@ -5,3 +66,9 @@
|
||||
- openstack-python35-jobs
|
||||
- openstack-python36-jobs
|
||||
- openstack-python37-jobs
|
||||
check:
|
||||
jobs:
|
||||
- whitebox-multinode-devstack
|
||||
gate:
|
||||
jobs:
|
||||
- whitebox-multinode-devstack
|
||||
|
4
playbooks/whitebox.yaml
Normal file
4
playbooks/whitebox.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- whitebox-common
|
||||
- whitebox-nova-compute
|
23
roles/whitebox-common/tasks/main.yml
Normal file
23
roles/whitebox-common/tasks/main.yml
Normal file
@ -0,0 +1,23 @@
|
||||
# NOTE(artom) We need to install cruini and iniparse from source until
|
||||
# https://github.com/pixelb/crudini/issues/58 and
|
||||
# https://github.com/candlepin/python-iniparse/issues/5 are on fixed PyPi.
|
||||
- name: crudini and iniparse
|
||||
pip:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items:
|
||||
- git+https://github.com/pixelb/crudini.git#egg=crudini
|
||||
- git+https://github.com/candlepin/python-iniparse.git#egg=iniparse
|
||||
become: yes
|
||||
|
||||
# NOTE(artom) The run-tempest role runs as the tempest user, so we need to give
|
||||
# the tempest user SSH access to all hosts. Devstack's orchestrate-devstack
|
||||
# role should have put a pubkey into the stack user's authorized_keys, so if we
|
||||
# put the corresponding private key in the tempest user's .ssh, things should
|
||||
# magically work.
|
||||
- name: Setup tempest SSH key
|
||||
include_role:
|
||||
name: copy-build-sshkey
|
||||
vars:
|
||||
copy_sshkey_target_user: 'tempest'
|
||||
become: yes
|
9
roles/whitebox-nova-compute/tasks/main.yml
Normal file
9
roles/whitebox-nova-compute/tasks/main.yml
Normal file
@ -0,0 +1,9 @@
|
||||
- name: Install numactl
|
||||
package:
|
||||
name: numactl
|
||||
state: present
|
||||
become: yes
|
||||
|
||||
- name: Allocate hugepages
|
||||
shell: echo {{ num_hugepages }} > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
|
||||
become: yes
|
Loading…
Reference in New Issue
Block a user