Skip to content

Commit

Permalink
Merge pull request #4 from wcmc-its/dev
Browse files Browse the repository at this point in the history
Release of ReCiter CDK 2.0.0
  • Loading branch information
sarbajitdutta authored Apr 6, 2022
2 parents be6a3f6 + baf2248 commit 2e94b7f
Show file tree
Hide file tree
Showing 12 changed files with 99 additions and 152 deletions.
13 changes: 3 additions & 10 deletions cdk.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,9 @@
"app": "mvn -e -q compile exec:java",
"context": {
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
"@aws-cdk/core:enableStackNameDuplicates": "true",
"aws-cdk:enableDiffNoFail": "true",
"@aws-cdk/core:stackRelativeExports": "true",
"@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true,
"@aws-cdk/aws-secretsmanager:parseOwnedSecretName": true,
"@aws-cdk/aws-kms:defaultKeyPolicies": true,
"@aws-cdk/aws-s3:grantWriteWithoutAcl": true,
"@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": true,
"@aws-cdk/core:stackRelativeExports": true,
"@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
"@aws-cdk/aws-efs:defaultEncryptionAtRest": true,
"@aws-cdk/aws-lambda:recognizeVersionProps": true
"@aws-cdk/aws-lambda:recognizeVersionProps": true,
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true
}
}
74 changes: 8 additions & 66 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>edu.wcm.reciter</groupId>
<artifactId>reciter-cdk</artifactId>
<version>1.2.0</version>
<version>2.0.0</version>
<url>https://github.com/wcmc-its/ReCiter-CDK</url>

<organization>
Expand All @@ -32,7 +32,8 @@

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cdk.version>1.122.0</cdk.version>
<cdk.version>2.15.0</cdk.version>
<constructs.version>[10.0.0,11.0.0)</constructs.version>
<junit.version>5.7.1</junit.version>
</properties>

Expand Down Expand Up @@ -61,75 +62,16 @@

