You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform/internal/stacks
Radek Simko 56c39007e2
make protobuf
1 day ago
..
stackaddrs make copyrightfix 1 day ago
stackconfig make copyrightfix 1 day ago
stackmigrate make copyrightfix 1 day ago
stackplan make copyrightfix 1 day ago
stackruntime make copyrightfix 1 day ago
stackstate make copyrightfix 1 day ago
stackutils make copyrightfix 1 day ago
tfstackdata1 make protobuf 1 day ago
README.md stacks: Summary docs giving an overview and some details about stackeval 2 years ago
staticcheck.conf staticcheck: Broadly ignore unused stuff in all of "stacks" 2 years ago

README.md

Terraform Stacks functionality

The Go packages under this directory together implement the Terraform Stacks features.

Terraform Stacks is an orchestration layer on top of zero or more trees of Terraform modules, and so much of what you'll find here is analogous to a top-level package that serves a similar purpose for individual Terraform modules or trees of modules.

The main components here are:

  • stackaddrs: A stacks-specific analog to the top-level package addrs, containing types we use to refer to objects within the stacks language and runtime, and some logic for navigating between different types of addresses.

    This package builds on package addrs, since the stacks runtime wraps the modules runtime. Therefore some of the stack-specific address types incorporate more general address types from the other package.

  • stackconfig: Implements the loading, parsing, and static decoding for the stacks language, analogous to the top-level package configs that does similarly for Terraform's module language.

  • stackplan and stackstate together provide the models and marshalling/unmarshalling logic for the Stacks variants of Terraform's "plan" and "state" concepts.

  • stackruntime deals with the runtime behavior of stacks, including the creation of plans based on a comparison between desired and actual state, and then applying those plans.

    All of the dynamic behavior of the stacks language lives here.

  • tfstackdata1 is a Go representation of an internal protocol buffers schema used for preserving plan and state data between runs. These formats are implementation details that external callers are not permitted to rely on.

    (The public interface is via the Terraform Core RPC API, which is implemented in the sibling directory rpcapi.)

More Documentation

The following are some more specific and therefore more detailed documents about some particular parts of the implementation of the Terraform Stacks features: