Native Zuul v3

Change-Id: I938cb7d5f820a761fc65ac82d137f83a2188faed
This commit is contained in:
Idan Hefetz 2020-08-20 06:09:05 +00:00 committed by Eyal
parent 375af0391e
commit d79c372076
4 changed files with 237 additions and 118 deletions

View File

@ -5,64 +5,229 @@
- publish-openstack-docs-pti
check:
jobs:
- vitrage-dsvm-api-py3
- vitrage-dsvm-datasources-py3
- vitrage-dsvm-api-py3-ussuri
- vitrage-dsvm-datasources-py3-ussuri
- vitrage-dsvm-api-py3-train
- vitrage-dsvm-datasources-py3-train
- vitrage-dsvm-api-py3-stein
- vitrage-dsvm-datasources-py3-stein
- vitrage-tempest-plugin-api
- vitrage-tempest-plugin-datasources
- vitrage-tempest-plugin-datasources-ussuri
- vitrage-tempest-plugin-api-ussuri
- vitrage-tempest-plugin-datasources-train
- vitrage-tempest-plugin-api-train
- vitrage-tempest-plugin-datasources-stein
- vitrage-tempest-plugin-api-stein
gate:
queue: vitrage
jobs:
- vitrage-dsvm-api-py3
- vitrage-dsvm-datasources-py3
- vitrage-tempest-plugin-api
- vitrage-tempest-plugin-datasources
- job:
name: vitrage-dsvm-api-py3-ussuri
parent: vitrage-dsvm-api-py3
name: vitrage-tempest-plugin-base
parent: devstack-tempest
pre-run: playbooks/pre.yaml
timeout: 7800
required-projects: &base_required_projects
- opendev.org/openstack/aodh
- opendev.org/openstack/mistral
- opendev.org/openstack/python-vitrageclient
- opendev.org/openstack/vitrage
- opendev.org/openstack/vitrage-tempest-plugin
- opendev.org/openstack/ceilometer
- opendev.org/openstack/heat
irrelevant-files: &base_irrelevant_files
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
vars: &base_vars
devstack_local_conf:
post-config:
$NOVA_CONF:
DEFAULT:
notification_topics: 'notifications,vitrage_notifications'
notification_driver: messagingv2
notifications:
versioned_notifications_topics: 'versioned_notifications,vitrage_notifications'
notification_driver: messagingv2
$NEUTRON_CONF:
DEFAULT:
notification_topics: 'notifications,vitrage_notifications'
notification_driver: messagingv2
$CINDER_CONF:
DEFAULT:
notification_topics: 'notifications,vitrage_notifications'
notification_driver: messagingv2
$HEAT_CONF:
DEFAULT:
notification_topics: 'notifications,vitrage_notifications'
notification_driver: messagingv2
policy_file: /etc/heat/policy.yaml
$AODH_CONF:
oslo_messaging_notifications:
topics: 'notifications,vitrage_notifications'
driver: messagingv2
$VITRAGE_CONF:
DEFAULT:
notifiers: 'mistral,nova,webhook'
datasources:
snapshots_interval: 120
test-config:
$TEMPEST_CONFIG:
service_available:
vitrage: True
root_cause_analysis_service:
zabbix_alarms_per_host: 2
instances_per_host: 2
snapshots_interval: 120
tox_envlist: all
tempest_concurrency: 1
tempest_test_regex: topology|test_rca|test_alarms|test_resources|test_template|test_webhook|test_service
tempest_black_regex: tempest\.api
tempest_plugins:
- vitrage-tempest-plugin
devstack_localrc:
VITRAGE_USE_STATIC: 1
VITRAGE_USE_DOCTOR: 1
VITRAGE_USE_PROMETHEUS: 1
devstack_services:
s-account: false
s-container: false
s-object: false
s-proxy: false
tls-proxy: false
devstack_plugins:
heat: https://opendev.org/openstack/heat
ceilometer: https://opendev.org/openstack/ceilometer
aodh: https://opendev.org/openstack/aodh
mistral: https://opendev.org/openstack/mistral
vitrage: https://opendev.org/openstack/vitrage
- job:
name: vitrage-tempest-plugin-api
parent: vitrage-tempest-plugin-base
- job:
name: vitrage-tempest-plugin-api-ipv6-only
parent: devstack-tempest-ipv6
nodeset: openstack-single-node-bionic
pre-run: playbooks/pre.yaml
timeout: 7800
required-projects: *base_required_projects
irrelevant-files: *base_irrelevant_files
vars: *base_vars
- job:
name: vitrage-tempest-plugin-datasources
parent: vitrage-tempest-plugin-base
vars:
tempest_test_regex: datasources|test_events|notifiers|e2e|database
- job:
name: vitrage-tempest-plugin-mock
parent: devstack-tempest
timeout: 7800
required-projects:
- opendev.org/openstack/python-vitrageclient
- opendev.org/openstack/vitrage
- opendev.org/openstack/vitrage-tempest-plugin
irrelevant-files: *base_irrelevant_files
vars:
devstack_local_conf:
post-config:
$NOVA_CONF:
DEFAULT:
notification_topics: 'notifications,vitrage_notifications'
notification_driver: messagingv2
notifications:
versioned_notifications_topics: 'versioned_notifications,vitrage_notifications'
notification_driver: messagingv2
notification_format: both
$CINDER_CONF:
DEFAULT:
notification_topics: 'notifications,vitrage_notifications'
notification_driver: messagingv2
$VITRAGE_CONF:
DEFAULT:
verbose: true
debug: false
notifiers: 'nova,webhook'
rpc_response_timeout: 300
datasources:
types: 'doctor,mock_graph_datasource'
path: 'vitrage.datasources,vitrage.tests.mocks'
snapshots_interval: 60
mock_graph_datasource:
networks: 100
zones_per_cluster: 4
hosts_per_zone: 16
zabbix_alarms_per_host: 8
instances_per_host: 50
ports_per_instance: 3
volumes_per_instance: 2
vitrage_alarms_per_instance: 0
tripleo_controllers: 3
zabbix_alarms_per_controller: 1
test-config:
$TEMPEST_CONFIG:
service_available:
vitrage: True
root_cause_analysis_service:
zabbix_alarms_per_host: 8
instances_per_host: 50
snapshots_interval: 60
tox_envlist: all
tempest_concurrency: 1
tempest_test_regex: mock_datasource
tempest_plugins:
- vitrage-tempest-plugin
devstack_services:
s-account: false
s-container: false
s-object: false
s-proxy: false
tls-proxy: false
devstack_plugins:
vitrage: https://opendev.org/openstack/vitrage
- job:
name: vitrage-tempest-plugin-api-ussuri
parent: vitrage-tempest-plugin-api
override-checkout: stable/ussuri
- job:
name: vitrage-dsvm-api-py3-train
parent: vitrage-dsvm-api-py3
nodeset: openstack-single-node-bionic
name: vitrage-tempest-plugin-datasources-ussuri
parent: vitrage-tempest-plugin-datasources
override-checkout: stable/ussuri
- job:
name: vitrage-tempest-plugin-api-train
parent: vitrage-tempest-plugin-api
override-checkout: stable/train
vars:
devstack_localrc:
USE_PYTHON3: True
- job:
name: vitrage-dsvm-api-py3-stein
parent: vitrage-dsvm-api-py35
nodeset: openstack-single-node-bionic
override-checkout: stable/stein
vars:
devstack_localrc:
USE_PYTHON3: True
- job:
name: vitrage-dsvm-datasources-py3-ussuri
parent: vitrage-dsvm-datasources-py3
nodeset: openstack-single-node-bionic
override-checkout: stable/ussuri
- job:
name: vitrage-dsvm-datasources-py3-train
parent: vitrage-dsvm-datasources-py3
nodeset: openstack-single-node-bionic
name: vitrage-tempest-plugin-datasources-train
parent: vitrage-tempest-plugin-datasources
override-checkout: stable/train
vars:
devstack_localrc:
USE_PYTHON3: True
- job:
name: vitrage-dsvm-datasources-py3-stein
parent: vitrage-dsvm-datasources-py35
nodeset: openstack-single-node-bionic
name: vitrage-tempest-plugin-api-stein
parent: vitrage-tempest-plugin-api
override-checkout: stable/stein
vars:
tempest_black_regex: tempest\.api|test_template
devstack_localrc:
USE_PYTHON3: True
- job:
name: vitrage-tempest-plugin-datasources-stein
parent: vitrage-tempest-plugin-datasources
override-checkout: stable/stein
vars:
tempest_black_regex: tempest\.api|test_template
devstack_localrc:
USE_PYTHON3: True

