The Terraform Framework.
Official Docs Site: terraspace.cloud
Here are commands to get started:
terraspace new project infra --plugin aws --examples
cd infra
terraspace up demo
terraspace down demo
new
command generates a starter project.up
command creates an s3 bucket.down
command cleans up and deletes the bucket.The default plugin is aws. Major cloud providers are supported: aws, azurerm, google.
Create infrastructure:
$ terraspace up demo
Building .terraspace-cache/us-west-2/dev/stacks/demo
Current directory: .terraspace-cache/us-west-2/dev/stacks/demo
=> terraform init -get >> /tmp/terraspace/log/init/demo.log
=> terraform apply
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
$
Destroy infrastructure:
$ terraspace down demo
Building .terraspace-cache/us-west-2/dev/stacks/demo
Current directory: .terraspace-cache/us-west-2/dev/stacks/demo
=> terraform destroy
Destroy complete! Resources: 2 destroyed.
$
To deploy all the infrastructure stacks:
$ terraspace all up
Will run:
terraspace up vpc # batch 1
terraspace up mysql # batch 2
terraspace up redis # batch 2
terraspace up instance # batch 3
Are you sure? (y/N)
To choose multiple stacks to deploy
$ terraspace all up mysql redis
Will run:
terraspace up vpc # batch 1
terraspace up mysql # batch 2
terraspace up redis # batch 2
Are you sure? (y/N)
When you use the all command, the dependency graph is calculated and the stacks are deployed in the right order.
Terraspace makes it easy to use Terraform modules sourced from your own git repositories, other git repositories, or the Terraform Registry. Use any module you want:
Terrafile:
# GitHub repo
mod "s3", source: "boltops-tools/terraform-aws-s3", tag: "v0.1.0"
# Terraform registry
mod "sg", source: "terraform-aws-modules/security-group/aws", version: "3.10.0"
To install modules:
terraspace bundle
app
and config/terraform
structure that gets built each deploy. You can override the settings if needed, like for using existing backends. See: Existing Backends.tfvars
folder. Rich layering support allows you to build different environments like dev and prod with the same code. Examples are in Full Layering.Here are some useful comparisons to help you compare Terraspace vs other tools in the ecosystem:
More info: terraspace.cloud