
We haven't added any validations about these parameters but we inexplicitly required specific types. This adds type validations to avoid users from using wrong types. Change-Id: I672fe9a99598ce40614bdab783f98c441ded7e62
77 lines
2.4 KiB
Puppet
77 lines
2.4 KiB
Puppet
# == 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 $::openstack_extras::repo::debian::params::release
|
|
#
|
|
# [*manage_uca*]
|
|
# (optional) Whether or not to add the default
|
|
# Ubuntu Cloud Archive APT source
|
|
# Defaults to true
|
|
#
|
|
# [*repo*]
|
|
# (optional) Select with repository we want to use
|
|
# Can be 'updates' or 'proposed'
|
|
# 'proposed' to test upgrade to the next version
|
|
# 'updates' to install the latest stable version
|
|
# Defaults to 'updates'
|
|
#
|
|
# [*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
|
|
#
|
|
# [*uca_location*]
|
|
# (optional) Ubuntu Cloud Archives repository location.
|
|
# Defaults to $::openstack_extras::repo::debian::params::uca_location
|
|
#
|
|
class openstack_extras::repo::debian::ubuntu(
|
|
String[1] $release = $::openstack_extras::repo::debian::params::release,
|
|
Boolean $manage_uca = true,
|
|
String[1] $repo = 'updates',
|
|
Hash $source_hash = {},
|
|
Hash $source_defaults = {},
|
|
Boolean $package_require = false,
|
|
String[1] $uca_location = $::openstack_extras::repo::debian::params::uca_location,
|
|
) inherits openstack_extras::repo::debian::params {
|
|
|
|
if $manage_uca {
|
|
exec { 'installing ubuntu-cloud-keyring':
|
|
command => '/usr/bin/apt-get -y install ubuntu-cloud-keyring',
|
|
logoutput => 'on_failure',
|
|
tries => 3,
|
|
try_sleep => 1,
|
|
refreshonly => true,
|
|
subscribe => File["/etc/apt/sources.list.d/${::openstack_extras::repo::debian::params::uca_name}.list"],
|
|
notify => Exec['apt_update'],
|
|
}
|
|
apt::source { $::openstack_extras::repo::debian::params::uca_name:
|
|
location => $uca_location,
|
|
release => "${facts['os']['distro']['codename']}-${repo}/${release}",
|
|
repos => $::openstack_extras::repo::debian::params::uca_repos,
|
|
}
|
|
}
|
|
|
|
create_resources('apt::source', $source_hash, $source_defaults)
|
|
|
|
if $package_require {
|
|
Exec['apt_update'] -> Package<||>
|
|
}
|
|
}
|