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

问题描述 投票:0回答:3

我正在尝试将

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

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

我想使用图表中定义的

keycloak.preStartScript
并使用
/opt/jboss/keycloak/bin/kcadm.sh
管理脚本来执行此操作,但显然“预启动”意味着在服务器启动之前,因此
kcadm.sh
无法进行身份验证。如果我省略了
keycloak.preStartScript
,我可以将其放入 keycloak 容器中,并在启动并运行后运行我想要使用的
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

另外一个烦恼是我需要在两个地方定义持久性设置,否则它要么失败,要么除了

postgresql
 之外还会显示 
keycloak

keycloak kubernetes-helm
3个回答
1
投票

我也尝试过这个,也遇到了这个问题,所以提出了一个问题。我更喜欢将 -Dimport 与领域 .json 文件一起使用,但您的观点表明 postStartScript 选项是有意义的,因此我将这两个选项都包含在该问题的 PR 中



0
投票

在 helm 值文件中启用 keycloakconfigcli,并在配置部分下将领域、客户端和其他详细信息添加为 json。然后就不需要运行启动后或启动前脚本。 示例 json:

配置: 领域1.json: | { “领域”:“”, “启用”:“真”, “允许注册”:错误, “角色”:{ “领域”:[ {
“姓名”: ””, “复合”:假, “客户角色”:假 }, { “姓名”: ””, “复合”:假, “客户角色”:假 } ] }, “用户”:[ { “用户名”: ””, “电子邮件”: ””, “启用”:正确, “名”: ””, “姓”: ””, “领域角色”:[ ”” ], “证书”: [ { “类型”:“密码”, “价值”: ”” } ] } ], { “客户端ID”:“”, “directAccessGrantsEnabled”:真, “redirectUris”:[“”], “网络起源”:[“”], “bearerOnly”:假, "rootUrl": "http://ip 或域名", "adminUrl": "http://ip 或域名" } ] }

© www.soinside.com 2019 - 2024. All rights reserved.