terraform

package
v0.36.0 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2024 License: Apache-2.0 Imports: 34 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 GetProviderEnvSecretIDs added in v0.36.0

func GetProviderEnvSecretIDs(envConfig recipes.Configuration) map[string][]string

GetProviderEnvSecretIDs parses the envConfig to extract secret IDs configured in providers configuration and environment variables and returns a map of secret store IDs and corresponding slice of keys.

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

func (m *MockTerraformExecutor) Deploy(arg0 context.Context, arg1 Options) (*tfjson.State, error)

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]any, error)

GetRecipeMetadata mocks base method.

type MockTerraformExecutorDeleteCall added in v0.35.0

type MockTerraformExecutorDeleteCall struct {
	*gomock.Call
}

MockTerraformExecutorDeleteCall wrap *gomock.Call

func (*MockTerraformExecutorDeleteCall) Do added in v0.35.0

Do rewrite *gomock.Call.Do

func (*MockTerraformExecutorDeleteCall) DoAndReturn added in v0.35.0

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockTerraformExecutorDeleteCall) Return added in v0.35.0

Return rewrite *gomock.Call.Return

type MockTerraformExecutorDeployCall added in v0.35.0

type MockTerraformExecutorDeployCall struct {
	*gomock.Call
}

MockTerraformExecutorDeployCall wrap *gomock.Call

func (*MockTerraformExecutorDeployCall) Do added in v0.35.0

Do rewrite *gomock.Call.Do

func (*MockTerraformExecutorDeployCall) DoAndReturn added in v0.35.0

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockTerraformExecutorDeployCall) Return added in v0.35.0

Return rewrite *gomock.Call.Return

type MockTerraformExecutorGetRecipeMetadataCall added in v0.35.0

type MockTerraformExecutorGetRecipeMetadataCall struct {
	*gomock.Call
}

MockTerraformExecutorGetRecipeMetadataCall wrap *gomock.Call

func (*MockTerraformExecutorGetRecipeMetadataCall) Do added in v0.35.0

Do rewrite *gomock.Call.Do

func (*MockTerraformExecutorGetRecipeMetadataCall) DoAndReturn added in v0.35.0

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockTerraformExecutorGetRecipeMetadataCall) Return added in v0.35.0

Return rewrite *gomock.Call.Return

type MockTerraformExecutorMockRecorder

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

MockTerraformExecutorMockRecorder is the mock recorder for MockTerraformExecutor.

func (*MockTerraformExecutorMockRecorder) Delete

Delete indicates an expected call of Delete.

func (*MockTerraformExecutorMockRecorder) Deploy

Deploy indicates an expected call of Deploy.

func (*MockTerraformExecutorMockRecorder) GetRecipeMetadata

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

	// Secrets represents a map of secrets required for recipe execution.
	// The outer map's key represents the secretStoreIDs while
	// while the inner map's key-value pairs represent the [secretKey]secretValue.
	Secrets map[string]map[string]string
}

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