Skip to content

Commit 7a833d4

Browse files
authored
Merge pull request #33 from Soham-G/main
Instance tagging and mounting FSxL to Cloud9 instance
2 parents 2fcc5b5 + 97ef1fe commit 7a833d4

16 files changed

+118
-17
lines changed

Templates/AWS-HPC-Cluster.yaml

+12-13
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,6 @@ Resources:
191191
Path: "/"
192192
Roles:
193193
- Ref: Cloud9Role
194-
195194
LambdaExecutionRole:
196195
Type: AWS::IAM::Role
197196
Properties:
@@ -483,7 +482,7 @@ Resources:
483482
Description: This the password used for Admin of the custom AD directory
484483
SecretString: !If [CreateAD, !Ref AdminPassword, !Ref ADPassword]
485484

486-
Cloud9SSMDocument:
485+
Cloud9SSMDocument: # Clones 1click repo, adds environment variables, and uploads to s3 bucket. Then runs "scripts/Cloud9-Bootstrap.sh" to setup this cloud9 node
487486
Type: AWS::SSM::Document
488487
Properties:
489488
DocumentType: Command
@@ -502,7 +501,7 @@ Resources:
502501
- echo LANG=en_US.utf-8 >> /etc/environment
503502
- echo LC_ALL=en_US.UTF-8 >> /etc/environment
504503
- cd /home/ec2-user/environment
505-
- git clone "https://github.com/aws-samples/1click-hpc.git"
504+
- git clone "https://github.com/aws-samples/1click-hpc"
506505
- !Sub echo "export AWS_DEFAULT_REGION=${AWS::Region}" >> cluster_env
507506
- !Sub echo "export AWS_REGION_NAME=${AWS::Region}" >> cluster_env
508507
- !Sub echo "export S3_BUCKET=${Cloud9OutputBucket}" >> cluster_env
@@ -564,7 +563,7 @@ Resources:
564563
- Cloud9InstanceProfile
565564
- Arn
566565

567-
Cloud9BootstrapInstanceLambdaFunction:
566+
Cloud9BootstrapInstanceLambdaFunction: # Attaches Instance profile to cloud9 instance
568567
Type: AWS::Lambda::Function
569568
Properties:
570569
Handler: index.lambda_handler
@@ -626,25 +625,25 @@ Resources:
626625
else:
627626
cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData)
628627

629-
LogGroupCloud9BootstrapInstanceLambdaFunction:
628+
LogGroupCloud9BootstrapInstanceLambdaFunction: # Creates log group for the Cloud9BootstrapInstanceLambdaFunction
630629
Type: AWS::Logs::LogGroup
631630
DeletionPolicy: Delete
632631
Properties:
633632
LogGroupName: !Sub /aws/lambda/${Cloud9BootstrapInstanceLambdaFunction}
634633
RetentionInDays: 7
635634

636-
WaitHandle:
635+
WaitHandle: # Creates a wait handle, that the Cloud9Bootstrap script writes success to if the cluster creation and setup successful
637636
Type: AWS::CloudFormation::WaitConditionHandle
638637

639-
WaitCondition:
638+
WaitCondition: # Waits for the handle to say success
640639
Type: AWS::CloudFormation::WaitCondition
641640
DependsOn:
642641
- Cloud9BootstrapInstanceLambda
643642
Properties:
644643
Handle: !Ref WaitHandle
645644
Timeout: '3600'
646645

647-
LambdaGetHeadNodeIP:
646+
LambdaGetHeadNodeIP: # Wait until headnode and cluster setup completed
648647
Type: AWS::Lambda::Function
649648
Properties:
650649
Code:
@@ -687,7 +686,7 @@ Resources:
687686
LogGroupName: !Sub /aws/lambda/${LambdaGetHeadNodeIP}
688687
RetentionInDays: 7
689688

690-
HeadNodeIP:
689+
HeadNodeIP: # After cluster created (previous lambda reports success), gets HeadNode IP
691690
Type: Custom::HeadNodeIP
692691
DependsOn:
693692
- WaitCondition
@@ -730,7 +729,7 @@ Resources:
730729
- ${AWS::StackName}-${RANDOM}
731730
- RANDOM: !Select [0, !Split ['-', !Select [2, !Split ['/', !Ref 'AWS::StackId' ]]]]
732731

