ArgoCD 应用程序清单中各种 helm 值的优先级设置是什么?

问题描述 投票:0回答:2

我正在尝试从使用 helm 的本地 ArgoCD 清单生成 kubernetes 清单。我使用脚本来解析值,然后

helm template
生成结果模板。但我无法根据优先级将不同的值转换为单个模板

ArgoCD 的文档描述了将值注入舵图的 3 种不同方法。即

valueFiles
、直列
values
和舵
parameters

例如,如果我有包含所有三个的 argo 应用程序清单:

apiVersion: argoproj.io/v1alpha1
kind: Application
...
source:
  helm:
    parameters:
    - name: "param1"
      value: value1
    values: |
      param1: value2
    valuesFile:
    - values-file-1.yaml
    - values-file-2.yaml

假设这是以下内容: 值-文件-1.yaml

param1: value4

值文件-2.yaml

param1: value5

当这个清单部署在 argocd 上时,

param1
最终会是什么? 所有值中的优先级是什么?

我尝试查看文档但找不到它

kubernetes kubernetes-helm argocd gitops
2个回答
5
投票

我花了几个小时用 helm 部署 Argocd 并生成清单。

值注入具有以下优先顺序

  1. 值文件
  2. 价值观
  3. 参数

所以值胜过 valueFiles,参数胜过两者。

然后出于好奇,我尝试了每种注入类型,本质上它们通过从上到下选择最后一个值来解决冲突。

例如如果我们只有

values-file-1.yaml
并且它包含

param1: value1
param1: value3000

我们得到param1=value3000

如果我们有

valuesFile:
  - values-file-2.yaml
  - values-file-1.yaml

最后一个值文件,即

values-file-1.yaml
将胜过第一个

如果我们有

parameters:
  - name: "param1"
    value: value2
  - name: "param1"
    value: value1

结果将是 param1=value1

最后如果我们有

values: |
  param1: value2
  param1: value5

结果将是 param1=value5

这对某些人来说可能是显而易见的,但对我来说却不是


0
投票

值注入具有以下优先顺序

    lowest  -> ./values.yaml
            -> valueFiles
            -> values
            -> valuesObject
    highest -> parameters

argocd helm 用户指南文档

© www.soinside.com 2019 - 2024. All rights reserved.