From a5207eb7174c1536558031aff0736f45be1c6f98 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sat, 18 Nov 2023 18:21:41 +1100 Subject: [PATCH] feat: add prometheus server - bump enc, include prometheus server nodes - add prometheus role and server class --- hieradata/roles/infra/metrics/server.yaml | 10 ++++++++ hieradata/roles/puppet/puppetmaster.yaml | 2 +- site/profiles/manifests/metrics/server.pp | 25 +++++++++++++++++++ .../manifests/infra/metrics/prometheus.pp | 7 ++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 hieradata/roles/infra/metrics/server.yaml create mode 100644 site/profiles/manifests/metrics/server.pp create mode 100644 site/roles/manifests/infra/metrics/prometheus.pp diff --git a/hieradata/roles/infra/metrics/server.yaml b/hieradata/roles/infra/metrics/server.yaml new file mode 100644 index 0000000..1b5c298 --- /dev/null +++ b/hieradata/roles/infra/metrics/server.yaml @@ -0,0 +1,10 @@ +--- +profiles::metrics::server::version: '2.48.0' +profiles::metrics::server::manage_user: true +profiles::metrics::server::manage_group: true +profiles::metrics::server::retention: 30d +profiles::metrics::server::scrape_jobs: + - node + - bind + - puppetdb + - systemd diff --git a/hieradata/roles/puppet/puppetmaster.yaml b/hieradata/roles/puppet/puppetmaster.yaml index 931b916..7ca990d 100644 --- a/hieradata/roles/puppet/puppetmaster.yaml +++ b/hieradata/roles/puppet/puppetmaster.yaml @@ -9,7 +9,7 @@ profiles::puppet::autosign::domains: # - 'somenode.main.unkin.net' profiles::puppet::enc::repo: https://git.unkin.net/unkinben/puppet-enc.git -profiles::puppet::enc::release: '0.6' +profiles::puppet::enc::release: '0.7' profiles::puppet::enc::force: true profiles::puppet::r10k::r10k_repo: https://git.unkin.net/unkinben/puppet-r10k.git profiles::puppet::g10k::bin_path: '/opt/puppetlabs/bin/g10k' diff --git a/site/profiles/manifests/metrics/server.pp b/site/profiles/manifests/metrics/server.pp new file mode 100644 index 0000000..1bb82cf --- /dev/null +++ b/site/profiles/manifests/metrics/server.pp @@ -0,0 +1,25 @@ +# profiles::metrics::server +class profiles::metrics::server ( + String $version = '2.48.0', + Boolean $manage_user = true, + Boolean $manage_group = true, + String $retention = '30d', + Array $scrape_jobs = [], +) { + + $collect_scrape_jobs = $scrape_jobs.map |$job| { + { + 'job_name' => $job, + } + } + + class { 'prometheus::server': + manage_user => $manage_user, + manage_group => $manage_group, + version => $version, + collect_scrape_jobs => $collect_scrape_jobs, + extra_options => { + 'storage.tsdb.retention.time' => $retention, + }, + } +} diff --git a/site/roles/manifests/infra/metrics/prometheus.pp b/site/roles/manifests/infra/metrics/prometheus.pp new file mode 100644 index 0000000..d3dd8ea --- /dev/null +++ b/site/roles/manifests/infra/metrics/prometheus.pp @@ -0,0 +1,7 @@ +# a role to deploy a prometheus server +class roles::infra::metrics::prometheus { + include profiles::defaults + include profiles::base + include profiles::base::datavol + include profiles::metrics::server +}