在 kubernetes helm 安装期间在 Keycloak 中设置领域

Setting up realms in Keycloak during kubernetes helm install

我正在尝试将 keycloak 设置为 运行 一些集成测试的 helm chart 要求。我可以让它启动并 运行 它,但我不知道如何设置我需要的领域和客户端。我已经切换到今天发布的 1.0.0 稳定版:

https://github.com/kubernetes/charts/tree/master/stable/keycloak

我想使用图表中定义的 keycloak.preStartScript 并使用 /opt/jboss/keycloak/bin/kcadm.sh 管理脚本来执行此操作,但显然 "pre start" 他们的意思是在服务器启动之前,所以 kcadm.sh 无法验证。如果我遗漏 keycloak.preStartScript 我可以 shell 进入 keycloak 容器和 运行 我想在它启动和 运行ning 后使用的 kcadm.sh 脚本,但是它们作为预启动脚本的一部分失败。

这是我的 requirements.yaml 图表:

dependencies:
- name: keycloak
  repository: https://kubernetes-charts.storage.googleapis.com/
  version: 1.0.0

这是我的 values.yaml 图表文件:

keycloak:
  keycloak:
    persistence:
      dbVendor: H2
      deployPostgres: false
    username: 'admin'
    password: 'test'
    preStartScript: |
      /opt/jboss/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password 'test'
      /opt/jboss/keycloak/bin/kcadm.sh create realms -s realm=foo -s enabled=true -o
      CID=$(/opt/jboss/keycloak/bin/kcadm.sh create clients -r foo -s clientId=foo -s 'redirectUris=["http://localhost:8080/*"]' -i)
      /opt/jboss/keycloak/bin/kcadm.sh get clients/$CID/installation/providers/keycloak-oidc-keycloak-json
  persistence:
    dbVendor: H2
    deployPostgres: false

还有一个副作用是我需要在这两个地方定义持久性设置,否则它要么失败,要么除了 keycloak

之外还会出现 postgresql

我也试过了,也遇到了这个问题 raised an issue。我更喜欢将 -Dimport 与 realm .json 文件一起使用,但你的观点表明 postStartScript 选项是有意义的,所以我在该问题的 PR 中包含了这两个选项

Keycloak 图表已更新。看看这些 PR: