/drone-terraform-in-aws

drone infrastructure in AWS

Primary LanguageHCLMIT LicenseMIT

drone-terraform

Drone CI/CD infrastructure using Terraform in AWS.

Requirement

AWS Fargate with Amazon ECS is currently only available in the following regions:

Region Name Region
US East (N. Virginia) us-east-1
US East (Ohio) us-east-2
US West (Oregon) us-west-2
EU (Ireland) eu-west-1
EU (London) eu-west-2
EU (Frankfurt) eu-central-1
Asia Pacific (Tokyo) ap-northeast-1
Asia Pacific (Singapore) ap-southeast-1
Asia Pacific (Sydney) ap-southeast-2

See AWS Fargate on Amazon ECS to get more detail information. Service discovery is available in the following AWS Regions:

Region Name Region
US East (N. Virginia) us-east-1
US East (Ohio) us-east-2
US West (N. California) us-west-1
US West (Oregon) us-west-2
Asia Pacific (Mumbai) ap-south-1
Asia Pacific (Seoul) ap-northeast-2
Asia Pacific (Singapore) ap-southeast-1
Asia Pacific (Sydney) ap-southeast-2
Asia Pacific (Tokyo) ap-northeast-1
EU (Frankfurt) eu-central-1
EU (Ireland) eu-west-1
EU (London) eu-west-2
EU (Paris) eu-west-3
South America (São Paulo) sa-east-1
Canada (Central) ca-central-1

See AWS Service Discovery to get more detail information. Before you begin, make sure you've read the limition.

Configuration

create new file with terraform.tfvars filename and put the following variable:

aws_access_key = "xxx"
aws_secret_key = "xxx"
drone_github_client = "xxxx"
drone_github_secret = "xxxx"
ssh_public_key = "ssh-rsa xxxxxx appleboy@xxxx"

Build Infrastructure

The first command to run for a new configuration

$ terraform init
Initializing the backend...
Initializing provider plugins...
- downloading plugin for provider "aws"...

Apply Changes

$ terraform apply

You will see the output:

Outputs:

alb_hostname = http://drone-front-alb-xxxxxxx.us-east-1.elb.amazonaws.com
database_root_password = <sensitive>
region = us-east-1

How to testing

$ go test -timeout 30m -v .