有没有办法用 kustomize 更新或合并字符串文字?

Is there a way to update or merge string literals with kustomize?

我正在尝试使用 kustomize 管理带有 helm 定义的 Argo CD 项目。

不幸的是,Argo 使用字符串文字管理 helm 值,这让我在与 kustomize 配置一起使用时很头疼。

我有这个 base/application.yml

apiVersion: argoproj.io/v1alpha1
kind: Application
  source:
    chart: something
    helm:
      values: |
        storageClass: cinder-csi
        ... many more lines identical to every stage

并且我想使用 kustomize 覆盖创建变体,我想在其中添加一行对开发阶段非常重要的基本值。

这不起作用,它只是替换了现有的基本定义。

overlay/dev/kustomize.yml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

patchesJson6902:
- target:
    kind: Application
  patch: |-
    - op: add
      path: /source/helm/value
      value: "storageSize: 1Gi"

对我来说,kustomize 似乎无法将值附加到字符串文字。我当前的解决方案需要在每个阶段变体中重复整个值字符串文字,只有几行不同,这严重违反了 DRY 原则。

感谢任何帮助。

open PRvalues 字段中添加了对任意 YAML 的支持。如果合并,我希望它在 2.4 中可用。 Reviews/testing有时间不胜感激!

一种解决方法是使用 parameters field 并单独设置参数。这并不理想,但在 2.4 发布之前可能会有帮助。