如何使用舵图自定义PostgreSQL配置?

时间:2019-06-19 08:25:19

标签: kubernetes kubernetes-helm

我正在尝试将使用PostgreSQL作为数据库的应用程序部署到我的minikube。我使用helm作为包管理器,并添加了PostgreSQL依赖项到我的requirements.yaml中。现在的问题是,如何为该部署设置postgres用户,数据库和密码?这是我的templates/applicaion.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

我尝试添加一个configmap,如postgres掌舵图github自述文件中所述,但似乎我做错了事

1 个答案:

答案 0 :(得分:2)

这是lightly discussed in the Helm documentation:图表的values.yaml文件包含它包含的图表的配置块。 Helm stable/postgresql chart的GitHub页面列出了所有选项。

在图表的values.yaml文件中,或者在传递到helm install -f选项的单独的YAML文件中,您都可以设置参数,例如

postgresql:
  postgresqlDatabase: stackoverflow
  postgresqlPassword: enterImageDescriptionHere

请注意,该图表不会创建非管理员用户(与其同级的MySQL图表不同)。如果您对具有管理员级别特权(例如创建和删除数据库)的“普通”数据库用户没问题,则也可以在此处设置postgresqlUser

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

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