terraform

package
v0.27.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2023 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

Package terraform is a generated GoMock package.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrRecipeNameEmpty is the error when the recipe name is empty.
	ErrRecipeNameEmpty = errors.New("recipe name cannot be empty")
)

Functions

func Install

func Install(ctx context.Context, installer *install.Installer, tfDir string) (*tfexec.Terraform, error)

Install installs Terraform under /install in the provided Terraform root directory for the resource. It installs the latest version of Terraform and returns the path to the installed Terraform executable. It returns an error if the directory creation or Terraform installation fails.

func NewExecutor

func NewExecutor(ucpConn sdk.Connection, secretProvider *ucp_provider.SecretProvider, k8sClientSet kubernetes.Interface) *executor

NewExecutor creates a new Executor with the given UCP connection and secret provider, to execute a Terraform recipe.

func NewTerraform

func NewTerraform(ctx context.Context, tfRootDir, execPath string) (*tfexec.Terraform, error)

NewTerraform creates a working directory for Terraform execution and new Terraform executor with Terraform logs enabled.

Types

type MockTerraformExecutor

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

MockTerraformExecutor is a mock of TerraformExecutor interface.

func NewMockTerraformExecutor

func NewMockTerraformExecutor(ctrl *gomock.Controller) *MockTerraformExecutor

NewMockTerraformExecutor creates a new mock instance.

func (*MockTerraformExecutor) Delete

func (m *MockTerraformExecutor) Delete(arg0 context.Context, arg1 Options) error

Delete mocks base method.

func (*MockTerraformExecutor) Deploy

Deploy mocks base method.

func (*MockTerraformExecutor) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockTerraformExecutor) GetRecipeMetadata

func (m *MockTerraformExecutor) GetRecipeMetadata(arg0 context.Context, arg1 Options) (map[string]interface{}, error)

GetRecipeMetadata mocks base method.

type MockTerraformExecutorMockRecorder

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

MockTerraformExecutorMockRecorder is the mock recorder for MockTerraformExecutor.

func (*MockTerraformExecutorMockRecorder) Delete

func (mr *MockTerraformExecutorMockRecorder) Delete(arg0, arg1 interface{}) *gomock.Call

Delete indicates an expected call of Delete.

func (*MockTerraformExecutorMockRecorder) Deploy

func (mr *MockTerraformExecutorMockRecorder) Deploy(arg0, arg1 interface{}) *gomock.Call

Deploy indicates an expected call of Deploy.

func (*MockTerraformExecutorMockRecorder) GetRecipeMetadata

func (mr *MockTerraformExecutorMockRecorder) GetRecipeMetadata(arg0, arg1 interface{}) *gomock.Call

GetRecipeMetadata indicates an expected call of GetRecipeMetadata.

type Options

type Options struct {
	// RootDir is the root directory of where Terraform is installed and executed for a specific recipe deployment/deletion request.
	RootDir string

	// EnvConfig is the kubernetes runtime and cloud provider configuration for the Radius Environment in which the application consuming the terraform recipe will be deployed.
	EnvConfig *recipes.Configuration

	// EnvRecipe is the recipe metadata associated with the Radius Environment in which the application consuming the terraform recipe will be deployed.
	EnvRecipe *recipes.EnvironmentDefinition

	// ResourceRecipe is recipe metadata associated with the Radius resource deploying the Terraform recipe.
	ResourceRecipe *recipes.ResourceMetadata
}

Options represents the options required to build inputs to interact with Terraform.

type TerraformExecutor

type TerraformExecutor interface {
	// Deploy installs terraform and runs terraform init and apply on the terraform module referenced by the recipe using terraform-exec.
	Deploy(ctx context.Context, options Options) (*tfjson.State, error)

	// Delete installs terraform and runs terraform destroy on the terraform module referenced by the recipe using terraform-exec,
	// and deletes the Kubernetes secret created for terraform state store.
	Delete(ctx context.Context, options Options) error

	// GetRecipeMetadata installs terraform and runs terraform get to retrieve information on the terraform module
	GetRecipeMetadata(ctx context.Context, options Options) (map[string]any, error)
}

Directories

Path Synopsis
backends
Package backends is a generated GoMock package.
Package backends is a generated GoMock package.
providers
Package providers is a generated GoMock package.
Package providers is a generated GoMock package.

Jump to

Keyboard shortcuts

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