Filippo Giunchedi has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/291710

Change subject: prometheus: add tools role
......................................................................

prometheus: add tools role

Change-Id: Ia5e1c50a64268422b5aabeffdf8ba23ca5f8b247
---
A modules/role/manifests/prometheus/tools.pp
1 file changed, 53 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/10/291710/1

diff --git a/modules/role/manifests/prometheus/tools.pp 
b/modules/role/manifests/prometheus/tools.pp
new file mode 100644
index 0000000..09837a7
--- /dev/null
+++ b/modules/role/manifests/prometheus/tools.pp
@@ -0,0 +1,53 @@
+# == Class: role::prometheus::tools
+#
+# This role provides both project-wide host discovery/monitoring (via cron
+# prometheus-labs-targets) and kubernetes discovery/monitoring via Prometheus'
+# native k8s support.
+
+class role::prometheus::tools {
+    $bearer_token_file = '/srv/prometheus/tools/k8s.token'
+    $targets_file = '/srv/prometheus/tools/targets/node_project.yml'
+
+    prometheus::server { 'tools':
+        listen_address      => '127.0.0.1:9902',
+        scrape_config_extra => [
+          {
+            'job_name'              => 'k8s',
+            'bearer_token_file'     => $bearer_token_file,
+            'kubernetes_sd_configs' => [
+              {
+                'api_servers'       => hiera('k8s::master_host'),
+                'bearer_token_file' => $bearer_token_file,
+              },
+            ]
+          }
+        ]
+    }
+
+    prometheus::web { 'tools':
+        proxy_pass => 'http://localhost:9902/tools',
+    }
+
+    # Ugly hack, ugh! (from modules/toollabs/manifests/kube2proxy.pp)
+    $users = hiera('k8s_users')
+    $client_token = inline_template("<%= @users.select { |u| u['name'] == 
'prometheus' }[0]['token'] %>")
+
+    file { $bearer_token_file:
+        ensure  => present,
+        content => $client_token,
+        mode    => '0400',
+        owner   => 'prometheus',
+        group   => 'prometheus',
+        require => Prometheus::Server['tools'],
+    }
+
+    include ::prometheus::scripts
+
+    cron { 'prometheus_tools_project_targets':
+        ensure  => present,
+        command => "/usr/local/bin/prometheus-labs-targets > 
${targets_file}.$$ && mv ${targets_file}.$$ ${targets_file}",
+        minute  => '*/10',
+        hour    => '*',
+        user    => 'prometheus',
+    }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/291710
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia5e1c50a64268422b5aabeffdf8ba23ca5f8b247
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Filippo Giunchedi <fgiunch...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to