keystone only puppet deployment

While evaluating new versions of a base
operating system it is handy to have a very
minimal deployment.

* configure_[images,networks] turned off
* tempest api tests only for keystone

Match TripleO's scenario000 deployment:
https://bit.ly/3tBNBor

Change-Id: Ie7ebee89b1ca00ca2fc50b7d1cbd2d8364daca46
This commit is contained in:
Wes Hayutin 2021-04-16 12:06:11 -06:00 committed by Takashi Kajinami
parent 19de508641
commit e8fe5bae37
6 changed files with 157 additions and 39 deletions

View File

@ -31,6 +31,7 @@ Description
OpenStack Infrastructure is deploying four jobs per supported Operating System OpenStack Infrastructure is deploying four jobs per supported Operating System
(Ubuntu and CentOS): scenario001, scenario002, scenario003 and scenario004. (Ubuntu and CentOS): scenario001, scenario002, scenario003 and scenario004.
For CentOS it is also deploying a job(scenario000) with very tiny installation.
OpenStack services are balanced between four scenarios because OpenStack OpenStack services are balanced between four scenarios because OpenStack
Infastructure Jenkins slaves can not afford the load of running everything on Infastructure Jenkins slaves can not afford the load of running everything on
@ -38,43 +39,44 @@ the same node.
One manifest (scenario-aio) is used for people who want to [run a simple All-In-One One manifest (scenario-aio) is used for people who want to [run a simple All-In-One
scenario](#all-in-one). scenario](#all-in-one).
| - | scenario001 | scenario002 | scenario003 | scenario004 | scenario-aio | | - | scenario000 | scenario001 | scenario002 | scenario003 | scenario004 | scenario-aio |
|:----------:|:-----------:|:-----------:|:-----------:|:-----------:|:------------:| |:----------:|:-----------:|------------:|:-----------:|:-----------:|:-----------:|:------------:|
| ssl | yes | yes | yes | yes | no | | ssl | yes | yes | yes | yes | yes | no |
| ipv6 | centos7 | centos7 | centos7 | centos7 | no | | ipv6 | centos8 | centos8 | centos8 | centos8 | centos8 | no |
| keystone | X | X | X | X | X | | keystone | X | X | X | X | X | X |
| glance | rbd | swift | file | swift+rgw | file | | glance | | rbd | swift | file | swift+rgw | file |
| nova | rbd | X | X | rbd | X | | nova | | rbd | X | X | rbd | X |
| neutron | ovs | ovs | linuxbridge | ovs | ovs | | placement | | X | X | X | X | X |
| cinder | rbd | iscsi | | | iscsi | | neutron | | ovs | ovs | linuxbridge | ovs | ovs |
| ceilometer | X | | | | | | cinder | | rbd | iscsi | | | iscsi |
| aodh | X | | | | | | ceilometer | | X | | | | |
| panko | X | | | | | | aodh | | X | | | | |
| designate | | | bind | | | | panko | | X | | | | |
| backup | | swift | | | | | designate | | | | bind | | |
| gnocchi | rbd | | | | | | backup | | | swift | | | |
| ec2api | | X | | | | | gnocchi | | rbd | | | | |
| heat | X | | X | | | | ec2api | | | X | | | |
| swift | | X | | | | | heat | | X | | X | | |
| sahara | | | X | | | | swift | | | X | | | |
| trove | | | X | | | | sahara | | | | X | | |
| horizon | | | X | | X | | trove | | | | X | | |
| ironic | | X | | | | | horizon | | | | X | | X |
| zaqar | | X | | | | | ironic | | | X | | | |
| murano | | | X | | | | zaqar | | | X | | | |
| magnum | | | X | | | | murano | | | | X | | |
| mistral | | | X | | | | magnum | | | | X | | |
| barbican | | X | X | | | | mistral | | | | X | | |
| ceph | X | | | X | | | barbican | | | X | X | | |
| ceph rgw | | | | X | | | ceph | | X | | | X | |
| vitrage | X | | | | | | ceph rgw | | | | | X | |
| watcher | | | | X | | | vitrage | | X | | | | |
| bgpvpn-api | | | | X | | | watcher | | | | | X | |
| bgp-dr | | | | X | | | bgpvpn-api | | | | | X | |
| redis | X | | | | | | bgp-dr | | | | | X | |
| l2gw | | | | X | | | redis | | X | | | | |
| om rpc | amqp1 | rabbit | rabbit | rabbit | rabbit | | l2gw | | | | | X | |
| om notify | rabbit | rabbit | rabbit | rabbit | rabbit | | om rpc | amqp1 | amqp1 | rabbit | rabbit | rabbit | rabbit |
| om notify | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit |
When the Jenkins slave is created, the *run_tests.sh* script will be executed. When the Jenkins slave is created, the *run_tests.sh* script will be executed.
This script will execute *install_modules.sh* that prepare /etc/puppet/modules This script will execute *install_modules.sh* that prepare /etc/puppet/modules

91
fixtures/scenario000.pp Normal file
View File

@ -0,0 +1,91 @@
#
# Copyright 2015 Red Hat, Inc.
#
# 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.
#
# Keystone only puppet deployment
if ($::os['name'] == 'Ubuntu') or ($::os['name'] == 'Fedora') {
$ssl = false
} else {
$ssl = true
}
if $::osfamily == 'RedHat' {
# (amoralej) - disable selinux defaults until
# https://tickets.puppetlabs.com/browse/PUP-7559 is fixed
Concat { selinux_ignore_defaults => true }
File { selinux_ignore_defaults => true }
}
case $::osfamily {
'Debian': {
$ipv6 = false
# vitrage are not packaged yet in debian/ubuntu
$enable_vitrage = false
$om_rpc = 'rabbit'
$om_notify = 'rabbit'
$notification_topics = $::os_service_default
}
'RedHat': {
$ipv6 = true
$enable_vitrage = false
$om_rpc = 'amqp'
$om_notify = 'rabbit'
$notification_topics = ['notifications', 'vitrage_notifications']
}
default: {
fail("Unsupported osfamily (${::osfamily})")
}
}
include openstack_integration
class { 'openstack_integration::config':
ssl => $ssl,
ipv6 => $ipv6,
rpc_backend => $om_rpc,
notify_backend => $om_notify,
}
if $ssl {
include openstack_integration::cacert
}
include openstack_integration::apache
include openstack_integration::memcached
include openstack_integration::rabbitmq
if ($om_rpc == 'amqp') {
include openstack_integration::qdr
}
include openstack_integration::mysql
class { 'openstack_integration::keystone':
# NOTE(sileht): Telemetry autoscaling tempest tests can't renew token, so we
# use a long one
token_expiration => '2400',
}
# turn off glance, nova, neutron
class { 'openstack_integration::provision':
glance => false,
nova => false,
neutron => false,
}
# Expected keystone resources logged to
# keystone-resources.txt
class { 'openstack_integration::tempest':
glance => false,
nova => false,
neutron => false,
configure_images => false,
configure_networks => false,
}

View File

@ -112,6 +112,14 @@
# (optional) Define if Encrypted Volumes need to be tested. # (optional) Define if Encrypted Volumes need to be tested.
# Default to false. # Default to false.
# #
# [*configure_images*]
# (optional) Define if images are configured for tempest.
# Default to true.
#
# [*configure_networks*]
# (optional) Define if networks are configured for tempest.
# Default to true.
#
# [*neutron_api_extensions*] # [*neutron_api_extensions*]
# (optional) Define list of neutron API extensions to test. # (optional) Define list of neutron API extensions to test.
# The list is known to work with the repo; this reflects extensions enabled # The list is known to work with the repo; this reflects extensions enabled
@ -146,6 +154,8 @@ class openstack_integration::tempest (
$vitrage = false, $vitrage = false,
$zaqar = false, $zaqar = false,
$attach_encrypted_volume = false, $attach_encrypted_volume = false,
$configure_images = true,
$configure_networks = true,
$neutron_api_extensions = [ $neutron_api_extensions = [
'address-scope', 'address-scope',
'agent', 'agent',
@ -211,8 +221,8 @@ class openstack_integration::tempest (
tempest_clone_path => '/tmp/openstack/tempest', tempest_clone_path => '/tmp/openstack/tempest',
lock_path => '/tmp/openstack/tempest', lock_path => '/tmp/openstack/tempest',
tempest_config_file => '/tmp/openstack/tempest/etc/tempest.conf', tempest_config_file => '/tmp/openstack/tempest/etc/tempest.conf',
configure_images => true, configure_images => $configure_images,
configure_networks => true, configure_networks => $configure_networks,
identity_uri_v3 => "${::openstack_integration::config::keystone_auth_uri}/v3", identity_uri_v3 => "${::openstack_integration::config::keystone_auth_uri}/v3",
admin_username => 'admin', admin_username => 'admin',
admin_project_name => 'openstack', admin_project_name => 'openstack',

View File

@ -12,3 +12,4 @@
executable: /bin/bash executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace/puppet-openstack-integration' chdir: '{{ ansible_user_dir }}/workspace/puppet-openstack-integration'
environment: '{{ zuul | zuul_legacy_vars }}' environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -6,6 +6,19 @@
vars: vars:
puppet: 6 puppet: 6
- job:
name: puppet-openstack-integration-6-scenario000
parent: puppet-openstack-integration-6
abstract: true
vars:
scenario: scenario000
- job:
name: puppet-openstack-integration-6-scenario000-tempest-centos-8-stream
parent: puppet-openstack-integration-6-scenario000
voting: false
nodeset: centos-8-stream
- job: - job:
name: puppet-openstack-integration-6-scenario001 name: puppet-openstack-integration-6-scenario001
parent: puppet-openstack-integration-6 parent: puppet-openstack-integration-6

View File

@ -49,6 +49,7 @@
- puppet-openstack-integration-6-scenario002-tempest-ubuntu-focal - puppet-openstack-integration-6-scenario002-tempest-ubuntu-focal
- puppet-openstack-integration-6-scenario003-tempest-ubuntu-focal - puppet-openstack-integration-6-scenario003-tempest-ubuntu-focal
- puppet-openstack-integration-6-scenario004-tempest-ubuntu-focal - puppet-openstack-integration-6-scenario004-tempest-ubuntu-focal
- puppet-openstack-integration-6-scenario000-tempest-centos-8-stream
- puppet-openstack-integration-6-scenario001-tempest-centos-8-stream - puppet-openstack-integration-6-scenario001-tempest-centos-8-stream
- puppet-openstack-integration-6-scenario002-tempest-centos-8-stream - puppet-openstack-integration-6-scenario002-tempest-centos-8-stream
- puppet-openstack-integration-6-scenario003-tempest-centos-8-stream - puppet-openstack-integration-6-scenario003-tempest-centos-8-stream