Skip to content

Commit

Permalink
cdk collapse
Browse files Browse the repository at this point in the history
  • Loading branch information
prenagha committed Aug 17, 2024
1 parent e47ff44 commit 8165de4
Show file tree
Hide file tree
Showing 15 changed files with 149 additions and 336 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This is a one-off workflow to set up everything we need to deploy Docker images
# with CDK. This workflow deploys everything that is not specific to a certain
# environment (staging, prod, ...).
name: 01 - CDK Bootstrap and ECR
name: 01 - CDK Infra

on:
# manually triggered from github UI
Expand Down Expand Up @@ -42,6 +42,6 @@ jobs:
working-directory: cdk
run: npm run bootstrap

- name: Deploy Docker Registry stack
- name: Deploy Infrastructure
working-directory: cdk
run: npm run repository:deploy
run: npm run infra:deploy
53 changes: 0 additions & 53 deletions .github/workflows/02-network.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow builds the Docker image for the Todo-App and then deploys the application.
name: 04 - Deploy Todo App
name: 02 - Deploy Service

env:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
Expand All @@ -14,9 +14,8 @@ on:
- 'app/Dockerfile'
- 'app/build.gradle.kts'
- 'cdk/src/main/**'
- 'cdk/build.gradle.kts'
- 'cdk/cdk.json'
- '.github/workflows/04-todo-deploy.yml'
- '.github/workflows/02-service.yml'
workflow_dispatch:
jobs:
build-and-publish:
Expand Down
24 changes: 2 additions & 22 deletions cdk/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,36 +16,16 @@ dependencies {
implementation("dev.stratospheric:cdk-constructs:0.1.15")
}

