templates - 是否可以将模板化的 blob 文本包含到 values.yaml 中?
问题描述
出于向后兼容的动机(并减少必须更新 src 代码的负担)如下:
我有一个用户输入:
$values.yaml
output:
endpoint: MYENDPOINT
specialFile:
config1: |-
Some very nicely formated text.
Wow, such sample.
Much text.
[...]
config2: |-
# this is also text but i need to remove |- for interpretation
{{- $.Files.Get "configs/include.conf" | nindent 4 }}
我想用一团文本替换:
$configs/include.conf
<match **>
@type http
endpoint_url {{ .Values.output.endpoint }}
serializer json
</match>
因此,输出替换文本上的 var,文本替换 values.yaml 上的值。这可能吗?我知道这几乎是不可能的事情。我已经看到有人用自己替换 values.yaml (自己没有尝试过),但这可能吗?
或者我可以覆盖 .Values.specialFile.configs2 值而不直接写入 .Values 文件并以某种方式覆盖变量,也许使用模板?
解决方案
这可以通过将包含的文件处理为嵌套模板来实现tpl
:
{{ $endpoint := "MYENDPOINT" }}
output:
endpoint: {{ $endpoint }}
specialFile:
config1: |-
Some very nicely formated text.
Wow, such sample.
Much text.
[...]
config2: |-
# this is also text but i need to remove |- for interpretation
{{- tpl ($.Files.Get "configs/include.conf") $endpoint | nindent 4 }}
为了避免重复,我将端点放在一个变量中并将其传递给加载的模板。因此,它将在{{.}}
那里可用:
<match **>
@type http
endpoint_url {{ . }}
serializer json
</match>
推荐阅读
- three.js - DirectionalLight 照明固定在 glTF 的一侧,即使 glTF 旋转时也是如此
- php - 使用 tax_query 过滤所有有货产品和特定类别缺货产品的帖子
- r - 基于不同变量的交互式连接
- docker - docker compose 网络的私有“主机”
- ios - SwiftUI 中的富文本视图
- haskell - 是否可以为 DSL 中的常量和表达式提供类型类?
- python - VGG16 特征可视化
- c# - 当图片大于矩形时,计算图片裁剪的坐标矩形
- python - Python正则表达式捕获两个匹配项之间的文本?
- python - 如何使用 BeautifulSoup 在维基百科上下载图像