第 3 章 自动导入域


使用操作器自动执行 realm 导入。

3.1. 导入红帽构建的 Keycloak Realm

使用红帽构建的 Keycloak Operator,您可以为 Keycloak Deployment 执行域导入。

注意
  • 如果红帽构建的 Keycloak 中已存在具有相同名称的 Realm,则不会覆盖它。
  • Realm Import CR 只支持创建新域,且不会更新或删除它们。直接在红帽构建的 Keycloak 上执行的域更改不会在 CR 中同步。
  • 导入域后,您应该删除 Realm Import CR,因为这将清理关联的 Kubernetes 作业和 Pod 资源。

3.1.1. 创建 Realm 导入自定义资源

以下是 Realm Import 自定义资源(CR)的示例:

apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
  name: my-realm-kc
spec:
  keycloakCRName: <name of the keycloak CR>
  realm:
    ...
Copy to Clipboard Toggle word wrap

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

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

  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
Copy to Clipboard Toggle word wrap

应用更改:

oc apply -f example-realm-import.yaml
Copy to Clipboard Toggle word wrap

要检查正在运行的导入的状态,请输入以下命令:

oc get keycloakrealmimports/my-realm-kc -o go-template='{{range .status.conditions}}CONDITION: {{.type}}{{"\n"}}  STATUS: {{.status}}{{"\n"}}  MESSAGE: {{.message}}{{"\n"}}{{end}}'
Copy to Clipboard Toggle word wrap

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

CONDITION: Done
  STATUS: true
  MESSAGE:
CONDITION: Started
  STATUS: false
  MESSAGE:
CONDITION: HasErrors
  STATUS: false
  MESSAGE:
Copy to Clipboard Toggle word wrap

3.1.3. 占位符

导入支持引用环境变量的占位符,请参阅 导入和导出域KeycloakRealmImport CR 允许您通过 spec.placeholders 小节利用此功能,例如:

apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
  name: my-realm-kc
spec:
  keycloakCRName: <name of the keycloak CR>
  placeholders:
    ENV_KEY:
      secret:
        name: SECRET_NAME
        key: SECRET_KEY
    ...
Copy to Clipboard Toggle word wrap

在上例中,将启用占位符替换,并且将从键为 SECRET_KEY 的 Secret SECRET_NAME 的值创建环境变量 ENV_KEY。目前只支持 Secret,它们必须与 Keycloak CR 位于同一个命名空间中。

3.1.4. 安全注意事项

警告

创建或编辑 KeycloakRealmImport CR 的任何人都应是一个命名空间级别 admin。

占位符替换可让您访问所有环境变量,甚至是敏感的变量。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部