This project contains scripts that are used to manage Shippable infrastructure
for RC and Production environments. Most of the code uses terraform while some of
the utilities are in bash.
The project is hooked up in Shippable assembly lines to execute whenever a change is merged. The job(s) in the assembly lines ensure that the state file is updated correctly and can only be accessed with correct permissions.
The directory rc-saas contains components needed to provision RC
infrastructure. This provisions the following components:
- VPC, subnets, internet gateway, NAT/jumpbox
- instances for running Shippable services
- load balancers to expose Shippable API and UI
- instances for running Shippable shared build nodes
- test instances required by Shippable development team
The directory prod-saas contains components needed to provision RC
infrastructure. This provisions the following components:
- VPC, subnets, internet gateway, NAT/jumpbox
- instances for running Shippable services
- load balancers to expose Shippable API and UI
The directory prodci-saas contains components needed to run on-demand builds
behind a static IP which helps in whitelisting IP addresses. Read the
documentation for more details.
- Make changes in any script(s)
- Comment out
terraform applyline inprovision.shscript - Send PR, get it merged after review(s)
- Make sure the job runs
terraform planwith expected results - Uncomment
terraform applyinprovision.shscript - Send PR, get it merged
- The job should run
terraform apply, resulting in expected changes