Add hash based repository management
This patch adds support for managing repos for major distros, separated by osfamily at the top level and operatingsystem below that. Since redhat, fedora and centos can all install from rdo, which is the only current option, the fedora and centos classes simply wrap around the redhat one. This may change in the future if any of them change (for example if RHOS support is added and redhat is now different to fedora) Change-Id: I5b18f393999d6f70757a2dfd9b12da049d6b64e1changes/22/113922/24
parent
cc73eada95
commit
0fc013377b
|
@ -1,3 +1,6 @@
|
|||
fixtures:
|
||||
repositories:
|
||||
'apt' : 'git://github.com/puppetlabs/puppetlabs-apt'
|
||||
'stdlib' : 'git://github.com/puppetlabs/puppetlabs-stdlib'
|
||||
symlinks:
|
||||
'openstack_extras': "#{source_dir}"
|
||||
|
|
4
Rakefile
4
Rakefile
|
@ -4,4 +4,6 @@ require 'puppet-lint/tasks/puppet-lint'
|
|||
|
||||
PuppetLint.configuration.fail_on_warnings = true
|
||||
PuppetLint.configuration.send('disable_80chars')
|
||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
||||
PuppetLint.configuration.send('disable_double_quoted_strings')
|
||||
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp", "examples/**/*.pp", "vendor/**/*.pp"]
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
# This is an example of how to define your own repos in hiera
|
||||
# in addition to RDO when using the redhat repo class
|
||||
# assuming you have included the class somewhere
|
||||
#
|
||||
# This is taken from the aptira hiera data files in
|
||||
# puppet_openstack_builder and may go out of date.
|
||||
#
|
||||
# Set up repositories using openstack_extras
|
||||
openstack_extras::repo::redhat::redhat::repo_hash:
|
||||
'CentOS-Base':
|
||||
'descr': 'CentOS-$releasever - Base'
|
||||
'baseurl': "%{hiera('yum_base_mirror')}/$releasever/os/$basearch/"
|
||||
'CentOS-Updates':
|
||||
'descr': 'CentOS-$releasever - Updates'
|
||||
'baseurl': "%{hiera('yum_base_mirror')}/$releasever/updates/$basearch/"
|
||||
'CentOS-Extras':
|
||||
'descr': 'CentOS-$releasever - Extras'
|
||||
'baseurl': "%{hiera('yum_base_mirror')}/$releasever/extras/$basearch/"
|
||||
'epel':
|
||||
'descr': 'Extra Packages for Enterprise Linux 6 - $basearch'
|
||||
'baseurl': "%{hiera('yum_epel_mirror')}/$releasever/$basearch/"
|
||||
'gpgkey': 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6'
|
||||
'failovermethod': 'priority'
|
||||
|
||||
openstack_extras::repo::redhat::redhat::repo_defaults:
|
||||
'proxy': "http://%{hiera('proxy_host')}:%{hiera('proxy_port')}"
|
||||
|
||||
openstack_extras::repo::redhat::redhat::gpgkey_hash:
|
||||
'/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6':
|
||||
'source': 'puppet:///modules/openstack_extras/RPM-GPG-KEY-EPEL-6'
|
||||
|
||||
openstack_extras::repo::redhat::redhat::purge_unmanaged: true
|
||||
openstack_extras::repo::redhat::redhat::package_require: true
|
|
@ -0,0 +1,29 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.5 (GNU/Linux)
|
||||
|
||||
mQINBEvSKUIBEADLGnUj24ZVKW7liFN/JA5CgtzlNnKs7sBg7fVbNWryiE3URbn1
|
||||
JXvrdwHtkKyY96/ifZ1Ld3lE2gOF61bGZ2CWwJNee76Sp9Z+isP8RQXbG5jwj/4B
|
||||
M9HK7phktqFVJ8VbY2jfTjcfxRvGM8YBwXF8hx0CDZURAjvf1xRSQJ7iAo58qcHn
|
||||
XtxOAvQmAbR9z6Q/h/D+Y/PhoIJp1OV4VNHCbCs9M7HUVBpgC53PDcTUQuwcgeY6
|
||||
pQgo9eT1eLNSZVrJ5Bctivl1UcD6P6CIGkkeT2gNhqindRPngUXGXW7Qzoefe+fV
|
||||
QqJSm7Tq2q9oqVZ46J964waCRItRySpuW5dxZO34WM6wsw2BP2MlACbH4l3luqtp
|
||||
Xo3Bvfnk+HAFH3HcMuwdaulxv7zYKXCfNoSfgrpEfo2Ex4Im/I3WdtwME/Gbnwdq
|
||||
3VJzgAxLVFhczDHwNkjmIdPAlNJ9/ixRjip4dgZtW8VcBCrNoL+LhDrIfjvnLdRu
|
||||
vBHy9P3sCF7FZycaHlMWP6RiLtHnEMGcbZ8QpQHi2dReU1wyr9QgguGU+jqSXYar
|
||||
1yEcsdRGasppNIZ8+Qawbm/a4doT10TEtPArhSoHlwbvqTDYjtfV92lC/2iwgO6g
|
||||
YgG9XrO4V8dV39Ffm7oLFfvTbg5mv4Q/E6AWo/gkjmtxkculbyAvjFtYAQARAQAB
|
||||
tCFFUEVMICg2KSA8ZXBlbEBmZWRvcmFwcm9qZWN0Lm9yZz6JAjYEEwECACAFAkvS
|
||||
KUICGw8GCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7Sd8qBgi4lR/GD/wLGPv9
|
||||
qO39eyb9NlrwfKdUEo1tHxKdrhNz+XYrO4yVDTBZRPSuvL2yaoeSIhQOKhNPfEgT
|
||||
9mdsbsgcfmoHxmGVcn+lbheWsSvcgrXuz0gLt8TGGKGGROAoLXpuUsb1HNtKEOwP
|
||||
Q4z1uQ2nOz5hLRyDOV0I2LwYV8BjGIjBKUMFEUxFTsL7XOZkrAg/WbTH2PW3hrfS
|
||||
WtcRA7EYonI3B80d39ffws7SmyKbS5PmZjqOPuTvV2F0tMhKIhncBwoojWZPExft
|
||||
HpKhzKVh8fdDO/3P1y1Fk3Cin8UbCO9MWMFNR27fVzCANlEPljsHA+3Ez4F7uboF
|
||||
p0OOEov4Yyi4BEbgqZnthTG4ub9nyiupIZ3ckPHr3nVcDUGcL6lQD/nkmNVIeLYP
|
||||
x1uHPOSlWfuojAYgzRH6LL7Idg4FHHBA0to7FW8dQXFIOyNiJFAOT2j8P5+tVdq8
|
||||
wB0PDSH8yRpn4HdJ9RYquau4OkjluxOWf0uRaS//SUcCZh+1/KBEOmcvBHYRZA5J
|
||||
l/nakCgxGb2paQOzqqpOcHKvlyLuzO5uybMXaipLExTGJXBlXrbbASfXa/yGYSAG
|
||||
iVrGz9CE6676dMlm8F+s3XXE13QZrXmjloc6jwOljnfAkjTGXjiB7OULESed96MR
|
||||
XtfLk0W5Ab9pd7tKDR6QHI7rgHXfCopRnZ2VVQ==
|
||||
=V/6I
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -0,0 +1,29 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
mQINBFKuaIQBEAC1UphXwMqCAarPUH/ZsOFslabeTVO2pDk5YnO96f+rgZB7xArB
|
||||
OSeQk7B90iqSJ85/c72OAn4OXYvT63gfCeXpJs5M7emXkPsNQWWSju99lW+AqSNm
|
||||
jYWhmRlLRGl0OO7gIwj776dIXvcMNFlzSPj00N2xAqjMbjlnV2n2abAE5gq6VpqP
|
||||
vFXVyfrVa/ualogDVmf6h2t4Rdpifq8qTHsHFU3xpCz+T6/dGWKGQ42ZQfTaLnDM
|
||||
jToAsmY0AyevkIbX6iZVtzGvanYpPcWW4X0RDPcpqfFNZk643xI4lsZ+Y2Er9Yu5
|
||||
S/8x0ly+tmmIokaE0wwbdUu740YTZjCesroYWiRg5zuQ2xfKxJoV5E+Eh+tYwGDJ
|
||||
n6HfWhRgnudRRwvuJ45ztYVtKulKw8QQpd2STWrcQQDJaRWmnMooX/PATTjCBExB
|
||||
9dkz38Druvk7IkHMtsIqlkAOQMdsX1d3Tov6BE2XDjIG0zFxLduJGbVwc/6rIc95
|
||||
T055j36Ez0HrjxdpTGOOHxRqMK5m9flFbaxxtDnS7w77WqzW7HjFrD0VeTx2vnjj
|
||||
GqchHEQpfDpFOzb8LTFhgYidyRNUflQY35WLOzLNV+pV3eQ3Jg11UFwelSNLqfQf
|
||||
uFRGc+zcwkNjHh5yPvm9odR1BIfqJ6sKGPGbtPNXo7ERMRypWyRz0zi0twARAQAB
|
||||
tChGZWRvcmEgRVBFTCAoNykgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB
|
||||
AgAiBQJSrmiEAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBqL66iNSxk
|
||||
5cfGD/4spqpsTjtDM7qpytKLHKruZtvuWiqt5RfvT9ww9GUUFMZ4ZZGX4nUXg49q
|
||||
ixDLayWR8ddG/s5kyOi3C0uX/6inzaYyRg+Bh70brqKUK14F1BrrPi29eaKfG+Gu
|
||||
MFtXdBG2a7OtPmw3yuKmq9Epv6B0mP6E5KSdvSRSqJWtGcA6wRS/wDzXJENHp5re
|
||||
9Ism3CYydpy0GLRA5wo4fPB5uLdUhLEUDvh2KK//fMjja3o0L+SNz8N0aDZyn5Ax
|
||||
CU9RB3EHcTecFgoy5umRj99BZrebR1NO+4gBrivIfdvD4fJNfNBHXwhSH9ACGCNv
|
||||
HnXVjHQF9iHWApKkRIeh8Fr2n5dtfJEF7SEX8GbX7FbsWo29kXMrVgNqHNyDnfAB
|
||||
VoPubgQdtJZJkVZAkaHrMu8AytwT62Q4eNqmJI1aWbZQNI5jWYqc6RKuCK6/F99q
|
||||
thFT9gJO17+yRuL6Uv2/vgzVR1RGdwVLKwlUjGPAjYflpCQwWMAASxiv9uPyYPHc
|
||||
ErSrbRG0wjIfAR3vus1OSOx3xZHZpXFfmQTsDP7zVROLzV98R3JwFAxJ4/xqeON4
|
||||
vCPFU6OsT3lWQ8w7il5ohY95wmujfr6lk89kEzJdOTzcn7DBbUru33CQMGKZ3Evt
|
||||
RjsC7FDbL017qxS+ZVA/HGkyfiu4cpgV8VUnbql5eAZ+1Ll6Dw==
|
||||
=hdPa
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
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
|
||||
WRhdyg==
|
||||
=3A9V
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
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
|
||||
tqA=
|
||||
=vBYB
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -0,0 +1,59 @@
|
|||
module Puppet::Parser::Functions
|
||||
|
||||
yumrepo_arguments = [
|
||||
'name',
|
||||
'ensure',
|
||||
'baseurl',
|
||||
'cost',
|
||||
'descr',
|
||||
'enabled',
|
||||
'enablegroups',
|
||||
'exclude',
|
||||
'failovermethod',
|
||||
'gpgcheck',
|
||||
'gpgkey',
|
||||
'http_caching',
|
||||
'include',
|
||||
'includepkgs',
|
||||
'keepalive',
|
||||
'metadata_expire',
|
||||
'metalink',
|
||||
'mirrorlist',
|
||||
'priority',
|
||||
'protect',
|
||||
'provider',
|
||||
'proxy',
|
||||
'proxy_password',
|
||||
'proxy_username',
|
||||
'repo_gpgcheck',
|
||||
's3_enabled',
|
||||
'skip_if_unavailable',
|
||||
'sslcacert',
|
||||
'sslclientcert',
|
||||
'sslclientkey',
|
||||
'sslverify',
|
||||
'target',
|
||||
'timeout'
|
||||
]
|
||||
|
||||
newfunction(:validate_yum_hash) do |args|
|
||||
if args.size > 1
|
||||
raise Puppet::Error, "validate_yum_hash takes only a single argument, #{args.size} provided"
|
||||
end
|
||||
arg = args[0]
|
||||
|
||||
if not arg.kind_of?(Hash)
|
||||
raise Puppet::Error, "non-hash argument provided to validate_yum_hash"
|
||||
end
|
||||
|
||||
if arg.size > 0
|
||||
arg.each do |title, params|
|
||||
params.each do |param, value|
|
||||
if ! yumrepo_arguments.include?(param)
|
||||
raise Puppet::Error, "Parameter #{param} is not valid for the yumrepo type"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,59 @@
|
|||
# == Class: openstack_extras::repo::debian::debian
|
||||
#
|
||||
# This repo sets up apt sources for use with the debian
|
||||
# osfamily and debian operatingsystem
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*release*]
|
||||
# (optional) The OpenStack release to add a
|
||||
# Debian Wheezy apt source for.
|
||||
# Defaults to 'icehouse'
|
||||
#
|
||||
# [*manage_whz*]
|
||||
# (optional) Whether or not to add the default
|
||||
# Debian Wheezy APT source
|
||||
# Defaults to true
|
||||
#
|
||||
# [*source_hash*]
|
||||
# (optional) A hash of apt::source resources to
|
||||
# create and manage
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*source_defaults*]
|
||||
# (optional) A hash of defaults to use for all apt::source
|
||||
# resources created by this class
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*package_require*]
|
||||
# (optional) Whether or not to run 'apt-get update' before
|
||||
# installing any packages.
|
||||
# Defaults to false
|
||||
#
|
||||
class openstack_extras::repo::debian::debian(
|
||||
$release = $::openstack_extras::repo::debian::params::release,
|
||||
$manage_whz = true,
|
||||
$source_hash = {},
|
||||
$source_defaults = {},
|
||||
$package_require = false
|
||||
) inherits openstack_extras::repo::debian::params {
|
||||
if $manage_whz {
|
||||
apt::source { $::openstack_extras::repo::debian::params::whz_name:
|
||||
location => $::openstack_extras::repo::debian::params::whz_location,
|
||||
release => $release,
|
||||
repos => $::openstack_extras::repo::debian::params::whz_repos,
|
||||
required_packages => $::openstack_extras::repo::debian::params::whz_required_packages
|
||||
} ->
|
||||
apt::source { "${::openstack_extras::repo::debian::params::whz_name}_backports":
|
||||
location => $::openstack_extras::repo::debian::params::whz_location,
|
||||
release => "${release}-backports",
|
||||
repos => $::openstack_extras::repo::debian::params::whz_repos,
|
||||
}
|
||||
}
|
||||
|
||||
create_resources('apt::source', $source_hash, $source_defaults)
|
||||
|
||||
if $package_require {
|
||||
Exec['apt_update'] -> Package<||>
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
# == Class: openstack_extras::repo::debian::params
|
||||
#
|
||||
# This repo sets defaults for the debian osfamily
|
||||
#
|
||||
class openstack_extras::repo::debian::params
|
||||
{
|
||||
$release = 'icehouse'
|
||||
|
||||
$uca_name = 'ubuntu-cloud-archive'
|
||||
$uca_location = 'http://ubuntu-cloud.archive.canonical.com/ubuntu'
|
||||
$uca_repos = 'main'
|
||||
$uca_required_packages = 'ubuntu-cloud-keyring'
|
||||
|
||||
$whz_name = 'debian_wheezy'
|
||||
$whz_location = 'http://archive.gplhost.com/debian'
|
||||
$whz_repos = 'main'
|
||||
$whz_required_packages = 'gplhost-archive-keyring'
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
# == Class: openstack_extras::repo::debian::ubuntu
|
||||
#
|
||||
# This repo sets up apt sources for use with the debian
|
||||
# osfamily and ubuntu operatingsystem
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*release*]
|
||||
# (optional) The OpenStack release to add an
|
||||
# Ubuntu Cloud Archive APT source for.
|
||||
# Defaults to 'icehouse'
|
||||
#
|
||||
# [*manage_uca*]
|
||||
# (optional) Whether or not to add the default
|
||||
# Ubuntu Cloud Archive APT source
|
||||
# Defaults to true
|
||||
#
|
||||
# [*source_hash*]
|
||||
# (optional) A hash of apt::source resources to
|
||||
# create and manage
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*source_defaults*]
|
||||
# (optional) A hash of defaults to use for all apt::source
|
||||
# resources created by this class
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*package_require*]
|
||||
# (optional) Whether or not to run 'apt-get update' before
|
||||
# installing any packages.
|
||||
# Defaults to false
|
||||
#
|
||||
class openstack_extras::repo::debian::ubuntu(
|
||||
$release = $::openstack_extras::repo::debian::params::release,
|
||||
$manage_uca = true,
|
||||
$source_hash = {},
|
||||
$source_defaults = {},
|
||||
$package_require = false
|
||||
) inherits openstack_extras::repo::debian::params {
|
||||
if $manage_uca {
|
||||
apt::source { $::openstack_extras::repo::debian::params::uca_name:
|
||||
location => $::openstack_extras::repo::debian::params::uca_location,
|
||||
release => "${::lsbdistcodename}-updates/${release}",
|
||||
repos => $::openstack_extras::repo::debian::params::uca_repos,
|
||||
required_packages => $::openstack_extras::repo::debian::params::uca_required_packages
|
||||
}
|
||||
}
|
||||
|
||||
create_resources('apt::source', $source_hash, $source_defaults)
|
||||
|
||||
if $package_require {
|
||||
Exec['apt_update'] -> Package<||>
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
# == Class: openstack_extras::repo::redhat::params
|
||||
#
|
||||
# This repo sets defaults for use with the redhat
|
||||
# osfamily repo classes.
|
||||
#
|
||||
class openstack_extras::repo::redhat::params
|
||||
{
|
||||
$release = 'juno'
|
||||
|
||||
$repo_defaults = { 'enabled' => '1',
|
||||
'gpgcheck' => '1',
|
||||
'notify' => "Exec[yum_refresh]",
|
||||
'mirrorlist' => 'absent',
|
||||
'require' => "Anchor[openstack_extras_redhat]"
|
||||
}
|
||||
|
||||
$gpgkey_defaults = { 'owner' => 'root',
|
||||
'group' => 'root',
|
||||
'mode' => '0644',
|
||||
'before' => "Anchor[openstack_extras_redhat]"
|
||||
}
|
||||
|
||||
case $::operatingsystem {
|
||||
centos, redhat, scientific, slc: { $dist = 'epel' }
|
||||
fedora: { $dist = 'fedora' }
|
||||
default: {
|
||||
warning('Unrecognised operatingsystem')
|
||||
}
|
||||
}
|
||||
|
||||
$rdo_priority = 98
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
# == 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
|
||||
#
|
||||
# [*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)
|
||||
$_dist = $::openstack_extras::repo::redhat::params::dist
|
||||
|
||||
$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 <||>
|
||||
}
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'openstack_extras::repo::debian::debian' do
|
||||
let :class_params do
|
||||
{
|
||||
:manage_whz => true,
|
||||
:source_hash => {},
|
||||
:source_defaults => {},
|
||||
:package_require => false
|
||||
}
|
||||
end
|
||||
|
||||
let :paramclass_defaults do
|
||||
{
|
||||
:release => 'icehouse'
|
||||
}
|
||||
end
|
||||
|
||||
let :default_params do
|
||||
class_params.merge!(paramclass_defaults)
|
||||
end
|
||||
|
||||
context 'on Debian platforms' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'Debian',
|
||||
:operatingsystem => 'Debian',
|
||||
:lsbdistid => 'Debian'
|
||||
}
|
||||
end
|
||||
|
||||
describe 'with default parameters' do
|
||||
let :params do
|
||||
{}.merge!(default_params)
|
||||
end
|
||||
|
||||
it { should contain_apt__source('debian_wheezy').with(
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'icehouse',
|
||||
:repos => 'main',
|
||||
:required_packages => 'gplhost-archive-keyring'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('debian_wheezy_backports').with(
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'icehouse-backports',
|
||||
:repos => 'main'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden release' do
|
||||
let :params do
|
||||
default_params.merge!({ :release => 'juno' })
|
||||
end
|
||||
|
||||
it { should contain_apt__source('debian_wheezy').with(
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'juno',
|
||||
:repos => 'main',
|
||||
:required_packages => 'gplhost-archive-keyring'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('debian_wheezy_backports').with(
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'juno-backports',
|
||||
:repos => 'main'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden source hash' do
|
||||
let :params do
|
||||
default_params.merge!({ :source_hash => {
|
||||
'debian_unstable' => {
|
||||
'location' => 'http://mymirror/debian/',
|
||||
'repos' => 'main',
|
||||
'release' => 'unstable'
|
||||
},
|
||||
'puppetlabs' => {
|
||||
'location' => 'http://apt.puppetlabs.com',
|
||||
'repos' => 'main',
|
||||
'release' => 'wheezy',
|
||||
'key' => '4BD6EC30',
|
||||
'key_server' => 'pgp.mit.edu'
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_apt__source('debian_unstable').with(
|
||||
:location => 'http://mymirror/debian/',
|
||||
:release => 'unstable',
|
||||
:repos => 'main'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('puppetlabs').with(
|
||||
:location => 'http://apt.puppetlabs.com',
|
||||
:repos => 'main',
|
||||
:release => 'wheezy',
|
||||
:key => '4BD6EC30',
|
||||
:key_server => 'pgp.mit.edu'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden source default' do
|
||||
let :params do
|
||||
default_params.merge!({ :source_defaults => {
|
||||
'include_src' => 'true'
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_apt__source('debian_wheezy').with(
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'icehouse',
|
||||
:repos => 'main',
|
||||
:required_packages => 'gplhost-archive-keyring',
|
||||
:include_src => 'true'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('debian_wheezy_backports').with(
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'icehouse-backports',
|
||||
:repos => 'main',
|
||||
:include_src => 'true'
|
||||
)}
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,114 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'openstack_extras::repo::debian::ubuntu' do
|
||||
let :class_params do
|
||||
{
|
||||
:manage_uca => true,
|
||||
:source_hash => {},
|
||||
:source_defaults => {},
|
||||
:package_require => false
|
||||
}
|
||||
end
|
||||
|
||||
let :paramclass_defaults do
|
||||
{
|
||||
:release => 'icehouse'
|
||||
}
|
||||
end
|
||||
|
||||
let :default_params do
|
||||
class_params.merge!(paramclass_defaults)
|
||||
end
|
||||
|
||||
context 'on Debian platforms' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'Debian',
|
||||
:operatingsystem => 'Ubuntu',
|
||||
:lsbdistid => 'Ubuntu',
|
||||
:lsbdistcodename => 'trusty'
|
||||
}
|
||||
end
|
||||
|
||||
describe 'with default parameters' do
|
||||
let :params do
|
||||
{}.merge!(default_params)
|
||||
end
|
||||
|
||||
it { should contain_apt__source('ubuntu-cloud-archive').with(
|
||||
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
||||
:release => 'trusty-updates/icehouse',
|
||||
:repos => 'main',
|
||||
:required_packages => 'ubuntu-cloud-keyring'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden release' do
|
||||
let :params do
|
||||
default_params.merge!({ :release => 'juno' })
|
||||
end
|
||||
|
||||
it { should contain_apt__source('ubuntu-cloud-archive').with(
|
||||
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
||||
:release => 'trusty-updates/juno',
|
||||
:repos => 'main',
|
||||
:required_packages => 'ubuntu-cloud-keyring'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden source hash' do
|
||||
let :params do
|
||||
default_params.merge!({ :source_hash => {
|
||||
'local_mirror' => {
|
||||
'location' => 'http://mymirror/ubuntu/',
|
||||
'repos' => 'main',
|
||||
'release' => 'trusty'
|
||||
},
|
||||
'puppetlabs' => {
|
||||
'location' => 'http://apt.puppetlabs.com',
|
||||
'repos' => 'main',
|
||||
'release' => 'trusty',
|
||||
'key' => '4BD6EC30',
|
||||
'key_server' => 'pgp.mit.edu'
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_apt__source('local_mirror').with(
|
||||
:location => 'http://mymirror/ubuntu/',
|
||||
:release => 'trusty',
|
||||
:repos => 'main'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('puppetlabs').with(
|
||||
:location => 'http://apt.puppetlabs.com',
|
||||
:release => 'trusty',
|
||||
:repos => 'main',
|
||||
:key => '4BD6EC30',
|
||||
:key_server => 'pgp.mit.edu'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden source default' do
|
||||
let :params do
|
||||
default_params.merge!({ :source_defaults => {
|
||||
'include_src' => 'true'
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_apt__source('ubuntu-cloud-archive').with(
|
||||
:include_src => 'true',
|
||||
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
||||
:release => 'trusty-updates/icehouse',
|
||||
:repos => 'main',
|
||||
:required_packages => 'ubuntu-cloud-keyring'
|
||||
)}
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,187 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'openstack_extras::repo::redhat::redhat' do
|
||||
let :class_params do
|
||||
{
|
||||
:manage_rdo => true,
|
||||
:manage_epel => true,
|
||||
:repo_hash => {},
|
||||
:gpgkey_hash => {},
|
||||
:purge_unmanaged => false,
|
||||
:package_require => false
|
||||
}
|
||||
end
|
||||
|
||||
let :paramclass_defaults do
|
||||
{
|
||||
:release => 'icehouse',
|
||||
:repo_defaults => { 'enabled' => '1',
|
||||
'gpgcheck' => '1',
|
||||
'notify' => "Exec[yum_refresh]",
|
||||
'mirrorlist' => 'absent',
|
||||
'require' => "Anchor[openstack_extras_redhat]"
|
||||
},
|
||||
:gpgkey_defaults => { 'owner' => 'root',
|
||||
'group' => 'root',
|
||||
'mode' => '0644',
|
||||
'before' => "Anchor[openstack_extras_redhat]"
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
let :default_params do
|
||||
class_params.merge!(paramclass_defaults)
|
||||
end
|
||||
|
||||
context 'on RedHat platforms' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystem => 'RedHat',
|
||||
:operatingsystemrelease => '6.5',
|
||||
:operatingsystemmajrelease => '6'
|
||||
}
|
||||
end
|
||||
|
||||
describe 'with default parameters' do
|
||||
let :params do
|
||||
{}.merge!(default_params)
|
||||
end
|
||||
|
||||
it { should contain_yumrepo('rdo-release').with(
|
||||
:baseurl => "http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/",
|
||||
:descr => "OpenStack Icehouse Repository",
|
||||
:priority => 98,
|
||||
:gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse",
|
||||
:enabled => '1',
|
||||
:gpgcheck => '1',
|
||||
:mirrorlist => 'absent',
|
||||
:require => "Anchor[openstack_extras_redhat]",
|
||||
:notify => "Exec[yum_refresh]"
|
||||
)}
|
||||
|
||||
it { should contain_yumrepo('epel').with(
|
||||
:baseurl => 'https://download.fedoraproject.org/pub/epel/6/$basearch',
|
||||
:descr => 'Extra Packages for Enterprise Linux 6 - $basearch',
|
||||
:gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||
:failovermethod => 'priority',
|
||||
:enabled => '1',
|
||||
:gpgcheck => '1',
|
||||
:mirrorlist => 'absent',
|
||||
:require => "Anchor[openstack_extras_redhat]",
|
||||
:notify => "Exec[yum_refresh]"
|
||||
)}
|
||||
|
||||
it { should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse').with(
|
||||
:source => "puppet:///modules/openstack_extras/RPM-GPG-KEY-RDO-Icehouse",
|
||||
:owner => 'root',
|
||||
:group => 'root',
|
||||
:mode => '0644',
|
||||
:before => "Anchor[openstack_extras_redhat]"
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden release' do
|
||||
let :params do
|
||||
default_params.merge!({ :release => 'juno' })
|
||||
end
|
||||
|
||||
it { should contain_yumrepo('rdo-release').with(
|
||||
:baseurl => "http://repos.fedorapeople.org/repos/openstack/openstack-juno/epel-6/",
|
||||
:descr => "OpenStack Juno Repository",
|
||||
:gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Juno"
|
||||
)}
|
||||
|
||||
it { should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Juno').with(
|
||||
:source => "puppet:///modules/openstack_extras/RPM-GPG-KEY-RDO-Juno"
|
||||
)}
|
||||
end
|
||||
|
||||
describe 'with overridden repo hash' do
|
||||
let :params do
|
||||
default_params.merge!({ :repo_hash => {
|
||||
'CentOS-Base' => {
|
||||
'baseurl' => 'http://mymirror/$releasever/os/$basearch/',
|
||||
'descr' => 'CentOS-$releasever - Base',
|
||||
'gpgkey' => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6'
|
||||
},
|
||||
'CentOS-Updates' => {
|
||||
'baseurl' => 'http://mymirror/$releasever/updates/$basearch/',
|
||||
'descr' => 'CentOS-$releasever - Updates',
|
||||
'gpgkey' => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6',
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_yumrepo('CentOS-Base').with(
|
||||
:baseurl => "http://mymirror/$releasever/os/$basearch/",
|
||||
:descr => "CentOS-$releasever - Base",
|
||||
:enabled => '1',
|
||||
:gpgcheck => '1',
|
||||
:gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6',
|
||||
:mirrorlist => 'absent',
|
||||
:require => "Anchor[openstack_extras_redhat]",
|
||||
:notify => "Exec[yum_refresh]"
|
||||
)}
|
||||
|
||||
it { should contain_yumrepo('CentOS-Updates').with(
|
||||
:baseurl => "http://mymirror/$releasever/updates/$basearch/",
|
||||
:descr => "CentOS-$releasever - Updates",
|
||||
:enabled => '1',
|
||||
:gpgcheck => '1',
|
||||
:gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6',
|
||||
:mirrorlist => 'absent',
|
||||
:require => "Anchor[openstack_extras_redhat]",
|
||||
:notify => "Exec[yum_refresh]"
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden repo default' do
|
||||
let :params do
|
||||
default_params.merge!({ :repo_defaults => {
|
||||
'proxy' => 'http://my.proxy.com:8000'
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_yumrepo('rdo-release').with(
|
||||
:baseurl => "http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/",
|
||||
:descr => "OpenStack Icehouse Repository",
|
||||
:gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse",
|
||||
:proxy => "http://my.proxy.com:8000"
|
||||
)}
|
||||
end
|
||||
|
||||
describe 'with overridden gpgkey default' do
|
||||
let :params do
|
||||
default_params.merge!({ :gpgkey_defaults => {
|
||||
'owner' => 'steve'
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
it { should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse').with(
|
||||
:owner => "steve"
|
||||
)}
|
||||
end
|
||||
|
||||
describe 'with epel management disabled' do
|
||||
let :params do
|
||||
default_params.merge!({ :manage_epel => false })
|
||||
end
|
||||
|
||||
it { should_not contain_yumrepo('epel') }
|
||||
end
|
||||
|
||||
describe 'with rdo management disabled' do
|
||||
let :params do
|
||||
default_params.merge!({ :manage_rdo => false })
|
||||
end
|
||||
|
||||
it { should_not contain_yumrepo('rdo-release') }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue