From 0f17f0abc56bfefc51814d18bc4f8bc1431180e0 Mon Sep 17 00:00:00 2001 From: Ryan Emerson Date: Wed, 22 May 2024 12:26:26 +0100 Subject: [PATCH] Require external Infinispan be of version 15 or greater Signed-off-by: Ryan Emerson Signed-off-by: Alexander Schwartz Co-authored-by: Alexander Schwartz --- .../upgrading/topics/changes/changes-25_0_0.adoc | 7 ++++++- .../high-availability/bblocks-active-passive-sync.adoc | 5 +++++ .../deploy-infinispan-kubernetes-crossdc.adoc | 6 ++++++ .../storage/legacy/infinispan/CacheManagerFactory.java | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/documentation/upgrading/topics/changes/changes-25_0_0.adoc b/docs/documentation/upgrading/topics/changes/changes-25_0_0.adoc index 4be585b078..c8cc3beec6 100644 --- a/docs/documentation/upgrading/topics/changes/changes-25_0_0.adoc +++ b/docs/documentation/upgrading/topics/changes/changes-25_0_0.adoc @@ -420,4 +420,9 @@ It is highly recommended to avoid obtaining the `KeycloakSession` by means other In previous versions the session max lifespan and idle timeout calculation was slightly different when validating if a session was still valid. Since now that validation uses the same code than the rest of the project. -If the session is using the remember me feature, the idle timeout and max lifespan are the maximum value between the common SSO and the remember me configuration values. \ No newline at end of file +If the session is using the remember me feature, the idle timeout and max lifespan are the maximum value between the common SSO and the remember me configuration values. + += External {jdgserver_name} requirements + +{project_name} now requires a {jdgserver_name} server version of at least 15.0.0 for external {jdgserver_name} deployments. +An external {jdgserver_name} deployment is supported for multi-site setups as outlined in the HA guide. diff --git a/docs/guides/high-availability/bblocks-active-passive-sync.adoc b/docs/guides/high-availability/bblocks-active-passive-sync.adoc index 48fce7c00a..81e4075ff3 100644 --- a/docs/guides/high-availability/bblocks-active-passive-sync.adoc +++ b/docs/guides/high-availability/bblocks-active-passive-sync.adoc @@ -48,6 +48,11 @@ A deployment of {jdgserver_name} that leverages the {jdgserver_name}'s Cross-DC *Not considered:* Direct interconnections between the Kubernetes clusters on the network layer. It might be considered in the future. +[IMPORTANT] +==== +Only {jdgserver_name} server versions 15.0.0 or greater are supported in Active/Passive deployments. +==== + == {project_name} A clustered deployment of {project_name} in each site, connected to an external {jdgserver_name}. diff --git a/docs/guides/high-availability/deploy-infinispan-kubernetes-crossdc.adoc b/docs/guides/high-availability/deploy-infinispan-kubernetes-crossdc.adoc index 793a253d97..ab6506551e 100644 --- a/docs/guides/high-availability/deploy-infinispan-kubernetes-crossdc.adoc +++ b/docs/guides/high-availability/deploy-infinispan-kubernetes-crossdc.adoc @@ -16,6 +16,12 @@ This {section} assumes two {ocp} clusters named `{site-a}` and `{site-b}`. This is a building block following the concepts described in the <@links.ha id="concepts-active-passive-sync" /> {section}. See the <@links.ha id="introduction" /> {section} for an overview. + +[IMPORTANT] +==== +Only {jdgserver_name} server versions 15.0.0 or greater are supported for external {jdgserver_name} deployments. +==== + == Architecture This setup deploys two synchronously replicating {jdgserver_name} clusters in two sites with a low-latency network connection. diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/storage/legacy/infinispan/CacheManagerFactory.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/storage/legacy/infinispan/CacheManagerFactory.java index 52f0bfe5ae..5dd58c841c 100644 --- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/storage/legacy/infinispan/CacheManagerFactory.java +++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/storage/legacy/infinispan/CacheManagerFactory.java @@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import io.micrometer.core.instrument.Metrics; +import org.infinispan.client.hotrod.RemoteCache; import org.infinispan.client.hotrod.impl.ConfigurationProperties; import org.infinispan.commons.api.Lifecycle; import org.infinispan.configuration.cache.ConfigurationBuilder; @@ -47,6 +48,7 @@ import org.jgroups.util.TLSClientAuth; import org.keycloak.common.Profile; import org.keycloak.config.CachingOptions; import org.keycloak.config.MetricsOptions; +import org.keycloak.connections.infinispan.InfinispanUtil; import org.keycloak.marshalling.Marshalling; import org.keycloak.quarkus.runtime.configuration.Configuration;