跨站点部署与 Aurora DB、Infinispan 和 Keycloak

在两个 ROSA 集群之间部署 Keycloak,使用 Infinispan(启用跨站点功能)和共享 Aurora DB。

这些步骤将创建 Aurora DB(如果它尚不存在),并配置 AWS VPC 和 AWS 路由表,以允许 ROSA 集群访问 Aurora DB 实例。

Infinispan 和 Keycloak 都部署在同一个命名空间中。

安装步骤

  1. https://github.com/keycloak/keycloak-benchmark/ 中检出 Git 存储库。

  2. 按照 AWS Route 53 作为 ROSA 的负载均衡器 中的说明创建 Route53 条目。

  3. 更改到文件夹 provision/rosa-cross-dc

  4. 在文件夹中的 .env 文件中提供 必需的变量

  5. 运行 task 命令以在两个 OpenShift 集群上配置所有容器(请查看下面的必需变量)。

可用任务

有两个任务可用,一个用于部署,另一个用于撤销部署,如下所示

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
undeploy 任务不会删除 Aurora DB,需要手动删除。查看目录 provision/aws/rds 中的脚本。

必需的变量

变量 详细信息

AURORA_CLUSTER

Aurora 数据库的唯一名称。

AURORA_REGION

部署 Aurora DB 的 AWS 区域。

ROSA_CLUSTER_NAME_1

一个 ROSA 集群的名称。

ROSA_CLUSTER_NAME_2

另一个 ROSA 集群的名称。

KC_CLIENT_URL

AWS Route 53 作为 ROSA 的负载均衡器 中提供的 URL

KC_HEALTH_URL_CLUSTER_1

AWS Route 53 作为 ROSA 的负载均衡器 中提供的 URL

KC_HEALTH_URL_CLUSTER_2

AWS Route 53 作为 ROSA 的负载均衡器 中提供的 URL

自定义 Aurora DB、Keycloak 或 Infinispan 部署。

这些安装脚本支持原始部署脚本中定义的大多数变量。

有关 Aurora DB 变量,请查看 Aurora 安装 页面。

有关 Infinispan 部署,请查看 Infinispan 安装 页面。

有关 Keycloak 部署,请查看 Keycloak 自定义 页面。请注意,并非所有变量都会被尊重。例如,KC_ISPN_NAMESPACE 无法更改,因为它由该安装脚本自动计算。

自定义 Keycloak 源代码

默认情况下,此设置将从夜间构建部署 Keycloak。要为特定 Keycloak 源代码创建部署,可以指定 git 存储库和分支。这将替换 Keycloak 和 Keycloak 运算符的部署。要使用自定义源代码,请指定以下变量

变量 详细信息

KC_REPOSITORY

从 git 存储库克隆 Keycloak 源代码。例如:https://github.com/keycloak/keycloak.git

注意:SSH 存储库可能在 Github Actions 中无法正常工作,因为可能没有配置 SSH 密钥。

KC_BRANCH

KC_REPOSITORY 中要使用的分支。

使用 AWS JDBC 驱动程序

AWS 提供了一个 JDBC 驱动程序包装器,它与我们在设置中使用的 Aurora PostgreSQL 兼容。此驱动程序在使用兼容数据库时提供了一些附加功能。此包装器在跨站点部署中默认启用。

要禁用 AWS JDBC 驱动程序,请将 KC_USE_AWS_JDBC_WRAPPER 变量设置为 false

要指定 AWS JDBC 驱动程序的版本,请将 KC_AWS_JDBC_WRAPPER_URL 变量设置为相应 jar 文件的 URL。

警告/已知问题