
In kilo, the RDO repository changed the end of its URL path from 'epel-7' to 'el7' for RedHat and CentOS and from 'fedora-#' to 'f#'. Judging by the liberty testing repository, this will continue to be the pattern for future releases. This patch adds logic to use the correct path for Kilo and future releases. It also updates the GPG key to use the correct one from the RDO-release repository[1]. [1] https://github.com/redhat-openstack/rdo-release/blob/master/RPM-GPG-KEY-RDO-kilo Change-Id: Ia309b78e81236dee95d2d741fece323929b35709
145 lines
4.8 KiB
Puppet
145 lines
4.8 KiB
Puppet
# == Class: openstack_extras::repo::redhat::redhat
|
|
#
|
|
# This repo sets up yum repos for use with the redhat
|
|
# osfamily and redhat operatingsystem.
|
|
#
|
|
# === Parameters:
|
|
#
|
|
# [*release*]
|
|
# (optional) The openstack release to use if managing rdo
|
|
# Defaults to $::openstack_extras::repo::redhat::params::release
|
|
#
|
|
# [*manage_rdo*]
|
|
# (optional) Whether to create a predefined yumrepo resource
|
|
# for the RDO OpenStack repository provided by RedHat
|
|
# Defaults to true
|
|
#
|
|
# [*manage_epel*]
|
|
# (optional) Whether to create a predefined yumrepo resource
|
|
# for the EPEL repository provided by RedHat
|
|
# Defaults to true
|
|
#
|
|
# [*repo_hash*]
|
|
# (optional) A hash of yumrepo resources that will be passed to
|
|
# create_resource. See examples folder for some useful examples.
|
|
# Defaults to {}
|
|
#
|
|
# [*repo_defaults*]
|
|
# (optional) The defaults for the yumrepo resources that will be
|
|
# created using create_resource.
|
|
# Defaults to $::openstack_extras::repo::redhat::params::repo_defaults
|
|
#
|
|
# [*gpgkey_hash*]
|
|
# (optional) A hash of file resources that will be passed to
|
|
# create_resource. See examples folder for some useful examples.
|
|
# Defaults to {}
|
|
#
|
|
# [*gpgkey_defaults*]
|
|
# (optional) The default resource attributes to
|
|
# create gpgkeys with.
|
|
# Defaults to $::openstack_extras::repo::redhat::params::gpgkey_defaults
|
|
#
|
|
# [*purge_unmanaged*]
|
|
# (optional) Purge the yum.repos.d directory of
|
|
# all repositories not managed by Puppet
|
|
# Defaults to false
|
|
#
|
|
# [*package_require*]
|
|
# (optional) Set all packages to require all
|
|
# yumrepos be set.
|
|
# Defaults to false
|
|
#
|
|
class openstack_extras::repo::redhat::redhat(
|
|
$release = $::openstack_extras::repo::redhat::params::release,
|
|
$manage_rdo = true,
|
|
$manage_epel = true,
|
|
$repo_hash = {},
|
|
$repo_defaults = {},
|
|
$gpgkey_hash = {},
|
|
$gpgkey_defaults = {},
|
|
$purge_unmanaged = false,
|
|
$package_require = false
|
|
) inherits openstack_extras::repo::redhat::params {
|
|
|
|
validate_string($release)
|
|
validate_bool($manage_rdo)
|
|
validate_bool($manage_epel)
|
|
validate_hash($repo_hash)
|
|
validate_hash($repo_defaults)
|
|
validate_hash($gpgkey_hash)
|
|
validate_hash($gpgkey_defaults)
|
|
validate_bool($purge_unmanaged)
|
|
validate_bool($package_require)
|
|
|
|
$_repo_defaults = merge($::openstack_extras::repo::redhat::params::repo_defaults, $repo_defaults)
|
|
$_gpgkey_defaults = merge($::openstack_extras::repo::redhat::params::gpgkey_defaults, $gpgkey_defaults)
|
|
|
|
anchor { 'openstack_extras_redhat': }
|
|
|
|
if $manage_rdo {
|
|
$release_cap = capitalize($release)
|
|
# In kilo the URL pattern changed
|
|
if $release < 'kilo' { # Lexicographically before 'k' release
|
|
$_dist = $::openstack_extras::repo::redhat::params::dist_full
|
|
} else {
|
|
$_dist = $::openstack_extras::repo::redhat::params::dist_short
|
|
}
|
|
|
|
$rdo_hash = { 'rdo-release' => {
|
|
'baseurl' => "http://repos.fedorapeople.org/repos/openstack/openstack-${release}/${_dist}${::operatingsystemmajrelease}/",
|
|
'descr' => "OpenStack ${release_cap} Repository",
|
|
'priority' => $::openstack_extras::repo::redhat::params::rdo_priority,
|
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}",
|
|
}
|
|
}
|
|
|
|
$rdokey_hash = { "/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}" => {
|
|
'source' => "puppet:///modules/openstack_extras/RPM-GPG-KEY-RDO-${release_cap}"
|
|
}
|
|
}
|
|
|
|
create_resources('file', $rdokey_hash, $_gpgkey_defaults)
|
|
create_resources('yumrepo', $rdo_hash, $_repo_defaults)
|
|
}
|
|
|
|
if $manage_epel {
|
|
if ($::osfamily == 'RedHat' and
|
|
$::operatingsystem != 'Fedora')
|
|
{
|
|
$epel_hash = { 'epel' => {
|
|
'baseurl' => "https://download.fedoraproject.org/pub/epel/${::operatingsystemmajrelease}/\$basearch",
|
|
'descr' => "Extra Packages for Enterprise Linux ${::operatingsystemmajrelease} - \$basearch",
|
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::operatingsystemmajrelease}",
|
|
'failovermethod' => 'priority'
|
|
}
|
|
}
|
|
|
|
$epelkey_hash = { "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::operatingsystemmajrelease}" => {
|
|
'source' => "puppet:///modules/openstack_extras/RPM-GPG-KEY-EPEL-${::operatingsystemmajrelease}"
|
|
}
|
|
}
|
|
|
|
create_resources('file', $epelkey_hash, $_gpgkey_defaults)
|
|
create_resources('yumrepo', $epel_hash, $_repo_defaults)
|
|
}
|
|
}
|
|
|
|
validate_yum_hash($repo_hash)
|
|
create_resources('yumrepo', $repo_hash, $_repo_defaults)
|
|
create_resources('file', $gpgkey_hash, $_gpgkey_defaults)
|
|
|
|
if ((versioncmp($::puppetversion, '3.5') > 0) and $purge_unmanaged) {
|
|
resources { 'yumrepo': purge => true }
|
|
}
|
|
|
|
if $package_require {
|
|
Yumrepo<||> -> Package<||>
|
|
}
|
|
|
|
exec { 'yum_refresh':
|
|
command => '/usr/bin/yum clean all',
|
|
refreshonly => true,
|
|
} -> Package <||>
|
|
}
|
|
|