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