docker - 将Postgres数据库的外部参数添加到keycloak k8s Helm chart 环境参数中

标签 docker kubernetes keycloak kubernetes-helm

我是Kubernetes和 Helm 图表的新手,并试图使Keycloak将数据保存在Postgres中,而不是H2中(因为他默认情况下这样做)。 Postgres将通过单独的 Helm 图创建。首先,我通过命令创建Postgres:

helm install --name=postgres-keycloak stable/postgresql

然后,我看一下新的Postgres服务“内部端点”参数。并尝试将此参数添加到Keycloak的掌 Helm chart 中。这是values.yaml部分:
Service:
  Name: keycloak-new
  Port: 8080
  Type: ClusterIP
  postgresAddr: postgres-keycloak-postgresql
  postgresPort: 5432

然后在模板文件夹中,我添加到service.yaml:
env:
 - name: POSTGRES_PORT_5432_TCP_ADDR
   value: "{{ .Values.Service.postgresAddr }}"
 - name: POSTGRES_PORT_5432_TCP_PORT
   value: "{{ .Values.Service.postgresPort }}"

然后我通过“helm package keycloak”命令创建keyclaok软件包,并安装:
helm install --debug  --name=keycloak-new keycloak-0.1.0.tgz

它因错误而失败:
[debug] Created tunnel using local port: '49927'
[debug] SERVER: "localhost:49927"
[debug] Original chart version: ""
[debug] CHART PATH: /Users/user/helm-charts/keycloak-0.1.0.tgz
Error: error validating "": error validating data: found invalid field env for v1.ServiceSpec

谁知道我做错了什么?还是我想念的?

最佳答案

您的环境应该声明为PodSpec的一部分(可以在Pod,ReplicaSet,Deployment等对象中找到),而不是在服务中定义,该服务仅为您的流量定义一种内部负载平衡器/路由器。

关于docker - 将Postgres数据库的外部参数添加到keycloak k8s Helm chart 环境参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46321565/

相关文章:

php - 使用 add-user-keycloak.sh 添加新用户时如何验证用户的电子邮件?

node.js - npm 错误!写在结束之后。 RUN npm install 在 docker、aws 中失败

Docker - ADD 和 COPY 的 src 文件在哪里?

mysql - Docker:MySQL 拒绝主机 IP,除非我手动重新启动它

security - 为什么Kubernetes允许在kubelet目录中进行全局读/写?

kubernetes - Pod 无法在 kubernetes 中分配大页面

docker - 如何在 python docker 中安装 p7zip-full

kubernetes - 在 Kubernetes 中,如何在服务选择器中按名称选择 pod?

logout - Keycloak 注销不适用于暴露 REST 服务的 "bearer-only"应用程序

keycloak - 我可以在开发环境中将 Keycloak 的所有域列入白名单吗?