在 helm 图表中附加 yaml 锚点

FRC*_*FRC 10 templates yaml kubernetes-helm

我正在构建一个 helm 图表,但 value.yaml 文件出现问题。由于 yaml 本身不支持变量,我尝试了锚点,但尽管这样的方法有效:

foo: &anchor A
bar: *anchor
Run Code Online (Sandbox Code Playgroud)

带输出

foo: A
bar: A
Run Code Online (Sandbox Code Playgroud)

我需要将锚附加到某个字符串上,例如

foo: &anchor A
baz: &anotherAnchor B
bar: www.*anchor.*anotherAnchor.com
Run Code Online (Sandbox Code Playgroud)

带输出

foo: A
baz: B
bar: www.A.B.com
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?

fly*_*lyx 6

与目前存在的 YAML 不同。YAML 没有转换数据的功能。人们倾向于使用像 Jinja 这样的模板引擎来做这样的事情作为预处理步骤(参见 Ansible、SaltStack 等)。

请注意,虽然锚点/别名功能似乎经常用于重复数据删除,但这绝不是本意。它们最初是用于序列化内存中的数据结构,这些数据结构可能包含循环,或者多个变量指向同一对象的任何其他内容。在 YAML 语义中,前两个代码片段不相同,因为第一个代码片段定义了一个A在两个位置引用的字符串对象,而第二个代码片段定义了两个字符串对象A。然而,对于配置数据,这通常不会产生影响(除非配置在内存中被修改并写回)。

这就是为什么 YAML 缺乏任何类型的转换功能来允许您想要执行的操作。