terraform

package
v0.0.0-...-96bdf66 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2017 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const AWSTemplate = `` /* 12584-byte string literal not displayed */

AWSTemplate is a terraform configuration template for AWS

Variables

View Source
var DarwinBinaryURL = "COMPILE_TIME_VARIABLE_terraform_darwin_binary_url"

DarwinBinaryURL is a compile-time variable set with -ldflags

View Source
var LinuxBinaryURL = "COMPILE_TIME_VARIABLE_terraform_linux_binary_url"

LinuxBinaryURL is a compile-time variable set with -ldflags

View Source
var WindowsBinaryURL = "COMPILE_TIME_VARIABLE_terraform_windows_binary_url"

WindowsBinaryURL is a compile-time variable set with -ldflags

Functions

This section is empty.

Types

type Client

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

Client wraps common terraform commands

func (*Client) Apply

func (client *Client) Apply(dryrun bool) error

Apply takes a terraform config and applies it

func (*Client) Cleanup

func (client *Client) Cleanup() error

Cleanup cleans up the temporary directory used by terraform

func (*Client) Destroy

func (client *Client) Destroy() error

Destroy destroys the given terraform config

func (*Client) Output

func (client *Client) Output() (*Metadata, error)

Output fetches the terraform output/metadata

type ClientFactory

type ClientFactory func(iaas string, config *config.Config, stdout, stderr io.Writer) (IClient, error)

ClientFactory is a function that builds a client interface

type IClient

type IClient interface {
	Output() (*Metadata, error)
	Apply(dryrun bool) error
	Destroy() error
	Cleanup() error
}

IClient is an interface for the terraform Client

func NewClient

func NewClient(iaas string, config *config.Config, stdout, stderr io.Writer) (IClient, error)

NewClient is a concrete implementation of ClientFactory

type Metadata

type Metadata struct {
	DirectorKeyPair         MetadataStringValue `json:"director_key_pair" valid:"required"`
	DirectorPublicIP        MetadataStringValue `json:"director_public_ip" valid:"required"`
	ATCPublicIP             MetadataStringValue `json:"atc_public_ip" valid:"required"`
	DirectorSecurityGroupID MetadataStringValue `json:"director_security_group_id" valid:"required"`
	VMsSecurityGroupID      MetadataStringValue `json:"vms_security_group_id" valid:"required"`
	ATCSecurityGroupID      MetadataStringValue `json:"atc_security_group_id" valid:"required"`
	PublicSubnetID          MetadataStringValue `json:"public_subnet_id" valid:"required"`
	PrivateSubnetID         MetadataStringValue `json:"private_subnet_id" valid:"required"`
	VPCID                   MetadataStringValue `json:"vpc_id" valid:"required"`
	NatGatewayIP            MetadataStringValue `json:"nat_gateway_ip" valid:"required"`

	BlobstoreBucket          MetadataStringValue `json:"blobstore_bucket" valid:"required"`
	BlobstoreUserAccessKeyID MetadataStringValue `json:"blobstore_user_access_key_id" valid:"required"`
	BlobstoreSecretAccessKey MetadataStringValue `json:"blobstore_user_secret_access_key" valid:"required"`
	BoshUserAccessKeyID      MetadataStringValue `json:"bosh_user_access_key_id" valid:"required"`
	BoshSecretAccessKey      MetadataStringValue `json:"bosh_user_secret_access_key" valid:"required"`
	BoshDBPort               MetadataStringValue `json:"bosh_db_port" valid:"required"`
	BoshDBAddress            MetadataStringValue `json:"bosh_db_address" valid:"required"`
	SourceAccessIP           MetadataStringValue `json:"source_access_ip"`
}

Metadata represents output from terraform on AWS or GCP

func (*Metadata) AssertValid

func (metadata *Metadata) AssertValid() error

AssertValid returns an error if the struct contains any missing fields

type MetadataStringValue

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

MetadataStringValue is a terraform output string variable

Jump to

Keyboard shortcuts

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