Terraform module which sets up a very generic concourse CI server. CoreOS and docker are used in behind.
- Create instance
- Create EC2 role
- Create ALB (with optional SSL binding)
module "concourse" {
source = "git::https://github.com/zoitech/terraform-aws-concourse.git?ref=v0.0.5"
instance_name = "concourse"
instance_sg_id = aws_security_group.group_concourse.id
alb_sg_id = aws_security_group.allow_all.id
concourse_username = "concourse"
concourse_password = "Sup3rS3cur3"
instance_key_name = "my_key"
public_sn_a = "subnet-ab123456"
public_sn_b = "subnet-ab654321"
private_sn_a = "subnet-bc123456"
vpc_id = "vpc-98ad1234"
instance_volume_size = "200" #default 60
instance_ami = "ami-fo33w5t"To enable access logs for the load balancer, set the parameter "enable_alb_access_logs = true". When set to true, the following parameters should also be configured as shown below:
enable_alb_access_logs = true
s3_log_bucket_name = "log-log-log-for-logging-test"
s3_log_bucket_Key_name = "concourse-alb-logs"
principle_account_id = "054676820928" # See below for more information
lifecycle_rule_id = "concourse_alb_log_expiration"
lifecycle_rule_enabled = true
}The account ID for the principle within the bucket policy needs to match the region to allow the load balancer to write the logs to the bucket.
| Region | Region Name | Elastic Load Balancing Account ID |
|---|---|---|
| us-east-1 | US East (N. Virginia) | 127311923021 |
| us-east-2 | US East (Ohio) | 033677994240 |
| us-west-1 | US West (N. California) | 027434742980 |
| us-west-2 | US West (Oregon) | 797873946194 |
| ca-central-1 | Canada (Central) | 985666609251 |
| eu-central-1 | EU (Frankfurt) | 054676820928 |
| eu-west-1 | EU (Ireland) | 156460612806 |
| eu-west-2 | EU (London) | 652711504416 |
| eu-west-3 | EU (Paris) | 009996457667 |
| ap-northeast-1 | Asia Pacific (Tokyo) | 582318560864 |
| ap-northeast-2 | Asia Pacific (Seoul)) | 600734575887 |
| ap-northeast-3 | Asia Pacific (Osaka-Local) | 383597477331 |
| ap-southeast-1 | Asia Pacific (Singapore) | 114774131450 |
| ap-southeast-2 | Asia Pacific (Sydney) | 783225319266 |
| ap-south-1 | Asia Pacific (Mumbai) | 718504428378 |
| sa-east-1 | South America (São Paulo) | 507241528517 |
| us-gov-west-1* | AWS GovCloud (US) | 048591011584 |
| cn-north-1 ** | China (Beijing) | 638102146993 |
| cn-northwest-1 ** | China (Ningxia) | 037604701340 |
* This region requires a separate account. For more information, see AWS GovCloud (US).
** This region requires a separate account. For more information, see China (Beijing).
For updated account IDs with corresponding regions, please refer to: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy
Module managed by Zoi.
MIT License. See LICENSE for full details.
| Name | Version |
|---|---|
| terraform | >= 0.12 |
| Name | Version |
|---|---|
| aws | n/a |
| random | n/a |
| template | n/a |
No modules.
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| alb_sg_id | The Security Group ID/s which should be attached to the Loadbalancer. | list(string) |
n/a | yes |
| alb_tags | Custom tags for the Application Load Balancer | map(string) |
{} |
no |
| certificate_arn | ARN of the certificate. | string |
"" |
no |
| concourse_db_size | Size of the DB Instance. | string |
"db.t2.micro" |
no |
| concourse_db_storage | Size of the DB Disk. | string |
"100" |
no |
| concourse_external_url | The external URL (including http://) of the Concourse server. | string |
"" |
no |
| concourse_password | The Password for the default user on the Concourse Server. | string |
"" |
no |
| concourse_username | The Username for the default user on the Concourse Server. | string |
"concourse" |
no |
| concourse_version | The Concourse version to launch. | string |
"3.4.1" |
no |
| ebs_tags | Custom tags for the EBS volume | map(string) |
{} |
no |
| ec2_tags | Custom tags for the EC2 instance | map(string) |
{} |
no |
| enable_alb_access_logs | Turn alb access logs on or off. | bool |
false |
no |
| enable_special_char_in_random_password | Enable special characters in random password. | bool |
false |
no |
| instance_ami | ami | any |
n/a | yes |
| instance_key_name | The SSH key to use for connecting to the instance. | any |
n/a | yes |
| instance_name | The name of the Instance. | string |
"concourse" |
no |
| instance_sg_id | The Security Group ID/s which should be attached to the Instance. | list(string) |
n/a | yes |
| instance_size | The size of the Instance's disk. | string |
"t2.medium" |
no |
| instance_volume_size | Custom volume size for concourse | string |
"60" |
no |
| lifecycle_rule_enabled | To enable the lifecycle rule | bool |
false |
no |
| lifecycle_rule_expiration | Delete log files X days after creation | number |
90 |
no |
| lifecycle_rule_id | Name of the lifecyle rule id. | string |
"rule1" |
no |
| lifecycle_rule_prefix | Lifecycle rule prefix. | string |
"" |
no |
| postgres_family | The Postgres Family to use. | string |
"postgres9.5" |
no |
| postgres_multiaz | n/a | string |
"0" |
no |
| postgres_password | The Password for the Postgres database. | string |
"" |
no |
| postgres_username | The Username for the Postgres database. | string |
"dbadmin" |
no |
| postgres_version | The Postgres Version to use. | string |
"9.5.10" |
no |
| prefix | A prefix which is added to each ressource. | string |
"prod" |
no |
| principle_account_id | Set principle account ID for the region | string |
"156460612806" |
no |
| private_sn | The Public Subnets in which the EC2 Instance should be created. | list(string) |
n/a | yes |
| public_sn | The Public Subnets in which the LB should be created. | list(string) |
n/a | yes |
| rds_tags | Custom tags for the RDS instance | map(string) |
{} |
no |
| region | The AWS region to run in. | string |
"eu-west-1" |
no |
| role_policies | The policies which would be attached to the EC2 Role. | list(string) |
[ |
no |
| s3_log_bucket_Key_name | Name of the folder to store logs in the bucket. | string |
"" |
no |
| s3_log_bucket_name | Name of the logs bucket. | string |
"" |
no |
| s3_tags | Custom tags for the S3 bucket | map(string) |
{} |
no |
| sg_tags | Custom tags for the security groups | map(string) |
{} |
no |
| sns_tags | Custom tags for the SNS topic | map(string) |
{} |
no |
| vpc_id | The VPC Id in which the EC2 Instance should be created. | any |
n/a | yes |
| Name | Description |
|---|---|
| alb_dns_name | n/a |
| alb_name | n/a |
| concourse_password | n/a |
| instance_id | n/a |
| postgres_password | n/a |
| public_ip | n/a |
| url | n/a |