
This patch adds the needed bits to replace Beaker with Puppet Litmus. Since Puppet Litmus only supports Puppet 6 we need to remove Puppet 5 testing. The probability that we break Puppet 5 support (we have promised to keep it in Victoria) this late in the cycle is very low hence we should try to get this through. When this is merged we can move all modules over to use Litmus and then cleanup all Beaker things. Change-Id: I73f18345ed3e6481f86ad7af7d68f66b19d2250e
136 lines
5.1 KiB
Puppet
136 lines
5.1 KiB
Puppet
class openstack_integration::repos {
|
|
|
|
# To make litmus tests work.
|
|
if defined('$::ceph_version') and $::ceph_version != '' {
|
|
$ceph_version_real = $::ceph_version
|
|
} else {
|
|
$ceph_version_real = 'nautilus'
|
|
}
|
|
case $::osfamily {
|
|
'Debian': {
|
|
case $::os_package_type {
|
|
'ubuntu': {
|
|
include apt
|
|
class { 'openstack_extras::repo::debian::ubuntu':
|
|
release => 'train',
|
|
package_require => true,
|
|
uca_location => pick($::uca_mirror_host, 'http://ubuntu-cloud.archive.canonical.com/ubuntu'),
|
|
}
|
|
}
|
|
'debian': {
|
|
include apt
|
|
class { 'openstack_extras::repo::debian::debian':
|
|
release => 'ussuri',
|
|
package_require => true,
|
|
}
|
|
}
|
|
default: {
|
|
fail("Unsupported package type (${::os_package_type})")
|
|
}
|
|
}
|
|
# Ceph is both packaged on UCA and official download.ceph.com packages
|
|
# which we mirror. We want to use the official packages or our mirror.
|
|
if defined('$::nodepool_mirror_host') and $::nodepool_mirror_host != '' {
|
|
$ceph_version_cap = capitalize($ceph_version_real)
|
|
apt::pin { 'ceph':
|
|
priority => 1001,
|
|
originator => "Ceph ${ceph_version_cap}",
|
|
}
|
|
} else {
|
|
apt::pin { 'ceph':
|
|
priority => 1001,
|
|
origin => 'download.ceph.com',
|
|
}
|
|
}
|
|
$enable_sig = false
|
|
$enable_epel = false
|
|
$ceph_mirror = pick($::ceph_mirror_host, "http://download.ceph.com/debian-${ceph_version_real}/")
|
|
}
|
|
'RedHat': {
|
|
if defined('$::centos_mirror_host') and $::centos_mirror_host != '' {
|
|
$centos_mirror = $::centos_mirror_host
|
|
} else {
|
|
$centos_mirror = 'http://mirror.centos.org'
|
|
}
|
|
class { 'openstack_extras::repo::redhat::redhat':
|
|
manage_rdo => false,
|
|
manage_epel => false,
|
|
centos_mirror_url => $centos_mirror,
|
|
repo_source_hash => {
|
|
'delorean.repo' => "https://trunk.rdoproject.org/centos${::os['release']['major']}-master/puppet-passed-ci/delorean.repo",
|
|
'delorean-deps.repo' => "https://trunk.rdoproject.org/centos${::os['release']['major']}-master/delorean-deps.repo"
|
|
},
|
|
update_packages => true,
|
|
}
|
|
# NOTE(tobias-urdin): Mimic was never released by Storage SIG to official mirros.
|
|
$ceph_mirror_fallback = $ceph_version_real ? {
|
|
'mimic' => "https://trunk.rdoproject.org/centos${::os['release']['major']}/deps/storage/storage${::os['release']['major']}-ceph-mimic/x86_64/",
|
|
default => "${centos_mirror}/centos/${::os['release']['major']}/storage/x86_64/ceph-${ceph_version_real}/"
|
|
}
|
|
if defined('$::ceph_mirror_host') and $::ceph_mirror_host != '' {
|
|
$ceph_mirror = pick($::ceph_mirror_host, $ceph_mirror_fallback)
|
|
} else {
|
|
$ceph_mirror = $ceph_mirror_fallback
|
|
}
|
|
# On CentOS, deploy Ceph using SIG repository and get rid of EPEL.
|
|
# https://wiki.centos.org/SpecialInterestGroup/Storage/
|
|
if $::operatingsystem == 'CentOS' {
|
|
$enable_sig = true
|
|
$enable_epel = false
|
|
} else {
|
|
$enable_sig = false
|
|
$enable_epel = true
|
|
}
|
|
# Remove Fedora Base repos as stable-base repo is configured which includes
|
|
# all required packages
|
|
if $::operatingsystem == 'Fedora' {
|
|
tidy { 'delete-fedora-base-repos':
|
|
path => '/etc/yum.repos.d',
|
|
recurse => true,
|
|
matches => [ 'fedora*.repo' ],
|
|
rmdirs => false,
|
|
require => Class['openstack_extras::repo::redhat::redhat'],
|
|
}
|
|
}
|
|
}
|
|
default: {
|
|
fail("Unsupported osfamily (${::osfamily})")
|
|
}
|
|
}
|
|
|
|
if $::osfamily == 'RedHat' or $::operatingsystem == 'Ubuntu' {
|
|
class { 'ceph::repo':
|
|
enable_sig => $enable_sig,
|
|
enable_epel => $enable_epel,
|
|
ceph_mirror => $ceph_mirror,
|
|
}
|
|
}
|
|
|
|
if $::osfamily == 'RedHat' {
|
|
package { 'python2-chardet':
|
|
ensure => 'latest',
|
|
}
|
|
Yumrepo<||> -> Package<| title == 'python2-chardet' |>
|
|
# NOTE(tobias-urdin): Install libibverbs to fix an issue where OVS outputs errors
|
|
# that causes the puppet-openvswitch module to fail parsing the output.
|
|
# This issue does not occur in integration testing but only beaker tests since some
|
|
# other package (probably nova) causes this package to be installed, or the yum upgrade
|
|
# part in integration catches it.
|
|
# Reported upstream: https://bugzilla.redhat.com/show_bug.cgi?id=1658141
|
|
package { 'libibverbs':
|
|
ensure => 'present',
|
|
}
|
|
}
|
|
|
|
if $::operatingsystem == 'Ubuntu' {
|
|
# TODO(tobias-urdin): Something changed in packages that was installed in puppet-nova
|
|
# on Ubuntu so the rbd and rados python libs are not installed anymore.
|
|
# Need to figure out a good place to add them back in, until then just testing with this.
|
|
ensure_packages(['python3-rados', 'python3-rbd'], {
|
|
'ensure' => 'present',
|
|
'tag' => 'nova-python3-libs',
|
|
})
|
|
Apt::Source<||> -> Package<| tag == 'nova-python3-libs' |>
|
|
}
|
|
}
|