terramate

package module
v0.4.2-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2023 License: MPL-2.0 Imports: 2 Imported by: 0

README

Terramate

Terramate

https://terramate.io
Terramate helps implement and maintain highly scalable Terraform projects by adding powerful capabilities such as code generation, stacks, orchestration, change detection, data sharing and more.


Latest Release Go Docs Go Report Card Code Coverage Terramate CI Status Stars Discord Server

📖 Documentation | 🚀 Getting Started | 💻 Playground | 🙌 Join Us



Understanding Terramate

Developers waste too much time writing and maintaining infrastructure code. That's why we invented Terramate, an open-source code generator and orchestrator that adds powerful capabilities such as code generation, stacks, orchestration, change detection, data sharing and more to Terraform.

Compared to other tooling, Terramate is not a wrapper for Terraform. Terramate can orchestrate and execute any tool such as Terraform, Infracost, Kubernetes, Checkov and others.

Our philosophy is to integrate with existing tooling in a non-intrusive way without major lock-ins and for a broader audience. If you like Terramate please give the project a ⭐ and join our Discord Community.

Use Cases

Split up large Terraform environments into smaller and isolated stacks

Increase the change frequency, reduce the blast radius and provide a clear separation of ownership.

🔗 Build custom delivery workflows

Build custom CI/CD workflows on top of a powerful orchestration and execution engine.

🏎 Speed up execution run times

Change detection allows you to only execute commands in stacks that have been changed in the current branch or since the last merge.

🧠 Provide powerful templates and abstraction layers

Enable developers to use templates to deploy complex infrastructure without knowing the complexity of Terraform.

💫 Keep your code DRY

Avoid code duplication by easily sharing data across your stacks.

⚒️ Reduce the maintenance overhead to a bare minimum

Automatically generating and updating Terraform configuration, provider definitions, backend configuration and more.

🫶 Overcome the shortcomings of Terraform

Remove the need for hard-coded configurations and allow interpolation in code sections where Terraform does not support dynamic configurations.

Getting Started

The fastest way to get started with Terramate is our getting started guide.

Join the Community

Additional Resources

Reporting bugs and contributing code

  • Want to report a bug or request a feature? Open an issue

Documentation

Overview

Package terramate provides functions for managing terraform stacks. A stack is a unit of independent runnable terraform modules.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Version

func Version() string

Version of terramate.

Types

This section is empty.

Directories

