diff --git a/.zuul.yaml b/.zuul.yaml index 2d6bff490..d10d055f4 100644 --- a/.zuul.yaml +++ b/.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: diff --git a/Puppetfile b/Puppetfile-centos7 similarity index 100% rename from Puppetfile rename to Puppetfile-centos7 diff --git a/Puppetfile-centos8 b/Puppetfile-centos8 new file mode 100755 index 000000000..c0b504c23 --- /dev/null +++ b/Puppetfile-centos8 @@ -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' + diff --git a/playbooks/packstack-centos8-pre.yaml b/playbooks/packstack-centos8-pre.yaml new file mode 100644 index 000000000..11645891a --- /dev/null +++ b/playbooks/packstack-centos8-pre.yaml @@ -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 }}' diff --git a/playbooks/packstack-multinode.yaml b/playbooks/packstack-multinode.yaml index 821683072..3f8cad1a0 100644 --- a/playbooks/packstack-multinode.yaml +++ b/playbooks/packstack-multinode.yaml @@ -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' diff --git a/run_tests.sh b/run_tests.sh index 139ce681e..2f6ce05e0 100755 --- a/run_tests.sh +++ b/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