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
This commit is contained in:
64
.zuul.yaml
64
.zuul.yaml
@ -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-master/consistent/delorean.repo"
|
||||
delorean_deps: "https://trunk.rdoproject.org/centos8-master/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-master/consistent/delorean.repo"
|
||||
delorean_deps: "https://trunk.rdoproject.org/centos8-master/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
170
Puppetfile-centos8
Executable file
@ -0,0 +1,170 @@
|
||||
moduledir '/usr/share/openstack-puppet/modules'
|
||||
|
||||
## OpenStack modules
|
||||
|
||||
mod 'aodh',
|
||||
:git => 'https://github.com/openstack/puppet-aodh',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'ceilometer',
|
||||
:git => 'https://github.com/openstack/puppet-ceilometer',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'cinder',
|
||||
:git => 'https://github.com/openstack/puppet-cinder',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'glance',
|
||||
:git => 'https://github.com/openstack/puppet-glance',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'gnocchi',
|
||||
:git => 'https://github.com/openstack/puppet-gnocchi',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'heat',
|
||||
:git => 'https://github.com/openstack/puppet-heat',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'magnum',
|
||||
:git => 'https://github.com/openstack/puppet-magnum',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'horizon',
|
||||
:git => 'https://github.com/openstack/puppet-horizon',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'ironic',
|
||||
:git => 'https://github.com/openstack/puppet-ironic',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'keystone',
|
||||
:git => 'https://github.com/openstack/puppet-keystone',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'manila',
|
||||
:git => 'https://github.com/openstack/puppet-manila',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'neutron',
|
||||
:git => 'https://github.com/openstack/puppet-neutron',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'nova',
|
||||
:git => 'https://github.com/openstack/puppet-nova',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'openstack_extras',
|
||||
:git => 'https://github.com/openstack/puppet-openstack_extras',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'openstacklib',
|
||||
:git => 'https://github.com/openstack/puppet-openstacklib',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'oslo',
|
||||
:git => 'https://github.com/openstack/puppet-oslo',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'ovn',
|
||||
:git => 'https://github.com/openstack/puppet-ovn',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'panko',
|
||||
:git => 'https://github.com/openstack/puppet-panko',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'placement',
|
||||
:git => 'https://github.com/openstack/puppet-placement',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'sahara',
|
||||
:git => 'https://github.com/openstack/puppet-sahara',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'swift',
|
||||
:git => 'https://github.com/openstack/puppet-swift',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'tempest',
|
||||
:git => 'https://github.com/openstack/puppet-tempest',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'trove',
|
||||
:git => 'https://github.com/openstack/puppet-trove',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'vswitch',
|
||||
:git => 'https://github.com/openstack/puppet-vswitch',
|
||||
:ref => 'master'
|
||||
|
||||
## Non-OpenStack modules
|
||||
|
||||
mod 'apache',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-apache',
|
||||
:ref => 'b4cbc858a61ba2eea4a1178c261a982a59db963d'
|
||||
|
||||
mod 'certmonger',
|
||||
:git => 'https://github.com/rcritten/puppet-certmonger',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'concat',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-concat',
|
||||
:ref => '4.2.1'
|
||||
|
||||
mod 'firewall',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-firewall',
|
||||
:ref => '1.12.0'
|
||||
|
||||
mod 'inifile',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-inifile',
|
||||
:ref => '2.2.0'
|
||||
|
||||
mod 'memcached',
|
||||
:git => 'https://github.com/saz/puppet-memcached',
|
||||
:ref => 'v3.3.0'
|
||||
|
||||
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 => 'master'
|
||||
|
||||
mod 'redis',
|
||||
:git => 'https://github.com/arioch/puppet-redis',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'remote',
|
||||
:git => 'https://github.com/paramite/puppet-remote',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'rsync',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-rsync',
|
||||
:ref => '1.1.0'
|
||||
|
||||
mod 'ssh',
|
||||
:git => 'https://github.com/saz/puppet-ssh',
|
||||
:ref => 'master'
|
||||
|
||||
mod 'stdlib',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-stdlib',
|
||||
:ref => '5.0.0'
|
||||
|
||||
mod 'sysctl',
|
||||
:git => 'https://github.com/duritong/puppet-sysctl',
|
||||
:ref => 'v0.0.12'
|
||||
|
||||
mod 'vcsrepo',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-vcsrepo',
|
||||
:ref => '2.3.0'
|
||||
|
||||
mod 'xinetd',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-xinetd',
|
||||
:ref => '3.1.0'
|
||||
|
26
playbooks/packstack-centos8-pre.yaml
Normal file
26
playbooks/packstack-centos8-pre.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
- 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*
|
||||
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 }}'
|
@ -1,22 +1,36 @@
|
||||
- hosts: compute
|
||||
name: setup RDO Trunk repositories
|
||||
vars:
|
||||
delorean: "https://trunk.rdoproject.org/centos7-master/current-passed-ci/delorean.repo"
|
||||
delorean_deps: "https://trunk.rdoproject.org/centos7-master/delorean-deps.repo"
|
||||
delorean_default: "https://trunk.rdoproject.org/centos7-master/current-passed-ci/delorean.repo"
|
||||
delorean_deps_default: "https://trunk.rdoproject.org/centos7-master/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 +66,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'
|
||||
|
12
run_tests.sh
12
run_tests.sh
@ -19,11 +19,15 @@ SCENARIO=${SCENARIO:-scenario001}
|
||||
|
||||
BRANCH=master
|
||||
|
||||
# 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-master/current-passed-ci/delorean.repo}
|
||||
DELOREAN_DEPS=${DELOREAN_DEPS:-https://trunk.rdoproject.org/centos7-master/delorean-deps.repo}
|
||||
DELOREAN=${DELOREAN:-https://trunk.rdoproject.org/${OS_NAME_VERS}-master/current-passed-ci/delorean.repo}
|
||||
DELOREAN_DEPS=${DELOREAN_DEPS:-https://trunk.rdoproject.org/${OS_NAME_VERS}-master/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
|
||||
|
Reference in New Issue
Block a user