diff --git a/roles/infinispan/README.md b/roles/infinispan/README.md
index fe16274..ba65a13 100644
--- a/roles/infinispan/README.md
+++ b/roles/infinispan/README.md
@@ -18,7 +18,9 @@ Role Defaults
|`jdg_jgroups_relay_sites`| List of site names for cross-DC relaying | `[]` |
|`jdg_jgroups_relay_site`| Site the inventory host is in when cross-DC is enabled | `''` |
|`jdg_jgroups_jdbcping`| Enable clustering using JDBC PING discovery | `False` |
-
+|`jdg_keycloak_persistence`| Enable persitence datasource for keycloak caches | `False` |
+|`jdg_service_user`| posix account for the service installation | `jdg` |
+|`jdg_service_group`| posix group for the service installation | `jdg` |
Role Variables
diff --git a/roles/infinispan/defaults/main.yml b/roles/infinispan/defaults/main.yml
index 91629e5..82aba06 100644
--- a/roles/infinispan/defaults/main.yml
+++ b/roles/infinispan/defaults/main.yml
@@ -19,6 +19,8 @@ jdg_bind_address: localhost
jdg_port: 11222
jdg_jgroups_port: 7800
jdg_jgroups_relay_port: 7801
+jdg_service_user: jdg
+jdg_service_group: jdg
# flag to enable protocol encryption
jdg_default_realm_tls: False
@@ -34,3 +36,6 @@ jdg_jgroups_relay_site: ''
# flag to enable keycloak integration
infinispan_keycloak_caches: False
+
+# flag to enable datasource for keycloak integration
+jdg_keycloak_persistence: False
\ No newline at end of file
diff --git a/roles/infinispan/handlers/main.yml b/roles/infinispan/handlers/main.yml
index ec9ed20..050d212 100644
--- a/roles/infinispan/handlers/main.yml
+++ b/roles/infinispan/handlers/main.yml
@@ -1,5 +1,6 @@
---
- name: restart infinispan
+ throttle: 1
systemd:
name: "{{ jdg.service.name }}"
state: restarted
diff --git a/roles/infinispan/templates/infinispan.xml.j2 b/roles/infinispan/templates/infinispan.xml.j2
index 611f57b..cfa6f58 100644
--- a/roles/infinispan/templates/infinispan.xml.j2
+++ b/roles/infinispan/templates/infinispan.xml.j2
@@ -83,25 +83,53 @@
{% if jdg_jgroups_relay %}
-{% else %}
-
-{% endif %}
+
{% for keycloak_cache in jdg_keycloak_cache.caches %}
-
+
+{% if jdg_keycloak_persistence %}
+
+
+
+
+
+
+
+
+
+
+
+{% else %}
+{% endif %}
{% for site in jdg_jgroups_relay_sites %}
- {% if site != jdg_jgroups_relay_site %}{% endif %}
+{% if site != jdg_jgroups_relay_site %}
+{% endif %}
{% endfor %}
-
+
+{% endfor %}
+{% else %}
+
+
+{% for keycloak_cache in jdg_keycloak_cache.caches %}
+
+
+
+
{% endfor %}
+
+
+
+
+
+{% endif %}
{% endif %}
@@ -140,7 +168,19 @@
-
+{% if jdg_keycloak_persistence %}
+
+
+
+
+
+
+
+{% endif %}
diff --git a/roles/infinispan/vars/main.yml b/roles/infinispan/vars/main.yml
index f1a7bf5..2dfb17f 100644
--- a/roles/infinispan/vars/main.yml
+++ b/roles/infinispan/vars/main.yml
@@ -22,9 +22,9 @@ jdg:
users: "{{ override_jdg_config_users_properties | default('users.properties') }}"
groups: "{{ override_jdg_config_group_properties | default('groups.properties') }}"
user:
- name: "{{ override_jdg_user | default('jdg') }}"
+ name: "{{ jdg_service_user }}"
group:
- name: "{{ override_jdg_group | default('jdg') }}"
+ name: "{{ jdg_service_group }}"
service:
name: "{{ override_jdg_service_name | default('jdg' if jdg_rhn_id is defined else 'infinispan') }}"
users: "{{ [ jdg_supervisor ] + infinispan_users }}"
@@ -48,4 +48,3 @@ jdg_keycloak_cache:
- offlineClientSessions
- loginFailures
- actionTokens
- - work
\ No newline at end of file