terraform

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2022 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetExecutable

func GetExecutable(ctx context.Context, workingDir string) (terraform *tfexec.Terraform, remove func(), err error)

GetExecutable returns a Terraform executable either from the local filesystem, or downloads the latest version fulfilling the version constraint.

Types

type Client

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

Client manages interaction with Terraform.

func New

func New(ctx context.Context, provider cloudprovider.Provider) (*Client, error)

New sets up a new Client for Terraform.

func (*Client) CleanUpWorkspace

func (c *Client) CleanUpWorkspace() error

CleanUpWorkspace removes terraform files from the current directory.

func (*Client) CreateCluster

func (c *Client) CreateCluster(ctx context.Context, name string, vars Variables) error

CreateCluster creates a Constellation cluster using Terraform.

func (*Client) DestroyCluster

func (c *Client) DestroyCluster(ctx context.Context) error

DestroyInstances destroys a Constellation cluster using Terraform.

func (*Client) GetState

func (c *Client) GetState() state.ConstellationState

GetState returns the state of the cluster.

func (*Client) RemoveInstaller

func (c *Client) RemoveInstaller()

RemoveInstaller removes the Terraform installer, if it was downloaded for this command.

type CommonVariables

type CommonVariables struct {
	// Name of the cluster.
	Name string
	// CountControlPlanes is the number of control-plane nodes to create.
	CountControlPlanes int
	// CountWorkers is the number of worker nodes to create.
	CountWorkers int
	// StateDiskSizeGB is the size of the state disk to allocate to each node, in GB.
	StateDiskSizeGB int
}

CommonVariables is user configuration for creating a cluster with Terraform.

func (*CommonVariables) String

func (v *CommonVariables) String() string

String returns a string representation of the variables, formatted as Terraform variables.

type GCPVariables

type GCPVariables struct {
	// CommonVariables contains common variables.
	CommonVariables

	// Project is the ID of the GCP project to use.
	Project string
	// Region is the GCP region to use.
	Region string
	// Zone is the GCP zone to use.
	Zone string
	// CredentialsFile is the path to the GCP credentials file.
	CredentialsFile string
	// InstanceType is the GCP instance type to use.
	InstanceType string
	// StateDiskType is the GCP disk type to use for the state disk.
	StateDiskType string
	// ImageID is the ID of the GCP image to use.
	ImageID string
	// Debug is true if debug mode is enabled.
	Debug bool
}

GCPVariables is user configuration for creating a cluster with Terraform on GCP.

func (*GCPVariables) String

func (v *GCPVariables) String() string

String returns a string representation of the variables, formatted as Terraform variables.

type QEMUVariables

type QEMUVariables struct {
	// CommonVariables contains common variables.
	CommonVariables

	// LibvirtURI is the libvirt connection URI.
	LibvirtURI string
	// LibvirtSocketPath is the path to the libvirt socket in case of unix socket.
	LibvirtSocketPath string
	// CPUCount is the number of CPUs to allocate to each node.
	CPUCount int
	// MemorySizeMiB is the amount of memory to allocate to each node, in MiB.
	MemorySizeMiB int
	// IPRangeStart is the first IP address in the IP range to allocate to the cluster.
	ImagePath string
	// ImageFormat is the format of the image from ImagePath.
	ImageFormat string
	// MetadataAPIImage is the container image to use for the metadata API.
	MetadataAPIImage string
	// MetadataLibvirtURI is the libvirt connection URI used by the metadata container.
	// In case of unix socket, this should be "qemu:///system".
	// Other wise it should be the same as LibvirtURI.
	MetadataLibvirtURI string
}

QEMUVariables is user configuration for creating a QEMU cluster with Terraform.

func (*QEMUVariables) String

func (v *QEMUVariables) String() string

String returns a string representation of the variables, formatted as Terraform variables.

type Variables

type Variables interface {
	fmt.Stringer
}

Variables is a struct that holds all variables that are passed to Terraform.

Jump to

Keyboard shortcuts

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