agentbond007 / ecs-deploy

ecs-deploy is the glue between your CI and ECS. It automates deploys based a simple JSON file

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

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.

About

ecs-deploy is the glue between your CI and ECS. It automates deploys based a simple JSON file

License:Apache License 2.0


Languages

Language:Go 95.4%Language:HCL 4.6%