Docker 将外部Postgres数据库的环境参数添加到Keyclope k8s头盔图表中

Docker 将外部Postgres数据库的环境参数添加到Keyclope k8s头盔图表中,docker,kubernetes,keycloak,kubernetes-helm,Docker,Kubernetes,Keycloak,Kubernetes Helm,我是Kubernetes和helm图表的新手,我试图让Keyclope将数据保存在Postgres中,而不是H2中(默认情况下他是这么做的)。Postgres将由单独的头盔图表创建。首先,我通过命令创建Postgres: helm install --name=postgres-keycloak stable/postgresql 然后我看一看新的Postgres服务“InternalEndpoints”参数。并试图将这些参数添加到“钥匙斗篷”的头盔图表中。以下是values.yaml部分:

我是Kubernetes和helm图表的新手,我试图让Keyclope将数据保存在Postgres中,而不是H2中(默认情况下他是这么做的)。Postgres将由单独的头盔图表创建。首先,我通过命令创建Postgres:

helm install --name=postgres-keycloak stable/postgresql
然后我看一看新的Postgres服务“InternalEndpoints”参数。并试图将这些参数添加到“钥匙斗篷”的头盔图表中。以下是values.yaml部分:

Service:
  Name: keycloak-new
  Port: 8080
  Type: ClusterIP
  postgresAddr: postgres-keycloak-postgresql
  postgresPort: 5432
然后在templates文件夹中添加到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 keybeave”命令创建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等对象中找到),而不是在只为您的流量定义某种内部负载平衡器/路由器的服务中。

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