【发布时间】:2021-10-15 14:54:20
【问题描述】:
我使用外部数据库连接检查了这个 How to use 的 Keycloak 操作员自定义资源。我使用 Google 平台的 CloudSQL 作为外部数据库源。
我的配置是
- keycloak-idm
apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
name: kiwigrid-keycloak-idm
spec:
instances: 3
externalAccess:
enabled: false
externalDatabase:
enabled: true
- 外部数据库存储密码
apiVersion: v1
kind: Secret
metadata:
name: keycloak-db-secret
namespace: kiwios-application
type: Opaque
stringData:
POSTGRES_DATABASE: keycloak-storage
POSTGRES_EXTERNAL_ADDRESS: pgsqlproxy.infra
POSTGRES_EXTERNAL_PORT: "5432"
POSTGRES_HOST: keycloak-postgresql
POSTGRES_USERNAME: keycloak-user
POSTGRES_PASSWORD: S1ly3AValJYBNR-fsptLYdT74
POSTGRES_SUPERUSER: "true"
- 存储数据库
apiVersion: sql.cnrm.cloud.google.com/v1beta1
kind: SQLDatabase
metadata:
name: keycloak-storage
namespace: kiwios-application
annotations:
cnrm.cloud.google.com/deletion-policy: "abandon"
spec:
charset: UTF8
collation: en_US.UTF8
instanceRef:
name: keycloak-storage-instance-pg
namespace: infra
- 存储用户
apiVersion: sql.cnrm.cloud.google.com/v1beta1
kind: SQLUser
metadata:
name: keycloak-user
namespace: kiwios-application
annotations:
cnrm.cloud.google.com/deletion-policy: "abandon"
spec:
instanceRef:
name: keycloak-storage-instance-pg
namespace: infra
password:
valueFrom:
secretKeyRef:
name: keycloak-db-secret
key: POSTGRES_PASSWORD
它不工作。任何人都请帮我弄清楚我做错了什么。
更新:我深入了解了 k9s 控制台。根据keycloak-operator 功能,它为数据库连接创建一个外部名称。
这是keycloak-postgresql
keycloak-operator 控制台中没有显示错误。只有keycloak-idm 无法使用此外部名称建立连接。它显示以下错误。
【问题讨论】:
-
这只是一个猜测,但是秘密字段应该被编码为 base 64 吗?
-
您已经连接了一个名为
keycloak-storage的数据库,但正在连接到pgsqlproxy.infra。您的 pgsqlproxy 配置正确吗? -
是的@dreamcrash 是加密的。我在这里以纯文本形式分享,以便更多理解
-
是的@LukasEichler 是的,它已正确配置,因为它是一个 cloudsql 实例。
标签: kubernetes keycloak keycloak-operator