Skip to content

Softwire/control-tower

Repository files navigation

⚠️ WARNING
This repository is a fork of the original control-tower by EngineerBetter, which is no longer actively maintained. This fork is maintained by Softwire for our own internal purposes. While we continue to make updates, we offer no warranties, guarantees, or official support for external use. If you decide to use this fork, you do so at your own risk.

Control Tower

asciicast

A tool for easily deploying self-healing, self-updating Concourse (and Grafana and CredHub!) in a single command.

CI build badge

TL;DR

Ensure you install the pre-requisites. After that you can download the latest Control-Tower release from Github. Users of Homebrew on macOS or Linux can also run:

$ brew install engineerbetter/tap/control-tower

Then...

AWS

$ AWS_ACCESS_KEY_ID=<access-key-id> \
  AWS_SECRET_ACCESS_KEY=<secret-access-key> \
  control-tower deploy --iaas aws <your-project-name>

GCP

$ GOOGLE_APPLICATION_CREDENTIALS=<path/to/googlecreds.json> \
  control-tower deploy --iaas gcp <your-project-name>

📋 ...then don't forget to please complete our quick 7-question survey so we can understand how and why you use Control Tower, and how we can make it better. 📋

Why Control Tower?

The goal of Control Tower is to be the world's easiest way to deploy and operate Concourse CI in production.

In just one command you can deploy a new Concourse environment for your team, on either AWS or GCP. Your Control Tower deployment will upgrade itself and self-heal, restoring the underlying VMs if needed. Using the same command-line tool you can do things like manage DNS, scale your environment, or manage firewall policy. CredHub is provided for secrets management and Grafana for viewing your Concourse metrics.

You can keep up to date on Control Tower announcements by reading the EngineerBetter Blog and by joining the discussion on our Community Slack.

Features

Feature AWS GCP
Concourse IP whitelisting + +
Credhub + +
Custom domains + +
Custom tagging BOSH only BOSH only
Custom TLS certificates + +
Database vertical scaling + +
BitBucket authentication + +
GitHub authentication + +
Microsoft authentication + +
Grafana (on port 3000) + +
Interruptable worker support + +
Letsencrypt integration + +
Namespace support + +
Region selection + +
Retrieving deployment information + +
Retrieving deployment information as shell exports + +
Retrieving deployment information in JSON + +
Retrieving director NATS cert expiration + +
Rotating director NATS cert + +
Self-Update support + +
Teardown deployment + +
Web server vertical scaling + +
Worker horizontal scaling + +
Worker type selection + N/A
Worker vertical scaling + +
Zone selection + +
Customised networking + +

Detailed Documentation

Before you start Prerequisites
Installing Control Tower Installation
Flags on all commands Global flags
Deploying a Concourse Deploy
Retrieving info from a deployment Info
Destroying a Concourse Destroy
Maintaining your Concourse Maintain
Updating Updating
Metrics Metrics
Credential Management Credhub
How much will this cost? Cost Estimation
What is it doing? - deep dive Walkthrough
Want to Contribute? Development
Having problems? Troubleshooting