tfexec

package
v0.0.0-...-aa8336d Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2023 License: MPL-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package tfexec exposes functionality for constructing and running Terraform CLI commands. Structured return values use the data types defined in the github.com/hashicorp/terraform-json package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CleanEnv

func CleanEnv(dirty map[string]string) map[string]string

CleanEnv removes any prohibited environment variables from an environment map.

func FormatString

func FormatString(ctx context.Context, execPath string, content string) (string, error)

FormatString formats a passed string, given a path to Terraform.

func ProhibitedEnv

func ProhibitedEnv(env map[string]string) []string

ProhibitedEnv returns a slice of environment variable keys that are not allowed to be set manually from the passed environment.

Types

type AllowMissingConfigOption

type AllowMissingConfigOption struct {
	// contains filtered or unexported fields
}

AllowMissingConfigOption represents the -allow-missing-config flag.

func AllowMissingConfig

func AllowMissingConfig(allowMissingConfig bool) *AllowMissingConfigOption

AllowMissingConfig represents the -allow-missing-config flag.

type AllowMissingOption

type AllowMissingOption struct {
	// contains filtered or unexported fields
}

AllowMissingOption represents the -allow-missing flag.

func AllowMissing

func AllowMissing(allowMissing bool) *AllowMissingOption

AllowMissing represents the -allow-missing flag.

type ApplyOption

type ApplyOption interface {
	// contains filtered or unexported methods
}

ApplyOption represents options used in the Apply method.

type BackendConfigOption

type BackendConfigOption struct {
	// contains filtered or unexported fields
}

BackendConfigOption represents the -backend-config flag.

func BackendConfig

func BackendConfig(backendConfig string) *BackendConfigOption

BackendConfig represents the -backend-config flag.

type BackendOption

type BackendOption struct {
	// contains filtered or unexported fields
}

BackendOption represents the -backend flag.

func Backend

func Backend(backend bool) *BackendOption

Backend represents the -backend flag.

type BackupOption

type BackupOption struct {
	// contains filtered or unexported fields
}

BackupOption represents the -backup flag.

func Backup

func Backup(path string) *BackupOption

Backup represents the -backup flag.

func DisableBackup

func DisableBackup() *BackupOption

DisableBackup is a convenience method for Backup("-"), indicating backup state should be disabled.

type BackupOutOption

type BackupOutOption struct {
	// contains filtered or unexported fields
}

func BackupOut

func BackupOut(path string) *BackupOutOption

BackupOutOption represents the -backup-out flag.

type ConfigOption

type ConfigOption struct {
	// contains filtered or unexported fields
}

ConfigOption represents the -config flag.

func Config

func Config(path string) *ConfigOption

Config represents the -config flag.

type CopyStateOption

type CopyStateOption struct {
	// contains filtered or unexported fields
}

CopyStateOption represents the -state flag for terraform workspace new. This flag is used to copy an existing state file in to the new workspace.

func CopyState

func CopyState(path string) *CopyStateOption

CopyState represents the -state flag for terraform workspace new. This flag is used to copy an existing state file in to the new workspace.

type DestroyFlagOption

type DestroyFlagOption struct {
	// contains filtered or unexported fields
}

DestroyFlagOption represents the -destroy flag.

func Destroy

func Destroy(destroy bool) *DestroyFlagOption

Destroy represents the -destroy flag.

type DestroyOption

type DestroyOption interface {
	// contains filtered or unexported methods
}

DestroyOption represents options used in the Destroy method.

type DirOption

type DirOption struct {
	// contains filtered or unexported fields
}

func Dir

func Dir(path string) *DirOption

type DirOrPlanOption

type DirOrPlanOption struct {
	// contains filtered or unexported fields
}

func DirOrPlan

func DirOrPlan(path string) *DirOrPlanOption

type DrawCyclesOption

type DrawCyclesOption struct {
	// contains filtered or unexported fields
}

func DrawCycles

func DrawCycles(drawCycles bool) *DrawCyclesOption

DrawCycles represents the -draw-cycles flag.

type DryRunOption

type DryRunOption struct {
	// contains filtered or unexported fields
}

func DryRun

func DryRun(dryRun bool) *DryRunOption

DryRun represents the -dry-run flag.

