Upgrading cross-datacenter replication installation with independent domain controller

Hello,

I sent this some time ago to the keycloak-user mailing list, but I got no answer.

I copy it here in case anybody can help:

I have the following installation and have doubts about the right procedure to upgrade it:

  • Two datacenters
  • Keycloak 4.8.3
  • A domain clustered installation with one cluster per datacenter
  • Cross-datacenter replication using infinispan server 9.3.6.
  • A single independent domain controller for both datacenters (the domain controller has no servers)
  • A backup for the domain controller in the other datacenter (also with no servers)

The domain controller:
Installed in $KEYCLOAK_HOME/domain-controller
Domain configuration in configuration/domain.xml
Host configuration in configuration/host-master.xml

The domain controller backup:
Installed in $KEYCLOAK_HOME/domain-controller
Domain configuration replicated with the --backup option
Host configuration in configuration/host-slave.xml

Each server in each cluster:
Installed in $KEYCLOAK_HOME/domain
Domain configuration replicated with the --cached-dc option
Host configuration in configuration/host-slave.xml

The infinispan server installation is totally equivalent, with its own domain controller.

I’ve been taking a look to the migrate-domain-clustered.cli and several doubts arise:

  • Should I apply this script only to the domain controller as domain configuration will be distributed to the other host controllers? Or accions are also needed for each slave instance? (Perhaps the script can perform changes to the host-slave.xml files?)
  • The script seems to assume the installation is located at $KEYCLOAK_HOME/domain. What is the right way to change it to $KEYCLOAK_HOME/domain-controller?
  • The script seems to assume that the host configuration is in the host.xml file. What is the right way to change it to host-master.xml?
  • The script needs the location of the file keycloak-server.json, but my installation has no such file. Is this file something present in older versions only? Can I ignore it?

Thank you very much in advance,

Juan