CentOS 8 support
This adds support for testing CentOS 8. - Update documentation - Add references to CentOS 8 - Update genealogy to include latest releases - Update minimum Chef requirement - Add Bare Metal to list of cookbooks when creating a stable branch - Include memcached in identity role - Update InSpec tests for CentOS 8 - Ensure we install the yum package on rpm distros (required by Chef to run properly and is missing on the default image) - Remove yum-epel attributes in integration since it breaks on EL8 Change-Id: Ie648432021325150fdd2fd7ab7f1af10bc69b655 Signed-off-by: Lance Albertson <lance@osuosl.org>
This commit is contained in:
parent
442dcab018
commit
7d2ecf253c
113
.zuul.yaml
113
.zuul.yaml
|
@ -33,16 +33,10 @@
|
|||
voting: false # TODO(ramereth): Remove after this gets merged
|
||||
|
||||
- job:
|
||||
name: openstack-chef16-minimal-integration-ubuntu
|
||||
parent: openstack-chef-minimal-integration-ubuntu
|
||||
vars:
|
||||
openstack_chef_client_version: 16
|
||||
|
||||
- job:
|
||||
name: openstack-chef-integration-centos
|
||||
name: openstack-chef-integration-centos-8
|
||||
parent: base
|
||||
nodeset: centos-7
|
||||
description: Run integration tests with openstack-chef on CentOS 7
|
||||
nodeset: centos-8
|
||||
description: Run integration tests with openstack-chef on CentOS
|
||||
required-projects: openstack/openstack-chef
|
||||
pre-run: playbooks/pre-integration.yaml
|
||||
run: playbooks/integration.yaml
|
||||
|
@ -51,10 +45,10 @@
|
|||
voting: false # TODO(ramereth): Remove after this gets merged
|
||||
|
||||
- job:
|
||||
name: openstack-chef-minimal-integration-centos
|
||||
name: openstack-chef-minimal-integration-centos-8
|
||||
parent: base
|
||||
nodeset: centos-7
|
||||
description: Run minimal integration tests with openstack-chef on CentOS 7
|
||||
nodeset: centos-8
|
||||
description: Run minimal integration tests with openstack-chef on CentOS
|
||||
required-projects: openstack/openstack-chef
|
||||
pre-run: playbooks/pre-integration.yaml
|
||||
run: playbooks/minimal.yaml
|
||||
|
@ -63,8 +57,30 @@
|
|||
voting: false # TODO(ramereth): Remove after this gets merged
|
||||
|
||||
- job:
|
||||
name: openstack-chef16-minimal-integration-centos
|
||||
parent: openstack-chef-minimal-integration-centos
|
||||
name: openstack-chef16-minimal-integration-ubuntu
|
||||
parent: openstack-chef-minimal-integration-ubuntu
|
||||
vars:
|
||||
openstack_chef_client_version: 16
|
||||
|
||||
- job:
|
||||
name: openstack-chef-integration-centos-7
|
||||
parent: openstack-chef-integration-centos-8
|
||||
nodeset: centos-7
|
||||
|
||||
- job:
|
||||
name: openstack-chef-minimal-integration-centos-7
|
||||
parent: openstack-chef-minimal-integration-centos-8
|
||||
nodeset: centos-7
|
||||
|
||||
- job:
|
||||
name: openstack-chef16-minimal-integration-centos-7
|
||||
parent: openstack-chef-minimal-integration-centos-7
|
||||
vars:
|
||||
openstack_chef_client_version: 16
|
||||
|
||||
- job:
|
||||
name: openstack-chef16-minimal-integration-centos-8
|
||||
parent: openstack-chef-minimal-integration-centos-8
|
||||
vars:
|
||||
openstack_chef_client_version: 16
|
||||
|
||||
|
@ -82,15 +98,28 @@
|
|||
openstack_chef_client_type: cinc
|
||||
|
||||
- job:
|
||||
name: openstack-cinc16-integration-centos
|
||||
parent: openstack-chef-integration-centos
|
||||
name: openstack-cinc16-integration-centos-7
|
||||
parent: openstack-chef-integration-centos-7
|
||||
vars:
|
||||
openstack_chef_client_type: cinc
|
||||
openstack_chef_client_version: 16
|
||||
|
||||
- job:
|
||||
name: openstack-cinc-integration-centos
|
||||
parent: openstack-chef-integration-centos
|
||||
name: openstack-cinc16-integration-centos-8
|
||||
parent: openstack-chef-integration-centos-8
|
||||
vars:
|
||||
openstack_chef_client_type: cinc
|
||||
openstack_chef_client_version: 16
|
||||
|
||||
- job:
|
||||
name: openstack-cinc-integration-centos-7
|
||||
parent: openstack-chef-integration-centos-7
|
||||
vars:
|
||||
openstack_chef_client_type: cinc
|
||||
|
||||
- job:
|
||||
name: openstack-cinc-integration-centos-8
|
||||
parent: openstack-chef-integration-centos-8
|
||||
vars:
|
||||
openstack_chef_client_type: cinc
|
||||
|
||||
|
@ -99,21 +128,27 @@
|
|||
check:
|
||||
jobs:
|
||||
- openstack-chef-delivery
|
||||
- openstack-chef-integration-centos
|
||||
- openstack-chef-integration-centos-7
|
||||
- openstack-chef-integration-centos-8
|
||||
- openstack-chef-integration-ubuntu
|
||||
- openstack-cinc16-integration-centos
|
||||
- openstack-cinc16-integration-centos-7
|
||||
- openstack-cinc16-integration-centos-8
|
||||
- openstack-cinc16-integration-ubuntu
|
||||
- openstack-cinc-integration-centos
|
||||
- openstack-cinc-integration-centos-8
|
||||
- openstack-cinc-integration-centos-7
|
||||
- openstack-cinc-integration-ubuntu
|
||||
gate:
|
||||
queue: openstack-chef
|
||||
jobs:
|
||||
- openstack-chef-delivery
|
||||
- openstack-chef-integration-centos
|
||||
- openstack-chef-integration-centos-7
|
||||
- openstack-chef-integration-centos-8
|
||||
- openstack-chef-integration-ubuntu
|
||||
- openstack-cinc16-integration-centos
|
||||
- openstack-cinc16-integration-centos-7
|
||||
- openstack-cinc16-integration-centos-8
|
||||
- openstack-cinc16-integration-ubuntu
|
||||
- openstack-cinc-integration-centos
|
||||
- openstack-cinc-integration-centos-7
|
||||
- openstack-cinc-integration-centos-8
|
||||
- openstack-cinc-integration-ubuntu
|
||||
|
||||
- project-template:
|
||||
|
@ -121,29 +156,39 @@
|
|||
check:
|
||||
jobs:
|
||||
- openstack-chef-delivery
|
||||
- openstack-chef-integration-centos
|
||||
- openstack-chef-integration-centos-7
|
||||
- openstack-chef-integration-centos-8
|
||||
- openstack-chef-integration-ubuntu
|
||||
- openstack-chef-minimal-integration-centos
|
||||
- openstack-chef-minimal-integration-centos-7
|
||||
- openstack-chef-minimal-integration-centos-8
|
||||
- openstack-chef-minimal-integration-ubuntu
|
||||
- openstack-chef16-minimal-integration-centos
|
||||
- openstack-chef16-minimal-integration-centos-7
|
||||
- openstack-chef16-minimal-integration-centos-8
|
||||
- openstack-chef16-minimal-integration-ubuntu
|
||||
- openstack-cinc16-integration-centos
|
||||
- openstack-cinc16-integration-centos-7
|
||||
- openstack-cinc16-integration-centos-8
|
||||
- openstack-cinc16-integration-ubuntu
|
||||
- openstack-cinc-integration-centos
|
||||
- openstack-cinc-integration-centos-7
|
||||
- openstack-cinc-integration-centos-8
|
||||
- openstack-cinc-integration-ubuntu
|
||||
gate:
|
||||
queue: openstack-chef
|
||||
jobs:
|
||||
- openstack-chef-delivery
|
||||
- openstack-chef-integration-centos
|
||||
- openstack-chef-integration-centos-7
|
||||
- openstack-chef-integration-centos-8
|
||||
- openstack-chef-integration-ubuntu
|
||||
- openstack-chef-minimal-integration-centos
|
||||
- openstack-chef-minimal-integration-centos-7
|
||||
- openstack-chef-minimal-integration-centos-8
|
||||
- openstack-chef-minimal-integration-ubuntu
|
||||
- openstack-chef16-minimal-integration-centos
|
||||
- openstack-chef16-minimal-integration-centos-7
|
||||
- openstack-chef16-minimal-integration-centos-8
|
||||
- openstack-chef16-minimal-integration-ubuntu
|
||||
- openstack-cinc16-integration-centos
|
||||
- openstack-cinc16-integration-centos-7
|
||||
- openstack-cinc16-integration-centos-8
|
||||
- openstack-cinc16-integration-ubuntu
|
||||
- openstack-cinc-integration-centos
|
||||
- openstack-cinc-integration-centos-7
|
||||
- openstack-cinc-integration-centos-8
|
||||
- openstack-cinc-integration-ubuntu
|
||||
|
||||
- project:
|
||||
|
|
|
@ -18,7 +18,7 @@ Chef.
|
|||
|
||||
With the ``master`` branch of the cookbooks, which is currently tied to
|
||||
the base OpenStack Train release, this supports deploying to Ubuntu
|
||||
18.04 and CentOS 7 in monolithic, or allinone, and non-HA multinode
|
||||
18.04 and CentOS 7 or 8 in monolithic, or allinone, and non-HA multinode
|
||||
configurations with Neutron. The cookbooks support a fully HA
|
||||
configuration, but we do not test for that as there are far numerous
|
||||
paths to HA.
|
||||
|
|
6
Rakefile
6
Rakefile
|
@ -80,6 +80,8 @@ if File.exist?('/usr/bin/apt-get')
|
|||
@platform = 'ubuntu18'
|
||||
elsif File.exist?('/usr/bin/yum')
|
||||
@platform = 'centos7'
|
||||
elsif File.exist?('/usr/bin/dnf')
|
||||
@platform = 'centos8'
|
||||
end
|
||||
|
||||
# Helper for looking at the starting environment
|
||||
|
@ -107,7 +109,7 @@ def _run_env_queries
|
|||
},
|
||||
false
|
||||
)
|
||||
when 'centos7'
|
||||
when 'centos7', 'centos8'
|
||||
_run_commands(
|
||||
'basic rhel env queries', {
|
||||
'/sbin/getenforce' => [''],
|
||||
|
@ -126,7 +128,7 @@ def _save_logs(prefix, log_dir)
|
|||
case @platform
|
||||
when 'ubuntu18'
|
||||
sh %(sudo /bin/ss -tunlp > #{log_dir}/#{prefix}/netstat.log)
|
||||
when 'centos7'
|
||||
when 'centos7', 'centos8'
|
||||
sh %(sudo /sbin/ss -tunlp > #{log_dir}/#{prefix}/netstat.log)
|
||||
end
|
||||
%w(
|
||||
|
|
|
@ -4,3 +4,4 @@ xz-devel [platform:rpm]
|
|||
zlib1g-dev [platform:dpkg]
|
||||
zlib-devel [platform:rpm]
|
||||
libselinux-utils [platform:rpm]
|
||||
yum [platform:rpm]
|
||||
|
|
|
@ -9,7 +9,7 @@ Tempest.
|
|||
|
||||
* Software requirements:
|
||||
|
||||
* Ubuntu 18.04 LTS or CentOS 7 fresh install
|
||||
* Ubuntu 18.04 LTS or CentOS 7 or 8 fresh install
|
||||
* `git` installed
|
||||
* `chef-client` installed: https://docs.chef.io/#setup
|
||||
|
||||
|
|
|
@ -44,6 +44,12 @@ Releases Summary
|
|||
+----------------------------+------------------------------+------------------------+
|
||||
| 22.y.z | Victoria | Future |
|
||||
+----------------------------+------------------------------+------------------------+
|
||||
| 23.y.z | Wallaby | Future |
|
||||
+----------------------------+------------------------------+------------------------+
|
||||
| 24.y.z | Xena | Future |
|
||||
+----------------------------+------------------------------+------------------------+
|
||||
| 25.y.z | Yoga | Future |
|
||||
+----------------------------+------------------------------+------------------------+
|
||||
|
||||
Supermarket releases
|
||||
====================
|
||||
|
|
|
@ -4,12 +4,12 @@ Supported Platforms
|
|||
The following operating systems and versions are supported by the OpenStack cookbooks:
|
||||
|
||||
* Ubuntu 18.04 LTS (Bionic Beaver)
|
||||
* CentOS 7
|
||||
* CentOS 7 or 8
|
||||
|
||||
The cookbooks are tested and verified to work on the Chef stable track using
|
||||
the `Chef Workstation <https://www.chef.sh/docs/chef-workstation/getting-started/>`_.
|
||||
|
||||
Your success rate may vary with the bleeding edge. Chef 14 and older is NOT
|
||||
Your success rate may vary with the bleeding edge. Chef 15 and older is NOT
|
||||
supported.
|
||||
|
||||
Have a look at
|
||||
|
|
|
@ -136,6 +136,7 @@ their ``metadata.rb`` dependencies. See below on specifics:
|
|||
#. Network (depends on Identity)
|
||||
#. Compute (depends on Image and Network)
|
||||
#. Dns (depends on Network)
|
||||
#. Bare Metal (depends on Image and Network)
|
||||
#. Orchestration (depends on Identity)
|
||||
#. Telemetry (depends on Identity)
|
||||
#. Dashboard (depends on Identity)
|
||||
|
|
|
@ -15,13 +15,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"yum": {
|
||||
"epel": {
|
||||
"baseurl": "http://epel.osuosl.org/7/$basearch",
|
||||
"mirrorlist": null,
|
||||
"gpgkey": "http://epel.osuosl.org/RPM-GPG-KEY-EPEL-7"
|
||||
}
|
||||
}
|
||||
},
|
||||
"override_attributes": {
|
||||
|
|
|
@ -47,6 +47,9 @@ platforms:
|
|||
- name: centos-7
|
||||
driver:
|
||||
box: bento/centos-7
|
||||
- name: centos-8
|
||||
driver:
|
||||
box: bento/centos-8
|
||||
|
||||
suites:
|
||||
- name: default
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
"role[common]",
|
||||
"role[ops_database]",
|
||||
"role[ops_messaging]",
|
||||
"recipe[memcached]",
|
||||
"recipe[openstack-identity::server-apache]",
|
||||
"recipe[openstack-identity::registration]",
|
||||
"recipe[openstack-identity::openrc]"
|
||||
|
|
|
@ -7,11 +7,12 @@ describe kernel_parameter 'net.ipv4.conf.default.rp_filter' do
|
|||
end
|
||||
|
||||
os_family = os.family
|
||||
os_release = os.release.to_i
|
||||
|
||||
describe command 'openstack --version' do
|
||||
its('exit_status') { should eq 0 }
|
||||
# RHEL sends output to stderr while Ubuntu sends it to stdout
|
||||
if os_family == 'redhat'
|
||||
if os_family == 'redhat' && os_release == 7
|
||||
its('stderr') { should match /^openstack 4.0.[0-9]+$/ }
|
||||
else
|
||||
its('stdout') { should match /^openstack 4.0.[0-9]+$/ }
|
||||
|
@ -19,18 +20,33 @@ describe command 'openstack --version' do
|
|||
end
|
||||
|
||||
if os.family == 'redhat'
|
||||
%w(
|
||||
centos-release-qemu-ev
|
||||
python
|
||||
python2-openstackclient
|
||||
python2-pip
|
||||
python2-setuptools
|
||||
python2-wheel
|
||||
python-devel
|
||||
python-virtualenv
|
||||
).each do |pkg|
|
||||
describe package pkg do
|
||||
it { should be_installed }
|
||||
if os_release >= 8
|
||||
%w(
|
||||
python3-pip
|
||||
python3-setuptools
|
||||
python3-virtualenv
|
||||
python3-wheel
|
||||
python36
|
||||
python36-devel
|
||||
).each do |pkg|
|
||||
describe package pkg do
|
||||
it { should be_installed }
|
||||
end
|
||||
end
|
||||
else
|
||||
%w(
|
||||
centos-release-qemu-ev
|
||||
python
|
||||
python2-openstackclient
|
||||
python2-pip
|
||||
python2-setuptools
|
||||
python2-wheel
|
||||
python-devel
|
||||
python-virtualenv
|
||||
).each do |pkg|
|
||||
describe package pkg do
|
||||
it { should be_installed }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
openrc = 'bash -c "source /root/openrc && '
|
||||
platform = os.family
|
||||
os_release = os.release.to_i
|
||||
|
||||
describe command "#{openrc} openstack network show local_net -f shell -c admin_state_up -c status\"" do
|
||||
its('exit_status') { should eq 0 }
|
||||
|
@ -15,8 +16,14 @@ describe command "#{openrc} openstack subnet show local_subnet -f shell -c enabl
|
|||
should include 'allocation_pools="[{\'start\': \'192.168.180.2\', \'end\': \'192.168.180.254\'}]"'
|
||||
end
|
||||
when 'redhat'
|
||||
its('stdout') do
|
||||
should include 'allocation_pools="[{u\'start\': u\'192.168.180.2\', u\'end\': u\'192.168.180.254\'}]'
|
||||
if os_release >= 8
|
||||
its('stdout') do
|
||||
should include 'allocation_pools="[{\'start\': \'192.168.180.2\', \'end\': \'192.168.180.254\'}]"'
|
||||
end
|
||||
else
|
||||
its('stdout') do
|
||||
should include 'allocation_pools="[{u\'start\': u\'192.168.180.2\', u\'end\': u\'192.168.180.254\'}]'
|
||||
end
|
||||
end
|
||||
end
|
||||
its('stdout') { should include 'cidr="192.168.180.0/24"' }
|
||||
|
@ -87,7 +94,11 @@ describe command '/opt/tempest-venv/bin/tempest --version' do
|
|||
its('exit_status') { should eq 0 }
|
||||
case os_family
|
||||
when 'redhat'
|
||||
its('stderr') { should match /^tempest 22.1.0$/ }
|
||||
if os_release >= 8
|
||||
its('stdout') { should match /^tempest 22.1.0$/ }
|
||||
else
|
||||
its('stderr') { should match /^tempest 22.1.0$/ }
|
||||
end
|
||||
when 'debian'
|
||||
its('stdout') { should match /^tempest 22.1.0$/ }
|
||||
end
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
openrc = 'bash -c "source /root/openrc && '
|
||||
platform = os.family
|
||||
os_release = os.release.to_i
|
||||
|
||||
%w(
|
||||
9696
|
||||
|
@ -38,8 +39,14 @@ describe command "#{openrc} openstack subnet show local_subnet -f shell -c enabl
|
|||
should include 'allocation_pools="[{\'start\': \'192.168.180.2\', \'end\': \'192.168.180.254\'}]"'
|
||||
end
|
||||
when 'redhat'
|
||||
its('stdout') do
|
||||
should include 'allocation_pools="[{u\'start\': u\'192.168.180.2\', u\'end\': u\'192.168.180.254\'}]'
|
||||
if os_release >= 8
|
||||
its('stdout') do
|
||||
should include 'allocation_pools="[{\'start\': \'192.168.180.2\', \'end\': \'192.168.180.254\'}]"'
|
||||
end
|
||||
else
|
||||
its('stdout') do
|
||||
should include 'allocation_pools="[{u\'start\': u\'192.168.180.2\', u\'end\': u\'192.168.180.254\'}]'
|
||||
end
|
||||
end
|
||||
end
|
||||
its('stdout') { should include 'cidr="192.168.180.0/24"' }
|
||||
|
|
|
@ -13,7 +13,14 @@ describe command 'rabbitmqctl list_users' do
|
|||
its('stdout') { should match /admin\t\[administrator\]\n/ }
|
||||
end
|
||||
|
||||
os_release = os.release.to_i
|
||||
os_family = os.family
|
||||
|
||||
describe command 'rabbitmqctl list_vhosts' do
|
||||
its('exit_status') { should eq 0 }
|
||||
its('stdout') { should match %r{^Listing vhosts\n/\n$} }
|
||||
if os_release >= 8 && os_family == 'redhat'
|
||||
its('stdout') { should match %r{^Listing vhosts ...\nname\n/\n$} }
|
||||
else
|
||||
its('stdout') { should match %r{^Listing vhosts\n/\n$} }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue