Jam*_*mes 5 kubernetes kubernetes-helm
我可以ConfigMap从目录中生成 ,但它们不会翻译模板指令或值。下面是Release.Namespace模板指令不在ConfigMap.
.
|____Chart.yaml
|____charts
|____.helmignore
|____templates
| |____my-scripts.yaml
|____values.yaml
|____test-files
|____test1.txt
Run Code Online (Sandbox Code Playgroud)
---
# templates/myscripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scripts
namespace: {{ .Release.Namespace }}
data:
test.txt: |-
{{ .Files.Get "test-files/test1.txt" | indent 4}}
Run Code Online (Sandbox Code Playgroud)
# test-files/test1.txt
test file
{{ .Release.Namespace }}
Run Code Online (Sandbox Code Playgroud)
当我在helm install . --dry-run --debug --namespace this-should-print这里跑步时,我得到的是什么,而不是我所期待的:
实际的:
---
# Source: test/templates/my-scripts.yaml
# templates/myscripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scripts
namespace: test
data:
test.txt: |-
# test-files/test1.txt
test file
{{ .Release.Namespace }}
Run Code Online (Sandbox Code Playgroud)
预期的:
---
# Source: test/templates/my-scripts.yaml
# templates/myscripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scripts
namespace: test
data:
test.txt: |-
# test-files/test1.txt
test file
this-should-print
Run Code Online (Sandbox Code Playgroud)
或者,我会对指定目录中以如下格式输出的每个文件感兴趣:
<filename>: |-
<content>
Run Code Online (Sandbox Code Playgroud)
我找到了一种使用 tpl 函数来做到这一点的方法:
---
# templates/myscripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scripts
namespace: {{ .Release.Namespace }}
data:
test.txt: |-
{{ tpl ( .Files.Get "test-files/test1.txt" ) . | indent 4 }}
Run Code Online (Sandbox Code Playgroud)
新的输出与预期完全一致:
# templates/myscripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scripts
namespace: this-should-print
data:
test.txt: |-
# test-files/test1.txt
test file
this-should-print
Run Code Online (Sandbox Code Playgroud)
为了获得奖励积分,可以从目录中获取所有文件,而无需在配置映射中更新此列表:
---
# templates/myscripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scripts
namespace: {{ .Release.Namespace }}
data:
{{ tpl (.Files.Glob "groovy-scripts/*").AsConfig . | indent 4 }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |