42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'manifests/worker.pp', line 42
class icinga::worker (
Stdlib::Host $ca_server,
String[1] $zone,
Hash[String[1], Hash] $parent_endpoints,
Enum['file', 'syslog', 'eventlog'] $logging_type,
Icinga::LogLevel $logging_level,
String[1] $parent_zone = 'main',
Hash[String[1], Hash] $colocation_endpoints = {},
Hash[String[1], Hash] $workers = {},
Array[String[1]] $global_zones = [],
Boolean $run_web = false,
Optional[Icinga::Secret] $ssh_private_key = undef,
Enum['ecdsa','ed25519','rsa'] $ssh_key_type = rsa,
) {
# inject parent zone if no parent exists
$_workers = $workers.reduce({}) |$memo, $worker| { $memo + { $worker[0] => { parent => $zone } + $worker[1] } }
class { 'icinga':
ca => false,
ca_server => $ca_server,
this_zone => $zone,
zones => {
'ZoneName' => { 'endpoints' => { 'NodeName' => {} } + $colocation_endpoints, 'parent' => $parent_zone, },
$parent_zone => { 'endpoints' => $parent_endpoints, },
} + $_workers,
logging_type => $logging_type,
logging_level => $logging_level,
ssh_key_type => $ssh_key_type,
ssh_private_key => $ssh_private_key,
prepare_web => $run_web,
}
include icinga2::feature::checker
icinga2::object::zone { $global_zones:
global => true,
order => 'zz',
}
}
|