From 5a83c4f8012552aaa49d85be9f8274893226a101 Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Sat, 12 Aug 2023 22:28:26 +0200 Subject: [PATCH] init.pp: Add default data from hiera --- REFERENCE.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ data/defaults.yaml | 28 ---------------------------- manifests/init.pp | 44 ++++++++++++++++++++++---------------------- 3 files changed, 66 insertions(+), 50 deletions(-) diff --git a/REFERENCE.md b/REFERENCE.md index e4d8c85e..47654f30 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -199,6 +199,8 @@ Data type: `String` User running prometheus +Default value: `'prometheus'` + ##### `manage_group` Data type: `Boolean` @@ -221,6 +223,8 @@ Data type: `String` Group under which prometheus is running +Default value: `'prometheus'` + ##### `bin_dir` Data type: `Stdlib::Absolutepath` @@ -235,6 +239,8 @@ Data type: `Stdlib::Absolutepath` Directory where shared files are located +Default value: `'/usr/local/share/prometheus'` + ##### `arch` Data type: `String[1]` @@ -281,36 +287,48 @@ Data type: `Prometheus::Uri` Base URL for prometheus +Default value: `'https://github.com/prometheus/prometheus/releases'` + ##### `download_extension` Data type: `String` Extension of Prometheus binaries archive +Default value: `'tar.gz'` + ##### `package_name` Data type: `String` Prometheus package name - not available yet +Default value: `'prometheus'` + ##### `package_ensure` Data type: `String` If package, then use this for package ensurel default 'latest' +Default value: `'latest'` + ##### `config_dir` Data type: `String` Prometheus configuration directory (default /etc/prometheus) +Default value: `'/etc/prometheus'` + ##### `localstorage` Data type: `Stdlib::Absolutepath` Location of prometheus local storage (storage.local argument) +Default value: `'/var/lib/prometheus'` + ##### `extra_options` Data type: `Optional[String[1]]` @@ -341,12 +359,16 @@ Data type: `String` Configuration template to use (template/prometheus.yaml.erb) +Default value: `'prometheus/prometheus.yaml.erb'` + ##### `config_mode` Data type: `String` Configuration file mode (default 0660) +Default value: `'0640'` + ##### `service_enable` Data type: `Boolean` @@ -403,18 +425,24 @@ Data type: `Hash` Prometheus global configuration variables +Default value: `{ 'scrape_interval' => '15s', 'evaluation_interval' => '15s', 'external_labels' => { 'monitor' => 'master' } }` + ##### `rule_files` Data type: `Array` Prometheus rule files +Default value: `[]` + ##### `scrape_configs` Data type: `Array` Prometheus scrape configs +Default value: `[]` + ##### `include_default_scrape_configs` Data type: `Boolean` @@ -429,18 +457,24 @@ Data type: `Array` Prometheus remote_read config to scrape prometheus 1.8+ instances +Default value: `[]` + ##### `remote_write_configs` Data type: `Array` Prometheus remote_write config to scrape prometheus 1.8+ instances +Default value: `[]` + ##### `alerts` Data type: `Variant[Array,Hash]` alert rules to put in alerts.rules +Default value: `{}` + ##### `extra_alerts` Data type: `Hash` @@ -455,12 +489,16 @@ Data type: `Array` Prometheus alert relabel config under alerting +Default value: `[]` + ##### `alertmanagers_config` Data type: `Array` Prometheus managers config under alerting +Default value: `[]` + ##### `storage_retention` Data type: `String` @@ -469,6 +507,8 @@ How long to keep timeseries data. This is given as a duration like "100h" or "14 prometheus 1.8.*, only durations understood by golang's time.ParseDuration are supported. Starting with prometheus 2, durations can also be given in days, weeks and years. +Default value: `'360h'` + ##### `external_url` Data type: `Optional[Variant[Stdlib::HTTPUrl, Stdlib::Unixpath, String[1]]]` @@ -839,6 +879,8 @@ Data type: `Array` Extra groups of which the user should be a part +Default value: `[]` + ##### `proxy_server` Data type: `Optional[String[1]]` @@ -867,6 +909,8 @@ Data type: `Boolean` +Default value: `true` + ##### `manage_prometheus_server` Data type: `Boolean` diff --git a/data/defaults.yaml b/data/defaults.yaml index 85aecc5c..481a794c 100644 --- a/data/defaults.yaml +++ b/data/defaults.yaml @@ -15,8 +15,6 @@ prometheus::pushprox_proxy::package_ensure: 'latest' prometheus::pushprox_proxy::package_name: 'pushprox_proxy' prometheus::pushprox_proxy::user: 'pushprox_proxy' prometheus::pushprox_proxy::version: '0.1.0' -prometheus::alert_relabel_config: [] -prometheus::alertmanagers_config: [] prometheus::alertmanager::config_dir: '/etc/alertmanager' prometheus::alertmanager::manage_config: true prometheus::alertmanager::config_file: "%{hiera('prometheus::alertmanager::config_dir')}/alertmanager.yaml" @@ -57,11 +55,6 @@ prometheus::alertmanager::storage_path: '/var/lib/alertmanager' prometheus::alertmanager::templates: [ "%{lookup('prometheus::alertmanager::config_dir')}/*.tmpl" ] prometheus::alertmanager::user: 'alertmanager' prometheus::alertmanager::version: '0.21.0' -prometheus::alerts: {} -prometheus::config_dir: '/etc/prometheus' -prometheus::config_mode: '0640' -prometheus::config_show_diff: true -prometheus::config_template: 'prometheus/prometheus.yaml.erb' prometheus::consul_exporter::consul_health_summary: true prometheus::consul_exporter::consul_server: 'localhost:8500' prometheus::consul_exporter::download_extension: 'tar.gz' @@ -76,8 +69,6 @@ prometheus::consul_exporter::user: 'consul-exporter' prometheus::consul_exporter::version: '0.7.1' prometheus::consul_exporter::web_listen_address: ':9107' prometheus::consul_exporter::web_telemetry_path: '/metrics' -prometheus::download_extension: 'tar.gz' -prometheus::download_url_base: 'https://github.com/prometheus/prometheus/releases' prometheus::elasticsearch_exporter::cnf_uri: 'http://localhost:9200' prometheus::elasticsearch_exporter::cnf_timeout: '5s' prometheus::elasticsearch_exporter::download_extension: 'tar.gz' @@ -90,16 +81,6 @@ prometheus::elasticsearch_exporter::service_name: 'elasticsearch_exporter' prometheus::elasticsearch_exporter::user: 'elasticsearch-exporter' prometheus::elasticsearch_exporter::version: '1.1.0' prometheus::elasticsearch_exporter::use_kingpin: true -prometheus::extra_groups: [] -prometheus::global_config: - 'scrape_interval': '15s' - 'evaluation_interval': '15s' - 'external_labels': - 'monitor': 'master' -prometheus::group: 'prometheus' -prometheus::include_default_scrape_configs: true -prometheus::localstorage: '/var/lib/prometheus' -prometheus::manage_config: true prometheus::mesos_exporter::server_type: 'master' prometheus::mesos_exporter::cnf_scrape_uri: 'http://localhost:5050' prometheus::mesos_exporter::download_extension: 'tar.gz' @@ -199,13 +180,6 @@ prometheus::beanstalkd_exporter::user: 'beanstalkd-exporter' prometheus::beanstalkd_exporter::version: '1.0.5' prometheus::beanstalkd_exporter::mapping_config: '/etc/beanstalkd-exporter-mapping.conf' prometheus::beanstalkd_exporter::config: '/etc/beanstalkd-exporter.conf' -prometheus::package_ensure: 'latest' -prometheus::package_name: 'prometheus' -prometheus::rule_files: [] -prometheus::scrape_configs: [] -prometheus::remote_read_configs: [] -prometheus::remote_write_configs: [] -prometheus::shared_dir: '/usr/local/share/prometheus' prometheus::snmp_exporter::config_file: '/etc/snmp-exporter.yaml' prometheus::snmp_exporter::config_template: '' prometheus::snmp_exporter::download_extension: 'tar.gz' @@ -228,5 +202,3 @@ prometheus::statsd_exporter::package_name: 'statsd_exporter' prometheus::statsd_exporter::service_name: 'statsd_exporter' prometheus::statsd_exporter::user: 'statsd-exporter' prometheus::statsd_exporter::version: '0.17.0' -prometheus::storage_retention: '360h' # 15d; "d" suffix is only supported with prom >= 2.* -prometheus::user: 'prometheus' diff --git a/manifests/init.pp b/manifests/init.pp index 54a0a798..47c258be 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -221,29 +221,29 @@ # @param proxy_type # Optional proxy server type (none|http|https|ftp) class prometheus ( - String $user, - String $group, - Array $extra_groups, - Stdlib::Absolutepath $shared_dir, - Prometheus::Uri $download_url_base, - String $download_extension, - String $package_name, - String $package_ensure, - String $config_dir, - Stdlib::Absolutepath $localstorage, - String $config_template, - String $config_mode, - Hash $global_config, - Array $rule_files, - Array $scrape_configs, - Array $remote_read_configs, - Array $remote_write_configs, - Variant[Array,Hash] $alerts, - Array $alert_relabel_config, - Array $alertmanagers_config, - String $storage_retention, Stdlib::Absolutepath $env_file_path, - Boolean $manage_config, + Array $extra_groups = [], + Hash $global_config = { 'scrape_interval' => '15s', 'evaluation_interval' => '15s', 'external_labels' => { 'monitor' => 'master' } }, + String $package_ensure = 'latest', + String $package_name = 'prometheus', + Array $rule_files = [], + Array $scrape_configs = [], + Array $remote_read_configs = [], + Array $remote_write_configs = [], + Stdlib::Absolutepath $shared_dir = '/usr/local/share/prometheus', + String $storage_retention = '360h', + String $user = 'prometheus', + Prometheus::Uri $download_url_base = 'https://github.com/prometheus/prometheus/releases', + Array $alertmanagers_config = [], + Array $alert_relabel_config = [], + String $download_extension = 'tar.gz', + String $config_template = 'prometheus/prometheus.yaml.erb', + String $config_mode = '0640', + String $config_dir = '/etc/prometheus', + Variant[Array,Hash] $alerts = {}, + Boolean $manage_config = true, + String $group = 'prometheus', + Stdlib::Absolutepath $localstorage = '/var/lib/prometheus', Stdlib::Absolutepath $bin_dir = '/usr/local/bin', String $version = '2.30.3', String $install_method = 'url',