Puppet Class: r10k::webhook::package
- Defined in:
- manifests/webhook/package.pp
Overview
Class: r10k::webhook::package
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'manifests/webhook/package.pp', line 4
class r10k::webhook::package () {
case $r10k::webhook::install_method { # lint:ignore:case_without_default
'package': {
# Work out the remote package name
$pkg_prefix = 'https://github.com/voxpupuli/webhook-go/releases/download'
$pkg_arch = $facts['os']['architecture'] ? {
'aarch64' => 'arm64',
default => 'amd64',
}
$pkg_base = "${pkg_prefix}/v${r10k::webhook::version}/webhook-go_${r10k::webhook::version}_linux_${pkg_arch}"
case $facts['os']['family'] {
'RedHat': {
$pkg_url = "${pkg_base}.rpm"
if $facts['package_provider'] == 'dnf' {
$pkg_file = undef
} else {
$provider = 'rpm'
$pkg_file = '/tmp/webhook-go.rpm'
}
}
'Debian', 'Ubuntu': {
$provider = 'dpkg'
$pkg_file = '/tmp/webhook-go.deb'
$pkg_url = "${pkg_base}.deb"
}
default: {
fail("Operating system ${facts['os']['name']} not supported for packages")
}
}
if $pkg_file {
file { $pkg_file:
ensure => file,
source => $pkg_url,
before => Package['webhook-go'],
}
package { 'webhook-go':
ensure => 'present',
source => $pkg_file,
provider => $provider,
}
} else {
package { 'webhook-go':
ensure => 'present',
source => $pkg_url,
}
}
}
'repo': {
warning('webhook-go: configuring a repo is not implemented yet')
}
# none = people configure a repo on their own
'none': {
package { 'webhook-go':
ensure => 'installed',
}
}
}
}
|