type ErrManualEnvVar

type ErrManualEnvVar struct {
	Name string
}

ErrManualEnvVar is returned when an env var that should be set programatically via an option or method is set via the manual environment passing functions.

func (*ErrManualEnvVar) Error

func (err *ErrManualEnvVar) Error() string

type ErrNoSuitableBinary

type ErrNoSuitableBinary struct {
	// contains filtered or unexported fields
}

func (*ErrNoSuitableBinary) Error

func (e *ErrNoSuitableBinary) Error() string

func (*ErrNoSuitableBinary) Unwrap

func (e *ErrNoSuitableBinary) Unwrap() error

type ErrVersionMismatch

type ErrVersionMismatch struct {
	MinInclusive string
	MaxExclusive string
	Actual       string
}

ErrVersionMismatch is returned when the detected Terraform version is not compatible with the command or flags being used in this invocation.

func (*ErrVersionMismatch) Error

func (e *ErrVersionMismatch) Error() string

type FSMirrorOption

type FSMirrorOption struct {
	// contains filtered or unexported fields
}

func FSMirror

func FSMirror(fsMirror string) *FSMirrorOption

FSMirror represents the -fs-mirror option (path to filesystem mirror directory)

type ForceCopyOption

type ForceCopyOption struct {
	// contains filtered or unexported fields
}

func ForceCopy

func ForceCopy(forceCopy bool) *ForceCopyOption

type ForceOption

type ForceOption struct {
	// contains filtered or unexported fields
}

func Force

func Force(force bool) *ForceOption

type ForceUnlockOption

type ForceUnlockOption interface {
	// contains filtered or unexported methods
}

type FormatOption

type FormatOption interface {
	// contains filtered or unexported methods
}

type FromModuleOption

type FromModuleOption struct {
	// contains filtered or unexported fields
}

func FromModule

func FromModule(source string) *FromModuleOption

type GetCmdOption

type GetCmdOption interface {
	// contains filtered or unexported methods
}

GetCmdOption represents options used in the Get method.

type GetOption

type GetOption struct {
	// contains filtered or unexported fields
}

func Get

func Get(get bool) *GetOption

type GetPluginsOption

type GetPluginsOption struct {
	// contains filtered or unexported fields
}

func GetPlugins

func GetPlugins(getPlugins bool) *GetPluginsOption

type GraphOption

type GraphOption interface {
	// contains filtered or unexported methods
}

type GraphPlanOption

type GraphPlanOption struct {
	// contains filtered or unexported fields
}

func GraphPlan

func GraphPlan(file string) *GraphPlanOption

GraphPlan represents the -plan flag which is a specified plan file string

type GraphTypeOption

type GraphTypeOption struct {
	// contains filtered or unexported fields
}

func GraphType

func GraphType(graphType string) *GraphTypeOption

type ImportOption

type ImportOption interface {
	// contains filtered or unexported methods
}

ImportOption represents options used in the Import method.

type InitOption

type InitOption interface {
	// contains filtered or unexported methods
}

InitOption represents options used in the Init method.

type LockOption

type LockOption struct {
	// contains filtered or unexported fields
}

LockOption represents the -lock flag.

func Lock

func Lock(lock bool) *LockOption

Lock represents the -lock flag.

type LockTimeoutOption

type LockTimeoutOption struct {
	// contains filtered or unexported fields
}

LockTimeoutOption represents the -lock-timeout flag.

func LockTimeout

func LockTimeout(lockTimeout string) *LockTimeoutOption

LockTimeout represents the -lock-timeout flag.

type NetMirrorOption

type NetMirrorOption struct {
	// contains filtered or unexported fields
}

func NetMirror

func NetMirror(netMirror string) *NetMirrorOption

NetMirror represents the -net-mirror option (base URL of a network mirror)

type OutOption

type OutOption struct {
	// contains filtered or unexported fields
}

func Out

func Out(path string) *OutOption

type OutputMeta

type OutputMeta struct {
	Sensitive bool            `json:"sensitive"`
	Type      json.RawMessage `json:"type"`
	Value     json.RawMessage `json:"value"`
}

OutputMeta represents the JSON output of 'terraform output -json', which resembles state format version 3 due to a historical accident. Please see hashicorp/terraform/command/output.go. TODO KEM: Should this type be in terraform-json?

