terraform

package
v0.0.0-...-4f22f6d Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSInputVars

type AWSInputVars struct {
	AllowIPs               string
	AvailabilityZone       string
	ConfigBucket           string
	Deployment             string
	HostedZoneID           string
	HostedZoneRecordPrefix string
	MetricsEnabled         bool
	Namespace              string
	NetworkCIDR            string
	PrivateCIDR            string
	Project                string
	PublicCIDR             string
	PublicKey              string
	RDSDefaultDatabaseName string
	RDSInstanceClass       string
	RDSPassword            string
	RDSUsername            string
	RDSDiskEncryption      bool
	RDS1CIDR               string
	RDS2CIDR               string
	Region                 string
	SourceAccessIP         string
	TFStatePath            string
}

InputVars holds all the parameters AWS IAAS needs

func (*AWSInputVars) ConfigureTerraform

func (v *AWSInputVars) ConfigureTerraform(terraformContents string) (string, error)

ConfigureTerraform interpolates terraform contents and returns terraform config

type AWSOutputs

type AWSOutputs struct {
	ATCPublicIP               MetadataStringValue `json:"atc_public_ip" valid:"required"`
	ATCSecurityGroupID        MetadataStringValue `json:"atc_security_group_id" valid:"required"`
	BlobstoreBucket           MetadataStringValue `json:"blobstore_bucket" valid:"required"`
	BlobstoreSecretAccessKey  MetadataStringValue `json:"blobstore_user_secret_access_key" valid:"required"`
	BlobstoreUserAccessKeyID  MetadataStringValue `json:"blobstore_user_access_key_id" valid:"required"`
	BoshDBAddress             MetadataStringValue `json:"bosh_db_address" valid:"required"`
	BoshDBPort                MetadataStringValue `json:"bosh_db_port" valid:"required"`
	BoshSecretAccessKey       MetadataStringValue `json:"bosh_user_secret_access_key" valid:"required"`
	BoshUserAccessKeyID       MetadataStringValue `json:"bosh_user_access_key_id" valid:"required"`
	DirectorKeyPair           MetadataStringValue `json:"director_key_pair" valid:"required"`
	DirectorPublicIP          MetadataStringValue `json:"director_public_ip" valid:"required"`
	DirectorSecurityGroupID   MetadataStringValue `json:"director_security_group_id" valid:"required"`
	NatGatewayIP              MetadataStringValue `json:"nat_gateway_ip" valid:"required"`
	PrivateSubnetID           MetadataStringValue `json:"private_subnet_id" valid:"required"`
	PublicSubnetID            MetadataStringValue `json:"public_subnet_id" valid:"required"`
	SelfUpdateSecretAccessKey MetadataStringValue `json:"self_update_user_secret_access_key" valid:"required"`
	SelfUpdateUserAccessKeyID MetadataStringValue `json:"self_update_user_access_key_id" valid:"required"`
	SourceAccessIP            MetadataStringValue `json:"source_access_ip"`
	VMsSecurityGroupID        MetadataStringValue `json:"vms_security_group_id" valid:"required"`
	VPCID                     MetadataStringValue `json:"vpc_id" valid:"required"`
}

Metadata represents output from terraform on AWS or GCP

func (*AWSOutputs) AssertValid

func (outputs *AWSOutputs) AssertValid() error

AssertValid returns an error if the struct contains any missing fields

func (*AWSOutputs) Get

func (outputs *AWSOutputs) Get(key string) (string, error)

Get returns a the specified value from the outputs struct

func (*AWSOutputs) Init

func (outputs *AWSOutputs) Init(buffer *bytes.Buffer) error

Init populates outputs struct with values from the buffer

type CLI

type CLI struct {
	Path string
	// contains filtered or unexported fields
}

CLI struct holds the abstraction of execCmd

func New

func New(iaas iaas.Name, ops ...Option) (*CLI, error)

New provides a new CLI

func (*CLI) Apply

func (c *CLI) Apply(config InputVars) error

Apply runs terraform apply for a given config

func (*CLI) BuildOutput

func (c *CLI) BuildOutput(config InputVars) (Outputs, error)

BuildOutput builds the terraform output

func (*CLI) Destroy

func (c *CLI) Destroy(config InputVars) error

Destroy destroys terraform resources specified in a config file

type CLIInterface

