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