kubernetes keycloak和cockroachdb云

zdwk9cvp  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(131)

我尝试使用keycloak db来对抗crdb cloud。我使用https://github.com/codecentric/helm-charts/tree/master/charts/keycloak图表来部署k8s。我为keycloak创建了一个数据库,并将上述配置设置为成功连接。我使用values.yaml并添加了额外的env var:

extraEnv: |
  - name: DB_VENDOR
    value: postgres
  - name: DB_ADDR
    value: xxxx.xxx.cockroachlabs.cloud
  - name: DB_PORT
    value: "xxx"
  - name: DB_DATABASE
    value: keycloak
  - name: DB_USER_FILE
    value: /secrets/db-creds/user
  - name: DB_PASSWORD_FILE
    value:  /secrets/db-creds/password
  - name: JDBC_PARAMS
    value: sslmode=verify-ca&sslrootcert=/secrets/crdb-creds/xxx.crt
  - name: JDBC_PARAMS_FILE
    value: /secrets/crdb-creds/xxx.crt
and also

# Add additional volumes, e. g. for custom themes
extraVolumes: |
  - name: crdb-creds
    secret:
      secretName: keycloak-crdb-creds
  - name: db-creds
    secret:
      secretName: keycloak-db-creds
and mounting

# Add additional volumes mounts, e. g. for custom themes
extraVolumeMounts: |
  - name: crdb-creds
    mountPath: /secrets/crdb-creds
    readOnly: true
  - name: db-creds
    mountPath: /secrets/db-creds
    readOnly: true

字符串
所以理论上在keycloak(!)。我打算给予一下这个,实际上它没有给一个错误,但它重新开始后,而保持重新启动相同的时间。所以它给出了一个:

Caused by: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: java.sql.SQLException: IJ031040: Connection is not associated with a managed connection: org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8@3a612dd6
or
10:55:31,907 FATAL [org.keycloak.services] (ServerService Thread Pool -- 64) Error during startup: java.lang.IllegalStateException: Failed to retrieve lock


所以我的问题是,给出.crt路径的变量是什么,是否需要任何额外的进展来正确运行这个路径

ttvkxqim

ttvkxqim1#

这一点有点晚,但我认为有很多人潜在地希望了解如何在CockroachDB上运行Keycloak。
所以理论上在keycloak(!).
“理论上”你是正确的,但可悲的是,事实并非如此。您得到的异常是因为在Keycloak中XA和JTA的设置方式不兼容。如果你通过了这一点,就会有更多的障碍,因为模式不兼容。关于CockroachDB使用Keycloak“遗留”存储的一些问题,有一个很长的线索:Github问题:Keycloak无法开始使用遗留的JPA存储与CockroachDB有计划在“新”商店中支持CockroachDB,但该实现目前是一个实验性功能,并不会成为默认的未来6-12个月。CockroachDB永远不会支持主发行版中的“遗留”存储,但是Phase Two维护了一个补丁的Keycloak以启用它。他们维护了一个docker镜像,该镜像与Keycloak版本保持最新,其中包含补丁:Keycloak on CockroachDB docker镜像运行时必须设置几个配置选项:

KC_DB=cockroach
KC_TRANSACTION_XA_ENABLED=false
KC_TRANSACTION_JTA_ENABLED=false

字符串
此外,关于extraEnv部分,Keycloak configuration环境变量键在最近的版本中有所更改(>18)。要设置数据库连接参数,您将使用以下键(值是示例):

KC_DB_URL_HOST=xxxx.xxx.cockroachlabs.cloud
KC_DB_URL_PORT=26257
KC_DB_URL_DATABASE=defaultdb
KC_DB_SCHEMA=public
KC_DB_USERNAME=dbuser
KC_DB_PASSWORD=xxx
KC_DB_URL_PROPERTIES='?'

相关问题