我使用第三方存储库bitnami作为mysql。
我知道,如果yaml处于依赖部分,那么可以很容易地注入values.yaml。
也就是说,如果我在Chart.yaml中添加依赖项:
dependencies:
- name: mysql
version: 8.8.23
repository: "https://charts.bitnami.com/bitnami"在values.yaml中:
mysql:
auth:
rootPassword: "12345"
database: my_database
primary:
service:
type: LoadBalancer根密码在bitnami/mysql中以适当的参数auth.rootPassword注入。
但是,如果我在模板文件夹中有自己的pod.yaml的话:
apiVersion: v1
kind: Pod
spec:
containers:
- name: mysql-pod
image: bitnami/mysql如何将这个文件注入密码和其他参数,就像我对values.yaml文件所做的那样。
我要通过auth.rootPassword等等..。
另外,如果能够引用完全相同的结束符,这是在依赖关系上创建的,而不是作为另一个实例创建的。
发布于 2022-03-02 11:47:34
图表包含很多东西--一个StatefulSet、一个匹配服务、一个PodDisruptionBudget、一个ConfigMap等等。您不能将所有这些都强制放到一个Pod中,通常,如果不像最初显示的那样将它们作为依赖项包含在Helm图表中,您就不能引用它们。
Bitnami还碰巧发布了一个单独的码头形象,您可以将它作为image:列在StatefulSet的吊舱规范中,但是您必须自己重构图表中的所有其他机器。
另外,如果能够引用完全相同的结束符,这是在依赖关系上创建的,而不是作为另一个实例创建的。
在Helm中有一个典型的约定,大多数对象都被命名为RELEASE-CHART-SUFFIX,如果它们是相同的,则将RELEASE和CHART挤在一起。通常,您并不像访问状态集的服务(即由典型的Helm Service YAML文件生成 )那样关心状态集生成的Pod。如果您没有设置各种重写,并且没有使用复制模式,那么在此依赖关系上下文中,可以将.Release.Name和依赖关系图表名称mysql组合在一起,而不需要后缀。
- name: MYSQL_HOST
value: {{ .Release.Name }}-mysql我不知道有什么更一般的方法来获得服务的名字。(我根本不知道任何使用Helm出口机制的图表,而且由于它只是重新发布值,所以在任何情况下都不能包含计算值。)
对于其他细节,如凭据,您可以参考生成的秘密,也可以直接使用.Values.mysql...。
- name: MYSQL_USER
value: {{ .Values.mysql.auth.username }}
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-mysql
key: mysql-password我认为,如果不亲自阅读图表的来源,观察图表实际安装的内容,或者阅读图表的文档( Bitnami图表已经有了相当好的文档记录,但其他的可能不是),那么就找不到这些名称的好方法。
https://stackoverflow.com/questions/71297184
复制相似问题