<dependencies>
<!-- AWS Cloud Development Kit -->
<!-- https://mvnrepository.com/artifact/software.amazon.awscdk/aws-cdk-lib -->
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>core</artifactId>
<artifactId>aws-cdk-lib</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>ecr</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>rds</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>ec2</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>ecs</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>ecs-patterns</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>cloudwatch</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>cloudwatch-actions</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>wafv2</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>sns</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>secretsmanager</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>codebuild</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>codepipeline</artifactId>
<version>${cdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>codepipeline-actions</artifactId>
<version>${cdk.version}</version>
<groupId>software.constructs</groupId>
<artifactId>constructs</artifactId>
<version>${constructs.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/edu/wcm/reciter/ReCiterCDKECRStack.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import java.util.Arrays;

import software.amazon.awscdk.core.CfnOutput;
import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.NestedStack;
import software.amazon.awscdk.core.NestedStackProps;
import software.amazon.awscdk.core.RemovalPolicy;
import software.amazon.awscdk.core.Tags;
import software.amazon.awscdk.CfnOutput;
import software.constructs.Construct;
import software.amazon.awscdk.NestedStack;
import software.amazon.awscdk.NestedStackProps;
import software.amazon.awscdk.RemovalPolicy;
import software.amazon.awscdk.Tags;
import software.amazon.awscdk.services.ecr.Repository;
import software.amazon.awscdk.services.ecr.RepositoryProps;
import software.amazon.awscdk.services.ecr.LifecycleRule;
Expand Down
44 changes: 22 additions & 22 deletions src/main/java/edu/wcm/reciter/ReCiterCDKECSStack.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
import java.util.HashMap;
import java.util.stream.Collectors;

import software.amazon.awscdk.core.CfnJson;
import software.amazon.awscdk.core.CfnJsonProps;
import software.amazon.awscdk.core.CfnOutput;
import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.Duration;
import software.amazon.awscdk.core.NestedStack;
import software.amazon.awscdk.core.NestedStackProps;
import software.amazon.awscdk.core.RemovalPolicy;
import software.amazon.awscdk.core.Tags;
import software.amazon.awscdk.CfnJson;
import software.amazon.awscdk.CfnJsonProps;
import software.amazon.awscdk.CfnOutput;
import software.amazon.awscdk.Duration;
import software.amazon.awscdk.NestedStack;
import software.amazon.awscdk.NestedStackProps;
import software.amazon.awscdk.RemovalPolicy;
import software.amazon.awscdk.Tags;
import software.amazon.awscdk.services.applicationautoscaling.CronOptions;
import software.amazon.awscdk.services.applicationautoscaling.EnableScalingProps;
import software.amazon.awscdk.services.applicationautoscaling.Schedule;
Expand Down Expand Up @@ -85,6 +84,7 @@
import software.amazon.awscdk.services.sns.SubscriptionProtocol;
import software.amazon.awscdk.services.sns.Topic;
import software.amazon.awscdk.services.sns.TopicProps;
import software.constructs.Construct;

public class ReCiterCDKECSStack extends NestedStack {

Expand Down Expand Up @@ -163,7 +163,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
reCiterEcrRepo.grantPull(reCiterTaskDefinition.obtainExecutionRole());

ContainerDefinition reCiterNginxContainer = reCiterTaskDefinition.addContainer("reCiterNginxContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter-nginx:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-nginx:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterNginxLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter/nginx")
Expand All @@ -188,7 +188,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS


ContainerDefinition reCiterContainer = reCiterTaskDefinition.addContainer("reCiterContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter")
Expand Down Expand Up @@ -257,7 +257,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
.propagateTags(PropagatedTagSource.SERVICE)
.vpcSubnets(SubnetSelection.builder()
.onePerAz(true)
.subnetType(SubnetType.PRIVATE)
.subnetType(SubnetType.PRIVATE_WITH_NAT)
.build())
.securityGroups(Arrays.asList(reciterClusterSg))
.build());
Expand All @@ -272,7 +272,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
reCiterPubmedEcrRep.grantPull(reCiterPubmedTaskDefinition.obtainExecutionRole());

ContainerDefinition reCiterPubmedNginxContainer = reCiterPubmedTaskDefinition.addContainer("reCiterPubmedNginxContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter-pubmed-nginx:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-pubmed-retrieval-tool-nginx:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterNginxPubmedLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter/pubmed/nginx")
Expand All @@ -297,7 +297,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS


ContainerDefinition reCiterPubmedContainer = reCiterPubmedTaskDefinition.addContainer("reCiterPubmedContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter-pubmed:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-pubmed-retrieval-tool:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterPubmedLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter/pubmed")
Expand Down Expand Up @@ -345,7 +345,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
.propagateTags(PropagatedTagSource.SERVICE)
.vpcSubnets(SubnetSelection.builder()
.onePerAz(true)
.subnetType(SubnetType.PRIVATE)
.subnetType(SubnetType.PRIVATE_WITH_NAT)
.build())
.securityGroups(Arrays.asList(reciterClusterSg))
.build());
Expand All @@ -361,7 +361,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
reCiterScopusEcrRepo.grantPull(reCiterScopusTaskDefinition.obtainExecutionRole());

ContainerDefinition reCiterScopusNginxContainer = reCiterScopusTaskDefinition.addContainer("reCiterScopusNginxContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter-scopus-nginx:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-scopus-retrieval-tool-nginx:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterNginxScopusLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter/scopus/nginx")
Expand All @@ -385,7 +385,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
.build());

ContainerDefinition reCiterScopusContainer = reCiterScopusTaskDefinition.addContainer("reCiterScopusContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter-scopus:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-scopus-retrieval-tool:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterScopusLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter/scopus")
Expand Down Expand Up @@ -437,7 +437,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
.propagateTags(PropagatedTagSource.SERVICE)
.vpcSubnets(SubnetSelection.builder()
.onePerAz(true)
.subnetType(SubnetType.PRIVATE)
.subnetType(SubnetType.PRIVATE_WITH_NAT)
.build())
.securityGroups(Arrays.asList(reciterClusterSg))
.build());
Expand All @@ -454,7 +454,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS


