3.3. 迁移 Keycloak CR
Keycloak CR 现在支持所有服务器配置选项。在 CR 的 spec 下,所有相关选项都作为第一类的会面字段提供。CR 中的所有选项遵循相同的命名约定,这与在裸机和 Operator 部署间体验的服务器选项相同。
另外,您可以在 additionalOptions 字段中定义 CR 缺少的任何选项,如 SPI 供应商配置。另一个选择是使用 podTemplate (一个技术预览字段)来修改原始 Kubernetes 部署 pod 模板,如果支持的替代方案并不存在作为 CR 中的第一个类 该文件字段。
下面显示了一个通过 Operator 部署红帽构建的 Keycloak CR 示例:
apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
name: example-kc
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: example-tls-secret
hostname:
hostname: test.keycloak.org
additionalOptions:
- name: spi-connections-http-client-default-connection-pool-size
value: 20
请注意 CLI 配置的位置:
./kc.sh start --db=postgres --db-url-host=postgres-db --db-username=user --db-password=pass --https-certificate-file=mycertfile --https-certificate-key-file=myprivatekey --hostname=test.keycloak.org --spi-connections-http-client-default-connection-pool-size=20
3.3.1. 迁移数据库配置 复制链接链接已复制到粘贴板!
Red Hat build of Keycloak 可以使用与之前 Red Hat Single Sign-On 7.6 使用相同的数据库实例。当红帽首次构建 Keycloak 时,数据库架构将自动迁移。
不支持迁移由 Red Hat Single Sign-On 7.6 Operator 管理的嵌入式数据库。
在 Red Hat Single Sign-On 7.6 Operator 中,外部数据库连接使用 Secret 配置,例如:
apiVersion: v1
kind: Secret
metadata:
name: keycloak-db-secret
namespace: keycloak
labels:
app: sso
stringData:
POSTGRES_DATABASE: kc-db-name
POSTGRES_EXTERNAL_ADDRESS: my-postgres-hostname
POSTGRES_EXTERNAL_PORT: 5432
POSTGRES_USERNAME: user
POSTGRES_PASSWORD: pass
type: Opaque
在 Red Hat build of Keycloak 中,数据库直接在 Keycloak CR 中配置,其凭证被引用为 Secret,例如:
apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
name: example-kc
spec:
db:
vendor: postgres
host: my-postgres-hostname
port: 5432
usernameSecret:
name: keycloak-db-secret
key: username
passwordSecret:
name: keycloak-db-secret
key: password
...
apiVersion: v1
kind: Secret
metadata:
name: keycloak-db-secret
stringData:
username: "user"
password: "pass"
type: Opaque
3.3.1.1. 支持的数据库供应商 复制链接链接已复制到粘贴板!
Red Hat Single Sign-On 7.6 Operator 仅支持 PostgreSQL 数据库,但红帽构建的 Keycloak Operator 支持服务器支持的所有数据库供应商。