有没有办法用 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 PR 在 values
字段中添加了对任意 YAML 的支持。如果合并,我希望它在 2.4 中可用。 Reviews/testing有时间不胜感激!
一种解决方法是使用 parameters
field 并单独设置参数。这并不理想,但在 2.4 发布之前可能会有帮助。
我正在尝试使用 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 PR 在 values
字段中添加了对任意 YAML 的支持。如果合并,我希望它在 2.4 中可用。 Reviews/testing有时间不胜感激!
一种解决方法是使用 parameters
field 并单独设置参数。这并不理想,但在 2.4 发布之前可能会有帮助。