From be56ba6eccf43e7fc766fdf98ad54287bd6406a3 Mon Sep 17 00:00:00 2001 From: juinqqn <54617982+juinquok@users.noreply.github.com> Date: Wed, 20 Dec 2023 23:06:16 +0800 Subject: [PATCH] update integrations tests and fix linting as required --- .../aws-ecs-integ-appmesh-proxy.template.json | 8 ++++ .../aws-ecs-integ.template.json | 8 ++++ .../aws-ecs-integ.template.json | 12 ++++++ .../aws-ecs/test/ec2/integ.lb-awsvpc-nw.ts | 3 ++ ...ws-ecs-integ-pseudo-terminal.template.json | 8 ++++ .../aws-ecs-integ-ecs.template.json | 8 ++++ .../aws-ecs/lib/ec2/ec2-task-definition.ts | 39 ++++++++++--------- .../test/ec2/ec2-task-definition.test.ts | 30 +++++++------- 8 files changed, 82 insertions(+), 34 deletions(-) diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.app-mesh-proxy-config.js.snapshot/aws-ecs-integ-appmesh-proxy.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.app-mesh-proxy-config.js.snapshot/aws-ecs-integ-appmesh-proxy.template.json index 4407c5e315caf..f04ce6c17f3ed 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.app-mesh-proxy-config.js.snapshot/aws-ecs-integ-appmesh-proxy.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.app-mesh-proxy-config.js.snapshot/aws-ecs-integ-appmesh-proxy.template.json @@ -919,6 +919,14 @@ "Properties": { "ContainerDefinitions": [ { + "Environment": [ + { + "Name": "AWS_REGION", + "Value": { + "Ref": "AWS::Region" + } + } + ], "Essential": true, "Image": "amazon/amazon-ecs-sample", "Memory": 256, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.firelens-s3-config.js.snapshot/aws-ecs-integ.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.firelens-s3-config.js.snapshot/aws-ecs-integ.template.json index 802fbf44d2afd..9ec17a6f8aaaa 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.firelens-s3-config.js.snapshot/aws-ecs-integ.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.firelens-s3-config.js.snapshot/aws-ecs-integ.template.json @@ -964,6 +964,14 @@ "Name": "log_router" }, { + "Environment": [ + { + "Name": "AWS_REGION", + "Value": { + "Ref": "AWS::Region" + } + } + ], "Essential": true, "Image": "nginx", "LogConfiguration": { diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.js.snapshot/aws-ecs-integ.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.js.snapshot/aws-ecs-integ.template.json index 466bd90542523..a59fc8fb4881b 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.js.snapshot/aws-ecs-integ.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.js.snapshot/aws-ecs-integ.template.json @@ -919,6 +919,18 @@ "Properties": { "ContainerDefinitions": [ { + "Environment": [ + { + "Name": "SOME_VARIABLE", + "Value": "value" + }, + { + "Name": "AWS_REGION", + "Value": { + "Ref": "AWS::Region" + } + } + ], "Essential": true, "Image": "amazon/amazon-ecs-sample", "Memory": 256, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.ts index 36b43c5680ce5..8667d63c7c143 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.lb-awsvpc-nw.ts @@ -20,6 +20,9 @@ const taskDefinition = new ecs.Ec2TaskDefinition(stack, 'TaskDef', { const container = taskDefinition.addContainer('web', { image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), memoryLimitMiB: 256, + environment: { + SOME_VARIABLE: 'value', + }, }); container.addPortMappings({ diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.pseudo-terminal.js.snapshot/aws-ecs-integ-pseudo-terminal.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.pseudo-terminal.js.snapshot/aws-ecs-integ-pseudo-terminal.template.json index 665bcf835bda3..2716e688d9d92 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.pseudo-terminal.js.snapshot/aws-ecs-integ-pseudo-terminal.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.pseudo-terminal.js.snapshot/aws-ecs-integ-pseudo-terminal.template.json @@ -919,6 +919,14 @@ "Properties": { "ContainerDefinitions": [ { + "Environment": [ + { + "Name": "AWS_REGION", + "Value": { + "Ref": "AWS::Region" + } + } + ], "Essential": true, "Image": "amazon/amazon-ecs-sample", "Memory": 256, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.sd-awsvpc-nw.js.snapshot/aws-ecs-integ-ecs.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.sd-awsvpc-nw.js.snapshot/aws-ecs-integ-ecs.template.json index 055b31a478be9..f6431ca60bcb3 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.sd-awsvpc-nw.js.snapshot/aws-ecs-integ-ecs.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-ecs/test/ec2/integ.sd-awsvpc-nw.js.snapshot/aws-ecs-integ-ecs.template.json @@ -928,6 +928,14 @@ "Properties": { "ContainerDefinitions": [ { + "Environment": [ + { + "Name": "AWS_REGION", + "Value": { + "Ref": "AWS::Region" + } + } + ], "Essential": true, "Image": "amazon/amazon-ecs-sample", "Memory": 256, diff --git a/packages/aws-cdk-lib/aws-ecs/lib/ec2/ec2-task-definition.ts b/packages/aws-cdk-lib/aws-ecs/lib/ec2/ec2-task-definition.ts index d202c0f832c51..f831775b7e3d7 100644 --- a/packages/aws-cdk-lib/aws-ecs/lib/ec2/ec2-task-definition.ts +++ b/packages/aws-cdk-lib/aws-ecs/lib/ec2/ec2-task-definition.ts @@ -12,7 +12,7 @@ import { PidMode, TaskDefinition, } from '../base/task-definition'; -import { ContainerDefinition, ContainerDefinitionOptions } from '../container-definition' +import { ContainerDefinition, ContainerDefinitionOptions } from '../container-definition'; import { PlacementConstraint } from '../placement'; /** @@ -131,24 +131,6 @@ export class Ec2TaskDefinition extends TaskDefinition implements IEc2TaskDefinit } } - /** - * Tasks running in AWSVPC networking mode requires an additional environment variable for the region to be sourced. - * This override adds in the additional environment variable as required - */ - override addContainer(id: string, props: ContainerDefinitionOptions): ContainerDefinition { - if (this.networkMode === NetworkMode.AWS_VPC) { - return new ContainerDefinition(this, id, { - taskDefinition: this, ...props, - environment: { - ...props.environment, - AWS_REGION: Stack.of(this).region - } - }); - } - // If network mode is not AWSVPC, then just add the container as normal - return new ContainerDefinition(this, id, {taskDefinition: this, ...props}); - } - /** * Constructs a new instance of the Ec2TaskDefinition class. */ @@ -165,4 +147,23 @@ export class Ec2TaskDefinition extends TaskDefinition implements IEc2TaskDefinit // Validate the placement constraints Ec2TaskDefinition.validatePlacementConstraints(props.placementConstraints ?? []); } + + /** + * Tasks running in AWSVPC networking mode requires an additional environment variable for the region to be sourced. + * This override adds in the additional environment variable as required + */ + override addContainer(id: string, props: ContainerDefinitionOptions): ContainerDefinition { + if (this.networkMode === NetworkMode.AWS_VPC) { + return new ContainerDefinition(this, id, { + taskDefinition: this, + ...props, + environment: { + ...props.environment, + AWS_REGION: Stack.of(this).region, + }, + }); + } + // If network mode is not AWSVPC, then just add the container as normal + return new ContainerDefinition(this, id, { taskDefinition: this, ...props }); + } } diff --git a/packages/aws-cdk-lib/aws-ecs/test/ec2/ec2-task-definition.test.ts b/packages/aws-cdk-lib/aws-ecs/test/ec2/ec2-task-definition.test.ts index 5628ca6f074ba..ede45583332dc 100644 --- a/packages/aws-cdk-lib/aws-ecs/test/ec2/ec2-task-definition.test.ts +++ b/packages/aws-cdk-lib/aws-ecs/test/ec2/ec2-task-definition.test.ts @@ -1121,9 +1121,9 @@ describe('ec2 task definition', () => { image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), memoryLimitMiB: 512, environment: { - SOME_VARIABLE: 'some-value' - } - }) + SOME_VARIABLE: 'some-value', + }, + }); // THEN it should include the AWS_REGION env variable Template.fromStack(stack).hasResourceProperties('AWS::ECS::TaskDefinition', { @@ -1134,14 +1134,14 @@ describe('ec2 task definition', () => { Memory: 512, Environment: [{ Name: 'SOME_VARIABLE', - Value: 'some-value' + Value: 'some-value', }, { Name: 'AWS_REGION', Value: { - Ref: 'AWS::Region' - } - }] - }] + Ref: 'AWS::Region', + }, + }], + }], }); // GIVEN HOST network mode @@ -1153,9 +1153,9 @@ describe('ec2 task definition', () => { image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), memoryLimitMiB: 512, environment: { - SOME_VARIABLE: 'some-value' - } - }) + SOME_VARIABLE: 'some-value', + }, + }); // THEN it should add in any env variables Template.fromStack(anotherStack).hasResourceProperties('AWS::ECS::TaskDefinition', { @@ -1166,11 +1166,11 @@ describe('ec2 task definition', () => { Memory: 512, Environment: [{ Name: 'SOME_VARIABLE', - Value: 'some-value' - }] - }] + Value: 'some-value', + }], + }], }); - }) + }); }); describe('setting inferenceAccelerators', () => {