Documentation ¶
Overview ¶
Package terraform allows to interact with Terraform.
Index ¶
- Constants
- func Apply(t *testing.T, options *Options) string
- func ApplyE(t *testing.T, options *Options) (string, error)
- func Destroy(t *testing.T, options *Options) string
- func DestroyE(t *testing.T, options *Options) (string, error)
- func FormatArgs(options *Options, args ...string) []string
- func FormatTerraformArgs(argName string, args []string) []string
- func FormatTerraformBackendConfigAsArgs(vars map[string]interface{}) []string
- func FormatTerraformVarsAsArgs(vars map[string]interface{}) []string
- func Get(t *testing.T, options *Options) string
- func GetE(t *testing.T, options *Options) (string, error)
- func GetExitCodeForTerraformCommand(t *testing.T, additionalOptions *Options, args ...string) int
- func GetExitCodeForTerraformCommandE(t *testing.T, additionalOptions *Options, additionalArgs ...string) (int, error)
- func Init(t *testing.T, options *Options) string
- func InitAndApply(t *testing.T, options *Options) string
- func InitAndApplyE(t *testing.T, options *Options) (string, error)
- func InitAndPlan(t *testing.T, options *Options) int
- func InitAndPlanE(t *testing.T, options *Options) (int, error)
- func InitE(t *testing.T, options *Options) (string, error)
- func Output(t *testing.T, options *Options, key string) string
- func OutputAll(t *testing.T, options *Options) map[string]interface{}
- func OutputAllE(t *testing.T, options *Options) (map[string]interface{}, error)
- func OutputE(t *testing.T, options *Options, key string) (string, error)
- func OutputForKeys(t *testing.T, options *Options, keys []string) map[string]interface{}
- func OutputForKeysE(t *testing.T, options *Options, keys []string) (map[string]interface{}, error)
- func OutputList(t *testing.T, options *Options, key string) []string
- func OutputListE(t *testing.T, options *Options, key string) ([]string, error)
- func OutputMap(t *testing.T, options *Options, key string) map[string]string
- func OutputMapE(t *testing.T, options *Options, key string) (map[string]string, error)
- func OutputRequired(t *testing.T, options *Options, key string) string
- func OutputRequiredE(t *testing.T, options *Options, key string) (string, error)
- func PlanExitCode(t *testing.T, options *Options) int
- func PlanExitCodeE(t *testing.T, options *Options) (int, error)
- func RunTerraformCommand(t *testing.T, additionalOptions *Options, args ...string) string
- func RunTerraformCommandE(t *testing.T, additionalOptions *Options, additionalArgs ...string) (string, error)
- func WorkspaceSelectOrNew(t *testing.T, options *Options, name string) string
- func WorkspaceSelectOrNewE(t *testing.T, options *Options, name string) (string, error)
- type EmptyOutput
- type Options
Constants ¶
const DefaultErrorExitCode = 1
DefaultErrorExitCode is the exit code returned when terraform command fails
const DefaultSuccessExitCode = 0
DefaultSuccessExitCode is the exit code returned when terraform command succeeds
const TerraformPlanChangesPresentExitCode = 2
TerraformPlanChangesPresentExitCode is the exit code returned by terraform plan detailed exitcode when changes are present
Variables ¶
This section is empty.
Functions ¶
func Apply ¶
Apply runs terraform apply with the given options and return stdout/stderr. Note that this method does NOT call destroy and assumes the caller is responsible for cleaning up any resources created by running apply.
func ApplyE ¶
ApplyE runs terraform apply with the given options and return stdout/stderr. Note that this method does NOT call destroy and assumes the caller is responsible for cleaning up any resources created by running apply.
func FormatArgs ¶
FormatArgs converts the inputs to a format palatable to terraform. This includes converting the given vars to the format the Terraform CLI expects (-var key=value).
func FormatTerraformArgs ¶ added in v0.13.27
FormatTerraformArgs will format multiple args with the arg name (e.g. "-var-file", []string{"foo.tfvars", "bar.tfvars"}) returns "-var-file foo.tfvars -var-file bar.tfvars"
func FormatTerraformBackendConfigAsArgs ¶ added in v0.9.13
FormatTerraformBackendConfigAsArgs formats the given variables as backend config args for Terraform (e.g. of the format -backend-config=key=value).
func FormatTerraformVarsAsArgs ¶
FormatTerraformVarsAsArgs formats the given variables as command-line args for Terraform (e.g. of the format -var key=value).
func GetExitCodeForTerraformCommand ¶ added in v0.10.4
GetExitCodeForTerraformCommand runs terraform with the given arguments and options and returns exit code
func GetExitCodeForTerraformCommandE ¶ added in v0.10.4
func GetExitCodeForTerraformCommandE(t *testing.T, additionalOptions *Options, additionalArgs ...string) (int, error)
GetExitCodeForTerraformCommandE runs terraform with the given arguments and options and returns exit code
func InitAndApply ¶
InitAndApply runs terraform init and apply with the given options and return stdout/stderr from the apply command. Note that this method does NOT call destroy and assumes the caller is responsible for cleaning up any resources created by running apply.
func InitAndApplyE ¶
InitAndApplyE runs terraform init and apply with the given options and return stdout/stderr from the apply command. Note that this method does NOT call destroy and assumes the caller is responsible for cleaning up any resources created by running apply.
func InitAndPlan ¶ added in v0.10.4
InitAndPlan runs terraform init and plan with the given options and return stdout/stderr from the apply command.
func InitAndPlanE ¶ added in v0.10.4
InitAndPlanE runs terraform init and plan with the given options and return stdout/stderr from the apply command.
func OutputAll ¶ added in v0.13.19
OutputAll calls terraform output returns all values as a map. If there is error fetching the output, fails the test
func OutputAllE ¶ added in v0.13.19
OutputListE calls terraform output and returns all the outputs as a map
func OutputForKeys ¶ added in v0.13.19
OutputForKeysE calls terraform output for the given key list and returns values as a map. If keys not found in the output, fails the test
func OutputForKeysE ¶ added in v0.13.19
OutputForKeysE calls terraform output for the given key list and returns values as a map. The returned values are of type interface{} and need to be type casted as necessary. Refer to output_test.go
func OutputList ¶ added in v0.13.1
OutputList calls terraform output for the given variable and returns its value as a list. If the output value is not a list type, then it fails the test.
func OutputListE ¶ added in v0.13.1
OutputListE calls terraform output for the given variable and returns its value as a list. If the output value is not a list type, then it returns an error.
func OutputMap ¶ added in v0.13.6
OutputMap calls terraform output for the given variable and returns its value as a map. If the output value is not a map type, then it fails the test.
func OutputMapE ¶ added in v0.13.6
OutputMapE calls terraform output for the given variable and returns its value as a map. If the output value is not a map type, then it returns an error.
func OutputRequired ¶
OutputRequired calls terraform output for the given variable and return its value. If the value is empty, fail the test.
func OutputRequiredE ¶
OutputRequiredE calls terraform output for the given variable and return its value. If the value is empty, return an error.
func PlanExitCode ¶ added in v0.10.4
PlanExitCode runs terraform apply with the given options and returns the detailed exitcode.
func PlanExitCodeE ¶ added in v0.10.4
PlanExitCodeE runs terraform apply with the given options and returns the detailed exitcode.
func RunTerraformCommand ¶ added in v0.9.2
RunTerraformCommand runs terraform with the given arguments and options and return stdout/stderr.
func RunTerraformCommandE ¶ added in v0.9.2
func RunTerraformCommandE(t *testing.T, additionalOptions *Options, additionalArgs ...string) (string, error)
RunTerraformCommandE runs terraform with the given arguments and options and return stdout/stderr.
func WorkspaceSelectOrNew ¶ added in v0.12.2
WorkspaceSelectOrNew runs terraform workspace with the given options and the workspace name and returns a name of the current workspace. It tries to select a workspace with the given name, or it creates a new one if it doesn't exist.
func WorkspaceSelectOrNewE ¶ added in v0.12.2
WorkspaceSelectOrNewE runs terraform workspace with the given options and the workspace name and returns a name of the current workspace. It tries to select a workspace with the given name, or it creates a new one if it doesn't exist.
Types ¶
type EmptyOutput ¶
type EmptyOutput string
EmptyOutput is an error that occurs when an output is empty.
func (EmptyOutput) Error ¶
func (outputName EmptyOutput) Error() string
type Options ¶
type Options struct { TerraformDir string // The path to the folder where the Terraform code is defined. Vars map[string]interface{} // The vars to pass to Terraform commands using the -var option. VarFiles []string // The var file paths to pass to Terraform commands using -var-file option. Targets []string // The target resources to pass to the terraform command with -target EnvVars map[string]string // Environment variables to set when running Terraform BackendConfig map[string]interface{} // The vars to pass to the terraform init command for extra configuration for the backend RetryableTerraformErrors map[string]string // If Terraform apply fails with one of these (transient) errors, retry. The keys are text to look for in the error and the message is what to display to a user if that error is found. MaxRetries int // Maximum number of times to retry errors matching RetryableTerraformErrors TimeBetweenRetries time.Duration // The amount of time to wait between retries Upgrade bool // Whether the -upgrade flag of the terraform init command should be set to true or not NoColor bool // Whether the -no-color flag will be set for any Terraform command or not SshAgent *ssh.SshAgent // Overrides local SSH agent with the given in-process agent }
Options for running Terraform commands