第 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)的示例:

apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
  name: my-realm-kc
spec:
  keycloakCRName: <name of the keycloak CR>
  realm:
    ...

此 CR 应该与 Keycloak Deployment CR 在同一命名空间中创建,在字段 keycloakCRName 中定义。realm 字段接受完整的 RealmRepresentation

获取 RealmRepresentation 的建议方法是利用导出功能 导入和导出 Realms

  1. 将 Realm 导出至单个文件。
  2. 将 JSON 文件转换为 YAML。
  3. 复制并粘贴获取的 YAML 文件,作为 realm 键的正文,确保缩进正确。

3.1.2. 应用 Realm Import CR

使用 oc 在正确的集群命名空间中创建 CR:

创建 YAML 文件 example-realm-import.yaml

apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
  name: my-realm-kc
spec:
  keycloakCRName: <name of the keycloak CR>
  realm:
    id: example-realm
    realm: example-realm
    displayName: ExampleRealm
    enabled: true

应用更改:

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}}'

当导入成功完成时,输出将类似以下示例:

CONDITION: Done
  STATUS: true
  MESSAGE:
CONDITION: Started
  STATUS: false
  MESSAGE:
CONDITION: HasErrors
  STATUS: false
  MESSAGE:
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.