From e5d93e869473d76330bd3133205ffff11694a437 Mon Sep 17 00:00:00 2001 From: treydock Date: Sat, 15 Jul 2023 08:09:15 -0400 Subject: [PATCH] Set JAVA_HOME environment variable for Keycloak service (#293) Fixes #285 --- manifests/init.pp | 3 ++- spec/classes/init_spec.rb | 10 ++++++++++ templates/keycloak.service.erb | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/manifests/init.pp b/manifests/init.pp index d0427402..2fce729e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -26,7 +26,8 @@ # @param java_package # Java package name, only used when `java_declare_method` is `class` # @param java_home -# Java home path, only used when `java_declare_method` is `class` +# Java home path. This value is used when `java_declare_method` is `class` +# as well as to set JAVA_HOME environment variable for the Keycloak service. # @param java_alternative_path # Java alternative path, only used when `java_declare_method` is `class` # @param java_alternative diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index 96180a1c..7bf21866 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -183,6 +183,16 @@ ) end end + + context 'when java_home defined' do + let(:params) { { java_home: '/foo' } } + + it do + is_expected.to contain_systemd__unit_file('keycloak.service').with( + content: %r{Environment='JAVA_HOME=/foo'}, + ) + end + end end end end diff --git a/templates/keycloak.service.erb b/templates/keycloak.service.erb index eeac048d..88d8a0c5 100644 --- a/templates/keycloak.service.erb +++ b/templates/keycloak.service.erb @@ -17,6 +17,7 @@ Environment='JAVA_OPTS_APPEND=<%= scope['keycloak::java_opts'].join(' ') %>' Environment='JAVA_OPTS_APPEND=<%= scope['keycloak::java_opts'] %>' <%- end -%> <% end -%> +Environment='JAVA_HOME=<%= scope['keycloak::java_home'] %>' User=<%= scope['keycloak::user'] %> Group=<%= scope['keycloak::group'] %> ExecStart=<%= scope['keycloak::service_start_cmd'] %>