首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pod类第三方舵机yaml模板的注入值

Pod类第三方舵机yaml模板的注入值
EN

Stack Overflow用户
提问于 2022-02-28 15:20:25
回答 1查看 271关注 0票数 0

我使用第三方存储库bitnami作为mysql。

我知道,如果yaml处于依赖部分,那么可以很容易地注入values.yaml。

也就是说,如果我在Chart.yaml中添加依赖项:

代码语言:javascript
复制
dependencies:
  - name: mysql
    version: 8.8.23
    repository: "https://charts.bitnami.com/bitnami"

在values.yaml中:

代码语言:javascript
复制
mysql:
    auth:
      rootPassword: "12345"
      database: my_database
    primary:
      service:
        type: LoadBalancer

根密码在bitnami/mysql中以适当的参数auth.rootPassword注入。

但是,如果我在模板文件夹中有自己的pod.yaml的话:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
spec:
  containers:
    - name: mysql-pod
      image: bitnami/mysql

如何将这个文件注入密码和其他参数,就像我对values.yaml文件所做的那样。

我要通过auth.rootPassword等等..。

另外,如果能够引用完全相同的结束符,这是在依赖关系上创建的,而不是作为另一个实例创建的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-02 11:47:34

图表包含很多东西--一个StatefulSet、一个匹配服务、一个PodDisruptionBudget、一个ConfigMap等等。您不能将所有这些都强制放到一个Pod中,通常,如果不像最初显示的那样将它们作为依赖项包含在Helm图表中,您就不能引用它们。

Bitnami还碰巧发布了一个单独的码头形象,您可以将它作为image:列在StatefulSet的吊舱规范中,但是您必须自己重构图表中的所有其他机器。

另外,如果能够引用完全相同的结束符,这是在依赖关系上创建的,而不是作为另一个实例创建的。

在Helm中有一个典型的约定,大多数对象都被命名为RELEASE-CHART-SUFFIX,如果它们是相同的,则将RELEASECHART挤在一起。通常,您并不像访问状态集的服务(即由典型的Helm Service YAML文件生成 )那样关心状态集生成的Pod。如果您没有设置各种重写,并且没有使用复制模式,那么在此依赖关系上下文中,可以将.Release.Name和依赖关系图表名称mysql组合在一起,而不需要后缀。

代码语言:javascript
复制
- name: MYSQL_HOST
  value: {{ .Release.Name }}-mysql

我不知道有什么更一般的方法来获得服务的名字。(我根本不知道任何使用Helm出口机制的图表,而且由于它只是重新发布值,所以在任何情况下都不能包含计算值。)

对于其他细节,如凭据,您可以参考生成的秘密,也可以直接使用.Values.mysql...

代码语言:javascript
复制
- name: MYSQL_USER
  value: {{ .Values.mysql.auth.username }}
- name: MYSQL_PASSWORD
  valueFrom:
    secretKeyRef:
      name: {{ .Release.Name }}-mysql
      key: mysql-password

我认为,如果不亲自阅读图表的来源,观察图表实际安装的内容,或者阅读图表的文档( Bitnami图表已经有了相当好的文档记录,但其他的可能不是),那么就找不到这些名称的好方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71297184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档