Documentation ¶
Index ¶
- Constants
- Variables
- func Action(opts *options.TerragruntOptions) cli.ActionFunc
- func AlreadyHaveLatestCode(terraformSource *terraform.Source, ...) (bool, error)
- func CheckFolderContainsTerraformCode(terragruntOptions *options.TerragruntOptions) error
- func CheckTerraformVersion(constraint string, terragruntOptions *options.TerragruntOptions) error
- func CheckTerraformVersionMeetsConstraint(currentVersion *version.Version, constraint string) error
- func CheckTerragruntVersion(constraint string, terragruntOptions *options.TerragruntOptions) error
- func CheckTerragruntVersionMeetsConstraint(currentVersion *version.Version, constraint string) error
- func DownloadTerraformSourceIfNecessary(ctx context.Context, terraformSource *terraform.Source, ...) error
- func FilterTerraformExtraArgs(terragruntOptions *options.TerragruntOptions, ...) []string
- func IsRetryable(opts *options.TerragruntOptions, out *util.CmdOutput) bool
- func NewCommand(opts *options.TerragruntOptions) *cli.Command
- func ParseTerraformVersion(versionCommandOutput string) (*version.Version, error)
- func PopulateTerraformVersion(ctx context.Context, terragruntOptions *options.TerragruntOptions) error
- func Run(ctx context.Context, opts *options.TerragruntOptions) error
- func RunTerraformWithRetry(ctx context.Context, terragruntOptions *options.TerragruntOptions) error
- func RunWithTarget(ctx context.Context, opts *options.TerragruntOptions, target *Target) error
- func SetTerragruntInputsAsEnvVars(terragruntOptions *options.TerragruntOptions, ...) error
- func ToTerraformEnvVars(opts *options.TerragruntOptions, vars map[string]interface{}) (map[string]string, error)
- func ValidateWorkingDir(terraformSource *terraform.Source) error
- func WriteTerragruntDebugFile(terragruntOptions *options.TerragruntOptions, ...) error
- type BackendNotDefined
- type DownloadingTerraformSourceErr
- type FileCopyGetter
- type InvalidTerraformVersion
- type InvalidTerraformVersionSyntax
- type InvalidTerragruntVersion
- type MaxRetriesExceeded
- type MissingCommand
- type ModuleIsProtected
- type NoTerraformFilesFound
- type Target
- type TargetCallbackType
- type TargetErrorCallbackType
- type TargetPointType
- type WorkingDirNotDir
- type WorkingDirNotFound
- type WrongTerraformCommand
- type WrongTofuCommand
Constants ¶
const ( CommandNameTerragruntReadConfig = "terragrunt-read-config" NullTFVarsFile = ".terragrunt-null-vars.auto.tfvars.json" )
const ( CommandName = "" CommandHelpName = "*" )
const ( HookCtxTFPathEnvName = "TG_CTX_TF_PATH" HookCtxCommandEnvName = "TG_CTX_COMMAND" HookCtxHookNameEnvName = "TG_CTX_HOOK_NAME" )
const DefaultTerraformVersionConstraint = ">= v0.12.0"
This uses the constraint syntax from https://github.com/hashicorp/go-version This version of Terragrunt was tested to work with Terraform 0.12.0 and above only
const ModuleInitRequiredFile = ".terragrunt-init-required"
file to indicate that init should be executed
const ModuleManifestName = ".terragrunt-module-manifest"
manifest for files copied from terragrunt module folder (i.e., the folder that contains the current terragrunt.hcl)
const SourceManifestName = ".terragrunt-source-manifest"
manifest for files copied from the URL specified in the terraform { source = "<URL>" } config
const TerraformExtensionGlob = "*.tf"
const TerragruntTFVarsFile = "terragrunt-debug.tfvars.json"
Variables ¶
var ModuleRegex = regexp.MustCompile(`module[[:blank:]]+".+"`)
var TerraformCommandsThatDoNotNeedInit = []string{
"version",
"terragrunt-info",
"graph-dependencies",
}
var TerraformCommandsThatUseState = []string{
"init",
"apply",
"destroy",
"env",
"import",
"graph",
"output",
"plan",
"push",
"refresh",
"show",
"taint",
"untaint",
"validate",
"force-unlock",
"state",
}
var TerraformVersionRegex = regexp.MustCompile(`^(\S+)\s(v?\d+\.\d+\.\d+)`)
TerraformVersionRegex verifies that terraform --version output is in one of the following formats: - OpenTofu v1.6.0-dev - Terraform v0.9.5-dev (cad024a5fe131a546936674ef85445215bbc4226+CHANGES) - Terraform v0.13.0-beta2 - Terraform v0.12.27 We only make sure the "v#.#.#" part is present in the output.
Functions ¶
func Action ¶ added in v0.66.7
func Action(opts *options.TerragruntOptions) cli.ActionFunc
func AlreadyHaveLatestCode ¶ added in v0.66.7
func AlreadyHaveLatestCode(terraformSource *terraform.Source, terragruntOptions *options.TerragruntOptions) (bool, error)
Returns true if the specified TerraformSource, of the exact same version, has already been downloaded into the DownloadFolder. This helps avoid downloading the same code multiple times. Note that if the TerraformSource points to a local file path, a hash will be generated from the contents of the source dir. See the ProcessTerraformSource method for more info.
func CheckFolderContainsTerraformCode ¶ added in v0.66.7
func CheckFolderContainsTerraformCode(terragruntOptions *options.TerragruntOptions) error
func CheckTerraformVersion ¶
func CheckTerraformVersion(constraint string, terragruntOptions *options.TerragruntOptions) error
Check that the currently installed Terraform version works meets the specified version constraint and return an error if it doesn't
func CheckTerraformVersionMeetsConstraint ¶ added in v0.66.7
Check that the current version of Terraform meets the specified constraint and return an error if it doesn't
func CheckTerragruntVersion ¶
func CheckTerragruntVersion(constraint string, terragruntOptions *options.TerragruntOptions) error
Check that the currently running Terragrunt version meets the specified version constraint and return an error if it doesn't
func CheckTerragruntVersionMeetsConstraint ¶ added in v0.66.7
func CheckTerragruntVersionMeetsConstraint(currentVersion *version.Version, constraint string) error
Check that the current version of Terragrunt meets the specified constraint and return an error if it doesn't
func DownloadTerraformSourceIfNecessary ¶ added in v0.66.7
func DownloadTerraformSourceIfNecessary(ctx context.Context, terraformSource *terraform.Source, terragruntOptions *options.TerragruntOptions, terragruntConfig *config.TerragruntConfig) error
Download the specified TerraformSource if the latest code hasn't already been downloaded.
func FilterTerraformExtraArgs ¶ added in v0.66.7
func FilterTerraformExtraArgs(terragruntOptions *options.TerragruntOptions, terragruntConfig *config.TerragruntConfig) []string
func IsRetryable ¶ added in v0.66.7
func IsRetryable(opts *options.TerragruntOptions, out *util.CmdOutput) bool
IsRetryable checks whether there was an error and if the output matches any of the configured RetryableErrors
func NewCommand ¶
func NewCommand(opts *options.TerragruntOptions) *cli.Command
func ParseTerraformVersion ¶ added in v0.66.7
Parse the output of the terraform --version command
func PopulateTerraformVersion ¶
func PopulateTerraformVersion(ctx context.Context, terragruntOptions *options.TerragruntOptions) error
Populate the currently installed version of Terraform into the given terragruntOptions
func Run ¶
func Run(ctx context.Context, opts *options.TerragruntOptions) error
Run downloads terraform source if necessary, then runs terraform with the given options and CLI args. This will forward all the args and extra_arguments directly to Terraform.
func RunTerraformWithRetry ¶ added in v0.66.7
func RunTerraformWithRetry(ctx context.Context, terragruntOptions *options.TerragruntOptions) error
func RunWithTarget ¶
func SetTerragruntInputsAsEnvVars ¶ added in v0.66.7
func SetTerragruntInputsAsEnvVars(terragruntOptions *options.TerragruntOptions, terragruntConfig *config.TerragruntConfig) error
The Terragrunt configuration can contain a set of inputs to pass to Terraform as environment variables. This method sets these environment variables in the given terragruntOptions.
func ToTerraformEnvVars ¶ added in v0.66.7
func ToTerraformEnvVars(opts *options.TerragruntOptions, vars map[string]interface{}) (map[string]string, error)
Convert the given variables to a map of environment variables that will expose those variables to Terraform. The keys will be of the format TF_VAR_xxx and the values will be converted to JSON, which Terraform knows how to read natively.
func ValidateWorkingDir ¶ added in v0.66.7
Check if working terraformSource.WorkingDir exists and is directory
func WriteTerragruntDebugFile ¶
func WriteTerragruntDebugFile(terragruntOptions *options.TerragruntOptions, terragruntConfig *config.TerragruntConfig) error
WriteTerragruntDebugFile will create a tfvars file that can be used to invoke the terraform module in the same way that terragrunt invokes the module, so that you can debug issues with the terragrunt config.
Types ¶
type BackendNotDefined ¶
type BackendNotDefined struct { Opts *options.TerragruntOptions BackendType string }
func (BackendNotDefined) Error ¶
func (err BackendNotDefined) Error() string
type DownloadingTerraformSourceErr ¶ added in v0.54.7
func (DownloadingTerraformSourceErr) Error ¶ added in v0.54.7
func (err DownloadingTerraformSourceErr) Error() string
type FileCopyGetter ¶
type FileCopyGetter struct { getter.FileGetter // List of glob paths that should be included in the copy. This can be used to override the default behavior of // Terragrunt, which will skip hidden folders. IncludeInCopy []string Logger log.Logger }
A custom getter.Getter implementation that uses file copying instead of symlinks. Symlinks are faster and use less disk space, but they cause issues in Windows and with infinite loops, so we copy files/folders instead.
type InvalidTerraformVersion ¶
type InvalidTerraformVersion struct { CurrentVersion *version.Version VersionConstraints version.Constraints }
func (InvalidTerraformVersion) Error ¶
func (err InvalidTerraformVersion) Error() string
type InvalidTerraformVersionSyntax ¶
type InvalidTerraformVersionSyntax string
func (InvalidTerraformVersionSyntax) Error ¶
func (err InvalidTerraformVersionSyntax) Error() string
type InvalidTerragruntVersion ¶
type InvalidTerragruntVersion struct { CurrentVersion *version.Version VersionConstraints version.Constraints }
func (InvalidTerragruntVersion) Error ¶
func (err InvalidTerragruntVersion) Error() string
type MaxRetriesExceeded ¶
type MaxRetriesExceeded struct {
Opts *options.TerragruntOptions
}
func (MaxRetriesExceeded) Error ¶
func (err MaxRetriesExceeded) Error() string
type MissingCommand ¶
type MissingCommand struct{}
func (MissingCommand) Error ¶
func (err MissingCommand) Error() string
type ModuleIsProtected ¶
type ModuleIsProtected struct {
Opts *options.TerragruntOptions
}
func (ModuleIsProtected) Error ¶
func (err ModuleIsProtected) Error() string
type NoTerraformFilesFound ¶
type NoTerraformFilesFound string
func (NoTerraformFilesFound) Error ¶
func (path NoTerraformFilesFound) Error() string
type Target ¶
type Target struct {
// contains filtered or unexported fields
}
func NewTarget ¶
func NewTarget(point TargetPointType, callbackFunc TargetCallbackType) *Target
func NewTargetWithErrorHandler ¶ added in v0.56.1
func NewTargetWithErrorHandler(point TargetPointType, callbackFunc TargetCallbackType, errorCallbackFunc TargetErrorCallbackType) *Target
type TargetCallbackType ¶
type TargetCallbackType func(ctx context.Context, opts *options.TerragruntOptions, config *config.TerragruntConfig) error
type TargetErrorCallbackType ¶ added in v0.56.1
type TargetErrorCallbackType func(opts *options.TerragruntOptions, config *config.TerragruntConfig, e error) error
type TargetPointType ¶
type TargetPointType byte
const ( TargetPointParseConfig TargetPointType = iota + 1 TargetPointDownloadSource TargetPointGenerateConfig TargetPointInitCommand )
type WorkingDirNotDir ¶
func (WorkingDirNotDir) Error ¶
func (err WorkingDirNotDir) Error() string
type WorkingDirNotFound ¶
func (WorkingDirNotFound) Error ¶
func (err WorkingDirNotFound) Error() string
type WrongTerraformCommand ¶ added in v0.50.5
type WrongTerraformCommand string
func (WrongTerraformCommand) Error ¶ added in v0.50.5
func (name WrongTerraformCommand) Error() string
type WrongTofuCommand ¶ added in v0.66.4
type WrongTofuCommand string
func (WrongTofuCommand) Error ¶ added in v0.66.4
func (name WrongTofuCommand) Error() string