puppet-hashi_stack/manifests/repo.pp
Nacho Barrientos 4a0d31fbf0 Allow customising the base URL of the Yum repository
Some people might have private mirrors of the repository and would
rather to install the software from there.
2021-03-19 15:11:32 +01:00

65 lines
2.1 KiB
Puppet

# This class installs the hashicorp repository
#
# @summary Set up the package repository for the HashiCorp Stack components
#
# @example Inclusion using defaults
# include hashi_stack::repo
#
# @example Include repo and install packer as package
# include hashi_stack::repo
# package { 'packer':
# ensure => installed,
# require => Class['Hashi_stack::Repo'],
# }
#
# @param priority A numeric priority for the repo, passed to the package management system
# @param proxy The URL of a HTTP proxy to use for package downloads (YUM only)
# @param key_id GPG key to authenticate Apt package signatures.
# @param key_source The location of an existing GPG key file to copy.
# @param description Repository description
# @param rpm_base Base URL for the Yum repository
class hashi_stack::repo (
Optional[Integer] $priority = undef,
String $proxy = 'absent',
String $key_id = 'E8A032E094D8EB4EA189D270DA418C88A3219F7B',
Stdlib::HTTPSUrl $key_source = 'https://apt.releases.hashicorp.com/gpg',
String $description = 'HashiCorp package repository.',
String $rpm_base = 'https://rpm.releases.hashicorp.com',
) {
case $facts['os']['family'] {
'Debian': {
include apt
apt::source { 'HashiCorp':
ensure => 'present',
architecture => 'amd64',
comment => $description,
location => 'https://apt.releases.hashicorp.com',
repos => 'main',
key => {
'id' => $key_id,
'source' => $key_source,
},
include => {
'deb' => true,
'src' => false,
},
pin => $priority,
}
}
'RedHat': {
yumrepo { 'HashiCorp':
descr => $description,
baseurl => "${rpm_base}/RHEL/\$releasever/\$basearch/stable",
gpgcheck => 1,
gpgkey => $key_source,
enabled => 1,
proxy => $proxy,
priority => $priority,
}
}
default: {
fail("\"${module_name}\" provides no repository information for OSfamily \"${facts['os']['family']}\"")
}
}
}