type OutputOption

type OutputOption interface {
	// contains filtered or unexported methods
}

OutputOption represents options used in the Output method.

type ParallelismOption

type ParallelismOption struct {
	// contains filtered or unexported fields
}

func Parallelism

func Parallelism(n int) *ParallelismOption

type PlanOption

type PlanOption interface {
	// contains filtered or unexported methods
}

PlanOption represents options used in the Plan method.

type PlatformOption

type PlatformOption struct {
	// contains filtered or unexported fields
}

func Platform

func Platform(platform string) *PlatformOption

Platform represents the -platform flag which is an os_arch string

type PluginDirOption

type PluginDirOption struct {
	// contains filtered or unexported fields
}

func PluginDir

func PluginDir(pluginDir string) *PluginDirOption

type ProviderOption

type ProviderOption struct {
	// contains filtered or unexported fields
}

func Provider

func Provider(providers string) *ProviderOption

Provider represents the positional argument (provider source address)

type ProvidersLockOption

type ProvidersLockOption interface {
	// contains filtered or unexported methods
}

type ReattachConfig

type ReattachConfig struct {
	Protocol        string
	ProtocolVersion int
	Pid             int
	Test            bool
	Addr            ReattachConfigAddr
}

ReattachConfig holds the information Terraform needs to be able to attach itself to a provider process, so it can drive the process.

type ReattachConfigAddr

type ReattachConfigAddr struct {
	Network string
	String  string
}

ReattachConfigAddr is a JSON-encoding friendly version of net.Addr.

type ReattachInfo

type ReattachInfo map[string]ReattachConfig

type ReattachOption

type ReattachOption struct {
	// contains filtered or unexported fields
}

func Reattach

func Reattach(info ReattachInfo) *ReattachOption

type ReconfigureOption

type ReconfigureOption struct {
	// contains filtered or unexported fields
}

func Reconfigure

func Reconfigure(reconfigure bool) *ReconfigureOption

type RecursiveOption

type RecursiveOption struct {
	// contains filtered or unexported fields
}

func Recursive

func Recursive(r bool) *RecursiveOption

type RefreshCmdOption

type RefreshCmdOption interface {
	// contains filtered or unexported methods
}

RefreshCmdOption represents options used in the Refresh method.

type RefreshOnlyOption

type RefreshOnlyOption struct {
	// contains filtered or unexported fields
}

func RefreshOnly

func RefreshOnly(refreshOnly bool) *RefreshOnlyOption

type RefreshOption

type RefreshOption struct {
	// contains filtered or unexported fields
}

func Refresh

func Refresh(refresh bool) *RefreshOption

type ReplaceOption

type ReplaceOption struct {
	// contains filtered or unexported fields
}

func Replace

func Replace(address string) *ReplaceOption

type ShowOption

type ShowOption interface {
	// contains filtered or unexported methods
}

type StateMvCmdOption

type StateMvCmdOption interface {
	// contains filtered or unexported methods
}

StateMvCmdOption represents options used in the Refresh method.

type StateOption

type StateOption struct {
	// contains filtered or unexported fields
}

func State deprecated

func State(path string) *StateOption

State represents the -state flag.

Deprecated: The -state CLI flag is a legacy flag and should not be used. If you need a different state file for every run, you can instead use the local backend. See https://github.com/hashicorp/terraform/issues/25920#issuecomment-676560799

type StateOutOption

type StateOutOption struct {
	// contains filtered or unexported fields
}

func StateOut

func StateOut(path string) *StateOutOption

type StatePullOption

type StatePullOption interface {
	// contains filtered or unexported methods
}

type StatePushCmdOption

type StatePushCmdOption interface {
	// contains filtered or unexported methods
}

StatePushCmdOption represents options used in the Refresh method.

type StateRmCmdOption

type StateRmCmdOption interface {
	// contains filtered or unexported methods
}

StateRmCmdOption represents options used in the Refresh method.

type TaintOption

type TaintOption interface {
	// contains filtered or unexported methods
}

TaintOption represents options used in the Taint method.

type TargetOption

type TargetOption struct {
	// contains filtered or unexported fields
}

func Target

