Skip to content

Commit 6d319f6

Browse files
authored
Merge pull request #654 from aws/bump/0.40.0
chore(release): 0.40.0
2 parents 96d60b7 + b451134 commit 6d319f6

File tree

85 files changed

+3386
-4361
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+3386
-4361
lines changed

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,36 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [0.40.0](https://github.com/aws/aws-rfdk/compare/v0.39.0...v0.40.0) (2022-01-06)
6+
7+
8+
### Supported CDK Version
9+
10+
* [1.137.0](https://github.com/aws/aws-cdk/releases/tag/v1.137.0)
11+
12+
13+
### Officially Supported Deadline Versions
14+
15+
* [10.1.9.2 to 10.1.20.2](https://docs.thinkboxsoftware.com/products/deadline/10.1/1_User%20Manual/manual/release-notes.html)
16+
17+
18+
### ⚠ BREAKING CHANGES
19+
20+
See the
21+
[RFDK 0.40.x upgrade documentation](https://github.com/aws/aws-rfdk/blob/v0.40.0/packages/aws-rfdk/docs/upgrade/upgrading-0.40.md)
22+
for more details and guidance on addressing these breaking changes.
23+
24+
* The IHealthMonitor and IWorkerFleet interfaces now
25+
extend IConstruct rather than IResource and the stack and env properties
26+
on the HealthMonitor and WorkerInstanceFleet constructs were removed.
27+
* **deadline:** SpotEventPluginFleet now uses EC2 Launch Templates instead of Launch Specifications.
28+
29+
30+
### Features
31+
32+
* **deadline:** change SEP construct to use launch templates instead of launch specifications ([#513](https://github.com/aws/aws-rfdk/issues/513)) ([7c61c18](https://github.com/aws/aws-rfdk/commit/7c61c18be213d42a9ff08a227688c759b843a7d8))
33+
34+
535
## [0.39.0](https://github.com/aws/aws-rfdk/compare/v0.38.0...v0.39.0) (2021-11-20)
636

737

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
189+
Copyright 2018-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
Render Farm Deployment Kit on AWS (RFDK)
2-
Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
Copyright 2018-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
11
{
2-
"app": "python -m package.app"
2+
"app": "python -m package.app",
3+
"context": {
4+
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
5+
"@aws-cdk/core:enableStackNameDuplicates": true,
6+
"aws-cdk:enableDiffNoFail": true,
7+
"@aws-cdk/core:stackRelativeExports": true,
8+
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true,
9+
"@aws-cdk/aws-secretsmanager:parseOwnedSecretName": true,
10+
"@aws-cdk/aws-kms:defaultKeyPolicies": true,
11+
"@aws-cdk/aws-s3:grantWriteWithoutAcl": true,
12+
"@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": true,
13+
"@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
14+
"@aws-cdk/aws-efs:defaultEncryptionAtRest": true,
15+
"@aws-cdk/aws-lambda:recognizeVersionProps": true,
16+
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true
17+
}
318
}

examples/deadline/All-In-AWS-Infrastructure-Basic/python/package/lib/storage_tier.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def __init__(self, scope: Construct, stack_id: str, *, props: StorageTierProps,
179179
# render farm may become unstable.
180180
# 2) Uses RFDK's PadEfsStorage construct to add data to the EFS for the purpose of increasing the amount
181181
# of stored data to increase the baseline throughput.
182-
#
182+
#
183183
# See: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html
184184
# for more information on AWS CloudWatch Alarms.
185185
# See: https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes
@@ -227,7 +227,7 @@ def add_low_efs_burst_credit_alarms(self, filesystem: FileSystem, email_address:
227227
# ====================
228228
# 1) KMS key to use to encrypt events within the SNS Topic. The Key is optional
229229
key = Key(
230-
self,
230+
self,
231231
'SNSEncryptionKey',
232232
description='Used to encrypt the SNS Topic for sending EFS Burst Credit alerts',
233233
enable_key_rotation=True,
@@ -252,14 +252,14 @@ def add_low_efs_burst_credit_alarms(self, filesystem: FileSystem, email_address:
252252
burst_credits_metric = Metric(
253253
metric_name='BurstCreditBalance',
254254
namespace='AWS/EFS',
255-
dimensions={
255+
dimensions_map={
256256
"FileSystemId": filesystem.file_system_id
257257
},
258258
# One 99-th percentile data point sample every hour
259259
period=Duration.hours(1),
260260
statistic='p99'
261261
)
262-
262+
263263
# 2) Create the alarms
264264
thresholds = [
265265
{
@@ -342,7 +342,7 @@ def __init__(self, scope: Construct, stack_id: str, *, props: StorageTierDocDBPr
342342
subnet_group_name=subnets.INFRASTRUCTURE.name
343343
),
344344
instance_type=props.database_instance_type,
345-
# TODO - For cost considerations this example only uses 1 Database instance.
345+
# TODO - For cost considerations this example only uses 1 Database instance.
346346
# It is recommended that when creating your render farm you use at least 2 instances for redundancy.
347347
instances=1,
348348
master_user=Login(username='adminuser'),

examples/deadline/All-In-AWS-Infrastructure-Basic/python/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
packages=setuptools.find_packages(where="package"),
1818

1919
install_requires=[
20-
"aws-cdk.core==1.129.0",
21-
"aws-rfdk==0.39.0"
20+
"aws-cdk.core==1.137.0",
21+
"aws-rfdk==0.40.0"
2222
],
2323

2424
python_requires=">=3.7",

examples/deadline/All-In-AWS-Infrastructure-Basic/ts/bin/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ class AppConfig {
4141
public readonly deadlineVersion?: string;
4242

4343
/**
44-
* A map of regions to Deadline Client Linux AMIs. As an example, the base Linux Deadline 10.1.19.4 AMI ID from us-west-2
44+
* A map of regions to Deadline Client Linux AMIs. As an example, the base Linux Deadline 10.1.20.2 AMI ID from us-west-2
4545
* is filled in. It can be used as-is, added to, or replaced. Ideally the version here should match the version of
4646
* Deadline used in any connected Deadline constructs.
4747
*/
48-
public readonly deadlineClientLinuxAmiMap: Record<string, string> = {['us-west-2']: 'ami-04ae356533dc07fb5'};
48+
public readonly deadlineClientLinuxAmiMap: Record<string, string> = {['us-west-2']: 'ami-0814954855da0e4c3'};
4949

5050
/**
5151
* (Optional) A secret (in binary form) in SecretsManager that stores the UBL certificates in a .zip file.
Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
{
22
"app": "npx ts-node bin/app.ts",
33
"context": {
4-
"@aws-cdk/core:enableStackNameDuplicates": "true",
5-
"aws-cdk:enableDiffNoFail": "true"
4+
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
5+
"@aws-cdk/core:enableStackNameDuplicates": true,
6+
"aws-cdk:enableDiffNoFail": true,
7+
"@aws-cdk/core:stackRelativeExports": true,
8+
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true,
9+
"@aws-cdk/aws-secretsmanager:parseOwnedSecretName": true,
10+
"@aws-cdk/aws-kms:defaultKeyPolicies": true,
11+
"@aws-cdk/aws-s3:grantWriteWithoutAcl": true,
12+
"@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": true,
13+
"@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
14+
"@aws-cdk/aws-efs:defaultEncryptionAtRest": true,
15+
"@aws-cdk/aws-lambda:recognizeVersionProps": true,
16+
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true
617
}
718
}

examples/deadline/All-In-AWS-Infrastructure-Basic/ts/lib/storage-tier.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export abstract class StorageTier extends cdk.Stack {
159159
// render farm may become unstable.
160160
// 2) Uses RFDK's PadEfsStorage construct to add data to the EFS for the purpose of increasing the amount
161161
// of stored data to increase the baseline throughput.
162-
//
162+
//
163163
// See: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html
164164
// for more information on AWS CloudWatch Alarms.
165165
// See: https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes
@@ -227,14 +227,14 @@ export abstract class StorageTier extends cdk.Stack {
227227
const burstCreditsMetric = new Metric({
228228
metricName: 'BurstCreditBalance',
229229
namespace: 'AWS/EFS',
230-
dimensions: {
230+
dimensionsMap: {
231231
FileSystemId: filesystem.fileSystemId,
232232
},
233233
// One 99-th percentile data point hour
234234
period: Duration.hours(1),
235235
statistic: 'p99',
236236
});
237-
237+
238238
// 2) Create the alarms
239239
const thresholds = [
240240
{
@@ -319,7 +319,7 @@ export class StorageTierDocDB extends StorageTier {
319319
subnetGroupName: Subnets.INFRASTRUCTURE.name,
320320
},
321321
instanceType: props.databaseInstanceType,
322-
// TODO - For cost considerations this example only uses 1 Database instance.
322+
// TODO - For cost considerations this example only uses 1 Database instance.
323323
// It is recommended that when creating your render farm you use at least 2 instances for redundancy.
324324
instances: 1,
325325
masterUser: {
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "all-in-farm-basic",
3-
"version": "0.39.0",
3+
"version": "0.40.0",
44
"bin": {
55
"app": "bin/app.js"
66
},
@@ -13,14 +13,14 @@
1313
"watch": "tsc -w"
1414
},
1515
"devDependencies": {
16-
"@types/node": "^16.11.3",
17-
"aws-cdk": "1.129.0",
18-
"ts-node": "^10.3.1",
19-
"typescript": "~4.4.4"
16+
"@types/node": "^17.0.2",
17+
"aws-cdk": "1.137.0",
18+
"ts-node": "^10.4.0",
19+
"typescript": "~4.5.4"
2020
},
2121
"dependencies": {
22-
"@aws-cdk/core": "1.129.0",
23-
"aws-rfdk": "0.39.0",
24-
"source-map-support": "^0.5.20"
22+
"@aws-cdk/core": "1.137.0",
23+
"aws-rfdk": "0.40.0",
24+
"source-map-support": "^0.5.21"
2525
}
2626
}
Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
11
{
2-
"app": "python -m package.app"
2+
"app": "python -m package.app",
3+
"context": {
4+
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
5+
"@aws-cdk/core:enableStackNameDuplicates": true,
6+
"aws-cdk:enableDiffNoFail": true,
7+
"@aws-cdk/core:stackRelativeExports": true,
8+
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true,
9+
"@aws-cdk/aws-secretsmanager:parseOwnedSecretName": true,
10+
"@aws-cdk/aws-kms:defaultKeyPolicies": true,
11+
"@aws-cdk/aws-s3:grantWriteWithoutAcl": true,
12+
"@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": true,
13+
"@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
14+
"@aws-cdk/aws-efs:defaultEncryptionAtRest": true,
15+
"@aws-cdk/aws-lambda:recognizeVersionProps": true,
16+
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true
17+
}
318
}

examples/deadline/All-In-AWS-Infrastructure-SEP/python/package/app.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def main():
4545
sep_props = sep_stack.SEPStackProps(
4646
docker_recipes_stage_path=os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir, 'stage'),
4747
worker_machine_image=MachineImage.generic_linux(config.deadline_client_linux_ami_map),
48+
create_resource_tracker_role=config.create_resource_tracker_role,
4849
)
4950
service = sep_stack.SEPStack(app, 'SEPStack', props=sep_props, env=env)
5051

examples/deadline/All-In-AWS-Infrastructure-SEP/python/package/config.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,13 @@ def __init__(self):
1919
# should match the one used for staging the render queue and usage based licensing recipes.
2020
self.deadline_client_linux_ami_map: Mapping[str, str] = {'us-west-2': 'ami-04ae356533dc07fb5'}
2121

22+
# Whether the DeadlineResourceTrackerAccessRole IAM role required by Deadline's Resource Tracker should be created in this CDK app.
23+
#
24+
# If you have previously used this same AWS account with either Deadline's AWS Portal feature or Spot Event Plugin and had used the
25+
# Deadline Resource Tracker, then you likely have this IAM role in your account already unless you have removed it.
26+
#
27+
# Note: Deadline's Resource Tracker only supports being used by a single Deadline Repository per AWS account.
28+
self.create_resource_tracker_role: bool = True
29+
2230

2331
config: AppConfig = AppConfig()

examples/deadline/All-In-AWS-Infrastructure-SEP/python/package/lib/sep_stack.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ class SEPStackProps(StackProps):
6060
docker_recipes_stage_path: str
6161
# The IMachineImage to use for Workers (needs Deadline Client installed).
6262
worker_machine_image: IMachineImage
63+
# Whether the DeadlineResourceTrackerAccessRole IAM role required by Deadline's Resource Tracker should be created in this CDK app.
64+
create_resource_tracker_role: bool
6365

6466

6567
class SEPStack(Stack):
@@ -159,15 +161,15 @@ def __init__(self, scope: Construct, stack_id: str, *, props: SEPStackProps, **k
159161
),
160162
)
161163

162-
# Creates the Resource Tracker Access role. This role is required to exist in your account so the resource tracker will work properly
163-
# Note: If you already have a Resource Tracker IAM role in your account you can remove this code.
164-
Role(
165-
self,
166-
'ResourceTrackerRole',
167-
assumed_by=ServicePrincipal('lambda.amazonaws.com'),
168-
managed_policies= [ManagedPolicy.from_aws_managed_policy_name('AWSThinkboxDeadlineResourceTrackerAccessPolicy')],
169-
role_name= 'DeadlineResourceTrackerAccessRole',
170-
)
164+
if props.create_resource_tracker_role:
165+
# Creates the Resource Tracker Access role. This role is required to exist in your account so the resource tracker will work properly
166+
Role(
167+
self,
168+
'ResourceTrackerRole',
169+
assumed_by=ServicePrincipal('lambda.amazonaws.com'),
170+
managed_policies= [ManagedPolicy.from_aws_managed_policy_name('AWSThinkboxDeadlineResourceTrackerAccessPolicy')],
171+
role_name= 'DeadlineResourceTrackerAccessRole',
172+
)
171173

172174
fleet = SpotEventPluginFleet(
173175
self,

examples/deadline/All-In-AWS-Infrastructure-SEP/python/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
packages=setuptools.find_packages(where="package"),
1818

1919
install_requires=[
20-
"aws-cdk.core==1.129.0",
21-
"aws-rfdk==0.39.0"
20+
"aws-cdk.core==1.137.0",
21+
"aws-rfdk==0.40.0"
2222
],
2323

2424
python_requires=">=3.7",

examples/deadline/All-In-AWS-Infrastructure-SEP/ts/bin/app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@ new SEPStack(app, 'SEPStack', {
3636
env,
3737
dockerRecipesStagePath: path.join(__dirname, '..', pkg.config.stage_path), // Stage directory in config is relative, make it absolute
3838
workerMachineImage: MachineImage.genericLinux(config.deadlineClientLinuxAmiMap),
39+
createResourceTrackerRole: config.createResourceTrackerRole,
3940
});

examples/deadline/All-In-AWS-Infrastructure-SEP/ts/bin/config.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,20 @@ import 'source-map-support/register';
1212
*/
1313
class AppConfig {
1414
/**
15-
* A map of regions to Deadline Client Linux AMIs. As an example, the base Linux Deadline 10.1.19.4 AMI ID from us-west-2
15+
* A map of regions to Deadline Client Linux AMIs. As an example, the base Linux Deadline 10.1.20.2 AMI ID from us-west-2
1616
* is filled in. It can be used as-is, added to, or replaced.
1717
*/
18-
public readonly deadlineClientLinuxAmiMap: Record<string, string> = {['us-west-2']: 'ami-04ae356533dc07fb5'};
18+
public readonly deadlineClientLinuxAmiMap: Record<string, string> = {['us-west-2']: 'ami-0814954855da0e4c3'};
19+
20+
/**
21+
* Whether the DeadlineResourceTrackerAccessRole IAM role required by Deadline's Resource Tracker should be created in this CDK app.
22+
*
23+
* If you have previously used this same AWS account with either Deadline's AWS Portal feature or Spot Event Plugin and had used the
24+
* Deadline Resource Tracker, then you likely have this IAM role in your account already unless you have removed it.
25+
*
26+
* Note: Deadline's Resource Tracker only supports being used by a single Deadline Repository per AWS account.
27+
*/
28+
public readonly createResourceTrackerRole: boolean = true;
1929
}
2030

2131
export const config = new AppConfig();
Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
{
22
"app": "npx ts-node bin/app.ts",
33
"context": {
4-
"@aws-cdk/core:enableStackNameDuplicates": "true",
5-
"aws-cdk:enableDiffNoFail": "true"
4+
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
5+
"@aws-cdk/core:enableStackNameDuplicates": true,
6+
"aws-cdk:enableDiffNoFail": true,
7+
"@aws-cdk/core:stackRelativeExports": true,
8+
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true,
9+
"@aws-cdk/aws-secretsmanager:parseOwnedSecretName": true,
10+
"@aws-cdk/aws-kms:defaultKeyPolicies": true,
11+
"@aws-cdk/aws-s3:grantWriteWithoutAcl": true,
12+
"@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": true,
13+
"@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
14+
"@aws-cdk/aws-efs:defaultEncryptionAtRest": true,
15+
"@aws-cdk/aws-lambda:recognizeVersionProps": true,
16+
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true
617
}
718
}

0 commit comments

Comments
 (0)