733-
Cloud9OutputBucket:
732+
Cloud9OutputBucket: # Creates Bucket to hold postinstall scripts - need to retain bucket after delete, because bucket needs to be empty to successfully delete
734733
Type: AWS::S3::Bucket
735734
DeletionPolicy: Retain
736735
UpdateReplacePolicy: Retain
@@ -758,7 +757,7 @@ Resources:
758757
VpcEndpointType: Gateway
759758
VpcId: !Ref VPC
760759

761-
LBInit:
760+
LBInit: # Sets up Application Load Balancer, adding certificates etc.
762761
Type: Custom::LBInit
763762
DependsOn:
764763
- LogGroupLBInitLambda
@@ -774,7 +773,7 @@ Resources:
774773
LogGroupName: !Sub /aws/lambda/${LBInitLambda}
775774
RetentionInDays: 7
776775

777-
LBInitLambda:
776+
LBInitLambda: # Create ALB certificate
778777
Type: AWS::Lambda::Function
779778
Properties:
780779
Description: Create ALB Certificate
@@ -1105,7 +1104,7 @@ Resources:
11051104
- Key: Name
11061105
Value: !Sub ${AWS::StackName}-GetAZLambdaFunction
11071106

1108-
ActiveDirectory:
1107+
ActiveDirectory: # Create Managed Active Directory (standard) to handle cluster users
11091108
Type: AWS::DirectoryService::MicrosoftAD
11101109
Condition: CreateAD
11111110
Properties:

parallelcluster/config.ap-east-1.sample.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Scheduling:
8383
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
8484
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
8585
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
86+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
8687
S3Access:
8788
- BucketName: '*'
8889
EnableWriteAccess: true
@@ -126,6 +127,7 @@ Scheduling:
126127
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
127128
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
128129
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
130+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
129131
S3Access:
130132
- BucketName: '*'
131133
EnableWriteAccess: true
@@ -164,6 +166,7 @@ Scheduling:
164166
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
165167
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
166168
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
169+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
167170
S3Access:
168171
- BucketName: '*'
169172
EnableWriteAccess: true
@@ -214,6 +217,7 @@ Scheduling:
214217
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
215218
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
216219
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
220+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
217221
S3Access:
218222
- BucketName: '*'
219223
EnableWriteAccess: true
@@ -269,6 +273,7 @@ Scheduling:
269273
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
270274
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
271275
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
276+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
272277
S3Access:
273278
- BucketName: '*'
274279
EnableWriteAccess: true
@@ -324,6 +329,7 @@ Scheduling:
324329
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
325330
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
326331
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
332+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
327333
S3Access:
328334
- BucketName: '*'
329335
EnableWriteAccess: true

parallelcluster/config.ap-northeast-1.sample.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ Scheduling:
104104
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
105105
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
106106
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
107+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
107108
S3Access:
108109
- BucketName: '*'
109110
EnableWriteAccess: true
@@ -153,6 +154,7 @@ Scheduling:
153154
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
154155
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
155156
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
157+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
156158
S3Access:
157159
- BucketName: '*'
158160
EnableWriteAccess: true
@@ -196,6 +198,7 @@ Scheduling:
196198
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
197199
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
198200
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
201+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
199202
S3Access:
200203
- BucketName: '*'
201204
EnableWriteAccess: true
@@ -246,6 +249,7 @@ Scheduling:
246249
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
247250
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
248251
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
252+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
249253
S3Access:
250254
- BucketName: '*'
251255
EnableWriteAccess: true
@@ -289,6 +293,7 @@ Scheduling:
289293
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
290294
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
291295
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
296+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
292297
S3Access:
293298
- BucketName: '*'
294299
EnableWriteAccess: true
@@ -345,6 +350,7 @@ Scheduling:
345350
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
346351
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
347352
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
353+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
348354
S3Access:
349355
- BucketName: '*'
350356
EnableWriteAccess: true
@@ -400,6 +406,7 @@ Scheduling:
400406
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
401407
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
402408
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
409+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
403410
S3Access:
404411
- BucketName: '*'
405412
EnableWriteAccess: true
@@ -455,6 +462,7 @@ Scheduling:
455462
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
456463
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
457464
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
465+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
458466
S3Access:
459467
- BucketName: '*'
460468
EnableWriteAccess: true
@@ -512,6 +520,7 @@ Scheduling:
512520
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
513521
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
514522
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
523+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
515524
S3Access:
516525
- BucketName: '*'
517526
EnableWriteAccess: true