Path Synopsis
Package cloud implements a client SDK for communication with the cloud API.
Package cloud implements a client SDK for communication with the cloud API.
deployment
Package deployment provides types and helpers for cloud deployments.
Package deployment provides types and helpers for cloud deployments.
stack
Package stack provides types and helpers for cloud stacks.
Package stack provides types and helpers for cloud stacks.
testserver
Package testserver provides fake Terramate Cloud endpoints for testing purposes.
Package testserver provides fake Terramate Cloud endpoints for testing purposes.
testserver/cmd/fakecloud
Package main implements the cloudmock service.
Package main implements the cloudmock service.
cmd
terramate
Terramate is a tool for managing multiple Terraform stacks.
Terramate is a tool for managing multiple Terraform stacks.
terramate-ls
Terramate-ls is a language server.
Terramate-ls is a language server.
terramate/cli
Package cli provides cli specific functionality.
Package cli provides cli specific functionality.
terramate/cli/cliconfig
Package cliconfig implements the parser and load of Terramate CLI Configuration files (.terramaterc and terramate.rc).
Package cliconfig implements the parser and load of Terramate CLI Configuration files (.terramaterc and terramate.rc).
terramate/cli/github
Package github implements a client SDK for the Github API.
Package github implements a client SDK for the Github API.
terramate/cli/out
Package out provides output functionality, including verboseness level and normal/error messages support.
Package out provides output functionality, including verboseness level and normal/error messages support.
terramate/e2etests/cmd/test
test is a test command that implements behaviors that are useful when testing terramate run features in a way that reduces dependencies on the environment to run the tests.
test is a test command that implements behaviors that are useful when testing terramate run features in a way that reduces dependencies on the environment to run the tests.
Package config provides high level Terramate configuration facilities.
Package config provides high level Terramate configuration facilities.
filter
Package filter provides helpers for filtering objects.
Package filter provides helpers for filtering objects.
tag
Package tag provides helpers for dealing with Terramate tags.
Package tag provides helpers for dealing with Terramate tags.
Package errors implements the Terramate standard error type.
Package errors implements the Terramate standard error type.
errlog
Package errlog provides functions to log Terramate errors nicely and in a consistent manner.
Package errlog provides functions to log Terramate errors nicely and in a consistent manner.
Package event implements a simple event stream and defines all events generated by different parts of Terramate.
Package event implements a simple event stream and defines all events generated by different parts of Terramate.
Package fs provides filesystem related functionality.
Package fs provides filesystem related functionality.
Package generate implements code generation.
Package generate implements code generation.
genfile
Package genfile implements generate_file code generation.
Package genfile implements generate_file code generation.
genhcl
Package genhcl implements generate_hcl code generation.
Package genhcl implements generate_hcl code generation.
Package git provides a wrapper for the git command line program.
Package git provides a wrapper for the git command line program.
Package globals provides functions for loading globals.
Package globals provides functions for loading globals.
hcl
Package hcl provides parsing functionality for Terramate HCL configuration.
Package hcl provides parsing functionality for Terramate HCL configuration.
ast
Package ast provides low level parsing facilities for HCL configuration.
Package ast provides low level parsing facilities for HCL configuration.
eval
Package eval provides both full and partial evaluation of HCL.
Package eval provides both full and partial evaluation of HCL.
fmt
Package fmt contains functions for formatting hcl config.
Package fmt contains functions for formatting hcl config.
info
Package info provides informational types related to hcl.
Package info provides informational types related to hcl.
Package lets provides parsing and evaluation of lets blocks.
Package lets provides parsing and evaluation of lets blocks.
Package tmls implements a Terramate Language Server (LSP).
Package tmls implements a Terramate Language Server (LSP).
Package mapexpr implements the `map` block as an HCL expression type.
Package mapexpr implements the `map` block as an HCL expression type.
test
Package test implements testcases and test helpers for dealing with map blocks.
Package test implements testcases and test helpers for dealing with map blocks.
Package modvendor provides basic functions and types to support Terraform module vendoring.
Package modvendor provides basic functions and types to support Terraform module vendoring.
download
Package download is responsible for downloading vendored modules.
Package download is responsible for downloading vendored modules.
manifest
Package manifest implements vendor manifest parsing.
Package manifest implements vendor manifest parsing.
Package project defines concepts that are related to a Terramate project.
Package project defines concepts that are related to a Terramate project.
run
Package run provides facilities to run commands inside Terramate context and ordering.
Package run provides facilities to run commands inside Terramate context and ordering.
dag
Package dag provides the Directed-Acyclic-Graph (DAG) primitives required by Terramate.
Package dag provides the Directed-Acyclic-Graph (DAG) primitives required by Terramate.
Package stack defines all functionality around stacks, like loading, listing all stacks, etc.
Package stack defines all functionality around stacks, like loading, listing all stacks, etc.
trigger
Package trigger provides functionality that help manipulate stacks triggers.
Package trigger provides functionality that help manipulate stacks triggers.
Package stdlib implements the Terramate language functions.
Package stdlib implements the Terramate language functions.
Package test provides testing routines reused throughout terramate code base.
Package test provides testing routines reused throughout terramate code base.
cloud
Package cloud provides testing helpers for the TMC cloud.
Package cloud provides testing helpers for the TMC cloud.
errors
Package errors provides useful assert functions for handling errors on tests
Package errors provides useful assert functions for handling errors on tests
hclutils
Package hclutils provides test utils related to hcl.
Package hclutils provides test utils related to hcl.
hclutils/info
Package info provides functions useful to create types like [info.Range]
Package info provides functions useful to create types like [info.Range]
hclwrite
Package hclwrite aims to provide some facilities making it easier/safer to generate HCL code for testing purposes.
Package hclwrite aims to provide some facilities making it easier/safer to generate HCL code for testing purposes.
hclwrite/hclutils
Package hclutils provides useful functions to build HCL documents.
Package hclutils provides useful functions to build HCL documents.
ls
Package ls provides test utilities used when testing the Terramate Language Server.
Package ls provides test utilities used when testing the Terramate Language Server.
sandbox
Package sandbox provides an easy way to setup isolated terramate projects that can be used on testing, acting like sandboxes.
Package sandbox provides an easy way to setup isolated terramate projects that can be used on testing, acting like sandboxes.
Package tf provides parsing and abstractions specific to Terraform.
Package tf provides parsing and abstractions specific to Terraform.
Package versions provide helper functions for version constraint matching.
Package versions provide helper functions for version constraint matching.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL