X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/60b19818712842f23e5039de2202f7ee45dbb614..92b05918c0d83567fb1154c0139182262142f176:/cookbooks/php/resources/fpm.rb diff --git a/cookbooks/php/resources/fpm.rb b/cookbooks/php/resources/fpm.rb index 0376af4a4..657f3b51b 100644 --- a/cookbooks/php/resources/fpm.rb +++ b/cookbooks/php/resources/fpm.rb @@ -17,22 +17,51 @@ # limitations under the License. # +unified_mode true + default_action :create property :pool, :kind_of => String, :name_property => true -property :cookbook, :kind_of => String -property :template, :kind_of => String, :required => true -property :variables, :kind_of => Hash, :default => {} +property :port, :kind_of => Integer +property :user, :kind_of => String, :default => "www-data" +property :group, :kind_of => String, :default => "www-data" +property :pm, :kind_of => String, :default => "dynamic" +property :pm_max_children, :kind_of => Integer, :default => 10 +property :pm_start_servers, :kind_of => Integer, :default => 4 +property :pm_min_spare_servers, :kind_of => Integer, :default => 2 +property :pm_max_spare_servers, :kind_of => Integer, :default => 6 +property :pm_max_requests, :kind_of => Integer, :default => 1000 +property :request_terminate_timeout, :kind_of => Integer, :default => 1800 +property :environment, :kind_of => Hash, :default => {} +property :php_values, :kind_of => Hash, :default => {} +property :php_admin_values, :kind_of => Hash, :default => {} +property :php_flags, :kind_of => Hash, :default => {} +property :php_admin_flags, :kind_of => Hash, :default => {} property :reload_fpm, :kind_of => [TrueClass, FalseClass], :default => true +property :prometheus_port, :kind_of => Integer action :create do - declare_resource :template, conf_file do - cookbook new_resource.cookbook - source new_resource.template + template conf_file do + cookbook "php" + source "pool.conf.erb" owner "root" group "root" - mode 0o644 - variables new_resource.variables + mode "644" + variables new_resource.to_hash.merge(:pool => new_resource.pool) + end + + if new_resource.prometheus_port + prometheus_exporter "phpfpm" do + port new_resource.prometheus_port + service service_name + command "server" + options "--phpfpm.scrape-uri=#{scrape_uri}" + end + else + prometheus_exporter "phpfpm" do + action :delete + service service_name + end end end @@ -40,6 +69,11 @@ action :delete do file conf_file do action :delete end + + prometheus_exporter "phpfpm" do + action :delete + service service_name + end end action_class do @@ -50,6 +84,18 @@ action_class do def conf_file "/etc/php/#{php_version}/fpm/pool.d/#{new_resource.pool}.conf" end + + def service_name + "phpfpm-#{new_resource.pool}" + end + + def scrape_uri + if new_resource.port + "tcp://127.0.0.1:#{new_resource.port}/status" + else + "unix:///run/php/#{new_resource.pool}.sock;/status" + end + end end def after_created