Takashi Kajinami 2cf190f3f5 Debian/Ubuntu: Add type validations to repo class
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
2023-06-18 22:49:33 +00:00

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<||>
}
}