所以我有一个 ConfigMap,里面有一个 json 配置文件,如下所示:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-map
data:
config.json: |+
{
"some-url": "{{ .Values.myApp.someUrl }}"
}
但是我已经将配置文件放在 ConfigMap 的 yaml 之外,并在那里引用它们,如下所示:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-map
data:
config.json: |-
{{ .Files.Get .Values.myApp.configFile | indent 4 }}
但现在我希望我的 json 如下所示
{
"some-url": "{{ .Values.myApp.someUrl }}"
}
我唯一尝试过的就是我刚才展示的。我什至不知道如何寻找这个答案。
这可能吗?
最佳答案
读取文件时,其内容是一个字符串。它不会被评估为模板,因此您不能像以前那样使用变量。
但是,helm 有一个专门用于此目的的函数,称为 tpl :
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-map
data:
config.json: |-
{{ tpl (.Files.Get .Values.myApp.configFile) $ | indent 4 }}
tpl 函数采用模板字符串并使用一些上下文来呈现它。当您的值文件中有模板片段或某些文件内容中有模板片段时,这非常有用。
关于kubernetes - ConfigMap 文件中的 Helm 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73490636/