Kubernetes 如何使用helm图表自定义PostgreSQL配置?

Kubernetes 如何使用helm图表自定义PostgreSQL配置?,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我正在尝试将一个使用PostgreSQL作为数据库的应用程序部署到我的minikube。我使用helm作为包管理器,并且添加了对我的requirements.yaml的PostgreSQL依赖性。现在的问题是,如何为部署设置postgres用户、db和密码?这是我的模板/应用程序。yaml apiVersion: v1 kind: Service metadata: name: {{ template "sgm.fullname" . }}-service spec: type: Nod

我正在尝试将一个使用PostgreSQL作为数据库的应用程序部署到我的minikube。我使用helm作为包管理器,并且添加了对我的requirements.yaml的PostgreSQL依赖性。现在的问题是,如何为部署设置postgres用户、db和密码?这是我的
模板/应用程序。yaml

apiVersion: v1
kind: Service
metadata:
  name: {{ template "sgm.fullname" . }}-service
spec:
  type: NodePort
  selector:
    app: {{ template "sgm.fullname" . }}
  ports:
  - port: 80
    targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ template "sgm.fullname" . }}-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: {{ template "sgm.fullname" . }}
  template:
    metadata:
      labels:
        app: {{ template "sgm.fullname" . }}
    spec:
      containers:
      - name: sgm
        image: mainserver/sgm
        env:
        - name: POSTGRES_HOST
          value: {{ template "postgres.fullname" . }}.default.svc.cluster.local
我尝试添加postgres helm chart github自述文件中所述的configmap,但似乎我做错了什么。这是:图表的
值。yaml
文件包含它包含的图表的配置块。的GitHub页面列出了所有选项

无论是在图表的
values.yaml
文件中,还是在传递给
helm install-f
选项的单独yaml文件中,都可以设置如下参数

postgresql:
  postgresqlDatabase: stackoverflow
  postgresqlPassword: enterImageDescriptionHere
请注意,该图表不创建非管理员用户(与同级MySQL图表不同)。如果您同意“普通”数据库用户具有管理员级权限(如创建和删除数据库),那么您也可以在此处设置
postgresqlUser

在您自己的图表中,您可以像其他图表一样引用这些值

- name: PGUSER
  value: {{ .Values.postgresql.postgresqlUser }}
这是:图表的
值。yaml
文件包含图表的配置块。的GitHub页面列出了所有选项

无论是在图表的
values.yaml
文件中,还是在传递给
helm install-f
选项的单独yaml文件中,都可以设置如下参数

postgresql:
  postgresqlDatabase: stackoverflow
  postgresqlPassword: enterImageDescriptionHere
请注意,该图表不创建非管理员用户(与同级MySQL图表不同)。如果您同意“普通”数据库用户具有管理员级权限(如创建和删除数据库),那么您也可以在此处设置
postgresqlUser

在您自己的图表中,您可以像其他图表一样引用这些值

- name: PGUSER
  value: {{ .Values.postgresql.postgresqlUser }}

我将您的答案与helm描述进行了比较,发现这些变量被引用为
global.postgresql.*
global
是值文件的某种作用域吗?如果是这样,我如何引用不属于该范围的变量
replication.synchronousCommit
对于instanceYes,
global
具有特殊状态(请参见我回答中的第一个链接):PostgreSQL子图表仅查看
PostgreSQL:
下的内容,加上
global:
合并在中。从您自己的图表中,您需要使用
.Values.postgresql….
(或
.Values.global….
),如最后一个示例所示。我是否正确理解需要从图表名称标记下的表中定义所有变量,例如
postgresql
?所以,
existingSecret
=
postgresql:existingSecret
?我将您的答案与helm的描述进行了比较,发现这些变量被引用为
global.postgresql.
global
是值文件的某种作用域吗?如果是这样,我如何引用不属于该范围的变量
replication.synchronousCommit
对于instanceYes,
global
具有特殊状态(请参见我回答中的第一个链接):PostgreSQL子图表仅查看
PostgreSQL:
下的内容,加上
global:
合并在中。从您自己的图表中,您需要使用
.Values.postgresql….
(或
.Values.global….
),如最后一个示例所示。我是否正确理解需要从图表名称标记下的表中定义所有变量,例如
postgresql
?那么,
existingSecret
=
postgresql:existingSecret