ContainerDefinition reCiterPubManagerContainer = reCiterPubManagerTaskDefinition.addContainer("reCiterScopusContainer", ContainerDefinitionProps.builder()
.image(ContainerImage.fromRegistry("wcmcits/reciter-publication-manager:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-publication-manager:latest"))
.logging(new AwsLogDriver(AwsLogDriverProps.builder()
.logGroup(new LogGroup(this, "reciterPubManagerLogGroup", LogGroupProps.builder()
.logGroupName("/ecs/reciter/pub/manager")
Expand Down Expand Up @@ -495,7 +495,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
.propagateTags(PropagatedTagSource.SERVICE)
.vpcSubnets(SubnetSelection.builder()
.onePerAz(true)
.subnetType(SubnetType.PRIVATE)
.subnetType(SubnetType.PRIVATE_WITH_NAT)
.build())
.securityGroups(Arrays.asList(albSg))
.build());
Expand Down Expand Up @@ -799,7 +799,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
.vpc(vpc)
.subnetSelection(SubnetSelection.builder()
.onePerAz(true)
.subnetType(SubnetType.PRIVATE)
.subnetType(SubnetType.PRIVATE_WITH_NAT)
.build())
.securityGroups(Arrays.asList(reciterClusterSg))
.scheduledFargateTaskDefinitionOptions(ScheduledFargateTaskDefinitionOptions.builder()
Expand Down Expand Up @@ -870,7 +870,7 @@ public ReCiterCDKECSStack(final Construct parent, final String id, final NestedS
reCiterMachineLearningFargateTask.getTaskDefinition().addContainer("reciter-machine-learning-analysis", ContainerDefinitionOptions.builder()
.cpu(1024)
.memoryLimitMiB(8000)
.image(ContainerImage.fromRegistry("wcmcits/reciter-machine-learning-analysis:latest"))
.image(ContainerImage.fromRegistry("public.ecr.aws/wcmc-its/reciter-machine-learning-analysis:latest"))
.containerName("reciter-machine-learning-analysis")
.healthCheck(HealthCheck.builder()
.command(Arrays.asList("CMD-SHELL", "cat /usr/src/app/Dynamodb_Analysis_upload.py || exit 1"))
Expand Down
22 changes: 11 additions & 11 deletions src/main/java/edu/wcm/reciter/ReCiterCDKVPCStack.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
import java.util.HashMap;
import java.util.stream.Collectors;

import software.amazon.awscdk.core.Aspects;
import software.amazon.awscdk.core.CfnOutput;
import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.NestedStack;
import software.amazon.awscdk.core.NestedStackProps;
import software.amazon.awscdk.core.RemovalPolicy;
import software.amazon.awscdk.core.Tag;
import software.amazon.awscdk.core.Tags;
import software.amazon.awscdk.Aspects;
import software.amazon.awscdk.CfnOutput;
import software.constructs.Construct;
import software.amazon.awscdk.NestedStack;
import software.amazon.awscdk.NestedStackProps;
import software.amazon.awscdk.RemovalPolicy;
import software.amazon.awscdk.Tag;
import software.amazon.awscdk.Tags;
import software.amazon.awscdk.services.ec2.FlowLogDestination;
import software.amazon.awscdk.services.ec2.FlowLogOptions;
import software.amazon.awscdk.services.ec2.FlowLogTrafficType;
Expand Down Expand Up @@ -48,8 +48,8 @@ public ReCiterCDKVPCStack(final Construct parent, final String id, final NestedS
.natGateways(2)
.maxAzs(2)
.subnetConfiguration(Arrays.asList(SubnetConfiguration.builder().cidrMask(24).name("reciter-public-subnet").subnetType(SubnetType.PUBLIC).build(),
SubnetConfiguration.builder().cidrMask(24).name("reciter-private-app-subnet").subnetType(SubnetType.PRIVATE).build(),
SubnetConfiguration.builder().cidrMask(28).name("reciter-private-db-subnet").subnetType(SubnetType.PRIVATE).build()))
SubnetConfiguration.builder().cidrMask(24).name("reciter-private-app-subnet").subnetType(SubnetType.PRIVATE_WITH_NAT).build(),
SubnetConfiguration.builder().cidrMask(28).name("reciter-private-db-subnet").subnetType(SubnetType.PRIVATE_WITH_NAT).build()))
.enableDnsHostnames(true)
.flowLogs(new HashMap<String, FlowLogOptions>(){{
put("reciter-flow-logs", FlowLogOptions.builder()
Expand All @@ -71,7 +71,7 @@ public ReCiterCDKVPCStack(final Construct parent, final String id, final NestedS
.removalPolicy(RemovalPolicy.DESTROY)
.subnetGroupName("reciter-private-subnet-group")
.vpc(reciterVpc)
.vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PRIVATE).build())
.vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PRIVATE_WITH_NAT).build())
.build());


Expand Down
6 changes: 3 additions & 3 deletions src/main/java/edu/wcm/reciter/ReCiterCdkApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import java.util.HashMap;

import software.amazon.awscdk.core.App;
import software.amazon.awscdk.core.Environment;
import software.amazon.awscdk.core.StackProps;
import software.amazon.awscdk.App;
import software.amazon.awscdk.Environment;
import software.amazon.awscdk.StackProps;

public class ReCiterCdkApp {

Expand Down
Loading

0 comments on commit 2e94b7f

Please sign in to comment.