Defined Type: profile::docker::reporter::report
- Defined in:
- modules/profile/manifests/docker/reporter/report.pp
Summary
create systemtd timer to generate docker reportsOverview
SPDX-License-Identifier: Apache-2.0
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 |
# File 'modules/profile/manifests/docker/reporter/report.pp', line 14
define profile::docker::reporter::report(
Wmflib::Ensure $ensure = 'present',
Enum['daily', 'weekly'] $frequency = 'weekly',
String $hour = '00:00:00',
Optional[Stdlib::HTTPUrl] $proxy = undef,
Optional[Wmflib::Team] $team = undef,
Integer $min_debian_version = 11,
Enum['registry', 'kubernetes'] $target = 'registry',
Optional[String] $registry_endpoint = 'docker-registry.discovery.wmnet',
Optional[String] $k8s_kubeconfig_path = undef,
Optional[String] $rule_filename = undef,
) {
if $rule_filename == undef {
$filter_param = ''
} else {
$rule_filepath = "/etc/docker-report/${rule_filename}"
if !defined(File[$rule_filepath]) {
file { $rule_filepath:
ensure => $ensure,
owner => 'root',
group => 'root',
source => "puppet:///modules/profile/docker/reporter/${rule_filename}",
}
}
$filter_param = "--filter-file /etc/docker-report/${rule_filename}"
}
$environment = $proxy.then |$p| {{'http_proxy' => $p}}
$interval = $frequency ? {
'daily' => "*-*-* ${hour}",
'weekly' => "Mon *-*-* ${hour}"
}
if $target == 'kubernetes' {
$cluster_name = inline_template('<%= @title.gsub("_", "-") %>')
$target_param = "--k8s-cluster ${cluster_name} --k8s-kubeconfig-path ${k8s_kubeconfig_path}"
} else {
$target_param = "--registry ${registry_endpoint}"
}
systemd::timer::job { "docker-reporter-${target}-${title}-images":
ensure => $ensure,
description => "Report on upgrades to ${title} images (${target}).",
command => "/usr/bin/docker-report --minimum-debian-version ${min_debian_version} ${filter_param} ${target_param}",
interval => {'start' => 'OnCalendar', 'interval' => $interval},
user => 'root',
environment => $environment,
syslog_identifier => "docker-report-${target}-${title}",
team => $team,
}
}
|