Add jobs for CentOS 8

As part of adoption of CentOS 8 in RDO, this patch is adding support to
test with it:

- Adapt run_tests.sh for CentOS8.
- Add the option to have different versions of puppet modules (needed
for puppet-mysql until we can update mariadb in CentOS7.
- Add centos8 playbooks and jobs definition.

Change-Id: Ie53a8cb5517651487436e24bf60f51bc531f16d6
(cherry picked from commit 9ddd5469d6)
This commit is contained in:
yatinkarel 2019-12-10 09:10:40 +05:30 committed by Javier Peña
parent 372d12079b
commit 956eda4a55
6 changed files with 292 additions and 8 deletions

View File

@ -43,6 +43,20 @@
label: centos-7
run: playbooks/packstack-integration-tempest.yaml
- job:
name: packstack-centos8
parent: packstack-base
vars:
selinux_enforcing: "false"
delorean: "https://trunk.rdoproject.org/centos8-train/consistent/delorean.repo"
delorean_deps: "https://trunk.rdoproject.org/centos8-train/delorean-deps.repo"
pre-run: playbooks/packstack-centos8-pre.yaml
nodeset:
nodes:
- name: centos8
label: centos-8
run: playbooks/packstack-integration-tempest.yaml
- job:
name: packstack-multinode
parent: packstack-base
@ -55,6 +69,22 @@
label: centos-7
run: playbooks/packstack-multinode.yaml
- job:
name: packstack-multinode-centos8
parent: packstack-base
vars:
selinux_enforcing: "false"
delorean: "https://trunk.rdoproject.org/centos8-train/consistent/delorean.repo"
delorean_deps: "https://trunk.rdoproject.org/centos8-train/delorean-deps.repo"
pre-run: playbooks/packstack-centos8-pre.yaml
nodeset:
nodes:
- name: controller
label: centos-8
- name: compute
label: centos-8
run: playbooks/packstack-multinode.yaml
- job:
name: packstack-integration-scenario001-tempest
parent: packstack-allinone
@ -73,6 +103,24 @@
vars:
scenario: scenario003
- job:
name: packstack-centos8-integration-scenario001
parent: packstack-centos8
vars:
scenario: scenario001
- job:
name: packstack-centos8-integration-scenario002
parent: packstack-centos8
vars:
scenario: scenario002
- job:
name: packstack-centos8-integration-scenario003
parent: packstack-centos8
vars:
scenario: scenario003
# We should have nested post-run jobs, according to
# https://docs.openstack.org/infra/zuul/user/config.html#job
- job:
@ -82,6 +130,13 @@
vars:
scenario: scenario002
- job:
name: packstack-centos8-multinode-scenario002-tempest
parent: packstack-multinode-centos8
post-run: playbooks/packstack-post-compute.yaml
vars:
scenario: scenario002
- secret:
name: packstack_git_mirror_credentials
data:
@ -169,6 +224,15 @@
- packstack-integration-scenario002-tempest
- packstack-integration-scenario003-tempest
- packstack-multinode-scenario002-tempest
# We can't make centos8 jobs voting until we have promotion pipeline
- packstack-centos8-integration-scenario001:
voting: false
- packstack-centos8-integration-scenario002:
voting: false
- packstack-centos8-integration-scenario003:
voting: false
- packstack-centos8-multinode-scenario002-tempest:
voting: false
- openstack-tox-py36:
voting: false
gate:

170
Puppetfile-centos8 Executable file
View File

@ -0,0 +1,170 @@
moduledir '/usr/share/openstack-puppet/modules'
## OpenStack modules
mod 'aodh',
:git => 'https://github.com/openstack/puppet-aodh',
:ref => 'stable/train'
mod 'ceilometer',
:git => 'https://github.com/openstack/puppet-ceilometer',
:ref => 'stable/train'
mod 'cinder',
:git => 'https://github.com/openstack/puppet-cinder',
:ref => 'stable/train'
mod 'glance',
:git => 'https://github.com/openstack/puppet-glance',
:ref => 'stable/train'
mod 'gnocchi',
:git => 'https://github.com/openstack/puppet-gnocchi',
:ref => 'stable/train'
mod 'heat',
:git => 'https://github.com/openstack/puppet-heat',
:ref => 'stable/train'
mod 'magnum',
:git => 'https://github.com/openstack/puppet-magnum',
:ref => 'stable/train'
mod 'horizon',
:git => 'https://github.com/openstack/puppet-horizon',
:ref => 'stable/train'
mod 'ironic',
:git => 'https://github.com/openstack/puppet-ironic',
:ref => 'stable/train'
mod 'keystone',
:git => 'https://github.com/openstack/puppet-keystone',
:ref => 'stable/train'
mod 'manila',
:git => 'https://github.com/openstack/puppet-manila',
:ref => 'stable/train'
mod 'neutron',
:git => 'https://github.com/openstack/puppet-neutron',
:ref => 'stable/train'
mod 'nova',
:git => 'https://github.com/openstack/puppet-nova',
:ref => 'stable/train'
mod 'openstack_extras',
:git => 'https://github.com/openstack/puppet-openstack_extras',
:ref => 'stable/train'
mod 'openstacklib',
:git => 'https://github.com/openstack/puppet-openstacklib',
:ref => 'stable/train'
mod 'oslo',
:git => 'https://github.com/openstack/puppet-oslo',
:ref => 'stable/train'
mod 'ovn',
:git => 'https://github.com/openstack/puppet-ovn',
:ref => 'stable/train'
mod 'panko',
:git => 'https://github.com/openstack/puppet-panko',
:ref => 'stable/train'
mod 'placement',
:git => 'https://github.com/openstack/puppet-placement',
:ref => 'stable/train'
mod 'sahara',
:git => 'https://github.com/openstack/puppet-sahara',
:ref => 'stable/train'
mod 'swift',
:git => 'https://github.com/openstack/puppet-swift',
:ref => 'stable/train'
mod 'tempest',
:git => 'https://github.com/openstack/puppet-tempest',
:ref => 'stable/train'
mod 'trove',
:git => 'https://github.com/openstack/puppet-trove',
:ref => 'stable/train'
mod 'vswitch',
:git => 'https://github.com/openstack/puppet-vswitch',
:ref => 'stable/train'
## Non-OpenStack modules
mod 'apache',
:git => 'https://github.com/puppetlabs/puppetlabs-apache',
:ref => '1fa9b1cdece0044186465883ecc940dd3b69827c'
mod 'certmonger',
:git => 'https://github.com/rcritten/puppet-certmonger',
:ref => 'master'
mod 'concat',
:git => 'https://github.com/puppetlabs/puppetlabs-concat',
:ref => '9baa8fcbd1ab68cd32916bd5d90255f816bb9519'
mod 'firewall',
:git => 'https://github.com/puppetlabs/puppetlabs-firewall',
:ref => '4f4437ad800d5697bafc8346c1627e1c4b5b607f'
mod 'inifile',
:git => 'https://github.com/puppetlabs/puppetlabs-inifile',
:ref => '91efced79bb9011e162eea35e4a0d9ad12e267a1'
mod 'memcached',
:git => 'https://github.com/saz/puppet-memcached',
:ref => '66d3a667d4e7e0253949f9d83c230b5f8ccca596'
mod 'mysql',
:git => 'https://github.com/puppetlabs/puppetlabs-mysql',
:ref => 'v10.3.0'
mod 'nssdb',
:git => 'https://github.com/rcritten/puppet-nssdb',
:ref => 'master'
mod 'rabbitmq',
:git => 'https://github.com/voxpupuli/puppet-rabbitmq',
:ref => '75574b8f4a921cacda86ff30d378308084afa0d4'
mod 'redis',
:git => 'https://github.com/arioch/puppet-redis',
:ref => 'be8d097f849afaca6c381d105a4bf80bbd691a40'
mod 'remote',
:git => 'https://github.com/paramite/puppet-remote',
:ref => '7420908328b832f4b20e1eba44bcccd926da8faa'
mod 'rsync',
:git => 'https://github.com/puppetlabs/puppetlabs-rsync',
:ref => 'a7d4f8487cf9492106690637d3e7d484876943e6'
mod 'ssh',
:git => 'https://github.com/saz/puppet-ssh',
:ref => '65570a311e1303d8084d12ee82868e6d0f411e8a'
mod 'stdlib',
:git => 'https://github.com/puppetlabs/puppetlabs-stdlib',
:ref => '5aa891c2ef8efce6eb6d1ff12e976b4753b3c4d9'
mod 'sysctl',
:git => 'https://github.com/duritong/puppet-sysctl',
:ref => 'a3d160d7c79cc905fc1d10a4fd8b4c1488e017b4'
mod 'vcsrepo',
:git => 'https://github.com/puppetlabs/puppetlabs-vcsrepo',
:ref => 'b06d5d378e80d03c5dea40a89e83449191064ddc'
mod 'xinetd',
:git => 'https://github.com/puppetlabs/puppetlabs-xinetd',
:ref => 'd768da2f645001395ef1c796bb03d0b9bcc733f5'

View File

@ -0,0 +1,28 @@
- hosts: all
name: packstack-centos8-pre
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
cp -pr /home/zuul/src/opendev.org/x/packstack {{ ansible_user_dir }}/workspace
- shell:
cmd: |
set -e
set -x
rm -rf /etc/yum.repos.d/delorean*
# Remove epel repos
rm -rf /etc/yum.repos.d/epel*
dnf clean all
sudo sed -i '/^exclude.*/d' /etc/dnf/dnf.conf
dnf -y install libxml2-devel libxslt-devel ruby-devel zlib-devel
dnf -y install gcc gettext diffstat doxygen patch patchutils subversion systemtap git python3-setuptools wget redhat-lsb-core python3-libselinux virt-what yum
pip uninstall requests -y || true
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
become: true
environment: '{{ zuul }}'

View File

@ -1,22 +1,37 @@
- hosts: compute
name: setup RDO Trunk repositories
vars:
delorean: "https://trunk.rdoproject.org/centos7-train/current-tripleo/delorean.repo"
delorean_deps: "https://trunk.rdoproject.org/centos7-train/delorean-deps.repo"
delorean_default: "https://trunk.rdoproject.org/centos7-train/current-tripleo/delorean.repo"
delorean_deps_default: "https://trunk.rdoproject.org/centos7-train/delorean-deps.repo"
tasks:
- name: Fetch DLRN repo
get_url:
url: "{{ delorean }}"
url: "{{ delorean | default(delorean_default) }}"
dest: /etc/yum.repos.d/delorean.repo
mode: 0640
become: true
- name: Fetch DLRN dependency repo
get_url:
url: "{{ delorean_deps }}"
url: "{{ delorean_deps | default(delorean_deps_default) }}"
dest: /etc/yum.repos.d/delorean-deps.repo
mode: 0640
become: true
- name: Update installed packages from RDO repos
package:
name: '*'
state: latest
become: true
- name: Disable selinux in Compute node
shell:
cmd: |
setenforce 0
become: true
when: not selinux_enforcing|default("true")|bool
- hosts: controller
name: packstack-multinode
tasks:
@ -52,8 +67,11 @@
set -e
set -x
export SCENARIO='{{ scenario }}'
export DELOREAN='{{ delorean | default('') }}'
export DELOREAN_DEPS='{{ delorean_deps | default('') }}'
export CONTROLLER_NODE="{{ hostvars['controller'].nodepool.public_ipv4 }}"
export COMPUTE_NODE="{{ hostvars['compute'].nodepool.public_ipv4 }}"
export SELINUX_ENFORCING='{{ selinux_enforcing | default('true') }}'
./run_tests.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace/packstack'

View File

@ -19,11 +19,15 @@ SCENARIO=${SCENARIO:-scenario001}
BRANCH=stable/train
# Find OS version and release
source /etc/os-release
OS_NAME_VERS=${REDHAT_SUPPORT_PRODUCT}${REDHAT_SUPPORT_PRODUCT_VERSION}
# We could want to override the default repositories or install behavior
INSTALL_FROM_SOURCE=${INSTALL_FROM_SOURCE:-true}
MANAGE_REPOS=${MANAGE_REPOS:-true}
DELOREAN=${DELOREAN:-https://trunk.rdoproject.org/centos7-train/current-tripleo/delorean.repo}
DELOREAN_DEPS=${DELOREAN_DEPS:-https://trunk.rdoproject.org/centos7-train/delorean-deps.repo}
DELOREAN=${DELOREAN:-https://trunk.rdoproject.org/${OS_NAME_VERS}-train/current-passed-ci/delorean.repo}
DELOREAN_DEPS=${DELOREAN_DEPS:-https://trunk.rdoproject.org/${OS_NAME_VERS}-train/delorean-deps.repo}
GIT_BASE_URL=${GIT_BASE_URL:-https://git.openstack.org}
ADDITIONAL_ARGS=${ADDITIONAL_ARGS:-}
SELINUX_ENFORCING=${SELINUX_ENFORCING:-true}
@ -79,7 +83,7 @@ EOF
#
# - ``GEM_BIN_DIR`` must be set to Gem bin directory
install_all() {
$SUDO ${GEM_BIN_DIR}r10k puppetfile install -v --puppetfile Puppetfile
$SUDO ${GEM_BIN_DIR}r10k puppetfile install -v --puppetfile Puppetfile-${OS_NAME_VERS}
}
# Install Puppet OpenStack modules and dependencies by using
@ -92,7 +96,7 @@ install_all() {
install_modules() {
# If zuul-cloner is there, have it install modules using zuul refs
if [ -e /usr/zuul-env/bin/zuul-cloner ] ; then
csplit Puppetfile /'Non-OpenStack modules'/ \
csplit Puppetfile-%{OS_NAME_VERS} /'Non-OpenStack modules'/ \
--prefix Puppetfile \
--suffix '%d'
install_external