X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/4d0fc19a3491af075756c3125cad3730e28d0f48..f47bac0a1d5a605cf56ce608340871c4de7e3121:/cookbooks/prometheus/recipes/server.rb diff --git a/cookbooks/prometheus/recipes/server.rb b/cookbooks/prometheus/recipes/server.rb index 5132eabdd..6a1219ca0 100644 --- a/cookbooks/prometheus/recipes/server.rb +++ b/cookbooks/prometheus/recipes/server.rb @@ -19,17 +19,34 @@ include_recipe "apache" include_recipe "apt" +include_recipe "networking" passwords = data_bag_item("prometheus", "passwords") +tokens = data_bag_item("prometheus", "tokens") + +prometheus_exporter "fastly" do + port 8080 + listen_switch "endpoint" + listen_type "url" + environment "FASTLY_API_TOKEN" => tokens["fastly"] +end 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 +55,7 @@ template "/etc/prometheus/prometheus.yml" do owner "root" group "root" mode "644" - variables :jobs => prometheus_jobs + variables :jobs => jobs end service "prometheus" do