func Target(resource string) *TargetOption

type Terraform

type Terraform struct {
	// contains filtered or unexported fields
}

Terraform represents the Terraform CLI executable and working directory.

Typically this is constructed against the root module of a Terraform configuration but you can override paths used in some commands depending on the available options.

All functions that execute CLI commands take a context.Context. It should be noted that exec.Cmd.Run will not return context.DeadlineExceeded or context.Canceled by default, we have augmented our wrapped errors to respond true to errors.Is for context.DeadlineExceeded and context.Canceled if those are present on the context when the error is parsed. See https://github.com/golang/go/issues/21880 for more about the Go limitations.

By default, the instance inherits the environment from the calling code (using os.Environ) but it ignores certain environment variables that are managed within the code and prohibits setting them through SetEnv:

  • TF_APPEND_USER_AGENT
  • TF_IN_AUTOMATION
  • TF_INPUT
  • TF_LOG
  • TF_LOG_PATH
  • TF_REATTACH_PROVIDERS
  • TF_DISABLE_PLUGIN_TLS
  • TF_SKIP_PROVIDER_VERIFY

func NewTerraform

func NewTerraform(workingDir string, execPath string) (*Terraform, error)

NewTerraform returns a Terraform struct with default values for all fields. If a blank execPath is supplied, NewTerraform will error. Use hc-install or output from os.LookPath to get a desirable execPath.

func (*Terraform) Apply

func (tf *Terraform) Apply(ctx context.Context, opts ...ApplyOption) error

Apply represents the terraform apply subcommand.

func (*Terraform) ApplyJSON

func (tf *Terraform) ApplyJSON(ctx context.Context, w io.Writer, opts ...ApplyOption) error

