X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/22014524ab710947798fed63c81cafad02bcfb45..df86899444922ee6b8ea15338bd0ba7018b6a46d:/cookbooks/prometheus/recipes/server.rb?ds=sidebyside diff --git a/cookbooks/prometheus/recipes/server.rb b/cookbooks/prometheus/recipes/server.rb index 2fcaddf47..e10e9e4ce 100644 --- a/cookbooks/prometheus/recipes/server.rb +++ b/cookbooks/prometheus/recipes/server.rb @@ -19,17 +19,26 @@ include_recipe "apache" include_recipe "apt" +include_recipe "networking" passwords = data_bag_item("prometheus", "passwords") package "prometheus" -clients = search(:node, "recipes:prometheus\\:\\:default").sort_by(&:name) +jobs = {} + +search(:node, "recipes:prometheus\\:\\:default").sort_by(&:name).each do |client| + if client[:prometheus][:mode] == "wireguard" + node.default[:networking][:wireguard][:peers] << { + :public_key => client[:networking][:wireguard][:public_key], + :allowed_ips => client[:networking][:wireguard][:address], + :endpoint => "#{client.name}:51820" + } + end -prometheus_jobs = clients.each_with_object({}) do |client, jobs| client[:prometheus][:exporters].each do |name, address| jobs[name] ||= [] - jobs[name] << address + jobs[name] << { :address => address, :name => client.name } end end @@ -38,7 +47,7 @@ template "/etc/prometheus/prometheus.yml" do owner "root" group "root" mode "644" - variables :jobs => prometheus_jobs + variables :jobs => jobs end service "prometheus" do @@ -58,6 +67,7 @@ end service "grafana-server" do action [:enable, :start] + subscribes :restart, "template[/etc/grafana/grafana.ini]" end apache_module "alias"