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 build 与之前由 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 | Red Hat build of Keycloak 24.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 |
|
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 | Red Hat build of Keycloak 24.0 |
---|---|
DB_VENDOR |
如果 PostgreSQL 仍在使用,则需要将 |
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 | Red Hat build of Keycloak 24.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 中没有第一类表示。仍可使用缓存配置文件保护缓存通信。
其他资源