View File

@ -1,60 +0,0 @@
#!/usr/bin/env bash
# Copyright 2016 - Nokia
#
# 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.
STACK_USER=${STACK_USER:stack}
source $BASE/new/devstack/functions
sudo chown -R $USER:$STACK_USER $BASE/new/tempest
DEVSTACK_PATH="$BASE/new"
TEMPEST_CONFIG=$BASE/new/tempest/etc/tempest.conf
iniset $TEMPEST_CONFIG service_available vitrage true
if [ "$1" = "mock" ]; then
iniset $TEMPEST_CONFIG root_cause_analysis_service zabbix_alarms_per_host 8
iniset $TEMPEST_CONFIG root_cause_analysis_service instances_per_host 50
iniset $TEMPEST_CONFIG root_cause_analysis_service snapshots_interval 60
else
iniset $TEMPEST_CONFIG root_cause_analysis_service zabbix_alarms_per_host 2
iniset $TEMPEST_CONFIG root_cause_analysis_service instances_per_host 2
iniset $TEMPEST_CONFIG root_cause_analysis_service snapshots_interval 120
fi
#Argument is received from Zuul
if [[ "$1" = "api" ]]; then
TESTS="topology|test_rca|test_alarms|test_resources|test_template|test_webhook|test_service"
elif [[ "$1" = "datasources" ]]; then
TESTS="datasources|test_events|notifiers|e2e|database"
elif [[ "$1" = "mock" ]]; then
TESTS="mock_datasource"
else # used for internal testing shouldn't get here in gate
TESTS="$1"
fi
if [[ "$DEVSTACK_GATE_USE_PYTHON3" == "True" ]]; then
export PYTHON=python3
fi
sudo cp -rf $DEVSTACK_PATH/tempest/etc/logging.conf.sample $DEVSTACK_PATH/tempest/etc/logging.conf
cd $DEVSTACK_PATH/tempest/
sudo -E stestr init
echo "Listing existing Tempest tests"
sudo -E stestr list vitrage_tempest_plugin | grep -E "$TESTS" | sort | tee /tmp/vitrage_tempest_tests.list
echo "Testing $1: $TESTS..."
sudo -E stestr run --serial --subunit --load-list=/tmp/vitrage_tempest_tests.list | subunit-trace --fails --no-failure-debug

