4.4. 迁移过程
- 将红帽构建的 Keycloak Operator 安装到命名空间中。
创建新的 CR 和相关 Secret。
手动将基于 Red Hat Single Sign-On 7.6 配置模板迁移到新 Red Hat build of Keycloak CR。有关 Template 参数和 Keycloak CR 字段之间的推荐映射,请参见以下示例。
以下示例将红帽构建的 Keycloak Operator CR 与之前由 Red Hat Single Sign-On 7.6 模板创建的 DeploymentConfig 进行比较。
用于红帽构建的 Keycloak 的 Operator CR
apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
name: rhbk
spec:
instances: 1
db:
vendor: postgres
host: postgres-db
usernameSecret:
name: keycloak-db-secret
key: username
passwordSecret:
name: keycloak-db-secret
key: password
http:
tlsSecret: sso-x509-https-secret
Red Hat Single Sign-On 7.6 的 DeploymentConfig
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
name: rhsso
spec:
replicas: 1
template:
spec:
volumes:
- name: sso-x509-https-volume
secret:
secretName: sso-x509-https-secret
defaultMode: 420
containers:
volumeMounts:
- name: sso-x509-https-volume
readOnly: true
env:
- name: DB_SERVICE_PREFIX_MAPPING
value: postgres-db=DB
- name: DB_USERNAME
value: username
- name: DB_PASSWORD
value: password
下表通过 JSON 路径表示法引用 Keycloak CR 的字段。例如,.spec 指的是 spec 字段。请注意,spec.unsupported 是一个技术预览字段。它更为表明,功能将由其他 CR 字段选择。以粗体 标记的参数受 passthrough 和 reencrypt 模板的支持。
4.4.1. 常规参数迁移 复制链接链接已复制到粘贴板!
| Red Hat Single Sign-On 7.6 | 红帽构建的 Keycloak 22.0 |
|---|---|
| APPLICATION_NAME | .metadata.name |
| IMAGE_STREAM_NAMESPACE | N/A - 镜像由 Operator 控制,或者您主使用 spec.image 指定自定义镜像 |
| SSO_ADMIN_USERNAME | 没有直接设置,默认为 admin |
| SSO_ADMIN_PASSWORD | N/A - 由 Operator 在初始协调过程中创建 |
| MEMORY_LIMIT |
|
| SSO_SERVICE_PASSWORD, SSO_SERVICE_USERNAME | 不再使用。 |
| SSO_TRUSTSTORE, SSO_TRUSTSTORE_PASSWORD, SSO_TRUSTSTORE_SECRET |
创建一个引用 truststore secret 的卷,并为该卷创建一个卷挂载。这需要在不支持的 spec 下完成:
在 .
例如:
|
| SSO_REALM | 如果您要重复使用现有数据库,则不需要此项。另一种方法是 RealmImport CR。 |
4.4.2. 数据库部署参数迁移 复制链接链接已复制到粘贴板!
POSTGRESQL_IMAGE_STREAM_TAG,POSTGRESQL_MAX_CONNECTIONS,VOLUME_CAPACITY 和 POSTGRESQL_SHARED_BUFFERS 将需要迁移到您选择的创建数据库部署的任何替换中。
4.4.3. 数据库连接参数迁移 复制链接链接已复制到粘贴板!
| Red Hat Single Sign-On 7.6 | 红帽构建的 Keycloak 22.0 |
|---|---|
| DB_VENDOR |
|
| DB_DATABASE |
|
| DB_MIN_POOL_SIZE |
|
| DB_MAX_POOL_SIZE |
|
| DB_TX_ISOLATION |
如果驱动程序支持或者目标数据库上的常规设置,则可通过 |
| DB_USERNAME |
|
| DB_PASSWORD |
|
| DB_JNDI | 不再可用 |
4.4.4. 网络参数迁移 复制链接链接已复制到粘贴板!
| Red Hat Single Sign-On 7.6 | 红帽构建的 Keycloak 22.0 |
|---|---|
| HOSTNAME_HTTP |
|
| HOSTNAME_HTTPS |
|
| SSO_HOSTNAME |
|
| HTTPS_SECRET |
|
| HTTPS_KEYSTORE HTTPS_KEYSTORE_TYPE HTTPS_NAME HTTPS_PASSWORD |
不再可用。 |
| X509_CA_BUNDLE | 不再可用。创建一个引用信任存储的卷。 |
请注意,红帽构建的 Keycloak Operator 目前不支持配置 TLS 终止的方法。默认情况下使用 passthrough 策略。因此,代理选项尚未作为第一类公民选项字段公开,因为是否使用了 passthrough 或 reencrypt 策略。但是,如果需要这个选项,可以替换默认 Ingress Operator 证书并手动配置 Route,以信任 Keycloak 证书的红帽构建。
然后,红帽构建的 Keycloak Operator 的默认行为可以被以下覆盖:
additionalOptions:
name: proxy
value: reencrypt
4.4.5. JGroups 参数迁移 复制链接链接已复制到粘贴板!
JGROUPS_ENCRYPT_SECRET、JGROUPS_ENCRYPT_KEYSTORE、JGROUPS_ENCRYPT_NAME、JGROUPS_ENCRYPT_PASSWORD 和 JGROUPS_CLUSTER_PASSWORD 在 Keycloak CR 中没有第一类表示。仍可使用缓存配置文件保护缓存通信的安全。