-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathsync-zones-pipeline.yml
137 lines (129 loc) · 5.89 KB
/
sync-zones-pipeline.yml
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Docs:
# https://aka.ms/yaml
name: Azure Public DNS zone to Private DNS zone Sync up
trigger:
batch: true
branches:
include:
- master
paths:
include:
- scripts/sync-to-private-dns-zone.sh
- sync-zones-pipeline.yml
pr: none # Disable pull request triggers.
schedules:
- cron: "0 3 * * *"
displayName: Daily build @ 3am
branches:
include:
- master
variables:
- name: timeoutInMinutes
value: 60
- name: agentPool
value: 'ubuntu-latest'
- name: build
value: $(Build.BuildNumber)
- name: ado_service_connection
value: OPS-APPROVAL-GATE-MGMT-ENVS
parameters:
- name: overrideAction
type: string
default: run
values:
- run
- name: environment_components
type: object
default:
- deployment: 'Sandbox'
environment: 'sandbox'
component: 'sandbox'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTSBOX-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"sandbox.platform.hmcts.net\", \"filename\": \"environments/sandbox.yml\"}]"'
dependsOn:
- Pipeline
- deployment: 'Demo'
environment: 'demo'
component: 'demo'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTPTL-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"demo.platform.hmcts.net\", \"filename\": \"environments/demo/demo-platform-hmcts-net.yml\"}]"'
dependsOn:
- Sandbox
- deployment: 'Dev'
environment: 'dev'
component: 'dev'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTPTL-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"dev.platform.hmcts.net\", \"filename\": \"environments/dev/dev.yml\"},{\"dnsname\": \"preview.platform.hmcts.net\", \"filename\": \"environments/dev/preview.yml\"}]"'
dependsOn:
- Sandbox
- deployment: 'Ithc'
environment: 'ithc'
component: 'ithc'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTPTL-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"ithc.platform.hmcts.net\", \"filename\": \"environments/ithc.yml\"}]"'
dependsOn:
- Sandbox
- deployment: 'Test'
environment: 'test'
component: 'test'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTPTL-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"test.platform.hmcts.net\", \"filename\": \"environments/test/test.yml\"},{\"dnsname\": \"perftest.platform.hmcts.net\", \"filename\": \"environments/test/perftest.yml\"}]"'
dependsOn:
- Sandbox
- deployment: 'Staging'
environment: 'staging'
component: 'staging'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTPTL-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"staging.hearings.reform.hmcts.net\", \"filename\": \"environments/staging/hearings-reform-hmcts-net.yml\"},{\"dnsname\": \"aat.platform.hmcts.net\", \"filename\": \"environments/staging/aat.yml\"},{\"dnsname\": \"staging.platform.hmcts.net\", \"filename\": \"environments/staging/staging.yml\"},{\"dnsname\": \"staging.internal.hmcts.net\", \"filename\": \"environments/staging/staging-internal-hmcts-net.yml\"}]"'
dependsOn:
- Sandbox
- deployment: 'Prod'
environment: 'prod'
component: 'prod'
publicZoneResourceGroup: 'reformmgmtrg'
publicZoneSubscription: 'Reform-CFT-Mgmt'
privateZoneSubscription: 'DTS-CFTPTL-INTSVC'
privateZoneResourceGroup: 'core-infra-intsvc-rg'
zones: '"[{\"dnsname\": \"hearings.reform.hmcts.net\", \"filename\": \"environments/prod/hearings-reform-hmcts-net.yml\"},{\"dnsname\": \"hmcts.net\", \"filename\": \"environments/prod/hmcts-net.yml\"},{\"dnsname\": \"mailrelay.platform.hmcts.net\", \"filename\": \"environments/prod/mailrelay-platform-hmcts-net.yml\"},{\"dnsname\": \"platform.hmcts.net\", \"filename\": \"environments/prod/platform-hmcts-net.yml\"},{\"dnsname\": \"prod.internal.hmcts.net\", \"filename\": \"environments/prod/prod-internal-hmcts-net.yml\"},{\"dnsname\": \"prod.platform.hmcts.net\", \"filename\": \"environments/prod/prod-platform-hmcts-net.yml\"},{\"dnsname\": \"reform.hmcts.net\", \"filename\": \"environments/prod/reform-hmcts-net.yml\"}]"'
dependsOn:
- Sandbox
stages:
- stage: Pipeline
jobs:
- job: Pipeline
timeoutInMinutes: ${{ variables.timeoutInMinutes }}
pool:
vmImage: ${{ variables.agentPool }}
- ${{ each deployment in parameters.environment_components }}:
- stage: ${{ deployment.deployment }}
dependsOn: ${{ deployment.dependsOn }}
jobs:
- job: RunSyncScript
pool:
vmImage: ${{ variables.agentPool }}
timeoutInMinutes: ${{ variables.timeoutInMinutes }}
steps:
- task: AzureCLI@2
inputs:
scriptType: bash
scriptPath: scripts/sync-to-private-dns-zone.sh
arguments: '${{ deployment.publicZoneResourceGroup }} ${{ deployment.publicZoneSubscription }} ${{ deployment.privateZoneResourceGroup }} ${{ deployment.privateZoneSubscription }} ${{ deployment.zones }}'
azureSubscription: ${{ variables.ado_service_connection }}