CentOS 8 support

- Update package names
- Migrate to using apache2_mod_wsgi resource and require apache2 ~> 8.6
- Update ChefSpec

Depends-On: https://review.opendev.org/c/openstack/cookbook-openstack-image/+/815148
Change-Id: I7223112092393e3c2ef8a871bb2b2e20326dafdd
Signed-off-by: Lance Albertson <lance@osuosl.org>
This commit is contained in:
Lance Albertson 2021-10-22 12:28:55 -07:00
parent 427adf523c
commit 08f84ac085
11 changed files with 147 additions and 86 deletions

View File

@ -36,7 +36,7 @@ Cookbooks
The following cookbooks are dependencies:
- 'apache2', '~> 8.1'
- 'apache2', '~> 8.6'
- 'lvm'
- 'openstackclient'
- 'openstack-common', '>= 20.0.0'

View File

@ -87,15 +87,20 @@ when 'rhel' # :pragma-foodcritic: ~FC024 - won't fix this
default['openstack']['block-storage']['volume']['iscsi_helper'] = 'lioadm'
default['openstack']['block-storage']['platform'] = {
'cinder_common_packages' => ['openstack-cinder'],
'cinder_api_packages' => %w(openstack-cinder mod_wsgi),
'cinder_api_packages' => %w(openstack-cinder),
'cinder_api_service' => 'openstack-cinder-api',
'cinder_volume_packages' => %w(qemu-img-ev),
'cinder_volume_packages' => node['platform_version'].to_i >= 8 ? %w(qemu-img) : %w(qemu-img-ev),
'cinder_volume_service' => 'openstack-cinder-volume',
'cinder_scheduler_packages' => [],
'cinder_scheduler_service' => 'openstack-cinder-scheduler',
'cinder_backup_packages' => [],
'cinder_backup_service' => 'openstack-cinder-backup',
'cinder_iscsitarget_packages' => %w(targetcli dbus-python),
'cinder_iscsitarget_packages' =>
if node['platform_version'].to_i >= 8
%w(targetcli python3-dbus)
else
%w(targetcli dbus-python)
end,
'cinder_iscsitarget_service' => 'target',
'cinder_lvm_packages' => %w(lvm2),
'package_overrides' => '',
@ -106,7 +111,6 @@ when 'debian'
'cinder_common_packages' => %w(cinder-common),
'cinder_api_packages' =>
%w(
libapache2-mod-wsgi-py3
python3-cinder
cinder-api
),

View File

@ -9,7 +9,7 @@ version '20.0.0'
supports os
end
depends 'apache2', '~> 8.1'
depends 'apache2', '~> 8.6'
depends 'lvm'
depends 'openstackclient'
depends 'openstack-common', '>= 20.0.0'

View File

@ -77,7 +77,7 @@ else
end
end
apache2_module 'wsgi'
apache2_mod_wsgi 'openstack'
apache2_module 'ssl' if node['openstack']['block-storage']['ssl']['enabled']
# remove the cinder-wsgi.conf automatically generated from package

View File

@ -4,23 +4,32 @@
require_relative 'spec_helper'
describe 'openstack-block-storage::api' do
describe 'redhat' do
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
ALL_RHEL.each do |p|
context "redhat #{p[:version]}" do
let(:runner) { ChefSpec::SoloRunner.new(p) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
include_context 'block-storage-stubs'
include_context 'block-storage-stubs'
it do
expect(chef_run).to_not create_file('/etc/apache2/conf-available/cinder-wsgi.conf')
end
it do
expect(chef_run).to_not create_file('/etc/apache2/conf-available/cinder-wsgi.conf')
end
it do
expect(chef_run).to upgrade_package %w(openstack-cinder mod_wsgi)
end
it do
expect(chef_run).to upgrade_package %w(openstack-cinder)
end
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
case p
when REDHAT_7
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
end
when REDHAT_8
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'python3-PyMySQL'
end
end
end
end
end

View File

@ -23,7 +23,7 @@ describe 'openstack-block-storage::api' do
end
it do
expect(chef_run).to upgrade_package %w(libapache2-mod-wsgi-py3 python3-cinder cinder-api)
expect(chef_run).to upgrade_package %w(python3-cinder cinder-api)
end
it 'upgrades mysql python3 package' do
@ -75,7 +75,7 @@ describe 'openstack-block-storage::api' do
end
it do
expect(chef_run).to enable_apache2_module('wsgi')
expect(chef_run).to create_apache2_mod_wsgi('openstack')
end
it do

View File

@ -4,28 +4,37 @@
require_relative 'spec_helper'
describe 'openstack-block-storage::backup' do
describe 'redhat' do
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
ALL_RHEL.each do |p|
context "redhat #{p[:version]}" do
let(:runner) { ChefSpec::SoloRunner.new(p) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
include_context 'block-storage-stubs'
include_context 'block-storage-stubs'
describe 'enable cinder backup service' do
before do
node.override['openstack']['block-storage']['backup']['enabled'] = true
end
describe 'enable cinder backup service' do
before do
node.override['openstack']['block-storage']['backup']['enabled'] = true
end
it 'starts cinder backup' do
expect(chef_run).to start_service 'openstack-cinder-backup'
end
it 'starts cinder backup' do
expect(chef_run).to start_service 'openstack-cinder-backup'
end
it 'starts cinder backup on boot' do
expect(chef_run).to enable_service 'openstack-cinder-backup'
end
it 'starts cinder backup on boot' do
expect(chef_run).to enable_service 'openstack-cinder-backup'
end
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
case p
when REDHAT_7
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
end
when REDHAT_8
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'python3-PyMySQL'
end
end
end
end
end

View File

@ -4,15 +4,17 @@
require_relative 'spec_helper'
describe 'openstack-block-storage::cinder-common' do
describe 'rhel' do
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
ALL_RHEL.each do |p|
context "redhat #{p[:version]}" do
let(:runner) { ChefSpec::SoloRunner.new(p) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
include_context 'block-storage-stubs'
include_context 'block-storage-stubs'
it 'upgrades the openstack-cinder package' do
expect(chef_run).to upgrade_package 'openstack-cinder'
it 'upgrades the openstack-cinder package' do
expect(chef_run).to upgrade_package 'openstack-cinder'
end
end
end
end

View File

@ -4,27 +4,36 @@
require_relative 'spec_helper'
describe 'openstack-block-storage::scheduler' do
describe 'redhat' do
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
ALL_RHEL.each do |p|
context "redhat #{p[:version]}" do
let(:runner) { ChefSpec::SoloRunner.new(p) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
include_context 'block-storage-stubs'
include_context 'block-storage-stubs'
it 'upgrades cinder scheduler package' do
expect(chef_run).to upgrade_package 'openstack-cinder'
end
it 'upgrades cinder scheduler package' do
expect(chef_run).to upgrade_package 'openstack-cinder'
end
it 'starts cinder scheduler' do
expect(chef_run).to start_service 'openstack-cinder-scheduler'
end
it 'starts cinder scheduler' do
expect(chef_run).to start_service 'openstack-cinder-scheduler'
end
it 'starts cinder scheduler on boot' do
expect(chef_run).to enable_service 'openstack-cinder-scheduler'
end
it 'starts cinder scheduler on boot' do
expect(chef_run).to enable_service 'openstack-cinder-scheduler'
end
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
case p
when REDHAT_7
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
end
when REDHAT_8
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'python3-PyMySQL'
end
end
end
end
end

View File

@ -12,10 +12,21 @@ RSpec.configure do |config|
config.file_cache_path = '/var/chef/cache'
end
REDHAT_OPTS = {
REDHAT_7 = {
platform: 'redhat',
version: '7',
}.freeze
REDHAT_8 = {
platform: 'redhat',
version: '8',
}.freeze
ALL_RHEL = [
REDHAT_7,
REDHAT_8,
].freeze
UBUNTU_OPTS = {
platform: 'ubuntu',
version: '18.04',

View File

@ -4,36 +4,53 @@
require_relative 'spec_helper'
describe 'openstack-block-storage::volume' do
describe 'redhat' do
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
ALL_RHEL.each do |p|
context "redhat #{p[:version]}" do
let(:runner) { ChefSpec::SoloRunner.new(p) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
include_context 'block-storage-stubs'
include_context 'block-storage-stubs'
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package('MySQL-python')
end
case p
when REDHAT_7
it do
expect(chef_run).to upgrade_package('MySQL-python')
end
it 'upgrades qemu-img-ev package' do
expect(chef_run).to upgrade_package('qemu-img-ev')
end
it do
expect(chef_run).to upgrade_package('qemu-img-ev')
end
it do
expect(chef_run).to upgrade_package %w(targetcli dbus-python)
end
it do
expect(chef_run).to upgrade_package %w(targetcli dbus-python)
end
when REDHAT_8
it do
expect(chef_run).to upgrade_package('python3-PyMySQL')
end
it 'starts cinder volume' do
expect(chef_run).to start_service('openstack-cinder-volume')
end
it do
expect(chef_run).to upgrade_package('qemu-img')
end
it 'starts cinder volume on boot' do
expect(chef_run).to enable_service('openstack-cinder-volume')
end
it do
expect(chef_run).to upgrade_package %w(targetcli python3-dbus)
end
end
context 'ISCSI' do
it 'starts iscsi target on boot' do
expect(chef_run).to enable_service('iscsitarget')
it do
expect(chef_run).to start_service('openstack-cinder-volume')
end
it do
expect(chef_run).to enable_service('openstack-cinder-volume')
end
context 'ISCSI' do
it do
expect(chef_run).to enable_service('iscsitarget')
end
end
end
end