如何在 ArgoCD 应用程序规范中设置掌舵值(不是文件)

为此,我查看了整个 ArgoCD docs ,但不知何故,我似乎找不到答案。我有一个这样的应用程序规范:

apiVersion: argoproj.io/v1alpha1                                                                                                                                                                                                                                                          
kind: Application                                                                                                                                                                                                                                                                         
metadata:                                                                                                                                                                                                                                                                                 
  name: myapp                                                                                                                                                                                                                                                                            
  namespace: argocd                                                                                                                                                                                                                                                                       
spec:                                                                                                                                                                                                                                                                                     
  destination:                                                                                                                                                                                                                                                                            
    namespace: default                                                                                                                                                                                                                                                                    
    server: https://kubernetes.default.svc                                                                                                                                                                                                                                                
  project: default                                                                                                                                                                                                                                                                        
  source:                                                                                                                                                                                                                                                                                 
    helm:                                                                                                                                                                                                                                                                                 
      valueFiles:                                                                                                                                                                                                                                                                         
      - my-values.yaml                                                                                                                                                                                                                                                     
    path: .                                                                                                                                                                                                                                        
    repoURL: ssh://git@blah.git                                                                                                                                                                                                                        
    targetRevision: HEAD

但是,我还需要指定一个特定的 helm 值(就像您在 helm 命令中使用 --set 一样。我在 ArgoCD Web UI 中看到它有一个 Values 的位置,但我已经尝试了每一个我能想到的条目组合 (somekey=somevalue, somekey:somevalue, somekey,somevalue)。我也尝试直接编辑清单,但尝试这样做时仍然遇到类似的错误。 [ArgoCD Web UI ](https:// i.stack.imgur.com/9RGMY.png) 错误是很长的废话,以 error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type map[string]interface {} 结尾

通过 Web UI 或清单文件设置单个值的正确语法是什么?

stack overflow How do I set helm values (not files) in ArgoCD Application spec
原文答案
author avatar

接受的答案

你会通过 parameters 使用 spec.source.helm.parameters

就像是:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  project: my-project
  source:
    repoURL: https://charts.my-company.com
    targetRevision: "1234"
    chart: my-chart
    helm:
      parameters:
        - name: my.helm.key
          value: some-val
  destination:
    name: k8s-dev
    namespace: my-ns

来自 Argo Docs 的示例 - https://argo-cd.readthedocs.io/en/stable/user-guide/helm/#build-environment


答案: