-
Notifications
You must be signed in to change notification settings - Fork 0
/
ECS_Developer_MainStack.yml
320 lines (276 loc) · 8.23 KB
/
ECS_Developer_MainStack.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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
AWSTemplateFormatVersion: 2010-09-09
Description: >-
AWS CloudFormation Elastic Container Service: MainStack
Parameters:
ApplicationName:
Description: Application Name
Type: String
AllowedPattern: '[a-zA-Z0-9]*'
AppDescription:
Description: Application Description
Type: String
Application:
Type: String
AllowedValues:
- New Application
- Existing Application
Description: Application New/Existing
EmailAddress:
Type: String
Description: Notification Endpoint
HealthURL:
Type: String
Description: Enter customized Application Health URL IF you have! (Default is "/health")
Default: /health
DevEnvironment:
Type: String
Description: Do you want to create an DEV Environment?
AllowedValues:
- DEV
- None
Default: DEV
QAEnvironment:
Type: String
Description: Do you want to create an QA Environment?
AllowedValues:
- QA
- None
Default: None
StageEnvironment:
Type: String
Description: Do you want to create an STAGE Environment?
AllowedValues:
- STAGE
- None
Default: None
ProdEnvironment:
Type: String
Description: Do you want to create an PROD Environment?
AllowedValues:
- PROD
- None
Default: None
TrainEnvironment:
Type: String
Description: Do you want to create an TRAINING Environment?
AllowedValues:
- TRAINING
- None
Default: None
DAEnvironment:
Type: String
Description: Do you want to create an DA Environment?
AllowedValues:
- DA
- None
Default: None
TechnicalTeam:
Type: String
Description: Which Team will Own this Application?
AllowedValues:
- CoreEngineeingTeam
- CoreApiServices
- CorePlatformTeam
- Architecture
- CoreAutomationTeam
Tier:
Type: String
Description: Which Tier Application belongs to?
ClassificationLabel:
Type: String
Description: ClassificationLabel for this Application?
AgeroService:
Type: String
Description: Which AgeroService this Application belongs to?
BusinessTeam:
Type: String
Description: Which BusinessTeam will Own this Application?
ComplianceType:
Type: String
Description: Which ComplianceType will this Application belongs to?
DEVQAVPC:
Type: String
Description: VPC to launch Services
STAGEVPC:
Type: String
Description: VPC to launch Services
TRAININGVPC:
Type: String
Description: VPC to launch Services
DAVPC:
Type: String
Description: VPC to launch Services
PRODVPC:
Type: String
Description: VPC to launch Services
RepoURI:
Type: String
Description: RepoURI where the image is stored
ECRName:
Type: String
Description: Elastic Container Repository Name
DEVQASUBNET:
Type: String
Description: First Subnet for Container Service
STAGESUBNET:
Type: String
Description: Second Subnet for Container Service
TRAININGSUBNET:
Type: String
Description: Second Subnet for Container Service
DASUBNET:
Type: String
Description: Second Subnet for Container Service
PRODSUBNET:
Type: String
Description: Second Subnet for Container Service
DEVQAALBSUBNET:
Type: String
Description: First Subnet for Application LoadBalancer
STAGEALBSUBNET:
Type: String
Description: First Subnet for Application LoadBalancer
TRAININGALBSUBNET:
Type: String
Description: First Subnet for Application LoadBalancer
DAALBSUBNET:
Type: String
Description: First Subnet for Application LoadBalancer
PRODALBSUBNET:
Type: String
Description: First Subnet for Application LoadBalancer
DEVQASG:
Type: String
Description: SecurityGroup
STAGESG:
Type: String
Description: SecurityGroup
TRAININGSG:
Type: String
Description: SecurityGroup
DASG:
Type: String
Description: SecurityGroup
PRODSG:
Type: String
Description: SecurityGroup
DEVQAALBSG:
Type: String
Description: First SecurityGroup for Application LoadBalancer
STAGEALBSG:
Type: String
Description: First SecurityGroup for Application LoadBalancer
TRAININGALBSG:
Type: String
Description: First SecurityGroup for Application LoadBalancer
DAALBSG:
Type: String
Description: First SecurityGroup for Application LoadBalancer
PRODALBSG:
Type: String
Description: First SecurityGroup for Application LoadBalancer
DomainName:
Type: String
Description: HostedZoneId for the Reoute53 Record
ProdDomainName:
Type: String
Description: HostedZoneId for the Reoute53 Record
NonProdCertARN:
Type: String
Description: Certificate ARN for NonProd Environments
ProdCertARN:
Type: String
Description: Certificate ARN for Prod Environments
ServiceAutoScalingRoleArn:
Type: String
ProdServiceAutoScalingRoleArn:
Type: String
LifeCyclePolicyText:
Type: String
NonProdAccountId:
Type: String
ProdAccountId:
Type: String
Conditions:
NonProdStack: !Equals
- !Ref "AWS::AccountId"
- !Ref NonProdAccountId
ProdStack: !Equals
- !Ref "AWS::AccountId"
- !Ref ProdAccountId
Resources:
NonProdStack:
Type: 'AWS::CloudFormation::Stack'
Condition: NonProdStack
Properties:
TemplateURL: https://s3.amazonaws.com/agero-coreautomation-ecs-cf-template/ECS_Developer_NonProdStack.yml
Parameters:
ApplicationName: !Ref ApplicationName
AppDescription: !Ref AppDescription
EmailAddress: !Ref EmailAddress
HealthURL: !Ref HealthURL
DevEnvironment: !Ref DevEnvironment
QAEnvironment: !Ref QAEnvironment
StageEnvironment: !Ref StageEnvironment
TrainEnvironment: !Ref TrainEnvironment
DAEnvironment: !Ref DAEnvironment
DEVQAVPC: !Ref DEVQAVPC
STAGEVPC: !Ref STAGEVPC
TRAININGVPC: !Ref TRAININGVPC
DAVPC: !Ref DAVPC
DEVQAALBSUBNET: !Ref DEVQAALBSUBNET
STAGEALBSUBNET: !Ref STAGEALBSUBNET
TRAININGALBSUBNET: !Ref TRAININGALBSUBNET
DAALBSUBNET: !Ref DAALBSUBNET
DEVQAALBSG: !Ref DEVQAALBSG
STAGEALBSG: !Ref STAGEALBSG
TRAININGALBSG: !Ref TRAININGALBSG
DAALBSG: !Ref DAALBSG
DEVQASUBNET: !Ref DEVQASUBNET
STAGESUBNET: !Ref STAGESUBNET
TRAININGSUBNET: !Ref TRAININGSUBNET
DASUBNET: !Ref DASUBNET
DEVQASG: !Ref DEVQASG
STAGESG: !Ref STAGESG
TRAININGSG: !Ref TRAININGSG
DASG: !Ref DASG
ECRName: !Ref ECRName
RepoURI: !Ref RepoURI
DomainName: !Ref DomainName
TechnicalTeam: !Ref TechnicalTeam
Tier: !Ref Tier
ClassificationLabel: !Ref ClassificationLabel
AgeroService: !Ref AgeroService
BusinessTeam: !Ref BusinessTeam
ComplianceType: !Ref ComplianceType
NonProdCertARN: !Ref NonProdCertARN
ServiceAutoScalingRoleArn: !Ref ServiceAutoScalingRoleArn
LifeCyclePolicyText: !Ref LifeCyclePolicyText
ProdAccountId: !Ref ProdAccountId
ProdStack:
Type: 'AWS::CloudFormation::Stack'
Condition: ProdStack
Properties:
TemplateURL: https://s3.amazonaws.com/agero-coreautomation-ecs-cf-template/ECS_Developer_ProdStack.yml
Parameters:
ApplicationName: !Ref ApplicationName
AppDescription: !Ref AppDescription
EmailAddress: !Ref EmailAddress
HealthURL: !Ref HealthURL
ProdEnvironment: !Ref ProdEnvironment
PRODVPC: !Ref PRODVPC
PRODALBSUBNET: !Ref PRODALBSUBNET
PRODALBSG: !Ref PRODALBSG
PRODSUBNET: !Ref PRODSUBNET
PRODSG: !Ref PRODSG
ECRName: !Ref ECRName
RepoURI: !Ref RepoURI
DomainName: !Ref ProdDomainName
TechnicalTeam: !Ref TechnicalTeam
Tier: !Ref Tier
ClassificationLabel: !Ref ClassificationLabel
AgeroService: !Ref AgeroService
BusinessTeam: !Ref BusinessTeam
ComplianceType: !Ref ComplianceType
ProdCertARN: !Ref ProdCertARN
ServiceAutoScalingRoleArn: !Ref ProdServiceAutoScalingRoleArn