Cross-site deployment with Aurora DB, Infinispan and Keycloak

Deploy a Keycloak between two ROSA cluster with Infinispan (cross-site enabled) and a shared Aurora DB.

This steps creates the Aurora DB, if it does not exist yet, and configures the AWS VPC and AWS Route Tables to allow the ROSA clusters to access the Aurora DB instance.

Both Infinispan and Keycloak are deployed in the same namespace.

Installation steps

  1. Check out the Git repository from https://github.com/keycloak/keycloak-benchmark/.

  2. Change to the folder provision/rosa-cross-dc.

  3. Run the task command to provision all containers on both OpenShift clusters (check below the required variables).

Available Tasks

Two tasks are available, one to deploy and the other to undeploy, as follows:

task: Available tasks for this project:
* default:        Deploys Infinispan, Aurora DB and Keycloak in a Cross-Site deployment using ROSA clusters
* undeploy:       Undeploy Infinispan and Keycloak in a Cross-Site deployment using ROSA clusters
The undeploy task does not remove the Aurora DB and it needs to be manually remove. Check scripts in directory provision/aws/rds.

Required variables

Variable Details

AURORA_CLUSTER

The unique name for Aurora Database.

AURORA_REGION

The AWS region to deploy Aurora DB.

ROSA_CLUSTER_NAME_1

The mame of one ROSA cluster.

ROSA_CLUSTER_NAME_2

The mame of the other ROSA cluster.

Customize Aurora DB, Keycloak or Infinispan deployments.

This installation scripts support most of the variables defined by the original deployment scripts.

For Aurora DB variables, check the Aurora installation page.

For Infinispan deployment, check Infinispan installation page.

For Keycloak deployment, check Keycloak Customization page. Note that not all variable are respected. As an example, KC_ISPN_NAMESPACE is not possible to change since it is automatically computed by this installation script.

Warnings / Known issues

Using --force will break the keycloak deployment because it patches the keycloak operator deployment with an incorrect image.