Documentation
¶
Index ¶
- Variables
- func CleanStaleTerraformPlugins(ctx context.Context, cachePath string, fs afero.Fs, now time.Time, ...) error
- func FormatDiagnostic(diag *tfjson.Diagnostic) string
- func Install(ctx context.Context, log slog.Logger, verbose bool, dir string, ...) (string, error)
- func PtrInt32(number int) *int32
- func Serve(ctx context.Context, options *ServeOptions) error
- type ServeOptions
- type State
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrInvalidTerraformAddr = xerrors.New("invalid terraform address")
View Source
var ( // TerraformVersion is the version of Terraform used internally // when Terraform is not available on the system. // NOTE: Keep this in sync with the version in scripts/Dockerfile.base. // NOTE: Keep this in sync with the version in install.sh. TerraformVersion = version.Must(version.NewVersion("1.11.2")) )
Functions ¶
func CleanStaleTerraformPlugins ¶ added in v2.2.0
func CleanStaleTerraformPlugins(ctx context.Context, cachePath string, fs afero.Fs, now time.Time, logger slog.Logger) error
CleanStaleTerraformPlugins browses the Terraform cache directory and remove stale plugins that haven't been used for a while. Additionally, it sweeps empty, old directory trees.
Sample cachePath:
/Users/john.doe/Library/Caches/coder/provisioner-1/tf /tmp/coder/provisioner-0/tf
func FormatDiagnostic ¶
func FormatDiagnostic(diag *tfjson.Diagnostic) string
Types ¶
type ServeOptions ¶
type ServeOptions struct { *provisionersdk.ServeOptions // BinaryPath specifies the "terraform" binary to use. // If omitted, the $PATH will attempt to find it. BinaryPath string // CachePath must not be used by multiple processes at once. CachePath string Tracer trace.Tracer // ExitTimeout defines how long we will wait for a running Terraform // command to exit (cleanly) if the provision was stopped. This // happens when the provision is canceled via RPC and when the command is // still running after the provision stream is closed. // // This is a no-op on Windows where the process can't be interrupted. // // Default value: 3 minutes (unhanger.HungJobExitTimeout). This value should // be kept less than the value that Coder uses to mark hung jobs as failed, // which is 5 minutes (see unhanger package). ExitTimeout time.Duration }
type State ¶
type State struct { Resources []*proto.Resource Parameters []*proto.RichParameter Presets []*proto.Preset ExternalAuthProviders []*proto.ExternalAuthProviderResource }
func ConvertState ¶
func ConvertState(ctx context.Context, modules []*tfjson.StateModule, rawGraph string, logger slog.Logger) (*State, error)
ConvertState consumes Terraform state and a GraphViz representation produced by `terraform graph` to produce resources consumable by Coder. nolint:gocognit // This function makes more sense being large for now, until refactored.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.