gpt4 book ai didi

azure - Azure YAML Pipelines <部署作业> 可以使用可变环境吗?

转载 作者:行者123 更新时间:2023-12-02 12:14:52 24 4
gpt4 key购买 nike

我阅读了环境文档 here以及环境资源下提出的问题,但是我发现不可能实现我的目标:

我想使用参数化的 yaml 模板来部署到多个环境,如下所示:

parameters:
pool_name: ''
aks_namespace: ''
environment: ''

jobs:
- job: preDeploy
displayName: preDeploy
pool:
name: $(pool_name)
steps:
- template: cd_step_prerequisites.yml


- deployment: Deploy
displayName: Deploy
dependsOn: preDeploy
condition: succeeded()
variables:
secret_name: acrecret
pool:
name: dockerAgents
**environment: '$(environment).$(aks_namespace)'**
strategy:
runOnce:
deploy:
steps:
- template: cd_step_aks_deploy.yml


- job: postDeploy
displayName: postDeploy
dependsOn: Deploy
condition: succeeded()
pool:
name: $(pool_name)
steps:
- template: cd_step_postrequisites.yml

我想使用这种方法,以便我只在代码旁边托管一个最小的 pipeline.yml,然后我将所有模板放在不同的存储库中并从主管道中调用它们,如下所示:

resources:
repositories:
- repository: self
- repository: devops
type: git
name: devops

- stage: CD1
displayName: Deploy to Alpha
jobs:
**- template: pipeline/cd_job_api.yml@devops**
parameters:
pool_name: $(pool_name)
aks_namespace: $(aks_namespace)
app_name: $(app_name)
app_image_full_name: $(app_image_full_name)
environment: alpha

然后,我将能够传递 $environment 变量,以便从一个模板操作多个部署目标(AKS 集群/命名空间组)。目前这似乎是不可能的,因为当我尝试运行管道时,默认的 AzureDevOps 解析器失败,并显示消息“$(环境)环境不包含 x 命名空间”,这告诉我该变量不会扩展。

这个计划会很快实现吗?如果没有,是否有其他选择可以仅使用一个参数化作业模板来部署到多个环境?

最佳答案

我认为您需要解析文件并用脚本进行 token 替换,或者应该有相应的步骤。

您的主要选择是 helm 。它允许创建模板并传入变量来呈现这些模板。

关于azure - Azure YAML Pipelines <部署作业> 可以使用可变环境吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58187314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com