View File

@ -1,22 +0,0 @@
#!/usr/bin/env bash
# Copyright 2019 - Nokia
#
# 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.
DEVSTACK_PATH="$BASE/new"
# Copy prometheus_conf.yaml to /etc/vitrage directory
ETC_VITRAGE=/etc/vitrage/
PROMETHES_CONF_PATH=vitrage-tempest-plugin/vitrage_tempest_plugin/tests/resources/prometheus/prometheus_conf.yaml
sudo mkdir -p $ETC_VITRAGE && sudo cp $DEVSTACK_PATH/$PROMETHES_CONF_PATH $ETC_VITRAGE

36
playbooks/pre.yaml Normal file
View File

@ -0,0 +1,36 @@
- hosts: tempest
tasks:
- name: Create /etc/vitrage and make it available to stack and tempest user
file:
path: /etc/vitrage
state: directory
mode: 0777
owner: tempest
group: stack
become: yes
- name: Create /etc/vitrage/static_datasources and make it available to stack and tempest user
file:
path: /etc/vitrage/static_datasources
state: directory
mode: 0777
owner: tempest
group: stack
become: yes
- name: Copy prometheus_conf to vitrage folder
blockinfile:
path: "/etc/vitrage/prometheus_conf.yaml"
mode: 0644
create: yes
block: |
alerts:
- key:
alertname: HighCpuOnVmAlert
job: libvirt
resource:
instance_name: domain
host_id: instance
- key:
alertname: HighInodeUsage
job: node
resource:
id: instance