Azure devops 在azure devops部署期间覆盖掌舵图中的配置映射

Azure devops 在azure devops部署期间覆盖掌舵图中的配置映射,azure-devops,devops,kubernetes-helm,Azure Devops,Devops,Kubernetes Helm,我们正在使用helm charts模板部署到kube和Azure devops for CI/CD。下面部分中的my values.yaml数据将根据环境进行更改,并保存为pod中的配置映射。 我的问题是在azure管道中部署期间如何更新它。我们正在使用头盔升级任务或任何其他方法来更好地处理它。 environment: enabled: true env: enabled: false internalConfigMap: enabled: tr

我们正在使用helm charts模板部署到kube和Azure devops for CI/CD。下面部分中的my values.yaml数据将根据环境进行更改,并保存为pod中的配置映射。 我的问题是在azure管道中部署期间如何更新它。我们正在使用头盔升级任务或任何其他方法来更好地处理它。

environment:
    enabled: true
    env:
      enabled: false
    internalConfigMap:
      enabled: true
      **data:
        AZ_DIRECTORY: xxx
        MODEL_ID_SVM: xxx
        MODEL_ID_MULTI: xxx
        MODEL_THRESHOLD_SVM: 'xx'
        SINGLE_ACC_ENDPT: 'xx'
        MODEL_WT_SVM: 'xx'**
以下是部署任务:(忽略缩进)

选项1:每个环境一个值文件 如果每个环境有一个
values.yaml
environment1 values.yaml
environment2 values.yaml
等),则可以为管道中的每个阶段引用不同的文件

接受参数
valueFile
,您可以使用该参数指向要部署到的环境的正确
值.yaml

(可选)指定YAML文件或URL中的值。例如 指定myvalues.yaml将导致helm安装 --值=myvals.yaml

选项2:覆盖部署时的值 接受参数
overrideValues
,您可以通过该参数将值直接传递给helm:

(可选)在命令行上设置值。您可以指定多个 使用逗号分隔值。例如 key1=val1,key2=val2。也可以通过以下方式指定多个值: 用换行符将它们分隔为:key1=val1 key2=val2请注意 如果您有一个本身包含换行符的值,请使用 valueFile选项,否则任务将把换行符视为分隔符。 该任务将使用这些设定值构造helm命令。 例如,helm install--set key1=val1./redis

对你来说,这意味着

   overrideValues: template.image.tag=$(imagetag),environment.internalConfigMap.data.AZ_DIRECTORY=xxx,environment.internalConfigMap.data.MODEL_ID_SVM=xxx

选项2看起来更快,所以我可以这样写:template.environment.internalconfigmap.data:key1=value1,key2=value2,key3=value3No,而不是这样:
overrideValues:template.image.tag=$(imagetag),environment.internalconfigmap.data.AZ\u DIRECTORY=xxx,environment.internalconfigmap.data.MODEL\u ID\u SVM=xxx
(假设您想保留已有的覆盖值)非常感谢。它起作用了
   overrideValues: template.image.tag=$(imagetag),environment.internalConfigMap.data.AZ_DIRECTORY=xxx,environment.internalConfigMap.data.MODEL_ID_SVM=xxx