Skip to content

Commit

Permalink
Adjusting deployment scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
rkorytkowski committed Nov 13, 2020
1 parent ec60cbf commit bc3b17f
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 13 deletions.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# oclci
CI scripts
CI scripts:

./deploy.sh used to deploy a single image to ECR and ECS
./deploy_all.sh used to deploy all initial images to ECR and ECS

40 changes: 28 additions & 12 deletions deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,47 @@
#
# Example of usage:
#
# AWS_ACCESS_KEY_ID=key AWS_SECRET_ACCESS_KEY=secret_key AWS_REGION=us-east-2 \
# AWS_ACCOUNT_ID=account_id AWS_CLUSTER=oclqa SERVICE=ocl \
# IMAGE_REPO=openconceptlab IMAGE_NAME=oclapi2 TAG=qa ./deploy.sh
# AWS_ACCESS_KEY_ID=key AWS_SECRET_ACCESS_KEY=secret_key REGION=us-east-2 CLUSTER=oclqa SERVICE=ocl \
# IMAGE=openconceptlab/oclapi2 AWS_IMAGE=oclapi2 TAG=qa ./deploy.sh
#

set -e

if [ -z "$AWS_CLI_TAG" ]; then
AWS_CLI_TAG=2.1.1
fi

CREDENTIALS=""

if [ -n "$AWS_ACCESS_KEY_ID" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID"
fi
if [ -n "$AWS_SECRET_ACCESS_KEY" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY"
fi
if [ -n "$AWS_REGION" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_DEFAULT_REGION=$AWS_REGION"
if [ -n "$REGION" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_DEFAULT_REGION=$REGION"
fi

AWS_ECR_URL="$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com"
if [ -z "$AWS_IMAGE" ]; then
AWS_IMAGE=$IMAGE
fi

docker run --rm -v ~/.aws:/root/.aws $CREDENTIALS amazon/aws-cli ecr get-login-password --region $AWS_REGION \
| docker login --username AWS --password-stdin $AWS_ECR_URL
ACCOUNT_ID=$(docker run --rm -v ~/.aws:/root/.aws $CREDENTIALS amazon/aws-cli:$AWS_CLI_TAG sts get-caller-identity --query Account --output text)

docker tag $IMAGE_REPO/$IMAGE_NAME:$TAG $AWS_ECR_URL/$IMAGE_NAME:$TAG
ECR_URL="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"

docker push $AWS_ECR_URL/$IMAGE_NAME:$TAG
docker run --rm -ti -v ~/.aws:/root/.aws $CREDENTIALS amazon/aws-cli:$AWS_CLI_TAG ecr get-login-password --region $REGION \
| docker login --username AWS --password-stdin $ECR_URL

docker pull $IMAGE:$TAG

docker run --rm -v ~/.aws:/root/.aws $CREDENTIALS amazon/aws-cli ecs update-service --cluster $CLUSTER \
--service $SERVICE --force-new-deployment --region $AWS_REGION
docker tag $IMAGE:$TAG $ECR_URL/$AWS_IMAGE:$TAG

docker push $ECR_URL/$AWS_IMAGE:$TAG

if [ -n "$SKIP_ECS" ]; then
docker run --rm -v ~/.aws:/root/.aws $CREDENTIALS amazon/aws-cli:$AWS_CLI_TAG ecs update-service --cluster $CLUSTER \
--service $SERVICE --force-new-deployment --region $REGION
fi

49 changes: 49 additions & 0 deletions deploy_all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash
#
# Script to deploy all OCL docker images to the corresponding ECR and ECS.
#
# Example of usage:
#
# AWS_ACCESS_KEY_ID=key AWS_SECRET_ACCESS_KEY=secret_key REGION=us-east-2 CLUSTER=oclqa SERVICE=ocl ./deploy_all.sh
#

set -e

AWS_CLI_TAG=2.1.1
SKIP_ECS=true

CREDENTIALS=""

if [ -n "$AWS_ACCESS_KEY_ID" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID"
fi
if [ -n "$AWS_SECRET_ACCESS_KEY" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY"
fi
if [ -n "$REGION" ]; then
CREDENTIALS="$CREDENTIALS -e AWS_DEFAULT_REGION=$REGION"
fi

echo ""
echo "1/7 Pushing postgres to ECR"
IMAGE=postgres TAG=12.3-alpine ./deploy.sh
echo ""
echo "2/7 Pushing redis to ECR"
IMAGE=redis TAG=6.0.6-alpine ./deploy.sh
echo ""
echo "3/7 Pushing elasticsearch to ECR"
IMAGE=elasticsearch TAG=7.8.1 ./deploy.sh
echo ""
echo "4/7 Pushing oclapi2 to ECR"
IMAGE=openconceptlab/oclapi2 AWS_IMAGE=oclapi2 TAG=qa ./deploy.sh
echo ""
echo "5/7 Pushing oclweb2 to ECR"
IMAGE=openconceptlab/oclweb2 AWS_IMAGE=oclweb2 TAG=qa ./deploy.sh
echo ""
echo "6/7 Pushing oclweb to ECR"
IMAGE=openconceptlab/oclweb AWS_IMAGE=oclweb TAG=qa ./deploy.sh

echo ""
echo "7/7 Deploying to ECS"
docker run --rm -v ~/.aws:/root/.aws $CREDENTIALS amazon/aws-cli:$AWS_CLI_TAG ecs update-service --cluster $CLUSTER \
--service $SERVICE --force-new-deployment --region $REGION

0 comments on commit bc3b17f

Please sign in to comment.