terraform

package
v0.0.0-...-f17ef4b Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2017 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const Template = `` /* 11540-byte string literal not displayed */

Template is a terraform configuration template

Variables

This section is empty.

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() 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(config []byte, stdout, stderr io.Writer) (IClient, error)

ClientFactory is a function that builds a client interface

type IClient

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

IClient is an interface for the terraform Client

func NewClient

func NewClient(config []byte, 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"`
	DirectorSecurityGroupID MetadataStringValue `json:"director_security_group_id" valid:"required"`
	VMsSecurityGroupID      MetadataStringValue `json:"vms_security_group_id" valid:"required"`
	ELBSecurityGroupID      MetadataStringValue `json:"elb_security_group_id" valid:"required"`
	DefaultSubnetID         MetadataStringValue `json:"default_subnet_id" 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"`
	ELBName                  MetadataStringValue `json:"elb_name"`
	ELBDNSName               MetadataStringValue `json:"elb_dns_name"`
	SourceAccessIP           MetadataStringValue `json:"source_access_ip"`
}

Metadata represents the terraform output variables

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