Skip to content

Latest commit

 

History

History
61 lines (49 loc) · 3.43 KB

README.md

File metadata and controls

61 lines (49 loc) · 3.43 KB

Stacks for Terraform

The Terraform code pre-processor

What is Stacks?

Stacks is a Terraform code pre-processor. Its primary goal is to minimize your total Terraform codebase without giving up on coverage. To do more with less.

As a code pre-processor, Stacks receives your "input code" and returns "output code" for Terraform to consume.

Stacks was originally developed and continues to be maintained by the Infrastructure SRE team at Cisco ThousandEyes. It was initially presented and open-sourced at SREcon23 Americas.

You can read "Terraform" and "OpenTofu" interchangeably, Stacks works with both but we've chosen to go with "Terraform" for readability.

The "I am starting from scratch" quick-start guide is a good introduction to Stacks and what it does.

Documentation

  1. About

    1. Considerations before using
    2. Stacks vs. its alternatives
  2. Quick-start guide

    1. Installation instructions
    2. I am starting from scratch
    3. I am collaborating to an existing stack
    4. I am collaborating to Stacks itself
  3. Reference

    1. Native features
      1. Global Terraform code
      2. Reusable root modules
      3. Jinja templating for Terraform
      4. Jinja templating for variables
      5. Custom Jinja functions
      6. Inline secret encryption
      7. Automatic variable initialization
    2. Features you can build with Stacks
      1. Terraform state backend configuration
      2. Terraform provider generation
      3. Input validation
    3. Command-line interface
      1. stacks render
      2. stacks terraform
      3. stacks diff
      4. stacks encrypt
      5. stacks decrypt
      6. stacks surgery list
      7. stacks surgery import
      8. stacks surgery remove
      9. stacks surgery rename
      10. stacks surgery move
      11. stacks surgery edit
    4. Directory structure
    5. Special variables