Documentation ¶
Index ¶
- Constants
- Variables
- type AliasCommand
- type ApplyCommand
- func (c *ApplyCommand) GatherVariables(args *arguments.Vars)
- func (c *ApplyCommand) Help() string
- func (c *ApplyCommand) LoadPlanFile(path string, enc encryption.Encryption) (*planfile.WrappedPlanFile, tfdiags.Diagnostics)
- func (c *ApplyCommand) OperationRequest(be backend.Enhanced, view views.Apply, viewType arguments.ViewType, ...) (*backend.Operation, tfdiags.Diagnostics)
- func (c *ApplyCommand) PrepareBackend(planFile *planfile.WrappedPlanFile, args *arguments.State, ...) (backend.Enhanced, tfdiags.Diagnostics)
- func (c *ApplyCommand) Run(rawArgs []string) int
- func (c *ApplyCommand) Synopsis() string
- type BackendOpts
- type BackendWithRemoteTerraformVersion
- type CloudCommand
- type ColorizeUi
- type ConsoleCommand
- type FlagStringKV
- type FlagStringSlice
- type FmtCommand
- type GetCommand
- type GraphCommand
- type ImportCommand
- type InitCommand
- type LoginCommand
- type LogoutCommand
- type Meta
- func (m *Meta) Backend(opts *BackendOpts, enc encryption.StateEncryption) (backend.Enhanced, tfdiags.Diagnostics)
- func (m *Meta) BackendForLocalPlan(settings plans.Backend, enc encryption.StateEncryption) (backend.Enhanced, tfdiags.Diagnostics)
- func (m *Meta) Colorize() *colorstring.Colorize
- func (m *Meta) CommandContext() context.Context
- func (m *Meta) DataDir() string
- func (m *Meta) Encryption() (encryption.Encryption, tfdiags.Diagnostics)
- func (m *Meta) EncryptionFromModule(module *configs.Module) (encryption.Encryption, tfdiags.Diagnostics)
- func (m *Meta) EncryptionFromPath(path string) (encryption.Encryption, tfdiags.Diagnostics)
- func (m *Meta) ErrorColumns() int
- func (m *Meta) Input() bool
- func (m *Meta) InputMode() tofu.InputMode
- func (m *Meta) InterruptibleContext(base context.Context) (context.Context, context.CancelFunc)
- func (c *Meta) MaybeGetSchemas(state *states.State, config *configs.Config) (*tofu.Schemas, tfdiags.Diagnostics)
- func (m *Meta) Operation(b backend.Backend, vt arguments.ViewType, enc encryption.Encryption) *backend.Operation
- func (m *Meta) OutputColumns() int
- func (m *Meta) PlanFile(path string, enc encryption.PlanEncryption) (*planfile.WrappedPlanFile, error)
- func (m *Meta) RunOperation(b backend.Enhanced, opReq *backend.Operation) (*backend.RunningOperation, tfdiags.Diagnostics)
- func (m *Meta) SetWorkspace(name string) error
- func (m *Meta) StateOutPath() string
- func (m *Meta) StdinPiped() bool
- func (m *Meta) UIInput() tofu.UIInput
- func (m *Meta) Workspace() (string, error)
- func (m *Meta) WorkspaceOverridden() (string, bool)
- type MetadataCommand
- type MetadataFunctionsCommand
- type OutputCommand
- func (c *OutputCommand) GatherVariables(args *arguments.Vars)
- func (c *OutputCommand) Help() string
- func (c *OutputCommand) Outputs(statePath string, enc encryption.Encryption) (map[string]*states.OutputValue, tfdiags.Diagnostics)
- func (c *OutputCommand) Run(rawArgs []string) int
- func (c *OutputCommand) Synopsis() string
- type PlanCommand
- func (c *PlanCommand) GatherVariables(args *arguments.Vars)
- func (c *PlanCommand) Help() string
- func (c *PlanCommand) OperationRequest(be backend.Enhanced, view views.Plan, viewType arguments.ViewType, ...) (*backend.Operation, tfdiags.Diagnostics)
- func (c *PlanCommand) PrepareBackend(args *arguments.State, viewType arguments.ViewType, enc encryption.Encryption) (backend.Enhanced, tfdiags.Diagnostics)
- func (c *PlanCommand) Run(rawArgs []string) int
- func (c *PlanCommand) Synopsis() string
- type ProvidersCommand
- type ProvidersLockCommand
- type ProvidersMirrorCommand
- type ProvidersSchemaCommand
- type PushCommand
- type RefreshCommand
- func (c *RefreshCommand) GatherVariables(args *arguments.Vars)
- func (c *RefreshCommand) Help() string
- func (c *RefreshCommand) OperationRequest(be backend.Enhanced, view views.Refresh, viewType arguments.ViewType, ...) (*backend.Operation, tfdiags.Diagnostics)
- func (c *RefreshCommand) PrepareBackend(args *arguments.State, viewType arguments.ViewType, enc encryption.Encryption) (backend.Enhanced, tfdiags.Diagnostics)
- func (c *RefreshCommand) Run(rawArgs []string) int
- func (c *RefreshCommand) Synopsis() string
- type ShowCommand
- type StateCommand
- type StateListCommand
- type StateMeta
- type StateMvCommand
- type StatePullCommand
- type StatePushCommand
- type StateReplaceProviderCommand
- type StateRmCommand
- type StateShowCommand
- type TaintCommand
- type TestCommand
- type TestFileRunner
- type TestFileState
- type TestSuiteRunner
- type UIInput
- type UnlockCommand
- type UntaintCommand
- type ValidateCommand
- type VersionCommand
- type VersionOutput
- type WorkspaceCommand
- type WorkspaceDeleteCommand
- type WorkspaceListCommand
- type WorkspaceNewCommand
- type WorkspaceSelectCommand
- type WorkspaceShowCommand
- type WrappedUi
Constants ¶
const ( // DefaultCloudPluginVersion is the implied protocol version, though all // historical versions are defined explicitly. DefaultCloudPluginVersion = 1 // ExitRPCError is the exit code that is returned if an plugin // communication error occurred. ExitRPCError = 99 )
const DefaultBackupExtension = ".backup"
DefaultBackupExtension is added to the state file to form the path
const DefaultDataDir = ".terraform"
DefaultDataDir is the default directory for storing local data.
const DefaultParallelism = 10
DefaultParallelism is the limit Terraform places on total parallel operations as it walks the dependency graph.
const DefaultPluginVendorDir = "terraform.d/plugins/" + pluginMachineName
DefaultPluginVendorDir is the location in the config directory to look for user-added plugin binaries. OpenTofu only reads from this path if it exists, it is never created by tofu.
const DefaultStateFilename = "terraform.tfstate"
DefaultStateFilename is the default filename used for the state file.
const DefaultVarsExtension = ".tfvars"
DefaultVarsExtension is the default file extension used for vars
const DefaultVarsFilename = "terraform" + DefaultVarsExtension
DefaultVarsFilename is the default filename used for vars
const ErrUnsupportedLocalOp = `` /* 288-byte string literal not displayed */
ErrUnsupportedLocalOp is the common error message shown for operations that require a backend.Local.
const ( // InputModeEnvVar is the environment variable that, if set to "false" or // "0", causes tofu commands to behave as if the `-input=false` flag was // specified. InputModeEnvVar = "TF_INPUT" )
const (
MainStateIdentifier = ""
)
const PluginPathFile = "plugin_path"
PluginPathFile is the name of the file in the data dir which stores the list of directories supplied by the user with the `-plugin-dir` flag during init.
const VarEnvPrefix = "TF_VAR_"
VarEnvPrefix is the prefix for environment variables that represent values for root module input variables.
const WorkspaceNameEnvVar = "TF_WORKSPACE"
WorkspaceNameEnvVar is the name of the environment variable that can be used to set the name of the OpenTofu workspace, overriding the workspace chosen by `tofu workspace select`.
Note that this environment variable is ignored by `tofu workspace new` and `tofu workspace delete`.
Variables ¶
var ( // Handshake is used to verify that the plugin is the appropriate plugin for // the client. This is not a security verification. Handshake = plugin.HandshakeConfig{ MagicCookieKey: "TF_CLOUDPLUGIN_MAGIC_COOKIE", MagicCookieValue: "721fca41431b780ff3ad2623838faaa178d74c65e1cfdfe19537c31656496bf9f82d6c6707f71d81c8eed0db9043f79e56ab4582d013bc08ead14f57961461dc", ProtocolVersion: DefaultCloudPluginVersion, } )
Functions ¶
This section is empty.
Types ¶
type AliasCommand ¶
AliasCommand is a Command implementation that wraps another Command for the purpose of aliasing.
func (*AliasCommand) Help ¶
func (c *AliasCommand) Help() string
func (*AliasCommand) Run ¶
func (c *AliasCommand) Run(args []string) int
func (*AliasCommand) Synopsis ¶
func (c *AliasCommand) Synopsis() string
type ApplyCommand ¶
type ApplyCommand struct { Meta // If true, then this apply command will become the "destroy" // command. It is just like apply but only processes a destroy. Destroy bool }
ApplyCommand is a Command implementation that applies a OpenTofu configuration and actually builds or changes infrastructure.
func (*ApplyCommand) GatherVariables ¶
func (c *ApplyCommand) GatherVariables(args *arguments.Vars)
func (*ApplyCommand) Help ¶
func (c *ApplyCommand) Help() string
func (*ApplyCommand) LoadPlanFile ¶
func (c *ApplyCommand) LoadPlanFile(path string, enc encryption.Encryption) (*planfile.WrappedPlanFile, tfdiags.Diagnostics)
func (*ApplyCommand) OperationRequest ¶
func (c *ApplyCommand) OperationRequest( be backend.Enhanced, view views.Apply, viewType arguments.ViewType, planFile *planfile.WrappedPlanFile, args *arguments.Operation, autoApprove bool, enc encryption.Encryption, ) (*backend.Operation, tfdiags.Diagnostics)
func (*ApplyCommand) PrepareBackend ¶
func (c *ApplyCommand) PrepareBackend(planFile *planfile.WrappedPlanFile, args *arguments.State, viewType arguments.ViewType, enc encryption.StateEncryption) (backend.Enhanced, tfdiags.Diagnostics)
func (*ApplyCommand) Run ¶
func (c *ApplyCommand) Run(rawArgs []string) int
func (*ApplyCommand) Synopsis ¶
func (c *ApplyCommand) Synopsis() string
type BackendOpts ¶
type BackendOpts struct { // Config is a representation of the backend configuration block given in // the root module, or nil if no such block is present. Config *configs.Backend // ConfigOverride is an hcl.Body that, if non-nil, will be used with // configs.MergeBodies to override the type-specific backend configuration // arguments in Config. ConfigOverride hcl.Body // Init should be set to true if initialization is allowed. If this is // false, then any configuration that requires configuration will show // an error asking the user to reinitialize. Init bool // ForceLocal will force a purely local backend, including state. // You probably don't want to set this. ForceLocal bool // ViewType will set console output format for the // initialization operation (JSON or human-readable). ViewType arguments.ViewType }
BackendOpts are the options used to initialize a backend.Backend.
type BackendWithRemoteTerraformVersion ¶
type BackendWithRemoteTerraformVersion interface { IgnoreVersionConflict() VerifyWorkspaceTerraformVersion(workspace string) tfdiags.Diagnostics IsLocalOperations() bool }
BackendWithRemoteTerraformVersion is a shared interface between the 'remote' and 'cloud' backends for simplified type checking when calling functions common to those particular backends.
type CloudCommand ¶
type CloudCommand struct {
Meta
}
CloudCommand is a Command implementation that interacts with Terraform Cloud for operations that are inherently planless. It delegates all execution to an internal plugin.
func (*CloudCommand) Help ¶
func (c *CloudCommand) Help() string
Help returns help text for the cloud command.
func (*CloudCommand) Run ¶
func (c *CloudCommand) Run(args []string) int
Run runs the cloud command with the given arguments.
func (*CloudCommand) Synopsis ¶
func (c *CloudCommand) Synopsis() string
Synopsis returns a short summary of the cloud command.
type ColorizeUi ¶
type ColorizeUi struct { Colorize *colorstring.Colorize OutputColor string InfoColor string ErrorColor string WarnColor string Ui cli.Ui }
ColorizeUi is a Ui implementation that colors its output according to the given color schemes for the given type of output.
func (*ColorizeUi) Error ¶
func (u *ColorizeUi) Error(message string)
func (*ColorizeUi) Info ¶
func (u *ColorizeUi) Info(message string)
func (*ColorizeUi) Output ¶
func (u *ColorizeUi) Output(message string)
func (*ColorizeUi) Warn ¶
func (u *ColorizeUi) Warn(message string)
type ConsoleCommand ¶
type ConsoleCommand struct {
Meta
}
ConsoleCommand is a Command implementation that starts an interactive console that can be used to try expressions with the current config.
func (*ConsoleCommand) Help ¶
func (c *ConsoleCommand) Help() string
func (*ConsoleCommand) Run ¶
func (c *ConsoleCommand) Run(args []string) int
func (*ConsoleCommand) Synopsis ¶
func (c *ConsoleCommand) Synopsis() string
type FlagStringKV ¶
FlagStringKV is a flag.Value implementation for parsing user variables from the command-line in the format of '-var key=value', where value is only ever a primitive.
func (*FlagStringKV) Set ¶
func (v *FlagStringKV) Set(raw string) error
func (*FlagStringKV) String ¶
func (v *FlagStringKV) String() string
type FlagStringSlice ¶
type FlagStringSlice []string
FlagStringSlice is a flag.Value implementation for parsing targets from the command line, e.g. -target=aws_instance.foo -target=aws_vpc.bar
func (*FlagStringSlice) Set ¶
func (v *FlagStringSlice) Set(raw string) error
func (*FlagStringSlice) String ¶
func (v *FlagStringSlice) String() string
type FmtCommand ¶
type FmtCommand struct { Meta // contains filtered or unexported fields }
FmtCommand is a Command implementation that rewrites OpenTofu config files to a canonical format and style.
func (*FmtCommand) Help ¶
func (c *FmtCommand) Help() string
func (*FmtCommand) Run ¶
func (c *FmtCommand) Run(args []string) int
func (*FmtCommand) Synopsis ¶
func (c *FmtCommand) Synopsis() string
type GetCommand ¶
type GetCommand struct {
Meta
}
GetCommand is a Command implementation that takes a OpenTofu configuration and downloads all the modules.
func (*GetCommand) Help ¶
func (c *GetCommand) Help() string
func (*GetCommand) Run ¶
func (c *GetCommand) Run(args []string) int
func (*GetCommand) Synopsis ¶
func (c *GetCommand) Synopsis() string
type GraphCommand ¶
type GraphCommand struct {
Meta
}
GraphCommand is a Command implementation that takes a OpenTofu configuration and outputs the dependency tree in graphical form.
func (*GraphCommand) Help ¶
func (c *GraphCommand) Help() string
func (*GraphCommand) Run ¶
func (c *GraphCommand) Run(args []string) int
func (*GraphCommand) Synopsis ¶
func (c *GraphCommand) Synopsis() string
type ImportCommand ¶
type ImportCommand struct {
Meta
}
ImportCommand is a cli.Command implementation that imports resources into the OpenTofu state.
func (*ImportCommand) Help ¶
func (c *ImportCommand) Help() string
func (*ImportCommand) Run ¶
func (c *ImportCommand) Run(args []string) int
func (*ImportCommand) Synopsis ¶
func (c *ImportCommand) Synopsis() string
type InitCommand ¶
type InitCommand struct {
Meta
}
InitCommand is a Command implementation that takes a Terraform module and clones it to the working directory.
func (*InitCommand) AutocompleteArgs ¶
func (c *InitCommand) AutocompleteArgs() complete.Predictor
func (*InitCommand) AutocompleteFlags ¶
func (c *InitCommand) AutocompleteFlags() complete.Flags
func (*InitCommand) Help ¶
func (c *InitCommand) Help() string
func (*InitCommand) Run ¶
func (c *InitCommand) Run(args []string) int
func (*InitCommand) Synopsis ¶
func (c *InitCommand) Synopsis() string
type LoginCommand ¶
type LoginCommand struct {
Meta
}
LoginCommand is a Command implementation that runs an interactive login flow for a remote service host. It then stashes credentials in a tfrc file in the user's home directory.
func (*LoginCommand) Run ¶
func (c *LoginCommand) Run(args []string) int
Run implements cli.Command.
func (*LoginCommand) Synopsis ¶
func (c *LoginCommand) Synopsis() string
Synopsis implements cli.Command.
type LogoutCommand ¶
type LogoutCommand struct {
Meta
}
LogoutCommand is a Command implementation which removes stored credentials for a remote service host.
func (*LogoutCommand) Run ¶
func (c *LogoutCommand) Run(args []string) int
Run implements cli.Command.
func (*LogoutCommand) Synopsis ¶
func (c *LogoutCommand) Synopsis() string
Synopsis implements cli.Command.
type Meta ¶
type Meta struct { // WorkingDir is an object representing the "working directory" where we're // running commands. In the normal case this literally refers to the // working directory of the OpenTofu process, though this can take on // a more symbolic meaning when the user has overridden default behavior // to specify a different working directory or to override the special // data directory where we'll persist settings that must survive between // consecutive commands. // // We're currently gradually migrating the various bits of state that // must persist between consecutive commands in a session to be encapsulated // in here, but we're not there yet and so there are also some methods on // Meta which directly read and modify paths inside the data directory. WorkingDir *workdir.Dir // Streams tracks the raw Stdout, Stderr, and Stdin handles along with // some basic metadata about them, such as whether each is connected to // a terminal, how wide the possible terminal is, etc. // // For historical reasons this might not be set in unit test code, and // so functions working with this field must check if it's nil and // do some default behavior instead if so, rather than panicking. Streams *terminal.Streams View *views.View Color bool // True if output should be colored GlobalPluginDirs []string // Additional paths to search for plugins Ui cli.Ui // Ui for output // Services provides access to remote endpoint information for // 'tofu-native' services running at a specific user-facing hostname. Services *disco.Disco // RunningInAutomation indicates that commands are being run by an // automated system rather than directly at a command prompt. // // This is a hint to various command routines that it may be confusing // to print out messages that suggest running specific follow-up // commands, since the user consuming the output will not be // in a position to run such commands. // // The intended use-case of this flag is when OpenTofu is running in // some sort of workflow orchestration tool which is abstracting away // the specific commands being run. RunningInAutomation bool // CLIConfigDir is the directory from which CLI configuration files were // read by the caller and the directory where any changes to CLI // configuration files by commands should be made. // // If this is empty then no configuration directory is available and // commands which require one cannot proceed. CLIConfigDir string // PluginCacheDir, if non-empty, enables caching of downloaded plugins // into the given directory. PluginCacheDir string // PluginCacheMayBreakDependencyLockFile is a temporary CLI configuration-based // opt out for the behavior of only using the plugin cache dir if its // contents match checksums recorded in the dependency lock file. // // This is an accommodation for those who currently essentially ignore the // dependency lock file -- treating it only as transient working directory // state -- and therefore don't care if the plugin cache dir causes the // checksums inside to only be sufficient for the computer where OpenTofu // is currently running. // // We intend to remove this exception again (making the CLI configuration // setting a silent no-op) in future once we've improved the dependency // lock file mechanism so that it's usable for everyone and there are no // longer any compelling reasons for folks to not lock their dependencies. PluginCacheMayBreakDependencyLockFile bool // ProviderSource allows determining the available versions of a provider // and determines where a distribution package for a particular // provider version can be obtained. ProviderSource getproviders.Source // BrowserLauncher is used by commands that need to open a URL in a // web browser. BrowserLauncher webbrowser.Launcher // A context.Context provided by the caller -- typically "package main" -- // which might be carrying telemetry-related metadata and so should be // used when creating downstream traces, etc. // // This isn't guaranteed to be set, so use [Meta.CommandContext] to // safely create a context for the entire execution of a command, which // will be connected to this parent context if it's present. CallerContext context.Context // When this channel is closed, the command will be cancelled. ShutdownCh <-chan struct{} // ProviderDevOverrides are providers where we ignore the lock file, the // configured version constraints, and the local cache directory and just // always use exactly the path specified. This is intended to allow // provider developers to easily test local builds without worrying about // what version number they might eventually be released as, or what // checksums they have. ProviderDevOverrides map[addrs.Provider]getproviders.PackageLocalDir // UnmanagedProviders are a set of providers that exist as processes // predating OpenTofu, which OpenTofu should use but not worry about the // lifecycle of. // // This is essentially a more extreme version of ProviderDevOverrides where // OpenTofu doesn't even worry about how the provider server gets launched, // just trusting that someone else did it before running OpenTofu. UnmanagedProviders map[addrs.Provider]*plugin.ReattachConfig // AllowExperimentalFeatures controls whether a command that embeds this // Meta is permitted to make use of experimental OpenTofu features. // // Set this field only during the initial creation of Meta. If you change // this field after calling methods of type Meta then the resulting // behavior is undefined. // // In normal code this would be set by package main only in builds // explicitly marked as being alpha releases or development snapshots, // making experimental features unavailable otherwise. Test code may // choose to set this if it needs to exercise experimental features. // // Some experiments predated the addition of this setting, and may // therefore still be available even if this flag is false. Our intent // is that all/most _future_ experiments will be unavailable unless this // flag is set, to reinforce that experiments are not for production use. AllowExperimentalFeatures bool // contains filtered or unexported fields }
Meta are the meta-options that are available on all or most commands.
func (*Meta) Backend ¶
func (m *Meta) Backend(opts *BackendOpts, enc encryption.StateEncryption) (backend.Enhanced, tfdiags.Diagnostics)
Backend initializes and returns the backend for this CLI session.
The backend is used to perform the actual OpenTofu operations. This abstraction enables easily sliding in new OpenTofu behavior such as remote state storage, remote operations, etc. while allowing the CLI to remain mostly identical.
This will initialize a new backend for each call, which can carry some overhead with it. Please reuse the returned value for optimal behavior.
Only one backend should be used per Meta. This function is stateful and is unsafe to create multiple backends used at once. This function can be called multiple times with each backend being "live" (usable) one at a time.
A side-effect of this method is the population of m.backendState, recording the final resolved backend configuration after dealing with overrides from the "tofu init" command line, etc.
func (*Meta) BackendForLocalPlan ¶
func (m *Meta) BackendForLocalPlan(settings plans.Backend, enc encryption.StateEncryption) (backend.Enhanced, tfdiags.Diagnostics)
BackendForLocalPlan is similar to Backend, but uses backend settings that were stored in a plan.
The current workspace name is also stored as part of the plan, and so this method will check that it matches the currently-selected workspace name and produce error diagnostics if not.
func (*Meta) Colorize ¶
func (m *Meta) Colorize() *colorstring.Colorize
Colorize returns the colorization structure for a command.
func (*Meta) CommandContext ¶
CommandContext returns the "root context" to use in the main Run function of a command.
This method is just a substitute for passing a context directly to the "Run" method of a command, which we can't do because that API is owned by mitchellh/cli rather than by OpenTofu. Use this only in situations comparable to the context having been passed in as an argument to Run.
If the caller (e.g. "package main") provided a context when it instantiated the Meta then the returned context will inherit all of its values, deadlines, etc. If the caller did not provide a context then the result is an inert background context ready to be passed to other functions.
func (*Meta) DataDir ¶
DataDir returns the directory where local data will be stored. Defaults to DefaultDataDir in the current working directory.
func (*Meta) Encryption ¶
func (m *Meta) Encryption() (encryption.Encryption, tfdiags.Diagnostics)
func (*Meta) EncryptionFromModule ¶
func (m *Meta) EncryptionFromModule(module *configs.Module) (encryption.Encryption, tfdiags.Diagnostics)
func (*Meta) EncryptionFromPath ¶
func (m *Meta) EncryptionFromPath(path string) (encryption.Encryption, tfdiags.Diagnostics)
func (*Meta) ErrorColumns ¶
ErrorColumns returns the number of columns that error UI output should be wrapped to fill.
This is the column count to use if you'll be printing your message via the Error or Warn methods of m.Ui.
func (*Meta) InputMode ¶
InputMode returns the type of input we should ask for in the form of tofu.InputMode which is passed directly to Context.Input.
func (*Meta) InterruptibleContext ¶
InterruptibleContext returns a context.Context that will be cancelled if the process is interrupted by a platform-specific interrupt signal.
The typical way to use this is to pass the result of Meta.CommandContext as the base context, but that's appropriate only if the interruptible context is being created directly inside the "Run" method of a particular command, to create a context representing the entire remaining runtime of that command:
As usual with cancelable contexts, the caller must always call the given cancel function once all operations are complete in order to make sure that the context resources will still be freed even if there is no interruption.
// This example is only for when using this function very early in // the "Run" method of a Command implementation. If you already have // an active context, pass that in as base instead. ctx, done := c.InterruptibleContext(c.CommandContext()) defer done()
func (*Meta) MaybeGetSchemas ¶
func (c *Meta) MaybeGetSchemas(state *states.State, config *configs.Config) (*tofu.Schemas, tfdiags.Diagnostics)
MaybeGetSchemas attempts to load and return the schemas If there is not enough information to return the schemas, it could potentially return nil without errors. It is the responsibility of the caller to handle the lack of schema information accordingly
func (*Meta) Operation ¶
func (m *Meta) Operation(b backend.Backend, vt arguments.ViewType, enc encryption.Encryption) *backend.Operation
Operation initializes a new backend.Operation struct.
This prepares the operation. After calling this, the caller is expected to modify fields of the operation such as Sequence to specify what will be called.
func (*Meta) OutputColumns ¶
OutputColumns returns the number of columns that normal (non-error) UI output should be wrapped to fill.
This is the column count to use if you'll be printing your message via the Output or Info methods of m.Ui.
func (*Meta) PlanFile ¶
func (m *Meta) PlanFile(path string, enc encryption.PlanEncryption) (*planfile.WrappedPlanFile, error)
PlanFile loads the plan file at the given path, which might be either a local or cloud plan.
If the return value and error are both nil, the given path exists but seems to be a configuration directory instead.
Error will be non-nil if path refers to something which looks like a plan file and loading the file fails.
func (*Meta) RunOperation ¶
func (m *Meta) RunOperation(b backend.Enhanced, opReq *backend.Operation) (*backend.RunningOperation, tfdiags.Diagnostics)
RunOperation executes the given operation on the given backend, blocking until that operation completes or is interrupted, and then returns the RunningOperation object representing the completed or aborted operation that is, despite the name, no longer running.
An error is returned if the operation either fails to start or is cancelled. If the operation runs to completion then no error is returned even if the operation itself is unsuccessful. Use the "Result" field of the returned operation object to recognize operation-level failure.
func (*Meta) SetWorkspace ¶
SetWorkspace saves the given name as the current workspace in the local filesystem.
func (*Meta) StateOutPath ¶
StateOutPath returns the true output path for the state file
func (*Meta) StdinPiped ¶
StdinPiped returns true if the input is piped.
func (*Meta) Workspace ¶
Workspace returns the name of the currently configured workspace, corresponding to the desired named state.
func (*Meta) WorkspaceOverridden ¶
WorkspaceOverridden returns the name of the currently configured workspace, corresponding to the desired named state, as well as a bool saying whether this was set via the TF_WORKSPACE environment variable.
type MetadataCommand ¶
type MetadataCommand struct {
Meta
}
MetadataCommand is a Command implementation that just shows help for the subcommands nested below it.
func (*MetadataCommand) Help ¶
func (c *MetadataCommand) Help() string
func (*MetadataCommand) Run ¶
func (c *MetadataCommand) Run(args []string) int
func (*MetadataCommand) Synopsis ¶
func (c *MetadataCommand) Synopsis() string
type MetadataFunctionsCommand ¶
type MetadataFunctionsCommand struct {
Meta
}
MetadataFunctionsCommand is a Command implementation that prints out information about the available functions in OpenTofu.
func (*MetadataFunctionsCommand) Help ¶
func (c *MetadataFunctionsCommand) Help() string
func (*MetadataFunctionsCommand) Run ¶
func (c *MetadataFunctionsCommand) Run(args []string) int
func (*MetadataFunctionsCommand) Synopsis ¶
func (c *MetadataFunctionsCommand) Synopsis() string
type OutputCommand ¶
type OutputCommand struct {
Meta
}
OutputCommand is a Command implementation that reads an output from a OpenTofu state and prints it.
func (*OutputCommand) GatherVariables ¶
func (c *OutputCommand) GatherVariables(args *arguments.Vars)
func (*OutputCommand) Help ¶
func (c *OutputCommand) Help() string
func (*OutputCommand) Outputs ¶
func (c *OutputCommand) Outputs(statePath string, enc encryption.Encryption) (map[string]*states.OutputValue, tfdiags.Diagnostics)
func (*OutputCommand) Run ¶
func (c *OutputCommand) Run(rawArgs []string) int
func (*OutputCommand) Synopsis ¶
func (c *OutputCommand) Synopsis() string
type PlanCommand ¶
type PlanCommand struct {
Meta
}
PlanCommand is a Command implementation that compares a OpenTofu configuration to an actual infrastructure and shows the differences.
func (*PlanCommand) GatherVariables ¶
func (c *PlanCommand) GatherVariables(args *arguments.Vars)
func (*PlanCommand) Help ¶
func (c *PlanCommand) Help() string
func (*PlanCommand) OperationRequest ¶
func (c *PlanCommand) OperationRequest( be backend.Enhanced, view views.Plan, viewType arguments.ViewType, args *arguments.Operation, planOutPath string, generateConfigOut string, enc encryption.Encryption, ) (*backend.Operation, tfdiags.Diagnostics)
func (*PlanCommand) PrepareBackend ¶
func (c *PlanCommand) PrepareBackend(args *arguments.State, viewType arguments.ViewType, enc encryption.Encryption) (backend.Enhanced, tfdiags.Diagnostics)
func (*PlanCommand) Run ¶
func (c *PlanCommand) Run(rawArgs []string) int
func (*PlanCommand) Synopsis ¶
func (c *PlanCommand) Synopsis() string
type ProvidersCommand ¶
type ProvidersCommand struct {
Meta
}
ProvidersCommand is a Command implementation that prints out information about the providers used in the current configuration/state.
func (*ProvidersCommand) Help ¶
func (c *ProvidersCommand) Help() string
func (*ProvidersCommand) Run ¶
func (c *ProvidersCommand) Run(args []string) int
func (*ProvidersCommand) Synopsis ¶
func (c *ProvidersCommand) Synopsis() string
type ProvidersLockCommand ¶
type ProvidersLockCommand struct {
Meta
}
ProvidersLockCommand is a Command implementation that implements the "tofu providers lock" command, which creates or updates the current configuration's dependency lock file using information from upstream registries, regardless of the provider installation configuration that is configured for normal provider installation.
func (*ProvidersLockCommand) Help ¶
func (c *ProvidersLockCommand) Help() string
func (*ProvidersLockCommand) Run ¶
func (c *ProvidersLockCommand) Run(args []string) int
func (*ProvidersLockCommand) Synopsis ¶
func (c *ProvidersLockCommand) Synopsis() string
type ProvidersMirrorCommand ¶
type ProvidersMirrorCommand struct {
Meta
}
ProvidersMirrorCommand is a Command implementation that implements the "tofu providers mirror" command, which populates a directory with local copies of provider plugins needed by the current configuration so that the mirror can be used to work offline, or similar.
func (*ProvidersMirrorCommand) Help ¶
func (c *ProvidersMirrorCommand) Help() string
func (*ProvidersMirrorCommand) Run ¶
func (c *ProvidersMirrorCommand) Run(args []string) int
func (*ProvidersMirrorCommand) Synopsis ¶
func (c *ProvidersMirrorCommand) Synopsis() string
type ProvidersSchemaCommand ¶
type ProvidersSchemaCommand struct {
Meta
}
ProvidersSchemaCommand is a Command implementation that prints out information about the providers used in the current configuration/state.
func (*ProvidersSchemaCommand) Help ¶
func (c *ProvidersSchemaCommand) Help() string
func (*ProvidersSchemaCommand) Run ¶
func (c *ProvidersSchemaCommand) Run(args []string) int
func (*ProvidersSchemaCommand) Synopsis ¶
func (c *ProvidersSchemaCommand) Synopsis() string
type PushCommand ¶
type PushCommand struct {
Meta
}
func (*PushCommand) Help ¶
func (c *PushCommand) Help() string
func (*PushCommand) Run ¶
func (c *PushCommand) Run(args []string) int
func (*PushCommand) Synopsis ¶
func (c *PushCommand) Synopsis() string
type RefreshCommand ¶
type RefreshCommand struct {
Meta
}
RefreshCommand is a cli.Command implementation that refreshes the state file.
func (*RefreshCommand) GatherVariables ¶
func (c *RefreshCommand) GatherVariables(args *arguments.Vars)
func (*RefreshCommand) Help ¶
func (c *RefreshCommand) Help() string
func (*RefreshCommand) OperationRequest ¶
func (c *RefreshCommand) OperationRequest(be backend.Enhanced, view views.Refresh, viewType arguments.ViewType, args *arguments.Operation, enc encryption.Encryption, ) (*backend.Operation, tfdiags.Diagnostics)
func (*RefreshCommand) PrepareBackend ¶
func (c *RefreshCommand) PrepareBackend(args *arguments.State, viewType arguments.ViewType, enc encryption.Encryption) (backend.Enhanced, tfdiags.Diagnostics)
func (*RefreshCommand) Run ¶
func (c *RefreshCommand) Run(rawArgs []string) int
func (*RefreshCommand) Synopsis ¶
func (c *RefreshCommand) Synopsis() string
type ShowCommand ¶
type ShowCommand struct { Meta // contains filtered or unexported fields }
ShowCommand is a Command implementation that reads and outputs the contents of a OpenTofu plan or state file.
func (*ShowCommand) GatherVariables ¶
func (c *ShowCommand) GatherVariables(args *arguments.Vars)
func (*ShowCommand) Help ¶
func (c *ShowCommand) Help() string
func (*ShowCommand) Run ¶
func (c *ShowCommand) Run(rawArgs []string) int
func (*ShowCommand) Synopsis ¶
func (c *ShowCommand) Synopsis() string
type StateCommand ¶
type StateCommand struct {
StateMeta
}
StateCommand is a Command implementation that just shows help for the subcommands nested below it.
func (*StateCommand) Help ¶
func (c *StateCommand) Help() string
func (*StateCommand) Run ¶
func (c *StateCommand) Run(args []string) int
func (*StateCommand) Synopsis ¶
func (c *StateCommand) Synopsis() string
type StateListCommand ¶
StateListCommand is a Command implementation that lists the resources within a state file.
func (*StateListCommand) Help ¶
func (c *StateListCommand) Help() string
func (*StateListCommand) Run ¶
func (c *StateListCommand) Run(args []string) int
func (*StateListCommand) Synopsis ¶
func (c *StateListCommand) Synopsis() string
type StateMeta ¶
type StateMeta struct {
Meta
}
StateMeta is the meta struct that should be embedded in state subcommands.
func (*StateMeta) State ¶
func (c *StateMeta) State(enc encryption.Encryption) (statemgr.Full, error)
State returns the state for this meta. This gets the appropriate state from the backend, but changes the way that backups are done. This configures backups to be timestamped rather than just the original state path plus a backup path.
type StateMvCommand ¶
type StateMvCommand struct {
StateMeta
}
StateMvCommand is a Command implementation that shows a single resource.
func (*StateMvCommand) Help ¶
func (c *StateMvCommand) Help() string
func (*StateMvCommand) Run ¶
func (c *StateMvCommand) Run(args []string) int
func (*StateMvCommand) Synopsis ¶
func (c *StateMvCommand) Synopsis() string
type StatePullCommand ¶
StatePullCommand is a Command implementation that shows a single resource.
func (*StatePullCommand) Help ¶
func (c *StatePullCommand) Help() string
func (*StatePullCommand) Run ¶
func (c *StatePullCommand) Run(args []string) int
func (*StatePullCommand) Synopsis ¶
func (c *StatePullCommand) Synopsis() string
type StatePushCommand ¶
StatePushCommand is a Command implementation that shows a single resource.
func (*StatePushCommand) Help ¶
func (c *StatePushCommand) Help() string
func (*StatePushCommand) Run ¶
func (c *StatePushCommand) Run(args []string) int
func (*StatePushCommand) Synopsis ¶
func (c *StatePushCommand) Synopsis() string
type StateReplaceProviderCommand ¶
type StateReplaceProviderCommand struct {
StateMeta
}
func (*StateReplaceProviderCommand) Help ¶
func (c *StateReplaceProviderCommand) Help() string
func (*StateReplaceProviderCommand) Run ¶
func (c *StateReplaceProviderCommand) Run(args []string) int
func (*StateReplaceProviderCommand) Synopsis ¶
func (c *StateReplaceProviderCommand) Synopsis() string
type StateRmCommand ¶
type StateRmCommand struct {
StateMeta
}
StateRmCommand is a Command implementation that shows a single resource.
func (*StateRmCommand) Help ¶
func (c *StateRmCommand) Help() string
func (*StateRmCommand) Run ¶
func (c *StateRmCommand) Run(args []string) int
func (*StateRmCommand) Synopsis ¶
func (c *StateRmCommand) Synopsis() string
type StateShowCommand ¶
StateShowCommand is a Command implementation that shows a single resource.
func (*StateShowCommand) Help ¶
func (c *StateShowCommand) Help() string
func (*StateShowCommand) Run ¶
func (c *StateShowCommand) Run(args []string) int
func (*StateShowCommand) Synopsis ¶
func (c *StateShowCommand) Synopsis() string
type TaintCommand ¶
type TaintCommand struct {
Meta
}
TaintCommand is a cli.Command implementation that manually taints a resource, marking it for recreation.
func (*TaintCommand) Help ¶
func (c *TaintCommand) Help() string
func (*TaintCommand) Run ¶
func (c *TaintCommand) Run(args []string) int
func (*TaintCommand) Synopsis ¶
func (c *TaintCommand) Synopsis() string
type TestCommand ¶
type TestCommand struct {
Meta
}
func (*TestCommand) Help ¶
func (c *TestCommand) Help() string
func (*TestCommand) Run ¶
func (c *TestCommand) Run(rawArgs []string) int
func (*TestCommand) Synopsis ¶
func (c *TestCommand) Synopsis() string
type TestFileRunner ¶
type TestFileRunner struct { Suite *TestSuiteRunner States map[string]*TestFileState }
func (*TestFileRunner) Cleanup ¶
func (runner *TestFileRunner) Cleanup(file *moduletest.File)
func (*TestFileRunner) ExecuteTestFile ¶
func (runner *TestFileRunner) ExecuteTestFile(file *moduletest.File)
func (*TestFileRunner) ExecuteTestRun ¶
func (runner *TestFileRunner) ExecuteTestRun(run *moduletest.Run, file *moduletest.File, state *states.State, config *configs.Config) (*states.State, bool)
type TestFileState ¶
type TestFileState struct { Run *moduletest.Run State *states.State }
type TestSuiteRunner ¶
type TestSuiteRunner struct { Suite *moduletest.Suite Config *configs.Config GlobalVariables map[string]backend.UnparsedVariableValue Opts *tofu.ContextOpts View views.Test // Stopped and Cancelled track whether the user requested the testing // process to be interrupted. Stopped is a nice graceful exit, we'll still // tidy up any state that was created and mark the tests with relevant // `skipped` status updates. Cancelled is a hard stop right now exit, we // won't attempt to clean up any state left hanging, and tests will just // be left showing `pending` as the status. We will still print out the // destroy summary diagnostics that tell the user what state has been left // behind and needs manual clean up. Stopped bool Cancelled bool // StoppedCtx and CancelledCtx allow in progress OpenTofu operations to // respond to external calls from the test command. StoppedCtx context.Context CancelledCtx context.Context // Verbose tells the runner to print out plan files during each test run. Verbose bool // contains filtered or unexported fields }
func (*TestSuiteRunner) Start ¶
func (runner *TestSuiteRunner) Start(globals map[string]backend.UnparsedVariableValue)
type UIInput ¶
type UIInput struct { // Colorize will color the output. Colorize *colorstring.Colorize // Reader and Writer for IO. If these aren't set, they will default to // Stdin and Stdout respectively. Reader io.Reader Writer io.Writer // contains filtered or unexported fields }
UIInput is an implementation of tofu.UIInput that asks the CLI for input stdin.
type UnlockCommand ¶
type UnlockCommand struct {
Meta
}
UnlockCommand is a cli.Command implementation that manually unlocks the state.
func (*UnlockCommand) Help ¶
func (c *UnlockCommand) Help() string
func (*UnlockCommand) Run ¶
func (c *UnlockCommand) Run(args []string) int
func (*UnlockCommand) Synopsis ¶
func (c *UnlockCommand) Synopsis() string
type UntaintCommand ¶
type UntaintCommand struct {
Meta
}
UntaintCommand is a cli.Command implementation that manually untaints a resource, marking it as primary and ready for service.
func (*UntaintCommand) Help ¶
func (c *UntaintCommand) Help() string
func (*UntaintCommand) Run ¶
func (c *UntaintCommand) Run(args []string) int
func (*UntaintCommand) Synopsis ¶
func (c *UntaintCommand) Synopsis() string
type ValidateCommand ¶
type ValidateCommand struct {
Meta
}
ValidateCommand is a Command implementation that validates the tofu files
func (*ValidateCommand) GatherVariables ¶
func (c *ValidateCommand) GatherVariables(args *arguments.Vars)
func (*ValidateCommand) Help ¶
func (c *ValidateCommand) Help() string
func (*ValidateCommand) Run ¶
func (c *ValidateCommand) Run(rawArgs []string) int
func (*ValidateCommand) Synopsis ¶
func (c *ValidateCommand) Synopsis() string
type VersionCommand ¶
type VersionCommand struct { Meta Version string VersionPrerelease string Platform getproviders.Platform }
VersionCommand is a Command implementation prints the version.
func (*VersionCommand) Help ¶
func (c *VersionCommand) Help() string
func (*VersionCommand) Run ¶
func (c *VersionCommand) Run(args []string) int
func (*VersionCommand) Synopsis ¶
func (c *VersionCommand) Synopsis() string
type VersionOutput ¶
type WorkspaceCommand ¶
WorkspaceCommand is a Command Implementation that manipulates workspaces, which allow multiple distinct states and variables from a single config.
func (*WorkspaceCommand) Help ¶
func (c *WorkspaceCommand) Help() string
func (*WorkspaceCommand) Run ¶
func (c *WorkspaceCommand) Run(args []string) int
func (*WorkspaceCommand) Synopsis ¶
func (c *WorkspaceCommand) Synopsis() string
type WorkspaceDeleteCommand ¶
func (*WorkspaceDeleteCommand) AutocompleteArgs ¶
func (c *WorkspaceDeleteCommand) AutocompleteArgs() complete.Predictor
func (*WorkspaceDeleteCommand) AutocompleteFlags ¶
func (c *WorkspaceDeleteCommand) AutocompleteFlags() complete.Flags
func (*WorkspaceDeleteCommand) Help ¶
func (c *WorkspaceDeleteCommand) Help() string
func (*WorkspaceDeleteCommand) Run ¶
func (c *WorkspaceDeleteCommand) Run(args []string) int
func (*WorkspaceDeleteCommand) Synopsis ¶
func (c *WorkspaceDeleteCommand) Synopsis() string
type WorkspaceListCommand ¶
func (*WorkspaceListCommand) AutocompleteArgs ¶
func (c *WorkspaceListCommand) AutocompleteArgs() complete.Predictor
func (*WorkspaceListCommand) AutocompleteFlags ¶
func (c *WorkspaceListCommand) AutocompleteFlags() complete.Flags
func (*WorkspaceListCommand) Help ¶
func (c *WorkspaceListCommand) Help() string
func (*WorkspaceListCommand) Run ¶
func (c *WorkspaceListCommand) Run(args []string) int
func (*WorkspaceListCommand) Synopsis ¶
func (c *WorkspaceListCommand) Synopsis() string
type WorkspaceNewCommand ¶
func (*WorkspaceNewCommand) AutocompleteArgs ¶
func (c *WorkspaceNewCommand) AutocompleteArgs() complete.Predictor
func (*WorkspaceNewCommand) AutocompleteFlags ¶
func (c *WorkspaceNewCommand) AutocompleteFlags() complete.Flags
func (*WorkspaceNewCommand) Help ¶
func (c *WorkspaceNewCommand) Help() string
func (*WorkspaceNewCommand) Run ¶
func (c *WorkspaceNewCommand) Run(args []string) int
func (*WorkspaceNewCommand) Synopsis ¶
func (c *WorkspaceNewCommand) Synopsis() string
type WorkspaceSelectCommand ¶
func (*WorkspaceSelectCommand) AutocompleteArgs ¶
func (c *WorkspaceSelectCommand) AutocompleteArgs() complete.Predictor
func (*WorkspaceSelectCommand) AutocompleteFlags ¶
func (c *WorkspaceSelectCommand) AutocompleteFlags() complete.Flags
func (*WorkspaceSelectCommand) Help ¶
func (c *WorkspaceSelectCommand) Help() string
func (*WorkspaceSelectCommand) Run ¶
func (c *WorkspaceSelectCommand) Run(args []string) int
func (*WorkspaceSelectCommand) Synopsis ¶
func (c *WorkspaceSelectCommand) Synopsis() string
type WorkspaceShowCommand ¶
type WorkspaceShowCommand struct {
Meta
}
func (*WorkspaceShowCommand) AutocompleteArgs ¶
func (c *WorkspaceShowCommand) AutocompleteArgs() complete.Predictor
func (*WorkspaceShowCommand) AutocompleteFlags ¶
func (c *WorkspaceShowCommand) AutocompleteFlags() complete.Flags
func (*WorkspaceShowCommand) Help ¶
func (c *WorkspaceShowCommand) Help() string
func (*WorkspaceShowCommand) Run ¶
func (c *WorkspaceShowCommand) Run(args []string) int
func (*WorkspaceShowCommand) Synopsis ¶
func (c *WorkspaceShowCommand) Synopsis() string
type WrappedUi ¶
type WrappedUi struct {
// contains filtered or unexported fields
}
WrappedUi is a shim which adds json compatibility to those commands which have not yet been refactored to support output by views.View.
For those not support json output command, all output is printed by cli.Ui. So we create WrappedUi, contains the old cli.Ui and views.JSONView, implement cli.Ui interface, so that we can make all command support json output in a short time.
Source Files ¶
- alias.go
- apply.go
- autocomplete.go
- cli_ui.go
- cloud.go
- command.go
- console.go
- console_interactive.go
- console_state.go
- flag_kv.go
- fmt.go
- get.go
- graph.go
- helper.go
- hook_module_install.go
- import.go
- init.go
- login.go
- logout.go
- meta.go
- meta_backend.go
- meta_backend_migrate.go
- meta_config.go
- meta_dependencies.go
- meta_encryption.go
- meta_new.go
- meta_providers.go
- meta_ui.go
- meta_vars.go
- metadata_command.go
- metadata_functions.go
- output.go
- plan.go
- plugins.go
- providers.go
- providers_lock.go
- providers_mirror.go
- providers_schema.go
- push.go
- refresh.go
- show.go
- state_command.go
- state_list.go
- state_meta.go
- state_mv.go
- state_pull.go
- state_push.go
- state_replace_provider.go
- state_rm.go
- state_show.go
- taint.go
- telemetry.go
- test.go
- ui_input.go
- unlock.go
- untaint.go
- validate.go
- version.go
- workspace_command.go
- workspace_delete.go
- workspace_list.go
- workspace_new.go
- workspace_select.go
- workspace_show.go
Directories ¶
Path | Synopsis |
---|---|
Package cliconfig has the types representing and the logic to load CLI-level configuration settings.
|
Package cliconfig has the types representing and the logic to load CLI-level configuration settings. |
Package state exposes common helpers for working with state from the CLI.
|
Package state exposes common helpers for working with state from the CLI. |
Package e2etest contains a set of tests that run against a real OpenTofu binary, compiled on the fly at the start of the test run.
|
Package e2etest contains a set of tests that run against a real OpenTofu binary, compiled on the fly at the start of the test run. |
Package format contains helpers for formatting various OpenTofu structures for human-readabout output.
|
Package format contains helpers for formatting various OpenTofu structures for human-readabout output. |
Package jsonchecks implements the common JSON representation of check results/statuses that we use across both the JSON plan and JSON state representations.
|
Package jsonchecks implements the common JSON representation of check results/statuses that we use across both the JSON plan and JSON state representations. |
Package jsonconfig implements methods for outputting a configuration snapshot in machine-readable json format
|
Package jsonconfig implements methods for outputting a configuration snapshot in machine-readable json format |
computed
Package computed contains types that represent the computed diffs for OpenTofu blocks, attributes, and outputs.
|
Package computed contains types that represent the computed diffs for OpenTofu blocks, attributes, and outputs. |
structured
Package structured contains the structured representation of the JSON changes returned by the jsonplan package.
|
Package structured contains the structured representation of the JSON changes returned by the jsonplan package. |
Package jsonplan implements methods for outputting a plan in a machine-readable json format
|
Package jsonplan implements methods for outputting a plan in a machine-readable json format |
Package jsonprovider contains types and functions to marshal OpenTofu provider schemas into a json formatted output.
|
Package jsonprovider contains types and functions to marshal OpenTofu provider schemas into a json formatted output. |
Package jsonstate implements methods for outputting a state in a machine-readable json format
|
Package jsonstate implements methods for outputting a state in a machine-readable json format |
Package workdir models the various local artifacts and state we keep inside a OpenTofu "working directory".
|
Package workdir models the various local artifacts and state we keep inside a OpenTofu "working directory". |