From d88e1c13ca0e17f528478cae483662d781c9e574 Mon Sep 17 00:00:00 2001 From: "Joshua C. Forest" Date: Wed, 6 Sep 2023 15:35:21 -0400 Subject: [PATCH 1/6] Switch to using vpcId and creating the security group directly from within serverless --- serverless-resources.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/serverless-resources.yml b/serverless-resources.yml index 8766957..793a753 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -1,3 +1,12 @@ +rBuildsSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupDescription: Security Group for the RBuilds jobs + GroupName: RBuildsJobs + VpcId: ${self:custom.vpcId} + Tags: ${self:custom.tagsList} + + rBuildsBatchIamRole: Type: AWS::IAM::Role Properties: @@ -103,7 +112,8 @@ rBuildsBatchComputeEnvironment: Version: '$Latest' SpotIamFleetRole: "Fn::GetAtt": [ rBuildsSpotFleetIamRole, Arn ] - SecurityGroupIds: ${self:custom.securityGroupIds} + SecurityGroupIds: + "Fn::GetAtt": [ rBuildsSecurityGroup, GroupId ] Subnets: ${self:custom.subnets} Type: SPOT BidPercentage: 100 From e619f3bd4053087222793932574961f0c3fa49cd Mon Sep 17 00:00:00 2001 From: "Joshua C. Forest" Date: Wed, 6 Sep 2023 16:09:47 -0400 Subject: [PATCH 2/6] Tag list is different here --- serverless-resources.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverless-resources.yml b/serverless-resources.yml index 793a753..244f186 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -4,7 +4,7 @@ rBuildsSecurityGroup: GroupDescription: Security Group for the RBuilds jobs GroupName: RBuildsJobs VpcId: ${self:custom.vpcId} - Tags: ${self:custom.tagsList} + Tags: ${self:provider.stackTags} rBuildsBatchIamRole: From 1472fe13fc990a5ad34e31b316500871dc2c7b06 Mon Sep 17 00:00:00 2001 From: "Joshua C. Forest" Date: Thu, 7 Sep 2023 12:07:49 -0400 Subject: [PATCH 3/6] security groups is a list --- serverless-resources.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverless-resources.yml b/serverless-resources.yml index 244f186..d6d7ef2 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -113,7 +113,7 @@ rBuildsBatchComputeEnvironment: SpotIamFleetRole: "Fn::GetAtt": [ rBuildsSpotFleetIamRole, Arn ] SecurityGroupIds: - "Fn::GetAtt": [ rBuildsSecurityGroup, GroupId ] + - "Fn::GetAtt": [ rBuildsSecurityGroup, GroupId ] Subnets: ${self:custom.subnets} Type: SPOT BidPercentage: 100 From 21aad5acc5e778e5e0cbf946c21962c52ace1bdf Mon Sep 17 00:00:00 2001 From: "Joshua C. Forest" Date: Thu, 7 Sep 2023 17:33:02 -0400 Subject: [PATCH 4/6] support staging and production --- serverless-resources.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverless-resources.yml b/serverless-resources.yml index d6d7ef2..acf418e 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -1,8 +1,8 @@ rBuildsSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: - GroupDescription: Security Group for the RBuilds jobs - GroupName: RBuildsJobs + GroupDescription: RBuilds jobs - ${self:provider.stage} + GroupName: RBuildsJobs-${self:provider.stage} VpcId: ${self:custom.vpcId} Tags: ${self:provider.stackTags} From 042612f906bd0b2b3b1750b52d91da3456ee1651 Mon Sep 17 00:00:00 2001 From: "Joshua C. Forest" Date: Thu, 7 Sep 2023 18:53:59 -0400 Subject: [PATCH 5/6] match python-builds with new allocation strategy --- serverless-resources.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/serverless-resources.yml b/serverless-resources.yml index acf418e..1cc835c 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -106,6 +106,7 @@ rBuildsBatchComputeEnvironment: ServiceRole: "Fn::GetAtt": [ rBuildsBatchIamRole, Arn ] ComputeResources: + AllocationStrategy: BEST_FIT_PROGRESSIVE LaunchTemplate: LaunchTemplateId: Ref: rBuildsEcsLaunchTemplate From 8c0af64aeb35edc41a43bcecadd17ce6316b314f Mon Sep 17 00:00:00 2001 From: "Joshua C. Forest" Date: Fri, 8 Sep 2023 08:54:10 -0400 Subject: [PATCH 6/6] modify tags to match how we did them in python-builds and revdepcheck-cloud --- serverless-resources.yml | 4 ++-- serverless.yml | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/serverless-resources.yml b/serverless-resources.yml index 1cc835c..246b33e 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -4,7 +4,7 @@ rBuildsSecurityGroup: GroupDescription: RBuilds jobs - ${self:provider.stage} GroupName: RBuildsJobs-${self:provider.stage} VpcId: ${self:custom.vpcId} - Tags: ${self:provider.stackTags} + Tags: ${self:provider.tagsList} rBuildsBatchIamRole: @@ -131,7 +131,7 @@ rBuildsBatchComputeEnvironment: - c5a.xlarge - c5a.2xlarge Ec2KeyPair: ${self:custom.ec2KeyPair} - Tags: ${self:provider.stackTags} + Tags: ${self:provider.tagsMap} MinvCpus: 0 DesiredvCpus: 0 MaxvCpus: 256 diff --git a/serverless.yml b/serverless.yml index f857a4e..57a1827 100644 --- a/serverless.yml +++ b/serverless.yml @@ -22,7 +22,17 @@ provider: stage: ${opt:stage, self:custom.defaultStage} deploymentBucket: name: ${self:custom.deploymentBucket} - stackTags: ${self:custom.${self:provider.stage}.stackTags} + tagsList: + - Key: rs:project + Value: ${self:custom.${self:provider.stage}.tags.project} + - Key: rs:owner + Value: ${self:custom.${self:provider.stage}.tags.owner} + - Key: rs:environment + Value: ${self:custom.${self:provider.stage}.tags.environment} + tagsMap: + "rs:owner": ${self:custom.${self:provider.stage}.tags.owner} + "rs:project": ${self:custom.${self:provider.stage}.tags.project} + "rs:environment": ${self:custom.${self:provider.stage}.tags.environment} iamRoleStatements: - Effect: Allow Action: