第 3 章 红帽构建的 Keycloak Realm Import
3.1. 导入红帽构建的 Keycloak Realm 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用红帽构建的 Keycloak Operator,您可以为 Keycloak Deployment 执行域导入。
注意
- 如果红帽构建的 Keycloak 中已存在具有相同名称的 Realm,则不会覆盖它。
- Realm Import CR 仅支持创建新域,且不更新或删除它们。直接在红帽构建的 Keycloak 上执行的域更改不会在 CR 中同步。
3.1.1. 创建 Realm Import 自定义资源 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
以下是 Realm Import 自定义资源(CR)的示例:
此 CR 应该与 Keycloak Deployment CR 在同一命名空间中创建,在字段 keycloakCRName
中定义。realm
字段接受完整的 RealmRepresentation。
获取 RealmRepresentation
的建议方法是利用导出功能 导入和导出 Realms。
- 将 Realm 导出至单个文件。
- 将 JSON 文件转换为 YAML。
-
复制并粘贴获取的 YAML 文件,作为
realm
键的正文,确保缩进正确。
3.1.2. 应用 Realm Import CR 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用 oc
在正确的集群命名空间中创建 CR:
创建 YAML 文件 example-realm-import.yaml
:
应用更改:
oc apply -f example-realm-import.yaml
oc apply -f example-realm-import.yaml
要检查正在运行的导入的状态,请输入以下命令:
oc get keycloakrealmimports/my-realm-kc -o go-template='{{range .status.conditions}}CONDITION: {{.type}}{{"\n"}} STATUS: {{.status}}{{"\n"}} MESSAGE: {{.message}}{{"\n"}}{{end}}'
oc get keycloakrealmimports/my-realm-kc -o go-template='{{range .status.conditions}}CONDITION: {{.type}}{{"\n"}} STATUS: {{.status}}{{"\n"}} MESSAGE: {{.message}}{{"\n"}}{{end}}'
当导入成功完成时,输出将类似以下示例: