首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes-helm:在多个应用程序中使用一个模板

Kubernetes-helm:在多个应用程序中使用一个模板
EN

Stack Overflow用户
提问于 2019-10-10 15:00:44
回答 2查看 4.3K关注 0票数 5

这就是我目前的情况:

与基本helm create一起来的是一个values.yaml文件和一个带有deployment.yamltemplate文件夹。已对Deployment文件进行了调整,以管理码头映像中的弹簧引导应用程序。

现在,values.yaml包含了如下内容

代码语言:javascript
复制
myApp:
  repository: myApp.mycompany.com/demo/my-app-customers
  tag: stable

deployment.yaml包含

代码语言:javascript
复制
spec:
  template:
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.myApp.repository }}:{{ .Values.myApp.tag }}"

假设我必须管理另一个春启动应用程序,非常接近“我的应用-客户”是什么。我想我只需要在values.yaml中再添加一行,就像这样:

代码语言:javascript
复制
mySecondApp:
  repository: myApp.mycompany.com/demo/my-app-others
  tag: stable

但是这不适用于deployment.yaml,因为它使用.Values.myApp.repository。这意味着我需要创建另一个文件deployment-others.yaml,它使用.Values.mySecondApp.repository来部署第二个应用程序。因此,不可能在不同的应用程序中使用相同的模板。

  • 是正确的还是我遗漏了什么?
  • 会有另一种方法来做到这一点吗?还是我需要复制过去类似的部署(和其他)文件,并且每个应用程序都有一个模板文件?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-11 12:46:34

这样做的标准方法是拥有一个second-deployment.yaml文件,它本质上是第一个文件的副本,但具有不同的标签和值引用。通常在_helpers.tpl中放置一些模板来生成标签块之类的东西,您可以为公共环境变量扩展这些模板,或者您可以将一些配置卸载到ConfigMap中以减少重复。

Helm的模板层根本不知道YAML语法,所以只要每个文件生成有效的YAML,你就可以做任何你想做的事情。它可以在一个文件中包含多个文档,并且可以通过模板生成它们。不过,这可能会很棘手。基本的大纲可能看起来

代码语言:javascript
复制
{{- range list .Values.myApp .Values.mySecondApp -}}
---
...
spec:
  template:
    spec:
      containers:
        - name: {{ $.Chart.Name }}
          image: "{{ .repository }}:{{ .tag }}"
...
{{ end -}}

如果尝试这样做,您需要知道.是值对象的片段,而不是像通常那样的根对象;例如,请注意$.Chart.Name显式引用顶级图表名称。

票数 6
EN

Stack Overflow用户

发布于 2019-10-10 21:04:50

如果部署资源几乎相同,您只需将Helm图表看作一个抽象,并使用--set标志指定值。

代码语言:javascript
复制
helm install --set repository=myApp.mycompany.com/demo/my-first-app --name my-first-app /path/to/helm/chart my-first-app
helm install --set repository=myApp.mycompany.com/demo/my-second-app --name my-second-app /path/to/helm/chart my-second-app
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58325907

复制
相关文章

相似问题

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