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: I5b18f393999d6f70757a2dfd9b12da049d6b64e1
This commit is contained in:
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"]
|
||||
|
33
examples/redhat_repo.yaml
Normal file
33
examples/redhat_repo.yaml
Normal file
@ -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
|
29
files/RPM-GPG-KEY-EPEL-6
Normal file
29
files/RPM-GPG-KEY-EPEL-6
Normal file
@ -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-----
|
29
files/RPM-GPG-KEY-EPEL-7
Normal file
29
files/RPM-GPG-KEY-EPEL-7
Normal file
@ -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-----
|
52
files/RPM-GPG-KEY-RDO-Havana
Normal file
52
files/RPM-GPG-KEY-RDO-Havana
Normal file
@ -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-----
|
52
files/RPM-GPG-KEY-RDO-Juno
Normal file
52
files/RPM-GPG-KEY-RDO-Juno
Normal file
@ -0,0 +1,52 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
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
|
||||
tqA=
|
||||
=vBYB
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
59
lib/puppet/parser/functions/validate_yum_hash.rb
Normal file
59
lib/puppet/parser/functions/validate_yum_hash.rb
Normal file
@ -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
|
59
manifests/repo/debian/debian.pp
Normal file
59
manifests/repo/debian/debian.pp
Normal file
@ -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<||>
|
||||
}
|
||||
}
|
18
manifests/repo/debian/params.pp
Normal file
18
manifests/repo/debian/params.pp
Normal file
@ -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'
|
||||
}
|
54
manifests/repo/debian/ubuntu.pp
Normal file
54
manifests/repo/debian/ubuntu.pp
Normal file
@ -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<||>
|
||||
}
|
||||
}
|
32
manifests/repo/redhat/params.pp
Normal file
32
manifests/repo/redhat/params.pp
Normal file
@ -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
|
||||
}
|
134
manifests/repo/redhat/redhat.pp
Normal file
134
manifests/repo/redhat/redhat.pp
Normal file
@ -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 <||>
|
||||
}
|
||||
|
132
spec/classes/openstack_extras_repo_debian_debian_spec.rb
Normal file
132
spec/classes/openstack_extras_repo_debian_debian_spec.rb
Normal file
@ -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
|
114
spec/classes/openstack_extras_repo_debian_ubuntu_spec.rb
Normal file
114
spec/classes/openstack_extras_repo_debian_ubuntu_spec.rb
Normal file
@ -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
|
187
spec/classes/openstack_extras_repo_redhat_redhat_spec.rb
Normal file
187
spec/classes/openstack_extras_repo_redhat_redhat_spec.rb
Normal file
@ -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
Block a user