puppet-hashi_stack/manifests/repo.pp
2021-01-12 22:49:03 +01:00

56 lines
1.7 KiB
Puppet

# This class installs the hashicorp repository
#
# @summary Set up the package repository for the HashiCorp Stack components
#
# @example
# include 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 base_repo_url The base url for the repo path
class hashi_stack::repo (
Optional[Integer] $priority = undef,
String $proxy = 'absent',
) {
$key_id='E8A032E094D8EB4EA189D270DA418C88A3219F7B'
$key_source='https://apt.releases.hashicorp.com/gpg'
$description='HashiCorp package repository.'
case $facts['os']['family'] {
'Debian': {
include apt
apt::source { 'HashiCorp':
ensure => 'present',
architecture => 'amd64',
comment => $description,
location => 'https://apt.releases.hashicorp.com',
release => 'stable',
repos => 'main',
key => {
'id' => $key_id,
'source' => $key_source,
},
include => {
'deb' => true,
'src' => false,
},
pin => $priority,
}
}
'RedHat': {
yumrepo { 'HashiCorp':
descr => $description,
baseurl => 'https://rpm.releases.hashicorp.com/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']}\"")
}
}
}