Azure YAML管道是否可以安装<;部署作业>;使用可变环境?

Azure YAML管道是否可以安装<;部署作业>;使用可变环境?,azure,kubernetes,azure-devops,yaml,azure-pipelines,Azure,Kubernetes,Azure Devops,Yaml,Azure Pipelines,我阅读了环境文档和在环境资源下打开的问题,但是我发现不可能实现我的目标: 我希望使用参数化yaml模板,以便部署到多个环境中,如下所示: parameters: pool_name: '' aks_namespace: '' environment: '' jobs: - job: preDeploy displayName: preDeploy pool: name: $(pool_name) steps: - template

我阅读了环境文档和在环境资源下打开的问题,但是我发现不可能实现我的目标:

我希望使用参数化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,然后将所有模板放在不同的repo中,并从主管道调用它们,如下所示:

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名称空间”,它告诉我变量没有扩展


这项计划是否会很快实施?如果没有,是否有其他方法可以只使用一个参数化作业模板部署到多个环境?

我认为您需要解析文件并使用脚本替换令牌,或者应该有相应的步骤

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