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

标签 azure kubernetes azure-devops yaml azure-pipelines

我阅读了环境文档 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/

相关文章:

.net - AppDomainUnloadedException - 如何调试?

javascript - 使用库 @kubernetes/client-nde 时无法读取未定义的属性(读取 'KubeConfig' )

kubernetes - Bitnami 伞图 - 多个应用程序的子图

azure-devops - 使用发布定义自动提升 nuget 包

azure-devops - Azure Devops YML 条件阶段模板

mysql - 无法通过 MySQL Workbench 连接到 Azure MySQL

azure - 如何在Azure Iot-hub中实现Twin Change的路由功能?

azure - 使用 Microsoft Flow 将文件从 Azure blob 复制到 Sharepoint 文件夹

kubernetes - 我如何确保在EKS上将Pod安排到每个Kubernetes节点之前对其进行注释?

azure - 如何在 Azure DevOps Board 中设置 WIP 限制 - Sprint View