From 0eb3c80aed0362800df9956fd69c0da78bbb0e8a Mon Sep 17 00:00:00 2001 From: Michal Vesely Date: Thu, 11 Jan 2018 12:12:36 +0100 Subject: [PATCH] add compile_mode parameter to puppetserver.conf --- manifests/init.pp | 3 +++ manifests/params.pp | 1 + manifests/server.pp | 1 + manifests/server/puppetserver.pp | 1 + spec/classes/puppet_server_puppetserver_spec.rb | 1 + templates/server/puppetserver/conf.d/puppetserver.conf.erb | 3 +++ 6 files changed, 10 insertions(+) diff --git a/manifests/init.pp b/manifests/init.pp index cebaa1b6..64b99227 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -527,6 +527,8 @@ # $server_puppetserver_trusted_agents:: Certificate names of puppet agents that are allowed to fetch *all* catalogs # Defaults to [] and all agents are only allowed to fetch their own catalogs. # +# $server_compile_mode:: Used to control JRuby's "CompileMode", which may improve performance. +# Defaults to undef (off). # === Usage: # # * Simple usage: @@ -725,6 +727,7 @@ Optional[Array] $server_metrics_allowed = $::puppet::params::server_metrics_allowed, Boolean $server_puppetserver_experimental = $puppet::params::server_puppetserver_experimental, Array[String] $server_puppetserver_trusted_agents = $puppet::params::server_puppetserver_trusted_agents, + Optional[Enum['off', 'jit', 'force']] $server_compile_mode = $puppet::params::server_compile_mode, ) inherits puppet::params { include ::puppet::config Class['puppet::config'] -> Class['puppet'] diff --git a/manifests/params.pp b/manifests/params.pp index 849dcc63..a6896dcc 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -31,6 +31,7 @@ $server_crl_enable = undef $prerun_command = undef $postrun_command = undef + $server_compile_mode = undef $dns_alt_names = [] $use_srv_records = false diff --git a/manifests/server.pp b/manifests/server.pp index c3fa7647..e8f3cae4 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -449,6 +449,7 @@ Variant[Undef, Array] $metrics_allowed = $::puppet::server_metrics_allowed, Boolean $puppetserver_experimental = $::puppet::server_puppetserver_experimental, Array[String] $puppetserver_trusted_agents = $::puppet::server_puppetserver_trusted_agents, + Optional[Enum['off', 'jit', 'force']] $compile_mode = $::puppet::server_compile_mode, ) { if $implementation == 'master' and $ip != $puppet::params::ip { notify { diff --git a/manifests/server/puppetserver.pp b/manifests/server/puppetserver.pp index 8b69358e..4f4f5dbc 100644 --- a/manifests/server/puppetserver.pp +++ b/manifests/server/puppetserver.pp @@ -122,6 +122,7 @@ $server_experimental = $::puppet::server::puppetserver_experimental, $server_trusted_agents = $::puppet::server::puppetserver_trusted_agents, $allow_header_cert_info = $::puppet::server::allow_header_cert_info, + $compile_mode = $::puppet::server::compile_mode, ) { include ::puppet::server diff --git a/spec/classes/puppet_server_puppetserver_spec.rb b/spec/classes/puppet_server_puppetserver_spec.rb index f347479a..df064e3a 100644 --- a/spec/classes/puppet_server_puppetserver_spec.rb +++ b/spec/classes/puppet_server_puppetserver_spec.rb @@ -71,6 +71,7 @@ :server_crl_enable => true, :server_trusted_agents => [], :allow_header_cert_info => false, + :compile_mode => 'off', # In reality defaults to undef } end describe 'with default parameters' do diff --git a/templates/server/puppetserver/conf.d/puppetserver.conf.erb b/templates/server/puppetserver/conf.d/puppetserver.conf.erb index 52d63ac9..e71c6781 100644 --- a/templates/server/puppetserver/conf.d/puppetserver.conf.erb +++ b/templates/server/puppetserver/conf.d/puppetserver.conf.erb @@ -73,6 +73,9 @@ jruby-puppet: { # (optional) enable or disable environment class cache environment-class-cache-enabled: <%= @server_environment_class_cache_enabled %> <%- end -%> +<%- if @compile_mode %> + compile-mode: <%= @compile_mode %> +<%- end -%> } # settings related to HTTP client requests made by Puppet Server