I want to run Keycloak 17 (Quarkus Edition) in HA mode with the provided infinispan. Because we are running Keycloak on serveral stages, I want to specify a infinispan cluster name. As I understood from the documentation I should configure this in the given infinispan config xml ./conf/cache-ispn.xml
I altered
<transport lock-timeout="60000"/>
to
<transport cluster="myClusterName" lock-timeout="60000"/>
After that I ran .\kc.bat build --cache=ispn --cache-config-file=conf/cache-ispn.xml
and started up the server with .\kc.bat start
Sadly the output logging shows this:
[org.infinispan.CLUSTER] (keycloak-cache-init) ISPN000078: Starting JGroups channel `ISPN`[org.infinispan.CLUSTER] (keycloak-cache-init) ISPN000094: Received new cluster view for channel ISPN: [MyHostName-14281|0] (1) [MyHostName-14281]
As seen in the logs, the cluster name still is the default "ISPN".
I already consulted the infinispan docs here: https://infinispan.org/docs/stable/titles/configuring/configuring.html
as well as the Keycloak docs:
https://www.keycloak.org/server/caching
https://www.keycloak.org/server/configuration
Can anyone help me out? Is this a bug related to Keycloak 17 or am I missing something in the infinispan config?
Full Infinispan Config:
<?xml version="1.0" encoding="UTF-8"?><!-- ~ Copyright 2019 Red Hat, Inc. and/or its affiliates ~ and other contributors as indicated by the @author tags. ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --><infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:11.0 http://www.infinispan.org/schemas/infinispan-config-11.0.xsd" xmlns="urn:infinispan:config:11.0"><cache-container name="keycloak"><transport cluster="myClusterName" lock-timeout="60000"/><local-cache name="realms"><encoding><key media-type="application/x-java-object"/><value media-type="application/x-java-object"/></encoding><memory max-count="10000"/></local-cache><local-cache name="users"><encoding><key media-type="application/x-java-object"/><value media-type="application/x-java-object"/></encoding><memory max-count="10000"/></local-cache><distributed-cache name="sessions" owners="2"><expiration lifespan="-1"/></distributed-cache><distributed-cache name="authenticationSessions" owners="2"><expiration lifespan="-1"/></distributed-cache><distributed-cache name="offlineSessions" owners="2"><expiration lifespan="-1"/></distributed-cache><distributed-cache name="clientSessions" owners="2"><expiration lifespan="-1"/></distributed-cache><distributed-cache name="offlineClientSessions" owners="2"><expiration lifespan="-1"/></distributed-cache><distributed-cache name="loginFailures" owners="2"><expiration lifespan="-1"/></distributed-cache><local-cache name="authorization"><encoding><key media-type="application/x-java-object"/><value media-type="application/x-java-object"/></encoding><memory max-count="10000"/></local-cache><replicated-cache name="work"><expiration lifespan="-1"/></replicated-cache><local-cache name="keys"><encoding><key media-type="application/x-java-object"/><value media-type="application/x-java-object"/></encoding><expiration max-idle="3600000"/><memory max-count="1000"/></local-cache><distributed-cache name="actionTokens" owners="2"><encoding><key media-type="application/x-java-object"/><value media-type="application/x-java-object"/></encoding><expiration max-idle="-1" lifespan="-1" interval="300000"/><memory max-count="-1"/></distributed-cache></cache-container></infinispan>