-
Notifications
You must be signed in to change notification settings - Fork 89
Expand file tree
/
Copy pathdeploy-infra.template.yml
More file actions
95 lines (84 loc) · 3.88 KB
/
deploy-infra.template.yml
File metadata and controls
95 lines (84 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# Azure Pipeline Template for ML Workspace Resources Deployment
parameters:
- name: environment
type: string
- name: serviceConnection
type: string
- name: resourceGroup
type: string
- name: resourcesLocation
type: string
- name: storageAccountName
type: string
- name: keyVaultName
type: string
- name: appInsightsName
type: string
- name: containerRegistryName
type: string
- name: amlWorkspaceName
type: string
jobs:
- job: iac_build
displayName: 'IaC Build'
steps:
- task: CopyFiles@2
displayName: 'Copy ARM templates'
inputs:
sourceFolder: 'Automated_ML/mlops-pipelines/1-setup/deploy-infra/arm-templates'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- publish: '$(Build.ArtifactStagingDirectory)'
artifact: infratemplates
- deployment: iac_deployment
displayName: 'IaC Deployment'
environment: ${{parameters.environment}}
strategy:
runOnce:
deploy:
steps:
- download: current
artifact: infratemplates
- task: AzureResourceGroupDeployment@2
displayName: 'Deploy Storage Account'
inputs:
azureSubscription: ${{parameters.serviceConnection}}
resourceGroupName: ${{parameters.resourceGroup}}
location: ${{parameters.resourcesLocation}}
csmFile: '$(Pipeline.Workspace)/infratemplates/storage.template.json'
csmParametersFile: '$(Pipeline.Workspace)/infratemplates/storage.parameters.json'
overrideParameters: '-name ${{parameters.storageAccountName}} -location ${{parameters.resourcesLocation}}'
- task: AzureResourceGroupDeployment@2
displayName: 'Deploy Key Vault'
inputs:
azureSubscription: ${{parameters.serviceConnection}}
resourceGroupName: ${{parameters.resourceGroup}}
location: ${{parameters.resourcesLocation}}
csmFile: '$(Pipeline.Workspace)/infratemplates/keyvault.template.json'
csmParametersFile: '$(Pipeline.Workspace)/infratemplates/keyvault.parameters.json'
overrideParameters: '-name ${{parameters.keyVaultName}} -location ${{parameters.resourcesLocation}}'
- task: AzureResourceGroupDeployment@2
displayName: 'Deploy Application Insights'
inputs:
azureSubscription: ${{parameters.serviceConnection}}
resourceGroupName: ${{parameters.resourceGroup}}
location: ${{parameters.resourcesLocation}}
csmFile: '$(Pipeline.Workspace)/infratemplates/appinsights.template.json'
overrideParameters: '-name ${{parameters.appInsightsName}} -location ${{parameters.resourcesLocation}}'
- task: AzureResourceGroupDeployment@2
displayName: 'Deploy Container Registry'
inputs:
azureSubscription: ${{parameters.serviceConnection}}
resourceGroupName: ${{parameters.resourceGroup}}
location: ${{parameters.resourcesLocation}}
csmFile: '$(Pipeline.Workspace)/infratemplates/containerregistry.template.json'
overrideParameters: '-name ${{parameters.containerRegistryName}} -location ${{parameters.resourcesLocation}}'
- task: AzureResourceGroupDeployment@2
displayName: 'Deploy AML Workspace'
inputs:
azureSubscription: ${{parameters.serviceConnection}}
resourceGroupName: ${{parameters.resourceGroup}}
location: ${{parameters.resourcesLocation}}
csmFile: '$(Pipeline.Workspace)/infratemplates/mlworkspace.template.json'
overrideParameters: '-workspaceName ${{parameters.amlWorkspaceName}} -keyVaultName ${{parameters.keyVaultName}} -appInsightsName ${{parameters.appInsightsName}} -containerRegistryName ${{parameters.containerRegistryName}} -storageAccountName ${{parameters.storageAccountName}}'