terraform

package
v0.0.0-...-56aa1ee Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2020 License: Apache-2.0 Imports: 14 Imported by: 8

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
	Namespace              string
	NetworkCIDR            string
	PrivateCIDR            string
	Project                string
	PublicCIDR             string
	PublicKey              string
	RDSDefaultDatabaseName string
	RDSInstanceClass       string
	RDSPassword            string
	RDSUsername            string
	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"`
	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
	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 {
	Network                     MetadataStringValue `json:"network" valid:"required"`
	PrivateSubnetworkName       MetadataStringValue `json:"private_subnetwork_name" valid:"required"`
	PublicSubnetworkName        MetadataStringValue `json:"public_subnetwork_name" valid:"required"`
	PrivateSubnetworkInternalGw MetadataStringValue `json:"private_subnetwork_internal_gw" valid:"required"`
	PublicSubnetworkInternalGw  MetadataStringValue `json:"public_subnetwork_internal_gw" valid:"required"`
	ATCPublicIP                 MetadataStringValue `json:"atc_public_ip" valid:"required"`
	DirectorAccountCreds        MetadataStringValue `json:"director_account_creds" valid:"required"`
	DirectorPublicIP            MetadataStringValue `json:"director_public_ip" valid:"required"`
	BoshDBAddress               MetadataStringValue `json:"bosh_db_address" valid:"required"`
	DBName                      MetadataStringValue `json:"db_name" valid:"required"`
	NatGatewayIP                MetadataStringValue `json:"nat_gateway_ip" valid:"required"`
	SQLServerCert               MetadataStringValue `json:"server_ca_cert" valid:"required"`
	DirectorSecurityGroupID     MetadataStringValue `json:"director_firewall_name" 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 arbitary element of Options for New

func DownloadTerraform

func DownloadTerraform() Option

DownloadTerraform returns the dowloaded 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