]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/prometheus/resources/exporter.rb
Switch to installing prometheus exporters from a custom git repository
[chef.git] / cookbooks / prometheus / resources / exporter.rb
index fd6e854678f86a236210116d3784f7df454159dc..ba214b5d621c74804b2bb52dd4b883c6cc7e1b59 100644 (file)
 default_action :create
 
 property :exporter, :kind_of => String, :name_property => true
-property :github_owner, :kind_of => String, :default => "prometheus"
-property :github_project, :kind_of => String
-property :version, :kind_of => String, :required => [:create]
 property :port, :kind_of => Integer, :required => [:create]
 property :listen_switch, :kind_of => String, :default => "web.listen-address"
 property :options, :kind_of => [String, Array]
 
 action :create do
-  package "prometheus-#{new_resource.exporter}-exporter" do
-    action :purge
-  end
-
-  remote_file archive_file do
-    action :create_if_missing
-    source archive_url
-    owner "root"
-    group "root"
-    mode "644"
-    backup false
-  end
-
-  execute archive_file do
-    action :nothing
-    command "tar -xf #{archive_file}"
-    cwd "/opt/prometheus"
-    user "root"
-    group "root"
-    subscribes :run, "remote_file[#{archive_file}]"
-  end
-
   systemd_service service_name do
     description "Prometheus #{new_resource.exporter} exporter"
     type "simple"
@@ -83,30 +58,24 @@ action :delete do
     action [:disable, :stop]
   end
 
-  package package_name do
-    action :purge
+  systemd_service service_name do
+    action :delete
   end
 end
 
-action_class do
-  def github_project
-    new_resource.github_project || "#{new_resource.exporter}_exporter"
-  end
-
-  def archive_url
-    "https://github.com/#{new_resource.github_owner}/#{github_project}/releases/download/v#{new_resource.version}/#{github_project}-#{new_resource.version}.linux-amd64.tar.gz"
-  end
-
-  def archive_file
-    "#{Chef::Config[:file_cache_path]}/prometheus-#{new_resource.exporter}-exporter-#{new_resource.version}.tar.gz"
+action :restart do
+  service service_name do
+    action :restart
   end
+end
 
+action_class do
   def service_name
     "prometheus-#{new_resource.exporter}-exporter"
   end
 
   def executable_path
-    "/opt/prometheus/#{github_project}-#{new_resource.version}.linux-amd64/#{github_project}"
+    "/opt/prometheus/exporters/#{new_resource.exporter}/#{new_resource.exporter}_exporter"
   end
 
   def executable_options
@@ -121,3 +90,7 @@ action_class do
     end
   end
 end
+
+def after_created
+  subscribes :restart, "git[/opt/prometheus]"
+end