From 3ce8ef5f95f76b3d42b8f5c6e266f04796fa7207 Mon Sep 17 00:00:00 2001 From: "gitops-for-cloudnativedays[bot]" <113280573+gitops-for-cloudnativedays[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 08:15:09 +0000 Subject: [PATCH] Bump docker tag by https://github.com/cloudnativedaysjp/dreamkast/pull/2737 commit: https://github.com/cloudnativedaysjp/dreamkast/commit/fe0da2b7fa6c7f9ca577e78f71518e8923e7b96d action URL: https://github.com/cloudnativedaysjp/dreamkast/actions/runs/22539274864 --- ecspresso/reviewapps/dk-2737/cleanup.sh | 13 ++ ecspresso/reviewapps/dk-2737/const.libsonnet | 48 ++++++++ .../dreamkast-fifo-worker/ecspresso.jsonnet | 9 ++ .../dreamkast-fifo-worker/service-def.jsonnet | 8 ++ .../dreamkast-fifo-worker/task-def.jsonnet | 27 +++++ .../dk-2737/dreamkast/ecspresso.jsonnet | 9 ++ .../dk-2737/dreamkast/service-def.jsonnet | 9 ++ .../dk-2737/dreamkast/task-def.jsonnet | 29 +++++ .../dk-2737/harvestjob/ecschedule.jsonnet | 24 ++++ .../harvestjob/ecspresso.taskdef.jsonnet | 7 ++ .../dk-2737/harvestjob/task-def.jsonnet | 114 ++++++++++++++++++ ecspresso/reviewapps/dk-2737/initialize.sh | 107 ++++++++++++++++ .../dk-2737/mysql/ecspresso.jsonnet | 9 ++ .../dk-2737/mysql/service-def.jsonnet | 9 ++ .../reviewapps/dk-2737/mysql/task-def.jsonnet | 13 ++ .../dk-2737/redis/ecspresso.jsonnet | 9 ++ .../dk-2737/redis/service-def.jsonnet | 9 ++ .../reviewapps/dk-2737/redis/task-def.jsonnet | 13 ++ 18 files changed, 466 insertions(+) create mode 100644 ecspresso/reviewapps/dk-2737/cleanup.sh create mode 100644 ecspresso/reviewapps/dk-2737/const.libsonnet create mode 100644 ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/ecspresso.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/service-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/task-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/dreamkast/ecspresso.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/dreamkast/service-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/dreamkast/task-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/harvestjob/ecschedule.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/harvestjob/ecspresso.taskdef.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/harvestjob/task-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/initialize.sh create mode 100644 ecspresso/reviewapps/dk-2737/mysql/ecspresso.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/mysql/service-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/mysql/task-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/redis/ecspresso.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/redis/service-def.jsonnet create mode 100644 ecspresso/reviewapps/dk-2737/redis/task-def.jsonnet diff --git a/ecspresso/reviewapps/dk-2737/cleanup.sh b/ecspresso/reviewapps/dk-2737/cleanup.sh new file mode 100644 index 000000000..33f6e6a8b --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/cleanup.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -e -o pipefail +cd $(dirname $0) + +find . -name "ecspresso.jsonnet" | xargs -I{} -P10 ecspresso --config={} delete --force --terminate ||: +sleep 10 # wait for ECS Services to be deleted +aws events describe-rule --name dk-2737-harvestjob && aws events remove-targets --rule dk-2737-harvestjob --ids dk-2737-harvestjob && aws events delete-rule --name dk-2737-harvestjob --force +aws ecs describe-task-definition --task-definition dreamkast-dev-dk-2737-harvestjob && aws ecs deregister-task-definition --task-definition dreamkast-dev-dk-2737-harvestjob:1 +aws servicediscovery get-service --id srv-cyaplx2xnf4yqkte && aws servicediscovery delete-service --id srv-cyaplx2xnf4yqkte +aws servicediscovery get-service --id srv-isgcrh3smmvfqqdg && aws servicediscovery delete-service --id srv-isgcrh3smmvfqqdg +aws elbv2 describe-rules --rule-arn arn:aws:elasticloadbalancing:us-west-2:607167088920:listener-rule/app/dreamkast-dev/122c5b4a47b64f9d/bc86e7b2e4bca8f5/677b6c41ab9f1656 && aws elbv2 delete-rule --rule-arn arn:aws:elasticloadbalancing:us-west-2:607167088920:listener-rule/app/dreamkast-dev/122c5b4a47b64f9d/bc86e7b2e4bca8f5/677b6c41ab9f1656 +aws elbv2 describe-target-groups --target-group-arn arn:aws:elasticloadbalancing:us-west-2:607167088920:targetgroup/dev-dk-2737/49d370140aa1ccb6 && aws elbv2 delete-target-group --target-group-arn arn:aws:elasticloadbalancing:us-west-2:607167088920:targetgroup/dev-dk-2737/49d370140aa1ccb6 +: diff --git a/ecspresso/reviewapps/dk-2737/const.libsonnet b/ecspresso/reviewapps/dk-2737/const.libsonnet new file mode 100644 index 000000000..23945932a --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/const.libsonnet @@ -0,0 +1,48 @@ +{ + PR_NAME: 'dk-2737', + cluster: 'dreamkast-dev', + executionRoleName: 'dreamkast-dev-ecs-task-execution-role', + externalEndpoints: { + dkApi: 'https://api.dev.cloudnativedays.jp', + dkWeaver: 'https://dkw.dev.cloudnativedays.jp', + }, + imageTags: { + dreamkast_ecs: 'commit-fe0da2b7fa6c7f9ca577e78f71518e8923e7b96d', + mysql: '8.0.33', + redis: '6.0', + }, + internalEndpoints: { + rdb: 'mysql-dk-2737.development.local', + redis: 'redis://redis-dk-2737.development.local', + }, + publicSubnetIDs: [ + 'subnet-00709135a42bf907e', + 'subnet-0d07831c8fc073511', + 'subnet-033491d41490494b6', + ], + region: 'us-west-2', + s3: { + dreamkast: { + name: 'dreamkast-dev-bucket', + region: 'us-west-2', + }, + }, + secretManager: { + dk: 'dreamkast/reviewapp-env-yGJKrj', + railsApp: 'dreamkast/rails-app-secret-SqidNC', + }, + sentry: { + dsn: 'TODO', + }, + serviceDiscovery: { + mysql: 'srv-cyaplx2xnf4yqkte', + redis: 'srv-isgcrh3smmvfqqdg', + }, + sqs: { + fifo: 'dreamkast-stg-fifo-queue', + }, + targetGroupArn: { + dk: 'arn:aws:elasticloadbalancing:us-west-2:607167088920:targetgroup/dev-dk-2737/49d370140aa1ccb6', + }, + taskTargetRoleName: 'dreamkast-dev-ecs-scheduled-task-target-role', +} diff --git a/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/ecspresso.jsonnet b/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/ecspresso.jsonnet new file mode 100644 index 000000000..d2b963e4e --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/ecspresso.jsonnet @@ -0,0 +1,9 @@ +local const = import '../const.libsonnet'; +{ + region: const.region, + cluster: const.cluster, + service: '%s-dreamkast-fifo-worker' % [const.PR_NAME], + service_definition: 'service-def.jsonnet', + task_definition: 'task-def.jsonnet', + timeout: '15m', +} diff --git a/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/service-def.jsonnet b/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/service-def.jsonnet new file mode 100644 index 000000000..e5a4be2c2 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/service-def.jsonnet @@ -0,0 +1,8 @@ +local dreamkast_fifo_worker = import '../../../base/dreamkast-fifo-worker.libsonnet'; +local const = import '../const.libsonnet'; + +dreamkast_fifo_worker.serviceDef( + region=const.region, + subnetIDs=const.publicSubnetIDs, + securityGroupID='sg-0140d2aeaaa5d6d07', // dreamkast-dev-ecs-dreamkast-fifo-worker +) diff --git a/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/task-def.jsonnet b/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/task-def.jsonnet new file mode 100644 index 000000000..72362a087 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/dreamkast-fifo-worker/task-def.jsonnet @@ -0,0 +1,27 @@ +local dreamkast_fifo_worker = import '../../../base/dreamkast-fifo-worker.libsonnet'; +local const = import '../const.libsonnet'; + +dreamkast_fifo_worker.taskDef( + family='dreamkast-dev-%s-fifo-worker' % [const.PR_NAME], + taskRoleName='dreamkast-dev-ecs-dreamkast-fifo-worker', + executionRoleName=const.executionRoleName, + imageTag=const.imageTags.dreamkast_ecs, + + region=const.region, + rdbInternalEndpoint=const.internalEndpoints.rdb, + redisInternalEndpoint=const.internalEndpoints.redis, + + s3BucketName=const.s3.dreamkast.name, + s3BucketRegion=const.s3.dreamkast.region, + + sqsFifoQueueName=const.sqs.fifo, + + sentryDsn=const.sentry.dsn, + + railsAppSecretManagerName=const.secretManager.railsApp, + rdsSecretManagerName=const.secretManager.rds, + dreamkastSecretManagerName=const.secretManager.dk, + + enableLogging=true, + reviewapp=true, +) diff --git a/ecspresso/reviewapps/dk-2737/dreamkast/ecspresso.jsonnet b/ecspresso/reviewapps/dk-2737/dreamkast/ecspresso.jsonnet new file mode 100644 index 000000000..702d5170a --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/dreamkast/ecspresso.jsonnet @@ -0,0 +1,9 @@ +local const = import '../const.libsonnet'; +{ + region: const.region, + cluster: const.cluster, + service: '%s-dreamkast' % [const.PR_NAME], + service_definition: 'service-def.jsonnet', + task_definition: 'task-def.jsonnet', + timeout: '15m', +} diff --git a/ecspresso/reviewapps/dk-2737/dreamkast/service-def.jsonnet b/ecspresso/reviewapps/dk-2737/dreamkast/service-def.jsonnet new file mode 100644 index 000000000..8ee603369 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/dreamkast/service-def.jsonnet @@ -0,0 +1,9 @@ +local dreamkast_dk = import '../../../base/dreamkast.libsonnet'; +local const = import '../const.libsonnet'; + +dreamkast_dk.serviceDef( + region=const.region, + subnetIDs=const.publicSubnetIDs, + securityGroupID='sg-00e734fea020b954d', // dreamkast-dev-ecs-dreamkast + targetGroupArn=const.targetGroupArn.dk, +) diff --git a/ecspresso/reviewapps/dk-2737/dreamkast/task-def.jsonnet b/ecspresso/reviewapps/dk-2737/dreamkast/task-def.jsonnet new file mode 100644 index 000000000..67a80d225 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/dreamkast/task-def.jsonnet @@ -0,0 +1,29 @@ +local dreamkast = import '../../../base/dreamkast.libsonnet'; +local const = import '../const.libsonnet'; + +dreamkast.taskDef( + family='dreamkast-dev-%s-dk' % [const.PR_NAME], + taskRoleName='dreamkast-dev-ecs-dreamkast', + executionRoleName=const.executionRoleName, + imageTag=const.imageTags.dreamkast_ecs, + + region=const.region, + dkApiEndpoint=const.externalEndpoints.dkApi, + dkWeaverEndpoint=const.externalEndpoints.dkWeaver, + rdbInternalEndpoint=const.internalEndpoints.rdb, + redisInternalEndpoint=const.internalEndpoints.redis, + + s3BucketName=const.s3.dreamkast.name, + s3BucketRegion=const.s3.dreamkast.region, + + sqsFifoQueueName=const.sqs.fifo, + + sentryDsn=const.sentry.dsn, + + railsAppSecretManagerName=const.secretManager.railsApp, + rdsSecretManagerName=const.secretManager.rds, + dreamkastSecretManagerName=const.secretManager.dk, + + enableLogging=true, + reviewapp=true, +) diff --git a/ecspresso/reviewapps/dk-2737/harvestjob/ecschedule.jsonnet b/ecspresso/reviewapps/dk-2737/harvestjob/ecschedule.jsonnet new file mode 100644 index 000000000..886856c01 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/harvestjob/ecschedule.jsonnet @@ -0,0 +1,24 @@ +local const = import '../const.libsonnet'; +{ + region: const.region, + cluster: const.cluster, + role: const.taskTargetRoleName, + rules: [ + { + name: '%s-harvestjob' % [const.PR_NAME], + scheduleExpression: 'cron(*/3 * * * ? *)', + taskDefinition: 'dreamkast-dev-%s-harvestjob' % [const.PR_NAME], + launch_type: 'FARGATE', + platform_version: 'LATEST', + network_configuration: { + aws_vpc_configuration: { + subnets: const.publicSubnetIDs, + security_groups: [ + 'sg-05592a72e569c245b', // dreamkast-dev-ecs-harvestjob + ], + assign_public_ip: 'ENABLED', + }, + }, + }, + ], +} diff --git a/ecspresso/reviewapps/dk-2737/harvestjob/ecspresso.taskdef.jsonnet b/ecspresso/reviewapps/dk-2737/harvestjob/ecspresso.taskdef.jsonnet new file mode 100644 index 000000000..401e64ce0 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/harvestjob/ecspresso.taskdef.jsonnet @@ -0,0 +1,7 @@ +local const = import '../const.libsonnet'; +{ + region: const.region, + cluster: const.cluster, + task_definition: 'task-def.jsonnet', + timeout: '5m', +} diff --git a/ecspresso/reviewapps/dk-2737/harvestjob/task-def.jsonnet b/ecspresso/reviewapps/dk-2737/harvestjob/task-def.jsonnet new file mode 100644 index 000000000..35e8aff61 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/harvestjob/task-def.jsonnet @@ -0,0 +1,114 @@ +local const = import '../const.libsonnet'; +local family = 'dreamkast-dev-%s-harvestjob' % [const.PR_NAME]; +local roleName = 'dreamkast-dev-ecs-harvestjob'; + +{ + containerDefinitions: [ + { + local container = self, + + name: 'dreamkast', + image: '607167088920.dkr.ecr.%s.amazonaws.com/dreamkast-ecs:%s' % [const.region, const.imageTags.dreamkast_ecs], + essential: true, + entryPoint: [ + '/bin/bash', + '-c', + ], + command: [ + 'bundle exec rake util:polling_harvest_job_and_update_video', + ], + environment: [ + { + name: 'RAILS_ENV', + value: 'production', + }, + { + name: 'MYSQL_HOST', + value: const.internalEndpoints.rdb, + }, + { + name: 'MYSQL_DATABASE', + value: 'dreamkast', + }, + { + name: 'REDIS_URL', + value: const.internalEndpoints.redis, + }, + { + name: 'SENTRY_DSN', + value: const.sentry.dsn, + }, + { + name: 'S3_BUCKET', + value: 'dreamkast-dev-bucket', + }, + { + name: 'S3_REGION', + value: const.region, + }, + { + name: 'SQS_MAIL_QUEUE_URL', + value: 'https://sqs.%s.amazonaws.com/607167088920/%s.fifo' % [const.region, const.sqs.fifo], + }, + { + name: 'DREAMKAST_NAMESPACE', + value: 'dreamkast-dev', + }, + { + name: 'REVIEW_APP', + value: 'true', + }, + ], + secrets: [ + { + name: 'SLACK_WEBHOOK_URL', + valueFrom: 'arn:aws:secretsmanager:%s:607167088920:secret:%s:SLACK_CHANNEL_FOR_HARVEST_JOB_NOTIFICATION::' % [const.region, const.secretManager.dk], + }, + { + name: 'SLACK_CHANNEL', + valueFrom: 'arn:aws:secretsmanager:%s:607167088920:secret:%s:SLACK_CHANNEL_FOR_HARVEST_JOB_NOTIFICATION::' % [const.region, const.secretManager.dk], + }, + { + name: 'RAILS_MASTER_KEY', + valueFrom: 'arn:aws:secretsmanager:%s:607167088920:secret:%s' % [const.region, const.secretManager.railsApp], + }, + { + name: 'AUTH0_CLIENT_ID', + valueFrom: 'arn:aws:secretsmanager:%s:607167088920:secret:%s:AUTH0_CLIENT_ID::' % [const.region, const.secretManager.dk], + }, + { + name: 'AUTH0_CLIENT_SECRET', + valueFrom: 'arn:aws:secretsmanager:%s:607167088920:secret:%s:AUTH0_CLIENT_SECRET::' % [const.region, const.secretManager.dk], + }, + { + name: 'AUTH0_DOMAIN', + valueFrom: 'arn:aws:secretsmanager:%s:607167088920:secret:%s:AUTH0_DOMAIN::' % [const.region, const.secretManager.dk], + }, + ], + + logConfiguration: { + logDriver: 'awslogs', + options: { + 'awslogs-create-group': 'true', + 'awslogs-group': family, + 'awslogs-region': const.region, + 'awslogs-stream-prefix': container.name, + }, + }, + + cpu: 256, + memory: 512, + memoryReservation: 512, + }, + ], + family: family, + cpu: '256', + memory: '512', + executionRoleArn: 'arn:aws:iam::607167088920:role/%s' % [const.executionRoleName], + taskRoleArn: 'arn:aws:iam::607167088920:role/%s' % [roleName], + networkMode: 'awsvpc', + requiresCompatibilities: [ + 'FARGATE', + ], + volumes: [], +} diff --git a/ecspresso/reviewapps/dk-2737/initialize.sh b/ecspresso/reviewapps/dk-2737/initialize.sh new file mode 100644 index 000000000..3b771b357 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/initialize.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash +set -e -o pipefail +cd $(dirname $0) + +# required the following commands: +# * aws +# * jq +# * jsonnet +# * jsonnetfmt + +# variables +PR_NAME=${PR_NAME:?"PR_NAME must be specified"} +PR_NUMBER=${PR_NUMBER:?"PR_NUMBER must be specified"} +IMAGE_TAG=${IMAGE_TAG:?"IMAGE_TAG must be specified"} +LISTENER_RULE_PRIORITY_BASE=30000 +LISTENER_RULE_PRIORITY=$(( LISTENER_RULE_PRIORITY_BASE + PR_NUMBER )) + +VPC_ID="vpc-0f0d012967c635f34" +LISTENER_ARN="arn:aws:elasticloadbalancing:us-west-2:607167088920:listener/app/dreamkast-dev/122c5b4a47b64f9d/bc86e7b2e4bca8f5" +SERVICE_DISCOVERY_NAMESPACE="ns-53ijjrlltqf5r2gm" + + +if [ ! -f "cleanup.sh" ]; then +# create TargetGroup +TARGET_GROUP_ARN=$(aws elbv2 create-target-group \ + --name "dev-${PR_NAME}" \ + --target-type ip \ + --protocol HTTP \ + --port 3000 \ + --vpc-id ${VPC_ID} \ + --ip-address-type ipv4 \ + | jq -r ".TargetGroups[0].TargetGroupArn") + +# create ALB ListenerRule +LISTENER_RULE_ARN=$(aws elbv2 create-rule --listener-arn ${LISTENER_ARN} \ + --priority ${LISTENER_RULE_PRIORITY} \ + --conditions Field=host-header,Values="dreamkast-${PR_NAME}.dev.cloudnativedays.jp" \ + --actions Type=forward,TargetGroupArn=${TARGET_GROUP_ARN} \ + | jq -r ".Rules[] | select(.Priority == \"${LISTENER_RULE_PRIORITY}\") | .RuleArn") + +# create ServiceDiscovery Services +SERVICE_ID_MYSQL=$(aws servicediscovery create-service \ + --name "mysql-${PR_NAME}" \ + --dns-config "NamespaceId="${SERVICE_DISCOVERY_NAMESPACE}",DnsRecords=[{Type="A",TTL="10"}]" \ + --health-check-custom-config FailureThreshold=1 \ + | jq -r ".Service.Id") + +SERVICE_ID_REDIS=$(aws servicediscovery create-service \ + --name "redis-${PR_NAME}" \ + --dns-config "NamespaceId="${SERVICE_DISCOVERY_NAMESPACE}",DnsRecords=[{Type="A",TTL="10"}]" \ + --health-check-custom-config FailureThreshold=1 \ + | jq -r ".Service.Id") + +# replace variables in const.libsonnet +cat << _EOL_ | jsonnet - > ./const.libsonnet.tmp +local const = import './const.libsonnet'; + +const + { + PR_NAME: "${PR_NAME}", + targetGroupArn: { + dk: "${TARGET_GROUP_ARN}", + }, + serviceDiscovery: { + mysql: "${SERVICE_ID_MYSQL}", + redis: "${SERVICE_ID_REDIS}", + }, + imageTags: const.imageTags + { + dreamkast_ecs: "${IMAGE_TAG}", + }, +} +_EOL_ +mv const.libsonnet.tmp const.libsonnet + +# create cleanup.sh +cat << _EOF_ > ./cleanup.sh +#!/usr/bin/env bash +set -e -o pipefail +cd \$(dirname \$0) + +find . -name "ecspresso.jsonnet" | xargs -I{} -P10 ecspresso --config={} delete --force --terminate ||: +sleep 10 # wait for ECS Services to be deleted +aws events describe-rule --name ${PR_NAME}-harvestjob && \ + aws events remove-targets --rule ${PR_NAME}-harvestjob --ids ${PR_NAME}-harvestjob && \ + aws events delete-rule --name ${PR_NAME}-harvestjob --force +aws ecs describe-task-definition --task-definition dreamkast-dev-${PR_NAME}-harvestjob && \ + aws ecs deregister-task-definition --task-definition dreamkast-dev-${PR_NAME}-harvestjob:1 +aws servicediscovery get-service --id ${SERVICE_ID_MYSQL} && \ + aws servicediscovery delete-service --id ${SERVICE_ID_MYSQL} +aws servicediscovery get-service --id ${SERVICE_ID_REDIS} && \ + aws servicediscovery delete-service --id ${SERVICE_ID_REDIS} +aws elbv2 describe-rules --rule-arn ${LISTENER_RULE_ARN} && \ + aws elbv2 delete-rule --rule-arn ${LISTENER_RULE_ARN} +aws elbv2 describe-target-groups --target-group-arn ${TARGET_GROUP_ARN} && \ + aws elbv2 delete-target-group --target-group-arn ${TARGET_GROUP_ARN} +: +_EOF_ + +else +# update imageTags +jsonnet const.libsonnet \ + | jq ".imageTags.dreamkast_ecs|=\"${IMAGE_TAG}\"" \ + > const.libsonnet.tmp +mv const.libsonnet.tmp const.libsonnet + +fi + +jsonnetfmt -i const.libsonnet diff --git a/ecspresso/reviewapps/dk-2737/mysql/ecspresso.jsonnet b/ecspresso/reviewapps/dk-2737/mysql/ecspresso.jsonnet new file mode 100644 index 000000000..e2ab000e0 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/mysql/ecspresso.jsonnet @@ -0,0 +1,9 @@ +local const = import '../const.libsonnet'; +{ + region: const.region, + cluster: const.cluster, + service: '%s-mysql' % [const.PR_NAME], + service_definition: 'service-def.jsonnet', + task_definition: 'task-def.jsonnet', + timeout: '15m', +} diff --git a/ecspresso/reviewapps/dk-2737/mysql/service-def.jsonnet b/ecspresso/reviewapps/dk-2737/mysql/service-def.jsonnet new file mode 100644 index 000000000..91214d765 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/mysql/service-def.jsonnet @@ -0,0 +1,9 @@ +local mysql = import '../../../base/mysql.libsonnet'; +local const = import '../const.libsonnet'; + +mysql.serviceDef( + region=const.region, + subnetIDs=const.publicSubnetIDs, + securityGroupID='sg-0e0029eb49f4d0455', // dreamkast-dev-ecs-mysql + serviceDiscoveryID=const.serviceDiscovery.mysql, +) diff --git a/ecspresso/reviewapps/dk-2737/mysql/task-def.jsonnet b/ecspresso/reviewapps/dk-2737/mysql/task-def.jsonnet new file mode 100644 index 000000000..f25ef653c --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/mysql/task-def.jsonnet @@ -0,0 +1,13 @@ +local mysql = import '../../../base/mysql.libsonnet'; +local const = import '../const.libsonnet'; + +mysql.taskDef( + family='dreamkast-dev-%s-mysql' % [const.PR_NAME], + taskRoleName='dreamkast-dev-ecs-mysql', + executionRoleName=const.executionRoleName, + imageTag=const.imageTags.mysql, + + region=const.region, + + enableLogging=false, +) diff --git a/ecspresso/reviewapps/dk-2737/redis/ecspresso.jsonnet b/ecspresso/reviewapps/dk-2737/redis/ecspresso.jsonnet new file mode 100644 index 000000000..74e121778 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/redis/ecspresso.jsonnet @@ -0,0 +1,9 @@ +local const = import '../const.libsonnet'; +{ + region: const.region, + cluster: const.cluster, + service: '%s-redis' % [const.PR_NAME], + service_definition: 'service-def.jsonnet', + task_definition: 'task-def.jsonnet', + timeout: '15m', +} diff --git a/ecspresso/reviewapps/dk-2737/redis/service-def.jsonnet b/ecspresso/reviewapps/dk-2737/redis/service-def.jsonnet new file mode 100644 index 000000000..d70462f23 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/redis/service-def.jsonnet @@ -0,0 +1,9 @@ +local redis = import '../../../base/redis.libsonnet'; +local const = import '../const.libsonnet'; + +redis.serviceDef( + region=const.region, + subnetIDs=const.publicSubnetIDs, + securityGroupID='sg-0ab649652e2dd6c9c', // dreamkast-dev-ecs-redis + serviceDiscoveryID=const.serviceDiscovery.redis, +) diff --git a/ecspresso/reviewapps/dk-2737/redis/task-def.jsonnet b/ecspresso/reviewapps/dk-2737/redis/task-def.jsonnet new file mode 100644 index 000000000..f920c7a11 --- /dev/null +++ b/ecspresso/reviewapps/dk-2737/redis/task-def.jsonnet @@ -0,0 +1,13 @@ +local redis = import '../../../base/redis.libsonnet'; +local const = import '../const.libsonnet'; + +redis.taskDef( + family='dreamkast-dev-%s-redis' % [const.PR_NAME], + taskRoleName='dreamkast-dev-ecs-redis', + executionRoleName=const.executionRoleName, + imageTag=const.imageTags.redis, + + region=const.region, + + enableLogging=false, +)