我正在寻找从
nginx ingress
安装 argocd
。在 argocd
应用程序中,引用 nginx-ingress` 公共 helm 图表作为带有 2 个自定义值文件的源。 1 具有跨环境的共同值,2 具有特定值。
例如:1.common-values.yaml
controller:
ingressClass: nginx-internal
service:
internal:
loadBalancerIP: {{ .Values.public_ip }}
public_ip: "1.2.3.4"
最后我想要它看起来像这样
controller:
ingressClass: nginx-internal
service:
internal:
loadBalancerIP: 1.2.3.4
我不想在两个
values.yaml
文件中保留相同的 yaml 引用,这也是可能的,因为我将从我的 terraform 中将特定值输出为 json。
例如 test.json
{
"internal_ip": "1.2.3.4"
}
另一种可能的方法是将一个值 yaml 文件保留在 helm 模板文件夹中并传递 value.yaml 文件并生成一个包含所有渲染值的新 yaml 文件,但在我的情况下,我无法使用入口 helm 图表模板文件,寻找一个值文件本身的替代方案。
我尝试在values.yaml中创建像$public_ip这样的变量,并尝试从另一个值传递值,但helm图表没有从values.yaml文件渲染
使用普通的 helm 命令,您只需嵌套几个值文件,最新的文件将具有优先级,即如果您的基本 value.yaml 文件包含内容:
controller:
ingressClass: nginx-internal
service:
internal:
loadBalancerIP: placeholder_ip
并且您的 Specific-values.yaml 文件包含内容:
controller:
service:
internal:
loadBalancerIP: 1.2.3.4
并且您仅引用特定值.yaml(即使您不引用它,默认情况下也会将基数用作第一个条目),结果将是:
controller:
ingressClass: nginx-internal
service:
internal:
loadBalancerIP: 1.2.3.4
我相信你正在寻找什么。
最后,如果出于任何原因您需要在传递给 helm 命令之前可视化合并结果,您可以使用 Reliza CLI 的 helmvalues 功能 - https://github.com/relizaio/reliza-cli#18-use-case -覆盖并获取合并舵图值