使用 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 源代码

此设置默认从 nightly build 部署 Keycloak。要为特定的 Keycloak 源代码创建部署,可以指定 git 仓库和分支。这将替换 Keycloak 和 Keycloak operator 的部署。指定以下变量以使用自定义源代码

变量 详细信息

KC_REPOSITORY

从中克隆 Keycloak 源代码的 Git 仓库。示例: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。

警告 / 已知问题