ApplyJSON represents the terraform apply subcommand with the `-json` flag. Using the `-json` flag will result in [machine-readable](https://developer.hashicorp.com/terraform/internals/machine-readable-ui) JSON being written to the supplied `io.Writer`. ApplyJSON is likely to be removed in a future major version in favour of Apply returning JSON by default.

func (*Terraform) Destroy

func (tf *Terraform) Destroy(ctx context.Context, opts ...DestroyOption) error

Destroy represents the terraform destroy subcommand.

func (*Terraform) DestroyJSON

func (tf *Terraform) DestroyJSON(ctx context.Context, w io.Writer, opts ...DestroyOption) error

DestroyJSON represents the terraform destroy subcommand with the `-json` flag. Using the `-json` flag will result in [machine-readable](https://developer.hashicorp.com/terraform/internals/machine-readable-ui) JSON being written to the supplied `io.Writer`. DestroyJSON is likely to be removed in a future major version in favour of Destroy returning JSON by default.

func (*Terraform) ExecPath

func (tf *Terraform) ExecPath() string

ExecPath returns the path to the Terraform executable.

func (*Terraform) ForceUnlock

func (tf *Terraform) ForceUnlock(ctx context.Context, lockID string, opts ...ForceUnlockOption) error

ForceUnlock represents the `terraform force-unlock` command

func (*Terraform) Format

func (tf *Terraform) Format(ctx context.Context, unformatted io.Reader, formatted io.Writer) error

Format performs formatting on the unformatted io.Reader (as stdin to the CLI) and returns the formatted result on the formatted io.Writer.

func (*Terraform) FormatCheck

func (tf *Terraform) FormatCheck(ctx context.Context, opts ...FormatOption) (bool, []string, error)

FormatCheck returns true if the config files in the working or selected (via DirOption) directory are already formatted.

func (*Terraform) FormatString

func (tf *Terraform) FormatString(ctx context.Context, content string) (string, error)

FormatString formats a passed string.

func (*Terraform) FormatWrite

func (tf *Terraform) FormatWrite(ctx context.Context, opts ...FormatOption) error

FormatWrite attempts to format and modify all config files in the working or selected (via DirOption) directory.

func (*Terraform) Get

func (tf *Terraform) Get(ctx context.Context, opts ...GetCmdOption) error

Get represents the terraform get subcommand.

func (*Terraform) Graph

func (tf *Terraform) Graph(ctx context.Context, opts ...GraphOption) (string, error)

func (*Terraform) Import

func (tf *Terraform) Import(ctx context.Context, address, id string, opts ...ImportOption) error

Import represents the terraform import subcommand.

func (*Terraform) Init

func (tf *Terraform) Init(ctx context.Context, opts ...InitOption) error

Init represents the terraform init subcommand.

func (*Terraform) MetadataFunctions

func (tf *Terraform) MetadataFunctions(ctx context.Context) (*tfjson.MetadataFunctions, error)

MetadataFunctions represents the terraform metadata functions -json subcommand.

func (*Terraform) Output

func (tf *Terraform) Output(ctx context.Context, opts ...OutputOption) (map[string]OutputMeta, error)

Output represents the terraform output subcommand.

func (*Terraform) Plan

func (tf *Terraform) Plan(ctx context.Context, opts ...PlanOption) (bool, error)

Plan executes `terraform plan` with the specified options and waits for it to complete.

The returned boolean is false when the plan diff is empty (no changes) and true when the plan diff is non-empty (changes present).

The returned error is nil if `terraform plan` has been executed and exits with either 0 or 2.

func (*Terraform) PlanJSON

func (tf *Terraform) PlanJSON(ctx context.Context, w io.Writer, opts ...PlanOption) (bool, error)

PlanJSON executes `terraform plan` with the specified options as well as the `-json` flag and waits for it to complete.

Using the `-json` flag will result in [machine-readable](https://developer.hashicorp.com/terraform/internals/machine-readable-ui) JSON being written to the supplied `io.Writer`.

The returned boolean is false when the plan diff is empty (no changes) and true when the plan diff is non-empty (changes present).

The returned error is nil if `terraform plan` has been executed and exits with either 0 or 2.

PlanJSON is likely to be removed in a future major version in favour of Plan returning JSON by default.

func (*Terraform) ProvidersLock

func (tf *Terraform) ProvidersLock(ctx context.Context, opts ...ProvidersLockOption) error

ProvidersLock represents the `terraform providers lock` command

func (*Terraform) ProvidersSchema

func (tf *Terraform) ProvidersSchema(ctx context.Context) (*tfjson.ProviderSchemas, error)

ProvidersSchema represents the terraform providers schema -json subcommand.

func (*Terraform) Refresh

func (tf *Terraform) Refresh(ctx context.Context, opts ...RefreshCmdOption) error

Refresh represents the terraform refresh subcommand.

func (*Terraform) RefreshJSON

func (tf *Terraform) RefreshJSON(ctx context.Context, w io.Writer, opts ...RefreshCmdOption) error

RefreshJSON represents the terraform refresh subcommand with the `-json` flag. Using the `-json` flag will result in [machine-readable](https://developer.hashicorp.com/terraform/internals/machine-readable-ui) JSON being written to the supplied `io.Writer`. RefreshJSON is likely to be removed in a future major version in favour of Refresh returning JSON by default.

func (*Terraform) SetAppendUserAgent

func (tf *Terraform) SetAppendUserAgent(ua string) error

SetAppendUserAgent sets the TF_APPEND_USER_AGENT environment variable for Terraform CLI execution.

func (*Terraform) SetDisablePluginTLS

func (tf *Terraform) SetDisablePluginTLS(disabled bool) error

SetDisablePluginTLS sets the TF_DISABLE_PLUGIN_TLS environment variable for Terraform CLI execution.

func (*Terraform) SetEnv

func (tf *Terraform) SetEnv(env map[string]string) error

SetEnv allows you to override environment variables, this should not be used for any well known Terraform environment variables that are already covered in options. Pass nil to copy the values from os.Environ. Attempting to set environment variables that should be managed manually will result in ErrManualEnvVar being returned.

func (*Terraform) SetLog

func (tf *Terraform) SetLog(log string) error

SetLog sets the TF_LOG environment variable for Terraform CLI execution. This must be combined with a call to SetLogPath to take effect.

This is only compatible with Terraform CLI 0.15.0 or later as setting the log level was unreliable in earlier versions. It will default to TRACE when SetLogPath is called on versions 0.14.11 and earlier, or if SetLogCore and SetLogProvider have not been called before SetLogPath on versions 0.15.0 and later.

func (*Terraform) SetLogCore

func (tf *Terraform) SetLogCore(logCore string) error

SetLogCore sets the TF_LOG_CORE environment variable for Terraform CLI execution. This must be combined with a call to SetLogPath to take effect.

This is only compatible with Terraform CLI 0.15.0 or later.

func (*Terraform) SetLogPath

func (tf *Terraform) SetLogPath(path string) error

SetLogPath sets the TF_LOG_PATH environment variable for Terraform CLI execution.

func (*Terraform) SetLogProvider

func (tf *Terraform) SetLogProvider(logProvider string) error

SetLogProvider sets the TF_LOG_PROVIDER environment variable for Terraform CLI execution. This must be combined with a call to SetLogPath to take effect.

This is only compatible with Terraform CLI 0.15.0 or later.

func (*Terraform) SetLogger

func (tf *Terraform) SetLogger(logger printfer)

SetLogger specifies a logger for tfexec to use.

func (*Terraform) SetSkipProviderVerify

func (tf *Terraform) SetSkipProviderVerify(skip bool) error

SetSkipProviderVerify sets the TF_SKIP_PROVIDER_VERIFY environment variable for Terraform CLI execution. This is no longer used in 0.13.0 and greater.

func (*Terraform) SetStderr

func (tf *Terraform) SetStderr(w io.Writer)

SetStderr specifies a writer to stream stderr to for every command.

This should be used for information or logging purposes only, not control flow. Any parsing necessary should be added as functionality to this package.

func (*Terraform) SetStdout

func (tf *Terraform) SetStdout(w io.Writer)

SetStdout specifies a writer to stream stdout to for every command.

This should be used for information or logging purposes only, not control flow. Any parsing necessary should be added as functionality to this package.

func (*Terraform) Show

func (tf *Terraform) Show(ctx context.Context, opts ...ShowOption) (*tfjson.State, error)

Show reads the default state path and outputs the state. To read a state or plan file, ShowState or ShowPlan must be used instead.

func (*Terraform) ShowPlanFile

func (tf *Terraform) ShowPlanFile(ctx context.Context, planPath string, opts ...ShowOption) (*tfjson.Plan, error)

ShowPlanFile reads a given plan file and outputs the plan.

func (*Terraform) ShowPlanFileRaw

func (tf *Terraform) ShowPlanFileRaw(ctx context.Context, planPath string, opts ...ShowOption) (string, error)

ShowPlanFileRaw reads a given plan file and outputs the plan in a human-friendly, opaque format.

func (*Terraform) ShowStateFile

func (tf *Terraform) ShowStateFile(ctx context.Context, statePath string, opts ...ShowOption) (*tfjson.State, error)

ShowStateFile reads a given state file and outputs the state.

func (*Terraform) StateMv

func (tf *Terraform) StateMv(ctx context.Context, source string, destination string, opts ...StateMvCmdOption) error

StateMv represents the terraform state mv subcommand.

func (*Terraform) StatePull

func (tf *Terraform) StatePull(ctx context.Context, opts ...StatePullOption) (string, error)

func (*Terraform) StatePush

func (tf *Terraform) StatePush(ctx context.Context, path string, opts ...StatePushCmdOption) error

func (*Terraform) StateRm

func (tf *Terraform) StateRm(ctx context.Context, address string, opts ...StateRmCmdOption) error

StateRm represents the terraform state rm subcommand.

func (*Terraform) Taint

func (tf *Terraform) Taint(ctx context.Context, address string, opts ...TaintOption) error

Taint represents the terraform taint subcommand.

func (*Terraform) Test

func (tf *Terraform) Test(ctx context.Context, w io.Writer, opts ...TestOption) error

Test represents the terraform test -json subcommand.

The given io.Writer, if specified, will receive [machine-readable](https://developer.hashicorp.com/terraform/internals/machine-readable-ui) JSON from Terraform including test results.

func (*Terraform) Untaint

func (tf *Terraform) Untaint(ctx context.Context, address string, opts ...UntaintOption) error

Untaint represents the terraform untaint subcommand.

func (*Terraform) Upgrade012

func (tf *Terraform) Upgrade012(ctx context.Context, opts ...Upgrade012Option) error

Upgrade012 represents the terraform 0.12upgrade subcommand.

func (*Terraform) Upgrade013

func (tf *Terraform) Upgrade013(ctx context.Context, opts ...Upgrade013Option) error

Upgrade013 represents the terraform 0.13upgrade subcommand.

func (*Terraform) Validate

func (tf *Terraform) Validate(ctx context.Context) (*tfjson.ValidateOutput, error)

Validate represents the validate subcommand to the Terraform CLI. The -json flag support was added in 0.12.0, so this will not work on earlier versions.

func (*Terraform) Version

func (tf *Terraform) Version(ctx context.Context, skipCache bool) (tfVersion *version.Version, providerVersions map[string]*version.Version, err error)

Version returns structured output from the terraform version command including both the Terraform CLI version and any initialized provider versions. This will read cached values when present unless the skipCache parameter is set to true.

func (*Terraform) WorkingDir

func (tf *Terraform) WorkingDir() string

WorkingDir returns the working directory for Terraform.

func (*Terraform) WorkspaceDelete

func (tf *Terraform) WorkspaceDelete(ctx context.Context, workspace string, opts ...WorkspaceDeleteCmdOption) error

WorkspaceDelete represents the workspace delete subcommand to the Terraform CLI.

func (*Terraform) WorkspaceList

func (tf *Terraform) WorkspaceList(ctx context.Context) ([]string, string, error)

WorkspaceList represents the workspace list subcommand to the Terraform CLI.

func (*Terraform) WorkspaceNew

func (tf *Terraform) WorkspaceNew(ctx context.Context, workspace string, opts ...WorkspaceNewCmdOption) error

WorkspaceNew represents the workspace new subcommand to the Terraform CLI.

func (*Terraform) WorkspaceSelect

func (tf *Terraform) WorkspaceSelect(ctx context.Context, workspace string) error

WorkspaceSelect represents the workspace select subcommand to the Terraform CLI.

func (*Terraform) WorkspaceShow

func (tf *Terraform) WorkspaceShow(ctx context.Context) (string, error)

WorkspaceShow represents the workspace show subcommand to the Terraform CLI.

type TestOption

type TestOption interface {
	// contains filtered or unexported methods
}

type TestsDirectoryOption

type TestsDirectoryOption struct {
	// contains filtered or unexported fields
}

func TestsDirectory

func TestsDirectory(testsDirectory string) *TestsDirectoryOption

TestsDirectory represents the -tests-directory option (path to tests files)

type UntaintOption

type UntaintOption interface {
	// contains filtered or unexported methods
}

OutputOption represents options used in the Output method.

type UpdateOption

type UpdateOption struct {
	// contains filtered or unexported fields
}

func Update

func Update(update bool) *UpdateOption

type Upgrade012Option

type Upgrade012Option interface {
	// contains filtered or unexported methods
}

Upgrade012Option represents options used in the Destroy method.

type Upgrade013Option

type Upgrade013Option interface {
	// contains filtered or unexported methods
}

Upgrade013Option represents options used in the Destroy method.

type UpgradeOption

type UpgradeOption struct {
	// contains filtered or unexported fields
}

func Upgrade

func Upgrade(upgrade bool) *UpgradeOption

type VarFileOption

type VarFileOption struct {
	// contains filtered or unexported fields
}

func VarFile

func VarFile(path string) *VarFileOption

type VarOption

type VarOption struct {
	// contains filtered or unexported fields
}

func Var

func Var(assignment string) *VarOption

type VerifyPluginsOption

type VerifyPluginsOption struct {
	// contains filtered or unexported fields
}

func VerifyPlugins

func VerifyPlugins(verifyPlugins bool) *VerifyPluginsOption

type WorkspaceDeleteCmdOption

type WorkspaceDeleteCmdOption interface {
	// contains filtered or unexported methods
}

WorkspaceDeleteCmdOption represents options that are applicable to the WorkspaceDelete method.

type WorkspaceNewCmdOption

type WorkspaceNewCmdOption interface {
	// contains filtered or unexported methods
}

WorkspaceNewCmdOption represents options that are applicable to the WorkspaceNew method.

Directories

Path Synopsis
internal
e2etest
Package e2etest contains end-to-end acceptance tests for the tfexec package.
Package e2etest contains end-to-end acceptance tests for the tfexec package.

Jump to

Keyboard shortcuts

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