#azure-devops #yaml #azure-pipelines-yaml
Вопрос:
Я хочу передать группу переменных в свой шаблон yaml с заданием развертывания. Можно ли использовать одно из значений из группы переменных в качестве имени среды и имени подключения в задании развертывания?
Мой случай немного сложный, извините за это 😀
variables: - group: ServiceVariables pool: 'My Agent Pool' extends: template: /releases/deployment.dev.yml parameters: variableGroups: - Gen2DEVVariables - PaymentService
deployment.dev.yml
parameters: - name: variableGroups type: object default: [] stages: - stage: Deployment variables: - ${{ each value in parameters.variableGroups }}: - group: ${{ value }} jobs: - template: /templates/jobs/deployToKubernetes.yml parameters: environmentName: $(azure_environment_name) dockerRegistryConnection: $(serviceConnection_dockerRegistry) kubernetesServiceConnection: $(serviceConnection_kubernetes) variableGroups: ${{ parameters.variableGroups }}
и разверните файл.yml.
parameters: - name: variableGroups type: object default: [] - name: environmentName type: string values: - Develop - Test - UAT - Production - name: dockerRegistryConnection - name: kubernetesServiceConnection jobs: - deployment: ${{ parameters.environmentName }} environment: ${{ parameters.environmentName }} variables: - ${{ each value in parameters.variableGroups }}: - group: ${{ value }} strategy: runOnce: deploy: steps: - download: none - task: KubernetesManifest@0 displayName: Create Secret inputs: action: 'createSecret' kubernetesServiceConnection: ${{ parameters.kubernetesServiceConnection }} namespace: 'value' secretType: 'dockerRegistry' secretName: 'value' dockerRegistryEndpoint: ${{ parameters.dockerRegistryConnection }} - task: KubernetesManifest@0 displayName: Deploy to Kubernetes cluster inputs: action: 'deploy' kubernetesServiceConnection: ${{ parameters.kubernetesServiceConnection }} namespace: 'value' manifests: 'value'
Комментарии:
1. Здесь пара моментов: 1) можете ли вы предоставить какие-либо консольные выходные данные после запуска? компилируется ли это и не работает, или оно не компилируется? 2) на странице редактирования конвейера, после сохранения конвейера, если вы нажмете меню «…» и нажмете «Подтвердить», что вы получите? Если там написано «ОК», снова нажмите это меню и выберите «Загрузить полный YAML» — затем вы сможете увидеть, до чего расширяется шаблон.
2. @WaitingForGuacamole У меня есть информация, что среда $(azure_environment_name) не существует. Когда я удаляю разрешенные значения имени среды из deployToKubernetes. yml У меня есть еще одна ошибка — это задание $(azure_environment_name) недопустимо.
3. Это на самом деле не ответило на то, о чем я просил — вы не предоставляете никаких выходных данных, снимков экрана с ошибками — все, что нам нужно, — это ваша интерпретация происходящего.