tasks.register<JavaExec>("repository") {
tasks.register<JavaExec>("infra") {
group = "app"
mainClass = "com.renaghan.todo.cdk.DockerRepositoryApp"
classpath = project.sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("certificate") {
group = "app"
mainClass = "com.renaghan.todo.cdk.CertificateApp"
classpath = project.sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("network") {
group = "app"
mainClass = "com.renaghan.todo.cdk.NetworkApp"
classpath = project.sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("domain") {
group = "app"
mainClass = "com.renaghan.todo.cdk.DomainApp"
mainClass = "com.renaghan.todo.cdk.Infrastructure"
classpath = project.sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("service") {
group = "app"
mainClass = "com.renaghan.todo.cdk.ServiceApp"
classpath = project.sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("cognito") {
group = "app"
mainClass = "com.renaghan.todo.cdk.CognitoApp"
classpath = project.sourceSets["main"].runtimeClasspath
}

testing {
suites {
Expand Down
19 changes: 3 additions & 16 deletions cdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,11 @@

"bootstrap" : "cdk bootstrap --app '../gradlew --quiet :cdk:repository'",

"repository:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:repository' --require-approval never",
"repository:destroy": "cdk destroy --app '../gradlew --quiet :cdk:repository' --force --require-approval never --all",

"certificate:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:certificate' --require-approval never",
"certificate:destroy": "cdk destroy --app '../gradlew --quiet :cdk:certificate' --force --require-approval never --all",

"network:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:network' --require-approval never",
"network:destroy": "cdk destroy --app '../gradlew --quiet :cdk:network' --force --require-approval never --all",

"domain:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:domain' --require-approval never",
"domain:destroy": "cdk destroy --app '../gradlew --quiet :cdk:domain' --force --require-approval never --all",
"infra:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:infra' --require-approval never",
"infra:destroy": "cdk destroy --app '../gradlew --quiet :cdk:infra' --force --require-approval never --all",

"service:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:service' --require-approval never",
"service:destroy": "cdk destroy --app '../gradlew --quiet :cdk:service' --force --require-approval never --all",

"cognito:deploy" : "cdk deploy --app '../gradlew --quiet :cdk:cognito' --require-approval never",
"cognito:destroy": "cdk destroy --app '../gradlew --quiet :cdk:cognito' --force --require-approval never --all"

"service:destroy": "cdk destroy --app '../gradlew --quiet :cdk:service' --force --require-approval never --all"
},
"devDependencies": {
"aws-cdk": "2.151.0"
Expand Down
10 changes: 0 additions & 10 deletions cdk/src/main/java/com/renaghan/todo/cdk/CertificateApp.java

This file was deleted.

54 changes: 0 additions & 54 deletions cdk/src/main/java/com/renaghan/todo/cdk/CertificateStack.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import java.util.Collections;
import software.amazon.awscdk.Duration;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.services.cognito.AccountRecovery;
import software.amazon.awscdk.services.cognito.AutoVerifiedAttrs;
import software.amazon.awscdk.services.cognito.CognitoDomainOptions;
Expand All @@ -24,25 +23,25 @@
import software.amazon.awscdk.services.ssm.StringParameter;
import software.constructs.Construct;

class CognitoStack extends Stack {
class Cognito {

private final CDKApp app;
private final Stack stack;
private final UserPool userPool;
private final UserPoolClient userPoolClient;
private final String logoutUrl;

public CognitoStack(CDKApp app, String id) {
super(
app,
id,
StackProps.builder().stackName(app.appEnv().prefix("Cognito")).env(app.awsEnv()).build());
public Cognito(CDKApp app, Stack stack) {
this.app = app;
this.stack = stack;

this.logoutUrl =
String.format(
"https://%s.auth.%s.amazoncognito.com/logout",
app.getContext("loginPageDomainPrefix"), app.awsEnv().getRegion());

this.userPool =
UserPool.Builder.create(this, "userPool")
UserPool.Builder.create(stack, "userPool")
.userPoolName(app.getContext("applicationName") + "-user-pool")
.selfSignUpEnabled(false)
.accountRecovery(AccountRecovery.EMAIL_ONLY)
Expand All @@ -66,7 +65,7 @@ public CognitoStack(CDKApp app, String id) {
.build();

this.userPoolClient =
UserPoolClient.Builder.create(this, "userPoolClient")
UserPoolClient.Builder.create(stack, "userPoolClient")
.userPoolClientName(app.getContext("applicationName") + "-client")
.generateSecret(true)
.userPool(this.userPool)
Expand All @@ -84,17 +83,15 @@ public CognitoStack(CDKApp app, String id) {
Collections.singletonList(UserPoolClientIdentityProvider.COGNITO))
.build();

UserPoolDomain.Builder.create(this, "userPoolDomain")
UserPoolDomain.Builder.create(stack, "userPoolDomain")
.userPool(this.userPool)
.cognitoDomain(
CognitoDomainOptions.builder()
.domainPrefix(app.getContext("loginPageDomainPrefix"))
.build())
.build();

createOutputParameters(app);

app.appEnv().tag(this);
createOutputParameters();
}

private static final String PARAMETER_USER_POOL_ID = "userPoolId";
Expand All @@ -103,31 +100,31 @@ public CognitoStack(CDKApp app, String id) {
private static final String PARAMETER_USER_POOL_LOGOUT_URL = "userPoolLogoutUrl";
private static final String PARAMETER_USER_POOL_PROVIDER_URL = "userPoolProviderUrl";

private void createOutputParameters(CDKApp app) {
private void createOutputParameters() {

StringParameter.Builder.create(this, PARAMETER_USER_POOL_ID)
StringParameter.Builder.create(stack, PARAMETER_USER_POOL_ID)
.parameterName(createParameterName(app.appEnv(), PARAMETER_USER_POOL_ID))
.stringValue(this.userPool.getUserPoolId())
.build();

StringParameter.Builder.create(this, PARAMETER_USER_POOL_CLIENT_ID)
StringParameter.Builder.create(stack, PARAMETER_USER_POOL_CLIENT_ID)
.parameterName(createParameterName(app.appEnv(), PARAMETER_USER_POOL_CLIENT_ID))
.stringValue(this.userPoolClient.getUserPoolClientId())
.build();

StringParameter.Builder.create(this, "logoutUrl")
StringParameter.Builder.create(stack, "logoutUrl")
.parameterName(createParameterName(app.appEnv(), PARAMETER_USER_POOL_LOGOUT_URL))
.stringValue(this.logoutUrl)
.build();

StringParameter.Builder.create(this, "providerUrl")
StringParameter.Builder.create(stack, "providerUrl")
.parameterName(createParameterName(app.appEnv(), PARAMETER_USER_POOL_PROVIDER_URL))
.stringValue(this.userPool.getUserPoolProviderUrl())
.build();

String userPoolClientSecret = this.userPoolClient.getUserPoolClientSecret().unsafeUnwrap();

StringParameter.Builder.create(this, PARAMETER_USER_POOL_CLIENT_SECRET)
StringParameter.Builder.create(stack, PARAMETER_USER_POOL_CLIENT_SECRET)
.parameterName(createParameterName(app.appEnv(), PARAMETER_USER_POOL_CLIENT_SECRET))
.stringValue(userPoolClientSecret)
.build();
Expand Down
10 changes: 0 additions & 10 deletions cdk/src/main/java/com/renaghan/todo/cdk/CognitoApp.java

This file was deleted.

27 changes: 0 additions & 27 deletions cdk/src/main/java/com/renaghan/todo/cdk/DockerRepositoryApp.java

This file was deleted.

10 changes: 0 additions & 10 deletions cdk/src/main/java/com/renaghan/todo/cdk/DomainApp.java

This file was deleted.

Loading

0 comments on commit 8165de4

Please sign in to comment.