diff --git a/manifests/init.pp b/manifests/init.pp index a5245c9f0..424b665ab 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -64,6 +64,9 @@ # * ``running`` (default) # * ``stopped`` # +# @param service_override +# Override the jenkins service configuration +# # @param service_provider # Override ``Service[jenkins]`` resource provider # @@ -281,6 +284,7 @@ Boolean $manage_service = true, Boolean $service_enable = true, Enum['running', 'stopped'] $service_ensure = 'running', + Hash[String[1], String] $service_override = {}, Optional[String] $service_provider = undef, Hash $config_hash = {}, Hash $plugin_hash = {}, diff --git a/manifests/user_setup.pp b/manifests/user_setup.pp index 586a19dc0..886ac3e4d 100644 --- a/manifests/user_setup.pp +++ b/manifests/user_setup.pp @@ -62,7 +62,7 @@ systemd::dropin_file { 'puppet-overrides.conf': unit => 'jenkins.service', - content => epp("${module_name}/jenkins-override.epp", { 'environment' => $config_hash }), + content => epp("${module_name}/jenkins-override.epp", { 'environment' => $config_hash, 'dropin_config' => $jenkins::service_override }), notify_service => true, } } diff --git a/spec/classes/jenkins_config_spec.rb b/spec/classes/jenkins_config_spec.rb index 6ab662aa1..41ae4f177 100644 --- a/spec/classes/jenkins_config_spec.rb +++ b/spec/classes/jenkins_config_spec.rb @@ -22,7 +22,7 @@ end context 'create config' do - let(:params) { { config_hash: { 'AJP_PORT' => { 'value' => '1234' } } } } + let(:params) { { config_hash: { 'AJP_PORT' => { 'value' => '1234' } }, service_override: { 'WorkingDirectory' => '/example/path' } } } it do is_expected.to contain_file('/etc/systemd/system/jenkins.service.d/puppet-overrides.conf'). @@ -30,6 +30,7 @@ [Service] Environment="JAVA_OPTS=-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false" Environment="AJP_PORT=1234" + WorkingDirectory=/example/path CONFIG end end diff --git a/templates/jenkins-override.epp b/templates/jenkins-override.epp index 120162e1c..70e573662 100644 --- a/templates/jenkins-override.epp +++ b/templates/jenkins-override.epp @@ -1,5 +1,10 @@ -<%| Hash[String, Struct[{value => Any}]] $environment |-%> +<%- | Hash[String, Struct[{value => Any}]] $environment, + Hash[String[1], String] $dropin_config = {} +| -%> [Service] <% $environment.each |$key, $entry| { -%> Environment="<%= $key %>=<%= $entry['value'] %>" <% } -%> +<% $dropin_config.each |$key, $value| { -%> +<%= $key %>=<%= $value %> +<% } -%>