ECS deploy
ECS Deploy is a REST API server written in Go that can be used to deploy services on ECS from anywhere. It typically is executed as part of your deployment pipeline. Continuous Integration software (like Jenkins, CircleCI, Bitbucket or others) often don't have proper integration with ECS. This API server can be deployed on ECS and will be used to provide continuous deployment on ECS.
- Registers services in DynamoDB
- Creates ECR repository
- Creates necessary IAM roles
- Creates ALB target and listener rules
- Creates and updates ECS Services based on JSON input
How to deploy
- Deploy the docker image as a service on ECS
- See examples/ecs-deploy.tf for a terraform deploy script
- This script creates an ALB with the same name as the ECS cluster
- Adds the IAM policy from examples/iam-policy.json
- Adds dynamodb table with history of deployments
- See examples/ecs-deploy.tf for a terraform deploy script
Environment variables
AWS Specific variables:
- AWS_REGION=region # mandatory
Authentication variables;
- JWT_SECRET=secret # mandatory
- DEPLOY_PASSWORD=deploy # mandatory
- DEVELOPER_PASSWORD=developer # mandatory
Service specific variables (those will be used when deploying services):
- AWS_ACCOUNT_ENV=staging
- PARAMSTORE_ENABLED=yes
- PARAMSTORE_PREFIX=mycompany
- PARAMSTORE_KMS_ARN=
- CLOUDWATCH_LOGS_ENABLED=yes
- CLOUDWATCH_LOGS_PREFIX=mycompany
- LOADBALANCER_DOMAIN=mycompany.com
License
Copyright 2017 in4it BVBA
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.