parallelcluster/config.ap-northeast-2.sample.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ Scheduling:
9797
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
9898
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
9999
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
100+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
100101
S3Access:
101102
- BucketName: '*'
102103
EnableWriteAccess: true
@@ -139,6 +140,7 @@ Scheduling:
139140
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
140141
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
141142
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
143+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
142144
S3Access:
143145
- BucketName: '*'
144146
EnableWriteAccess: true
@@ -182,6 +184,7 @@ Scheduling:
182184
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
183185
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
184186
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
187+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
185188
S3Access:
186189
- BucketName: '*'
187190
EnableWriteAccess: true
@@ -225,6 +228,7 @@ Scheduling:
225228
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
226229
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
227230
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
231+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
228232
S3Access:
229233
- BucketName: '*'
230234
EnableWriteAccess: true
@@ -281,6 +285,7 @@ Scheduling:
281285
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
282286
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
283287
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
288+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
284289
S3Access:
285290
- BucketName: '*'
286291
EnableWriteAccess: true
@@ -331,6 +336,7 @@ Scheduling:
331336
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
332337
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
333338
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
339+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
334340
S3Access:
335341
- BucketName: '*'
336342
EnableWriteAccess: true
@@ -386,6 +392,7 @@ Scheduling:
386392
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
387393
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
388394
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
395+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
389396
S3Access:
390397
- BucketName: '*'
391398
EnableWriteAccess: true
@@ -443,6 +450,7 @@ Scheduling:
443450
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
444451
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
445452
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
453+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
446454
S3Access:
447455
- BucketName: '*'
448456
EnableWriteAccess: true

parallelcluster/config.ap-south-1.sample.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ Scheduling:
9090
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
9191
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
9292
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
93+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
9394
S3Access:
9495
- BucketName: '*'
9596
EnableWriteAccess: true
@@ -132,6 +133,7 @@ Scheduling:
132133
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
133134
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
134135
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
136+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
135137
S3Access:
136138
- BucketName: '*'
137139
EnableWriteAccess: true
@@ -175,6 +177,7 @@ Scheduling:
175177
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
176178
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
177179
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
180+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
178181
S3Access:
179182
- BucketName: '*'
180183
EnableWriteAccess: true
@@ -218,6 +221,7 @@ Scheduling:
218221
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
219222
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
220223
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
224+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
221225
S3Access:
222226
- BucketName: '*'
223227
EnableWriteAccess: true
@@ -267,6 +271,7 @@ Scheduling:
267271
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
268272
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
269273
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
274+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
270275
S3Access:
271276
- BucketName: '*'
272277
EnableWriteAccess: true
@@ -322,6 +327,7 @@ Scheduling:
322327
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
323328
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
324329
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
330+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
325331
S3Access:
326332
- BucketName: '*'
327333
EnableWriteAccess: true
@@ -377,6 +383,7 @@ Scheduling:
377383
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
378384
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
379385
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
386+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
380387
S3Access:
381388
- BucketName: '*'
382389
EnableWriteAccess: true
@@ -434,6 +441,7 @@ Scheduling:
434441
- Policy: arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess
435442
- Policy: arn:aws:iam::aws:policy/AmazonSSMFullAccess
436443
- Policy: arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess
444+
- Policy: arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
437445
S3Access:
438446
- BucketName: '*'
439447
EnableWriteAccess: true

0 commit comments

Comments
 (0)