Add intial files
Change-Id: I4f80853cacd16b8500376cd429e866a389ce8408
This commit is contained in:
parent
96659a89be
commit
1af98dca8e
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Tox files
|
||||
.tox
|
30
.pre-commit-config.yaml
Normal file
30
.pre-commit-config.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v3.2.0
|
||||
hooks:
|
||||
- id: check-added-large-files
|
||||
- id: check-byte-order-marker
|
||||
- id: check-case-conflict
|
||||
- id: check-executables-have-shebangs
|
||||
- id: check-merge-conflict
|
||||
- id: check-symlinks
|
||||
- id: check-yaml
|
||||
- id: detect-private-key
|
||||
- id: end-of-file-fixer
|
||||
- id: forbid-new-submodules
|
||||
- id: requirements-txt-fixer
|
||||
args: [linters-requirements.txt]
|
||||
- id: trailing-whitespace
|
||||
|
||||
- repo: https://github.com/adrienverge/yamllint.git
|
||||
rev: v1.25.0
|
||||
hooks:
|
||||
- id: yamllint
|
||||
files: \.(yaml|yml)$
|
||||
|
||||
- repo: https://opendev.org/openstack/bashate.git
|
||||
rev: 2.0.0
|
||||
hooks:
|
||||
- id: bashate
|
29
README.rst
Normal file
29
README.rst
Normal file
@ -0,0 +1,29 @@
|
||||
======================
|
||||
Tobiko Devstack Plugin
|
||||
======================
|
||||
|
||||
|
||||
DevStack plugin to configure Tobiko framework on a DevStack provisioned host
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
The only goal of this plugin is generating a valid /etc/tobiko/tobiko.conf file
|
||||
to be consumed by Tobiko Python framework on a machine that is running DevStack.
|
||||
|
||||
This translates DevStack configurations from `local.conf` file to tobiko's
|
||||
configuration file. It is intended to facilitate running Tobiko test cases from
|
||||
an host that has been provisioned using DevStack project.
|
||||
|
||||
|
||||
References
|
||||
----------
|
||||
|
||||
* Free software: Apache License, Version 2.0
|
||||
* Source code: https://opendev.org/x/tobiko-devstack
|
||||
* Bugs: https://storyboard.openstack.org/#!/project/x/tobiko
|
||||
|
||||
|
||||
Related projects
|
||||
~~~~~~~~~~~~~~~~
|
||||
* Tobiko: https://tobiko.readthedocs.io/en/latest/
|
||||
* OpenStack: https://www.openstack.org/
|
||||
* DevStack: https://docs.openstack.org/devstack/latest/
|
26
devstack/README.rst
Normal file
26
devstack/README.rst
Normal file
@ -0,0 +1,26 @@
|
||||
====================
|
||||
Enabling in Devstack
|
||||
====================
|
||||
|
||||
**WARNING**: the stack.sh script must be run in a disposable VM that is not
|
||||
being created automatically, see the README.md file in the "devstack"
|
||||
repository. See contrib/vagrant to create a vagrant VM.
|
||||
|
||||
1. Download DevStack::
|
||||
|
||||
git clone https://opendev.org/openstack/devstack.git
|
||||
cd devstack
|
||||
|
||||
2. Add this repo as an external repository::
|
||||
|
||||
> cat local.conf
|
||||
[[local|localrc]]
|
||||
enable_plugin tobiko https://opendev.org/x/tobiko
|
||||
|
||||
3. Tobiko require Heat to be enabled, so heat should be also enabled::
|
||||
|
||||
[[local|localrc]]
|
||||
enable_plugin heat https://opendev.org/openstack/heat
|
||||
|
||||
|
||||
3. Run ``stack.sh``
|
192
devstack/plugin.sh
Normal file
192
devstack/plugin.sh
Normal file
@ -0,0 +1,192 @@
|
||||
# Directory where this plugin.sh file is
|
||||
TOBIKO_PLUGIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
|
||||
|
||||
function install_tobiko_deps {
|
||||
if [ "${TOBIKO_BINDEP}" != "" ]; then
|
||||
install_python3
|
||||
install_bindep "${TOBIKO_DIR}/bindep.txt" test
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko {
|
||||
# Ensure any user can write to log file
|
||||
local log_dir
|
||||
log_dir=$(dirname ${TOBIKO_LOG_FILE})
|
||||
if ! [ -d "${log_dir}" ]; then
|
||||
sudo mkdir -p "${log_dir}"
|
||||
fi
|
||||
if ! [ -w "${TOBIKO_LOG_FILE}" ]; then
|
||||
sudo touch "${TOBIKO_LOG_FILE}"
|
||||
sudo chmod ugo+rw "${TOBIKO_LOG_FILE}"
|
||||
fi
|
||||
|
||||
# Write configuration to a new temporary file
|
||||
local tobiko_conf_file
|
||||
tobiko_conf_file=$(mktemp)
|
||||
if [ -f "${TOBIKO_CONF_FILE}" ]; then
|
||||
# Start from existing tobiko.conf file
|
||||
cp "${TOBIKO_CONF_FILE}" "${tobiko_conf_file}"
|
||||
fi
|
||||
|
||||
configure_tobiko_default "${tobiko_conf_file}"
|
||||
configure_tobiko_cirros "${tobiko_conf_file}"
|
||||
configure_tobiko_glance "${tobiko_conf_file}"
|
||||
configure_tobiko_keystone "${tobiko_conf_file}"
|
||||
configure_tobiko_nova "${tobiko_conf_file}"
|
||||
configure_tobiko_neutron "${tobiko_conf_file}"
|
||||
|
||||
echo_summary "Apply changes to actual ${TOBIKO_CONF_FILE} file."
|
||||
sudo mkdir -p $(dirname "${TOBIKO_CONF_FILE}")
|
||||
sudo mv "${tobiko_conf_file}" "${TOBIKO_CONF_FILE}"
|
||||
sudo chmod ugo+r "${TOBIKO_CONF_FILE}"
|
||||
|
||||
echo "${TOBIKO_CONF_FILE} file content:"
|
||||
echo --------------------------------
|
||||
cat "${TOBIKO_CONF_FILE}"
|
||||
echo --------------------------------
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko_cirros {
|
||||
echo_summary "Write [cirros] section to ${TOBIKO_CONF_FILE}"
|
||||
local tobiko_conf_file=$1
|
||||
|
||||
iniset_nonempty "${tobiko_conf_file}" cirros name \
|
||||
"${TOBIKO_CIRROS_IMAGE_NAME}"
|
||||
iniset_nonempty "${tobiko_conf_file}" cirros url \
|
||||
"${TOBIKO_CIRROS_IMAGE_URL}"
|
||||
iniset_nonempty "${tobiko_conf_file}" cirros file \
|
||||
"${TOBIKO_CIRROS_IMAGE_FILE}"
|
||||
iniset_nonempty "${tobiko_conf_file}" cirros username \
|
||||
"${TOBIKO_CIRROS_USERNAME}"
|
||||
iniset_nonempty "${tobiko_conf_file}" cirros password \
|
||||
"${TOBIKO_CIRROS_PASSWORD}"
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko_default {
|
||||
echo_summary "Write [DEFAULT] section to ${TOBIKO_CONF_FILE}"
|
||||
local tobiko_conf_file=$1
|
||||
|
||||
setup_logging "${tobiko_conf_file}"
|
||||
iniset ${tobiko_conf_file} DEFAULT debug "${TOBIKO_DEBUG}"
|
||||
iniset ${tobiko_conf_file} DEFAULT log_dir $(dirname "${TOBIKO_LOG_FILE}")
|
||||
iniset ${tobiko_conf_file} DEFAULT log_file \
|
||||
$(basename "${TOBIKO_LOG_FILE}")
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko_glance {
|
||||
echo_summary "Write [glance] section to ${TOBIKO_CONF_FILE}"
|
||||
local tobiko_conf_file=$1
|
||||
|
||||
iniset_nonempty "${tobiko_conf_file}" glance image_dir \
|
||||
"${TOBIKO_GLANCE_IMAGE_DIR}"
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko_keystone {
|
||||
echo_summary "Write [keystone] section to ${TOBIKO_CONF_FILE}"
|
||||
local tobiko_conf_file=$1
|
||||
|
||||
local api_version=${IDENTITY_API_VERSION}
|
||||
if [ "${api_version}" == '2' ]; then
|
||||
local auth_url=${KEYSTONE_AUTH_URI/v2.0}
|
||||
else
|
||||
local auth_url=${KEYSTONE_AUTH_URI_V3:-${KEYSTONE_AUTH_URI/v3}}
|
||||
fi
|
||||
|
||||
local project_id
|
||||
project_id=$(get_or_create_project \
|
||||
"${TOBIKO_KEYSTONE_PROJECT_NAME}" \
|
||||
"${TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME}")
|
||||
|
||||
local user_id
|
||||
user_id=$(get_or_create_user \
|
||||
"${TOBIKO_KEYSTONE_USERNAME}" \
|
||||
"${TOBIKO_KEYSTONE_PASSWORD}" \
|
||||
"${TOBIKO_KEYSTONE_USER_DOMAIN_NAME}")
|
||||
|
||||
local user_project_role_id
|
||||
user_project_role_id=$(get_or_add_user_project_role \
|
||||
"${TOBIKO_KEYSTONE_USER_ROLE}" \
|
||||
"${user_id}" \
|
||||
"${project_id}")
|
||||
|
||||
local user_domain_role_id
|
||||
user_domain_role_id=$(get_or_add_user_domain_role \
|
||||
"${TOBIKO_KEYSTONE_USER_ROLE}" \
|
||||
"${user_id}" \
|
||||
"${TOBIKO_KEYSTONE_USER_DOMAIN_NAME}")
|
||||
|
||||
iniset "${tobiko_conf_file}" keystone cloud_name \
|
||||
"${TOBIKO_KEYSTONE_CLOUD_NAME}"
|
||||
iniset "${tobiko_conf_file}" keystone api_version "${api_version}"
|
||||
iniset "${tobiko_conf_file}" keystone auth_url "${auth_url}"
|
||||
iniset "${tobiko_conf_file}" keystone username \
|
||||
"${TOBIKO_KEYSTONE_USERNAME}"
|
||||
iniset "${tobiko_conf_file}" keystone password \
|
||||
"${TOBIKO_KEYSTONE_PASSWORD}"
|
||||
iniset "${tobiko_conf_file}" keystone project_name \
|
||||
"${TOBIKO_KEYSTONE_PROJECT_NAME}"
|
||||
|
||||
if [ "${api_version}" != '2' ]; then
|
||||
iniset "${tobiko_conf_file}" keystone domain_name \
|
||||
"${TOBIKO_KEYSTONE_DOMAIN_NAME}"
|
||||
iniset "${tobiko_conf_file}" keystone user_domain_name \
|
||||
"${TOBIKO_KEYSTONE_USER_DOMAIN_NAME}"
|
||||
iniset "${tobiko_conf_file}" keystone project_domain_name \
|
||||
"${TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME}"
|
||||
iniset "${tobiko_conf_file}" keystone trust_id \
|
||||
"${TOBIKO_KEYSTONE_TRUST_ID}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko_nova {
|
||||
echo_summary "Write [nova] section to ${TOBIKO_CONF_FILE}"
|
||||
local tobiko_conf_file=$1
|
||||
|
||||
# Write key_file
|
||||
local key_file=${TOBIKO_NOVA_KEY_FILE:-}
|
||||
if [ "${key_file}" != "" ]; then
|
||||
iniset "${tobiko_conf_file}" nova key_file "${key_file}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function configure_tobiko_neutron {
|
||||
echo_summary "Write [neutron] section to ${TOBIKO_CONF_FILE}"
|
||||
local tobiko_conf_file=$1
|
||||
|
||||
# Write floating network
|
||||
local floating_network=${TOBIKO_NEUTRON_FLOATING_NETWORK}
|
||||
if [ "${floating_network}" != "" ]; then
|
||||
iniset "${tobiko_conf_file}" neutron floating_network \
|
||||
"${floating_network}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function iniset_nonempty {
|
||||
# Calls iniset only when option value is not an empty string
|
||||
if [ -n "$4" ]; then
|
||||
iniset "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
if [[ "$1" == "stack" ]]; then
|
||||
case "$2" in
|
||||
install)
|
||||
echo_summary "Installing Tobiko dependencies"
|
||||
install_tobiko_deps
|
||||
;;
|
||||
test-config)
|
||||
echo_summary "Configuring Tobiko test cases"
|
||||
configure_tobiko
|
||||
;;
|
||||
esac
|
||||
fi
|
43
devstack/settings
Normal file
43
devstack/settings
Normal file
@ -0,0 +1,43 @@
|
||||
define_plugin tobiko
|
||||
plugin_requires tobiko heat
|
||||
|
||||
# --- General settings ----
|
||||
TOBIKO_REPO=${TOBIKO_REPO:-${GIT_BASE}/x/tobiko.git}
|
||||
GITREPO["tobiko"]=${TOBIKO_REPO}
|
||||
TOBIKO_VERSION=${TOBIKO_BRANCH:-master}
|
||||
GITBRANCH["tobiko"]=${TOBIKO_VERSION}
|
||||
TOBIKO_DIR=${TOBIKO_DIR:-${DEST}/tobiko}
|
||||
GITDIR["tobiko"]=${TOBIKO_DIR}
|
||||
|
||||
TOBIKO_CONF_FILE=${TOBIKO_CONF_FILE:-/etc/tobiko/tobiko.conf}
|
||||
TOBIKO_DEBUG=${TOBIKO_DEBUG:-True}
|
||||
TOBIKO_LOG_FILE=${TOBIKO_LOG_FILE:-${LOGDIR}/tobiko.log}
|
||||
|
||||
TOBIKO_BINDEP=${BINDEP_CMD:+-bindep}
|
||||
|
||||
# --- Glance settings ---
|
||||
TOBIKO_GLANCE_IMAGE_DIR=${TOBIKO_GLANCE_IMAGE_DIR:-}
|
||||
|
||||
# --- Cirros image settings ---
|
||||
TOBIKO_CIRROS_IMAGE_NAME=${TOBIKO_CIRROS_IMAGE_NAME:-}
|
||||
TOBIKO_CIRROS_IMAGE_URL=${TOBIKO_CIRROS_IMAGE_URL:-}
|
||||
TOBIKO_CIRROS_IMAGE_FILE=${TOBIKO_CIRROS_IMAGE_FILE:-}
|
||||
TOBIKO_CIRROS_USERNAME=${TOBIKO_CIRROS_USERNAME:-}
|
||||
TOBIKO_CIRROS_PASSWORD=${TOBIKO_CIRROS_PASSWORD:-}
|
||||
|
||||
# --- Keystone settings ---
|
||||
# See ``lib/keystone`` where these users and tenants are set up
|
||||
TOBIKO_KEYSTONE_CLOUD_NAME=${TOBIKO_KEYSTONE_CLOUD_NAME:-devstack-admin}
|
||||
TOBIKO_KEYSTONE_USERNAME=${TOBIKO_KEYSTONE_USERNAME:-${ADMIN_USERNAME:-admin}}
|
||||
TOBIKO_KEYSTONE_PASSWORD=${TOBIKO_KEYSTONE_PASSWORD:-${ADMIN_PASSWORD:-secret}}
|
||||
TOBIKO_KEYSTONE_PROJECT_NAME=${TOBIKO_KEYSTONE_PROJECT_NAME:-${ADMIN_TENANT_NAME:-admin}}
|
||||
TOBIKO_KEYSTONE_USER_DOMAIN_NAME=${TOBIKO_KEYSTONE_USER_DOMAIN_NAME:-${ADMIN_DOMAIN_NAME:-Default}}
|
||||
TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME=${TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME:-${ADMIN_DOMAIN_NAME:-Default}}
|
||||
TOBIKO_KEYSTONE_TRUST_ID=${TOBIKO_KEYSTONE_TRUST_ID:-}
|
||||
TOBIKO_KEYSTONE_USER_ROLE=${TOBIKO_KEYSTONE_USER_ROLE:-admin}
|
||||
|
||||
# --- Nova settings ---
|
||||
TOBIKO_NOVA_KEY_FILE=${TOBIKO_NOVA_KEY_FILE:-}
|
||||
|
||||
# --- Neutron settings ---
|
||||
TOBIKO_NEUTRON_FLOATING_NETWORK=${TOBIKO_NEUTRON_FLOATING_NETWORK:-${PUBLIC_NETWORK_NAME}}
|
1
linters-requirements.txt
Normal file
1
linters-requirements.txt
Normal file
@ -0,0 +1 @@
|
||||
pre-commit
|
6
playbooks/devstack/post.yaml
Normal file
6
playbooks/devstack/post.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
|
||||
- hosts: tempest
|
||||
roles:
|
||||
- tobiko-zuul
|
||||
- tobiko-collect
|
12
playbooks/devstack/pre.yaml
Normal file
12
playbooks/devstack/pre.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
|
||||
- hosts: tempest
|
||||
roles:
|
||||
- tobiko-zuul
|
||||
- tobiko-configure
|
||||
|
||||
|
||||
- hosts: all
|
||||
roles:
|
||||
- role: multi-node-setup
|
||||
- role: orchestrate-devstack
|
20
playbooks/devstack/run.yaml
Normal file
20
playbooks/devstack/run.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
# Copyright 2018 Red Hat
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
---
|
||||
|
||||
- hosts: tempest
|
||||
roles:
|
||||
- tobiko-zuul
|
||||
- tobiko-run
|
19
tox.ini
Normal file
19
tox.ini
Normal file
@ -0,0 +1,19 @@
|
||||
[tox]
|
||||
skipsdist = True
|
||||
envlist = linters
|
||||
minversion = 3.8.0
|
||||
|
||||
|
||||
[testenv]
|
||||
usedevelop=False
|
||||
|
||||
|
||||
[testenv:linters]
|
||||
deps =
|
||||
-r {toxinidir}/linters-requirements.txt
|
||||
|
||||
commands =
|
||||
pre-commit --version
|
||||
pre-commit autoupdate
|
||||
pre-commit run --all-files
|
||||
pre-commit install
|
250
zuul.d/jobs.yaml
Normal file
250
zuul.d/jobs.yaml
Normal file
@ -0,0 +1,250 @@
|
||||
---
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-base
|
||||
parent: devstack
|
||||
abstract: true
|
||||
description: |
|
||||
Base Devstack Tobiko Plugin job.
|
||||
|
||||
This job provides the base for both the single and multi-node
|
||||
test setup. To run a multi-node test inherit from devstack-tobiko
|
||||
job and set the nodeset to a multi-node one.
|
||||
required-projects:
|
||||
- openstack/devstack-gate
|
||||
- openstack/heat
|
||||
- openstack/neutron
|
||||
- openstack/requirements
|
||||
- openstack/validations-libs
|
||||
- x/tobiko
|
||||
- x/devstack-plugin-tobiko
|
||||
timeout: 7200
|
||||
vars:
|
||||
devstack_localrc:
|
||||
MULTI_HOST: 0
|
||||
LOG_COLOR: false
|
||||
NETWORK_API_EXTENSIONS: >-
|
||||
address-scope,agent,allowed-address-pairs,auto-allocated-topology,
|
||||
availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,
|
||||
dns-domain-ports,dns-integration,dvr,empty-string-filtering,
|
||||
ext-gw-mode,external-net,extra_dhcp_opt,extraroute,filter-validation,
|
||||
fip-port-details,flavors,ip-substring-filtering,l3-flavors,l3-ha,
|
||||
l3_agent_scheduler,logging,metering,multi-provider,net-mtu,
|
||||
net-mtu-writable,network-ip-availability,network_availability_zone,
|
||||
pagination,port-security,project-id,provider,qos,
|
||||
qos-bw-minimum-ingress,qos-fip,quotas,quota_details,rbac-policies,
|
||||
router,router_availability_zone,security-group,
|
||||
port-mac-address-regenerate,port-security-groups-filtering,
|
||||
segment,service-type,sorting,standard-attr-description,
|
||||
standard-attr-revisions,standard-attr-segment,
|
||||
standard-attr-timestamp,standard-attr-tag,subnet_allocation,
|
||||
trunk,trunk-details,uplink-status-propagation
|
||||
devstack_plugins:
|
||||
heat: https://opendev.org/openstack/heat.git
|
||||
neutron: https://opendev.org/openstack/neutron.git
|
||||
tobiko: https://opendev.org/x/devstack-plugin-tobiko.git
|
||||
devstack_services:
|
||||
heat: true
|
||||
h-api: true
|
||||
h-api-cfn: true
|
||||
h-eng: true
|
||||
n-cpu: true
|
||||
# NOTE(slaweq): we need to enable it as "legacy" service because for
|
||||
# Fedora job it has to be disabled. If it would be disabled as
|
||||
# "neutron-dns: false" then it devstack would consider that
|
||||
# neutron-legacy isn't used and would not load proper files
|
||||
q-dns: true
|
||||
# see bug #1860753 (https://bugs.launchpad.net/devstack/+bug/1860753)
|
||||
memory_tracker: false
|
||||
neutron-qos: true
|
||||
neutron-segments: true
|
||||
neutron-trunk: true
|
||||
neutron-uplink-status-propagation: true
|
||||
tempest: false
|
||||
tls-proxy: false
|
||||
# NOTE(slaweq): Swift can't run with python3 currently
|
||||
s-account: false
|
||||
s-container: false
|
||||
s-object: false
|
||||
s-proxy: false
|
||||
# NOTE(slaweq): without Swift, c-bak cannot run (in the Gate at least)
|
||||
c-bak: false
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$NEUTRON_CONF:
|
||||
QUOTAS:
|
||||
quota_router: 100
|
||||
quota_floatingip: 500
|
||||
quota_security_group: 100
|
||||
quota_security_group_rule: 1000
|
||||
$NOVA_CONF:
|
||||
quota:
|
||||
instances: 20
|
||||
zuul_copy_output:
|
||||
'{{ stage_dir }}/stackviz': logs
|
||||
extensions_to_txt:
|
||||
conf: true
|
||||
log: true
|
||||
yaml: true
|
||||
yml: true
|
||||
test_log_debug: true
|
||||
test_case_timeout: 1800
|
||||
tobiko_dir: '/opt/stack/tobiko'
|
||||
upper_constraints_file: >-
|
||||
{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/
|
||||
upper-constraints.txt'
|
||||
|
||||
pre-run: playbooks/devstack/pre.yaml
|
||||
run: playbooks/devstack/run.yaml
|
||||
post-run: playbooks/devstack/post.yaml
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/
|
||||
- ^infrared_plugin/
|
||||
- ^releasenotes/
|
||||
- ^report/
|
||||
- ^tobiko/tests/unit/
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-octavia
|
||||
parent: devstack-tobiko-base
|
||||
abstract: true
|
||||
description: |
|
||||
Base Tobiko devstack job to be used with Octavia.
|
||||
|
||||
required-projects:
|
||||
- openstack/barbican
|
||||
- openstack/diskimage-builder
|
||||
- openstack/octavia
|
||||
- openstack/octavia-lib
|
||||
- openstack/python-barbicanclient
|
||||
- openstack/tripleo-image-elements
|
||||
timeout: 7800
|
||||
vars:
|
||||
devstack_services:
|
||||
# Octavia
|
||||
octavia: true
|
||||
o-cw: true
|
||||
o-hk: true
|
||||
o-hm: true
|
||||
o-api: true
|
||||
zuul_copy_output:
|
||||
'/var/log/dib-build/': logs
|
||||
'/var/log/octavia-tenant-traffic.log': logs
|
||||
'/var/log/octavia-amphora.log': logs
|
||||
extensions_to_txt:
|
||||
conf: true
|
||||
log: true
|
||||
yaml: true
|
||||
yml: true
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko
|
||||
parent: devstack-tobiko-octavia
|
||||
abstract: true
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-functional
|
||||
parent: devstack-tobiko
|
||||
description: |
|
||||
Base Tobiko devstack job to execute functional tests.
|
||||
vars:
|
||||
test_workflow: functional
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/
|
||||
- ^infrared_plugin/
|
||||
- ^releasenotes/
|
||||
- ^report/
|
||||
- ^tobiko/tests/faults/
|
||||
- ^tobiko/tests/scenario/
|
||||
- ^tobiko/tests/unit/
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-functional-centos
|
||||
parent: devstack-tobiko-functional
|
||||
nodeset: devstack-single-node-centos-8
|
||||
voting: false
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-functional-ubuntu
|
||||
parent: tobiko-devstack-functional
|
||||
nodeset: openstack-single-node-focal
|
||||
voting: false
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-multinode
|
||||
parent: devstack-tobiko
|
||||
abstract: true
|
||||
description: Base DevStack Tobiko job with multinode.
|
||||
vars:
|
||||
topology: multinode
|
||||
devstack_localrc:
|
||||
ENABLE_FILE_INJECTION: true
|
||||
MULTI_HOST: 1
|
||||
devstack_services:
|
||||
n-cpu: false
|
||||
group-vars:
|
||||
subnode:
|
||||
devstack_services:
|
||||
c-vol: true
|
||||
dstat: true
|
||||
heat: false
|
||||
h-api: false
|
||||
h-api-cfn: false
|
||||
h-eng: false
|
||||
n-api-meta: true
|
||||
placement-client: true
|
||||
n-cpu: true
|
||||
neutron-agent: true
|
||||
# see bug #1860753 (https://bugs.launchpad.net/devstack/+bug/1860753)
|
||||
memory_tracker: false
|
||||
q-agt: true
|
||||
q-l3: true
|
||||
q-meta: true
|
||||
tls-proxy: false
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-faults
|
||||
parent: devstack-tobiko-multinode
|
||||
abstract: true
|
||||
description: |
|
||||
Base Tobiko devstack job to execute scenario+faults+scenario test cases.
|
||||
vars:
|
||||
test_workflow: faults
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/
|
||||
- ^infrared_plugin/
|
||||
- ^releasenotes/
|
||||
- ^report/
|
||||
- ^tobiko/tests/functional/
|
||||
- ^tobiko/tests/unit/
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-faults-centos
|
||||
parent: devstack-tobiko-faults
|
||||
nodeset: devstack-tobiko-multinode-centos
|
||||
voting: false
|
||||
|
||||
|
||||
- job:
|
||||
name: devstack-tobiko-faults-ubuntu
|
||||
parent: devstack-tobiko-faults
|
||||
nodeset: devstack-tobiko-multinode-ubuntu
|
||||
voting: false
|
||||
vars:
|
||||
devstack_services:
|
||||
tls-proxy: true
|
||||
group-vars:
|
||||
subnode:
|
||||
devstack_services:
|
||||
tls-proxy: true
|
72
zuul.d/nodesets.yaml
Normal file
72
zuul.d/nodesets.yaml
Normal file
@ -0,0 +1,72 @@
|
||||
---
|
||||
|
||||
- nodeset:
|
||||
name: devstack-tobiko-multinode-centos
|
||||
nodes:
|
||||
- name: controller
|
||||
label: centos-8
|
||||
- name: compute1
|
||||
label: centos-8
|
||||
- name: compute2
|
||||
label: centos-8
|
||||
|
||||
groups:
|
||||
# Node where tests are executed and test results collected
|
||||
- name: tempest
|
||||
nodes:
|
||||
- controller
|
||||
# Nodes running the compute service
|
||||
- name: compute
|
||||
nodes:
|
||||
- compute1
|
||||
- compute2
|
||||
# Nodes that are not the controller
|
||||
- name: subnode
|
||||
nodes:
|
||||
- compute1
|
||||
- compute2
|
||||
# Switch node for multinode networking setup
|
||||
- name: switch
|
||||
nodes:
|
||||
- controller
|
||||
# Peer nodes for multinode networking setup
|
||||
- name: peers
|
||||
nodes:
|
||||
- compute1
|
||||
- compute2
|
||||
|
||||
|
||||
- nodeset:
|
||||
name: devstack-tobiko-multinode-ubuntu
|
||||
nodes:
|
||||
- name: controller
|
||||
label: ubuntu-focal
|
||||
- name: compute1
|
||||
label: ubuntu-focal
|
||||
- name: compute2
|
||||
label: ubuntu-focal
|
||||
|
||||
groups:
|
||||
# Node where tests are executed and test results collected
|
||||
- name: tempest
|
||||
nodes:
|
||||
- controller
|
||||
# Nodes running the compute service
|
||||
- name: compute
|
||||
nodes:
|
||||
- compute1
|
||||
- compute2
|
||||
# Nodes that are not the controller
|
||||
- name: subnode
|
||||
nodes:
|
||||
- compute1
|
||||
- compute2
|
||||
# Switch node for multinode networking setup
|
||||
- name: switch
|
||||
nodes:
|
||||
- controller
|
||||
# Peer nodes for multinode networking setup
|
||||
- name: peers
|
||||
nodes:
|
||||
- compute1
|
||||
- compute2
|
22
zuul.d/project.yaml
Normal file
22
zuul.d/project.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
|
||||
- project:
|
||||
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tox-linters
|
||||
# - devstack-tobiko-functional-centos
|
||||
# - devstack-tobiko-functional-ubuntu
|
||||
# - devstack-tobiko-faults-centos
|
||||
# - devstack-tobiko-faults-ubuntu
|
||||
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-linters
|
||||
|
||||
periodic:
|
||||
jobs:
|
||||
- devstack-tobiko-functional-centos
|
||||
- devstack-tobiko-functional-ubuntu
|
||||
- devstack-tobiko-faults-centos
|
||||
- devstack-tobiko-faults-ubuntu
|
Loading…
Reference in New Issue
Block a user