Puppet Class: mimir::config
- Defined in:
- manifests/config.pp
Overview
Class: mimir::config
Configure Mimir metrics platform. For a deep dive in mimir configuration see grafana.com/docs/mimir/latest/
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'manifests/config.pp', line 5
class mimir::config {
$config_dir = $::mimir::config_dir
$config_group = $::mimir::config_group
$config_owner = $::mimir::config_owner
$custom_args = $::mimir::custom_args
$log_dir_path = $::mimir::log_dir_path
$log_file_path = $::mimir::log_file_path
$log_file_mode = $::mimir::log_file_mode
$log_group = $::mimir::log_group
$log_level = $::mimir::log_level
$log_owner = $::mimir::log_owner
$log_to_file = $::mimir::log_to_file
$systemd_overrides = $::mimir::systemd_overrides
$validate_cmd = $::mimir::validate_cmd
# Here we ensure that the configuration directory created
# by the package has the expected owner, group and mode.
file { $config_dir:
ensure => 'directory',
owner => $config_owner,
group => $config_group,
mode => '0750'
}
# Write mimir configuration file.
# /!\ Do not remove default mimir configuration file single-process-config.yaml /!\
# as it is expected by package when upgrading.
file { "${config_dir}/config.yml":
ensure => 'file',
content => to_yaml($::mimir::config_hash),
owner => $config_owner,
group => $config_group,
mode => '0640',
validate_cmd => $validate_cmd
}
# The default service file of mimir use an EnvironmentFile where the
# configuration file to use is define. As per systemd behavior variables
# defined in Environment are override per the ones from EnvironmentFile.
# This means we cannot define the CONFIG_FILE environment with a drop-in
file { '/etc/default/mimir':
ensure => 'file',
content => epp('mimir/systemd-default.epp', {'config_dir' => $config_dir, 'custom_args' => $custom_args, 'log_level' => $log_level}),
owner => 'root',
group => 'root',
mode => '0640'
}
if $log_to_file {
if has_key($systemd_overrides, 'Service') and ( has_key($systemd_overrides['Service'], 'StandardOutput') or has_key($systemd_overrides['Service'], 'StandardError')) {
fail('log_to_file option is not compatible with systemd overrides: StandardOutput or StandardError')
}
else {
$final_systemd_overrides = merge(
$systemd_overrides,
{
'Service' => merge(
$systemd_overrides['Service'],
{
'StandardOutput' => "append:${$log_dir_path}/${log_file_path}",
'StandardError' => 'inherit'
}
)
}
)
}
} else {
$final_systemd_overrides = $systemd_overrides
}
# Overriding systemd service parameters
# using dropin built-in. We will reuse the systemd unit delivered
# by mimir package
systemd::dropin_file { 'mimir-dropin.conf':
unit => 'mimir.service',
content => epp('mimir/mimir-dropin.conf.epp', {
'systemd_overrides' => $final_systemd_overrides
}
)
}
if $log_to_file {
# Create log file to be sure it get's the asked permissions
file { "${log_dir_path}/${log_file_path}":
ensure => 'present',
owner => $log_owner,
group => $log_group,
mode => $log_file_mode,
}
# Define logrotate policy for mimir log file.
logrotate::rule { 'mimir':
compress => true,
copytruncate => true,
create => true,
create_mode => $log_file_mode,
create_owner => $log_owner,
create_group => $log_group,
ifempty => false,
missingok => true,
delaycompress => false,
path => "${log_dir_path}/${log_file_path}",
rotate => 7,
rotate_every => 'daily'
}
}
}
|