首页 > 解决方案 > 如何使用 helm chart 自定义 PostgreSQL 配置?

问题描述

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

我已经尝试添加一个配置映射,如 postgres helm chart github 自述文件中所述,但似乎我做错了什么

标签: kuberneteskubernetes-helm

解决方案


Helm 文档中对此进行了简单的讨论:您的图表values.yaml文件包含它所包含的图表的配置块。Helm stable/postgresql 图表的 GitHub 页面列出了所有选项。

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

postgresql:
  postgresqlDatabase: stackoverflow
  postgresqlPassword: enterImageDescriptionHere

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

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

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

推荐阅读