All Projects → 7Factor → terraform-aws-concourse

7Factor / terraform-aws-concourse

Licence: MIT license
Terraform Module for a distributed concourse cluster on AWS

Programming Languages

HCL
1544 projects
shell
77523 projects

Projects that are alternatives of or similar to terraform-aws-concourse

ofcourse
A Concourse resource generator
Stars: ✭ 41 (+241.67%)
Mutual labels:  continuous-integration, continuous-delivery, concourse, concourse-ci
www.go.cd
Github pages repo
Stars: ✭ 39 (+225%)
Mutual labels:  continuous-integration, continuous-delivery, infrastructure-as-code
Concourse
Concourse is a container-based continuous thing-doer written in Go.
Stars: ✭ 6,070 (+50483.33%)
Mutual labels:  continuous-integration, continuous-delivery, concourse
Gocd
Main repository for GoCD - Continuous Delivery server
Stars: ✭ 6,314 (+52516.67%)
Mutual labels:  continuous-integration, continuous-delivery, infrastructure-as-code
aws-cloudformation-simplified
AWS CloudFormation - Simplified | Hands On Learning !!
Stars: ✭ 51 (+325%)
Mutual labels:  continuous-integration, continuous-delivery, infrastructure-as-code
Terrahub
Terraform Automation and Orchestration Tool (Open Source)
Stars: ✭ 148 (+1133.33%)
Mutual labels:  infrastructure, continuous-integration, continuous-delivery
k8s.ecoysystem.apps
kubernetes(k8s) ecosystem applications written c#, including micro-service(aspnetcore.webapi) and health checks etc. the goal is automatic complete continuous integration, delivery, deployment by committing code to the respository. so i will continue to be iterated...
Stars: ✭ 16 (+33.33%)
Mutual labels:  continuous-integration, continuous-delivery
ansible-concourse
An ansible role to manage Concourse CI
Stars: ✭ 22 (+83.33%)
Mutual labels:  concourse, concourse-ci
concourse-build-resource
A Concourse resource for observing Concourse builds
Stars: ✭ 16 (+33.33%)
Mutual labels:  concourse, concourse-ci
maestro
Faster CI/CD for multi-artifact projects
Stars: ✭ 13 (+8.33%)
Mutual labels:  continuous-integration, continuous-delivery
Pulumi Aws
An Amazon Web Services (AWS) Pulumi resource package, providing multi-language access to AWS
Stars: ✭ 169 (+1308.33%)
Mutual labels:  infrastructure, infrastructure-as-code
badwolf
Docker based continuous integration, continuous deployment and code lint review system for BitBucket
Stars: ✭ 88 (+633.33%)
Mutual labels:  continuous-integration, continuous-delivery
notebooks-ci-showcase
Fully Configured Example of CI/CD For Notebooks On Top Of GCP
Stars: ✭ 22 (+83.33%)
Mutual labels:  continuous-integration, continuous-delivery
devopsish.com
DevOps, Cloud Native, Hybrid Cloud, Open Source, industry news, culture, and the ‘ish between.
Stars: ✭ 33 (+175%)
Mutual labels:  infrastructure, infrastructure-as-code
generator-nullfactory-xrm
Yeoman generator for Dynamics 365 Solutions. It generates a project structure that facilitates the quick creation builds and automated release strategies with minimal effort.
Stars: ✭ 15 (+25%)
Mutual labels:  continuous-integration, continuous-delivery
Fogg
Manage Infrastructure as Code with less pain.
Stars: ✭ 181 (+1408.33%)
Mutual labels:  infrastructure, infrastructure-as-code
netris-operator
The Kubernetes Operator for Netris
Stars: ✭ 28 (+133.33%)
Mutual labels:  infrastructure, infrastructure-as-code
software-factory
The ready to use Continuous Integration platform
Stars: ✭ 17 (+41.67%)
Mutual labels:  continuous-integration, continuous-delivery
concourse-fly-resource
A Concourse resource for manipulating fly
Stars: ✭ 16 (+33.33%)
Mutual labels:  concourse, concourse-ci
concourse-ci-formula
All-in-one Concourse VM with S3-compatible storage and Vault secret manager
Stars: ✭ 26 (+116.67%)
Mutual labels:  continuous-integration, concourse

Concourse on AWS via Terraform

This module will allow you to publish concourse on your own AWS infrastructure. Why another module? We needed something a little more prescriptive than the current module that's available (don't get us wrong, it's great) so we built this. It's a very straightforward deploy and will work in enterprise or startup situations. Proper networking design is left up to the reader but we do assume high availability.

It is very important that you use concourse version 5.1.0 or higher with this module. The development team at concourse can sometimes introduce breaking changes to the docker images when refactoring the CLI. As with most software engineering projects sometimes we don't catch that in time and our terraform will break during the deployment step and we have to poke about in the EC2 machines to solve it. We can guarantee that this terraform works with the versions of concourse specified above.

Currently we support the following features:

  1. Configurable number of workers and web nodes. Everything has a sane default but customize to your liking.
  2. Requires AWS classic load balancing complete with SSL termination. Classic ELBs are required because we need the ability to service weird ports like 2222. ALBs support only HTTPS/HTTP and network LBs don't allow SSL termination.
  3. Configurable authentication scheme (you need to know what you're doing though). Pass your secrets through the appropriate configuration variable and we'll pass that to the docker container.
  4. Configurable cred store. Pass in your credential store switches through the appropriate variable and you'll be up and running in no time.

Most of what you need to know is provided in an example tfvars file, and feel free to peruse the variables.tf for documentation on the required variables to run the terraform.

For persistent storage we usually combine this module with an outer shell that provisions an RDS PostgreSQL instance and we pass the credentials in securely. We do this because it allows us to segregate the RDS instance from concourse so if we need to blow away the concourse instance we can without worrying about having to reprovision a database.

This module should be fairly set-and-forget as we've put a lot of man hours into improving it. Feel free to hit us up via email or fork this repo and send PRs if you can think of a way to improve it!

Example Usage

module "concourse" {
  source = "[email protected]:7Factor/terraform-aws-concourse.git"

  # Common config
  cluster_name = "${var.conc_cluster_name}"
  vpc_id       = "${var.vpc_id}"
  conc_version = "${var.conc_version}"

  # SSH config
  conc_ssh_key_name     = "${var.conc_ssh_key_name}"
  utility_accessible_sg = "${var.utility_accessible_sg}"

  # DB configuration
  concdb_host     = "${aws_db_instance.concourse_db.address}"
  concdb_password = "${var.concdb_password}"

  # Web configuration
  web_instance_type   = "${var.web_instance_type}"
  web_count           = "${var.web_count}"
  web_cert_arn        = "${var.conc_web_cert_arn}"
  web_keys_dir        = "${path.root}/keys/web/"
  web_public_subnets  = "${var.web_private_subnets}"
  web_private_subnets = "${var.web_private_subnets}"
  fqdn                = "${var.fqdn}"
  internal            = "${var.internal}"

  # auth/security
  authentication_config  = "${var.authentication_config}"
  web_lb_security_policy = "${var.lb_security_policy}"

  # Worker
  worker_count            = "${var.worker_count}"
  worker_instance_type    = "${var.worker_instance_type}"
  worker_keys_dir         = "${path.root}/keys/worker/"
  worker_vol_size         = "${var.worker_vol_size}"
  worker_subnets          = "${var.worker_subnets}"
  worker_instance_profile = "${aws_iam_instance_profile.concourse_profile.name}"

  # Vault
  cred_store_config = "${var.cred_store_config}"
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].