type CLIInterface interface {
	Apply(InputVars) error
	Destroy(InputVars) error
	BuildOutput(InputVars) (Outputs, error)
}

CLIInterface is the abstraction of execCmd

type GCPInputVars

type GCPInputVars struct {
	AllowIPs           string
	ConfigBucket       string
	DBName             string
	DBPassword         string
	DBTier             string
	DBUsername         string
	Deployment         string
	DNSManagedZoneName string
	DNSRecordSetPrefix string
	ExternalIP         string
	GCPCredentialsJSON string
	MetricsEnabled     bool
	Namespace          string
	PrivateCIDR        string
	Project            string
	PublicCIDR         string
	Region             string
	Tags               string
	Zone               string
}

InputVars holds all the parameters GCP IAAS needs

func (*GCPInputVars) ConfigureTerraform

func (v *GCPInputVars) ConfigureTerraform(terraformContents string) (string, error)

ConfigureTerraform interpolates terraform contents and returns terraform config

type GCPOutputs

type GCPOutputs struct {
	ATCPublicIP                 MetadataStringValue `json:"atc_public_ip" valid:"required"`
	BoshDBAddress               MetadataStringValue `json:"bosh_db_address" valid:"required"`
	DBName                      MetadataStringValue `json:"db_name" valid:"required"`
	DirectorAccountCreds        MetadataStringValue `json:"director_account_creds" valid:"required"`
	DirectorPublicIP            MetadataStringValue `json:"director_public_ip" valid:"required"`
	DirectorSecurityGroupID     MetadataStringValue `json:"director_firewall_name" valid:"required"`
	NatGatewayIP                MetadataStringValue `json:"nat_gateway_ip" valid:"required"`
	Network                     MetadataStringValue `json:"network" valid:"required"`
	PrivateSubnetworkInternalGw MetadataStringValue `json:"private_subnetwork_internal_gw" valid:"required"`
	PrivateSubnetworkName       MetadataStringValue `json:"private_subnetwork_name" valid:"required"`
	PublicSubnetworkInternalGw  MetadataStringValue `json:"public_subnetwork_internal_gw" valid:"required"`
	PublicSubnetworkName        MetadataStringValue `json:"public_subnetwork_name" valid:"required"`
	SelfUpdateAccountCreds      MetadataStringValue `json:"self_update_account_creds" valid:"required"`
	SQLServerCert               MetadataStringValue `json:"server_ca_cert" valid:"required"`
}

Metadata represents output from terraform on GCP or GCP

func (*GCPOutputs) AssertValid

func (outputs *GCPOutputs) AssertValid() error

AssertValid returns an error if the struct contains any missing fields

func (*GCPOutputs) Get

func (outputs *GCPOutputs) Get(key string) (string, error)

Get returns a the specified value from the outputs struct

func (*GCPOutputs) Init

func (outputs *GCPOutputs) Init(buffer *bytes.Buffer) error

Init populates outputs struct with values from the buffer

type InputVars

type InputVars interface {
	ConfigureTerraform(string) (string, error)
}

InputVars exposes ConfigureDirectorManifestCPI

type MetadataStringValue

type MetadataStringValue struct {
	Value string `json:"value"`
}

MetadataStringValue is a terraform output string variable

type NullInputVars

type NullInputVars struct{}

func (*NullInputVars) Build

func (n *NullInputVars) Build(map[string]interface{}) error

func (*NullInputVars) ConfigureTerraform

func (n *NullInputVars) ConfigureTerraform(string) (string, error)

type NullOutputs

type NullOutputs struct{}

func (*NullOutputs) AssertValid

func (n *NullOutputs) AssertValid() error

func (*NullOutputs) Get

func (n *NullOutputs) Get(string) (string, error)

func (*NullOutputs) Init

func (n *NullOutputs) Init(*bytes.Buffer) error

type Option

type Option func(*CLI) error

Option defines the arbitrary element of Options for New

func DownloadTerraform

func DownloadTerraform(versionFile []byte) Option

DownloadTerraform returns the downloaded CLI path Option

func Path

func Path(path string) Option

Path returns the path of the terraform-cli as an Option

type Outputs

type Outputs interface {
	AssertValid() error
	Init(*bytes.Buffer) error
	Get(string) (string, error)
}

Outputs holds IAAS specific terraform outputs

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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