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 26.2 |
|---|---|
| APPLICATION_NAME | .metadata.name |
| IMAGE_STREAM_NAMESPACE | N/A - 镜像由 Operator 控制,或者您主要使用 spec.image 指定自定义镜像 |
| SSO_ADMIN_USERNAME |
默认为 admin,可由 |
| SSO_ADMIN_PASSWORD |
在初始协调期间由 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 26.2 |
|---|---|
| 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 26.2 |
|---|---|
| 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 中没有第一类表示。仍可使用缓存配置文件保护缓存通信。