Я читаю документацию по средам здесь и проблемы, открытые под ресурсом среды, однако я не могу достичь своей цели:
Я хотел бы использовать параметризованный шаблон 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
Я хотел бы использовать этот подход, чтобы я размещал только минимальный файл pipe.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 по умолчанию завершается неудачно, когда я пытаюсь запустить свой конвейер, с сообщением «$ (environment) environment не содержит x namespace», которое говорит мне, что переменная не раскрывается.
Планируется ли реализовать это в ближайшее время? Если нет, есть ли альтернативы использованию только одного параметризованного шаблона задания для развертывания в нескольких средах?