kubernetes-helm - .Values 中的 helm 变量
问题描述
我想动态生成我的模板文件,这是我的情况:
{{- $v := (.Files.Get "values-deployment-nginx.yaml") | fromYaml }}
spec:
{{- range $key, $value := $v.containers }}
containers:
- name: {{ $value.name }}
image: {{ .Values.{{ $value.name }}-image }}:{{ .Values.{{ $value.name }}--tag }}
我想首先获取 {{ $value.name }},它可能是一个类似“nginx”的字符串,然后我想使用 {{ .Values.nginx-image }} 在值文件中获取正确的图像值.
有没有办法做到这一点?非常感谢!
我有很多动态生成的部署模板,但只想将图像和标签暴露给 values 文件,以便我们在安装图表时可以传递不同的图像信息。其他变量在 (.Files.Get "values-deployment-nginx.yaml") 中,就像这样(也是动态生成的)。所以在生成模板时,我想匹配值文件中的图像和标签。
像这样的值文件:
deployment-nginx-imagerepo: nginx
deployment-nginx-imagetag: latest
values-deployment-nginx.yaml 像这样(由其他项目生成):
autoscale: []
containers:
- envs: []
imagerepository: nginx
imagetag: latest
itemid: n79fecd51_6716_fa65_5e64_aeed8ed6ab7e
name: nginx
resource:
maxcpu: ""
maxmemory: ""
mincpu: "0.5"
minmemory: 512m
volumemounts: []
name: details
replicas: 1
schedulpolicy: []
storages: []
type: deployment
解决方案
在Go 文本/模板语言中,我相信该index
功能会做到这一点。(.Values
通常是一个映射,YAML 映射和列表转换为 Go 映射和切片。)(还要记住几乎所有sprig库中的东西都是可用的。)
image: {{ index .Values (printf "%s-image" $value.name) }}:{{ index .Values (printf "%s-tag" $value.name) }}
推荐阅读
- amazon-web-services - 使用 aws lambda 实现 Aws lex
- javascript - 从另一个元素数组中过滤一个数组并返回特定位置
- python-3.x - 拆分行以在 Pandas Dataframe 中创建新行
- c# - 使用 C# 将数组的值放入文本框中
- python-3.x - 值/列表字典到字典列表
- javascript - 如何在 JavaScript 中创建一个结构并在之后对其进行排序?
- c# - 使用 asp.net 在选择框中显示所有员工
- node.js - 在 golang 中为 http 响应创建自定义错误
- swift - 如何在 icarousel 当前索引项中使用搜索?
- android - 如何复制和修改 LayoutParams 以将它们设置在以编程方式创建的小部件上?