|
Some checks failed
build / Determine intended Terraform version (push) Has been cancelled
build / Determine Go toolchain version (push) Has been cancelled
Quick Checks / Unit Tests (push) Has been cancelled
Quick Checks / Race Tests (push) Has been cancelled
Quick Checks / End-to-end Tests (push) Has been cancelled
Quick Checks / Code Consistency Checks (push) Has been cancelled
build / Generate release metadata (push) Has been cancelled
build / Build for freebsd_386 (push) Has been cancelled
build / Build for linux_386 (push) Has been cancelled
build / Build for openbsd_386 (push) Has been cancelled
build / Build for windows_386 (push) Has been cancelled
build / Build for darwin_amd64 (push) Has been cancelled
build / Build for freebsd_amd64 (push) Has been cancelled
build / Build for linux_amd64 (push) Has been cancelled
build / Build for openbsd_amd64 (push) Has been cancelled
build / Build for solaris_amd64 (push) Has been cancelled
build / Build for windows_amd64 (push) Has been cancelled
build / Build for freebsd_arm (push) Has been cancelled
build / Build for linux_arm (push) Has been cancelled
build / Build for darwin_arm64 (push) Has been cancelled
build / Build for linux_arm64 (push) Has been cancelled
build / Build for windows_arm64 (push) Has been cancelled
build / Build Docker image for linux_386 (push) Has been cancelled
build / Build Docker image for linux_amd64 (push) Has been cancelled
build / Build Docker image for linux_arm (push) Has been cancelled
build / Build Docker image for linux_arm64 (push) Has been cancelled
build / Build e2etest for linux_386 (push) Has been cancelled
build / Build e2etest for windows_386 (push) Has been cancelled
build / Build e2etest for darwin_amd64 (push) Has been cancelled
build / Build e2etest for linux_amd64 (push) Has been cancelled
build / Build e2etest for windows_amd64 (push) Has been cancelled
build / Build e2etest for linux_arm (push) Has been cancelled
build / Build e2etest for darwin_arm64 (push) Has been cancelled
build / Build e2etest for linux_arm64 (push) Has been cancelled
build / Run e2e test for linux_386 (push) Has been cancelled
build / Run e2e test for windows_386 (push) Has been cancelled
build / Run e2e test for darwin_amd64 (push) Has been cancelled
build / Run e2e test for linux_amd64 (push) Has been cancelled
build / Run e2e test for windows_amd64 (push) Has been cancelled
build / Run e2e test for linux_arm (push) Has been cancelled
build / Run e2e test for linux_arm64 (push) Has been cancelled
build / Run terraform-exec test for linux amd64 (push) Has been cancelled
|
||
|---|---|---|
| .. | ||
| stackaddrs | ||
| stackconfig | ||
| stackmigrate | ||
| stackplan | ||
| stackruntime | ||
| stackstate | ||
| stackutils | ||
| tfstackdata1 | ||
| README.md | ||
| staticcheck.conf | ||
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 packageaddrs, 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 packageconfigsthat does similarly for Terraform's module language. -
stackplanandstackstatetogether provide the models and marshalling/unmarshalling logic for the Stacks variants of Terraform's "plan" and "state" concepts. -
stackruntimedeals 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.
-
tfstackdata1is 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: