integration

package
v1.4.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	Ubuntu1604LTS = linuxDistro("ubuntu1604LTS")
	CentOS7       = linuxDistro("centos7")
	RedHat7       = linuxDistro("rhel7")

	AWSTargetRegion    = "us-east-1"
	AWSSubnetID        = "subnet-25e13d08"
	AWSKeyName         = "kismatic-integration-testing"
	AWSSecurityGroupID = "sg-d1dc4dab"
	AWSHostedZoneID    = "Z1LNBHSE28OF08"
)

Variables

This section is empty.

Functions

func AWSClientFromEnvironment

func AWSClientFromEnvironment() (infrastructureProvisioner, bool)

func CopyDir

func CopyDir(src string, dst string) (err error)

CopyDir recursively copies a directory tree, attempting to preserve permissions. Source directory must exist, destination directory must *not* exist. Symlinks are ignored and skipped.

func CopyFile

func CopyFile(src, dst string) (err error)

CopyFile copies the contents of the file named src to the file named by dst. The file will be created if it does not already exist. If the destination file exists, all it's contents will be replaced by the contents of the source file. The file mode will be copied from the source and the copied data is synced/flushed to stable storage.

func FailIfError

func FailIfError(err error, message ...interface{})

func FailIfSuccess added in v1.1.0

func FailIfSuccess(err error)

func FileExists

func FileExists(path string) bool

func GetSSHKeyFile

func GetSSHKeyFile() (string, error)

func InstallKismaticPackages added in v1.1.0

func InstallKismaticPackages(nodes provisionedNodes, distro linuxDistro, sshKey string, disconnected bool)

func ItOnAWS

func ItOnAWS(description string, f func(infrastructureProvisioner))

ItOnAWS runs a spec if the AWS details have been provided

func ItOnPacket

func ItOnPacket(description string, f func(infrastructureProvisioner))

ItOnPacket runs a spec if the Packet.Net details have been provided

func RemoveKismaticPackages added in v1.3.0

func RemoveKismaticPackages()

RemoveKismaticPackages by running the _packages-cleanup.yaml play

func SubDescribe added in v1.3.0

func SubDescribe(name string) *subTest

SubDescribe allows you to define specifications inside another spec. We have found the need for this because Gingko does not support serializing a subset of tests when running in parallel. This means that we must define multiple specs inside a parent It() block. Use this when it is truly needed.

Example:

Describe("the foo service", func() {
	It("should be deployed successfully", func() {
		// some assertions here...
		sub := SubDescribe("should return 200", func() error {
			// call service and return error if not 200
		})
	})
})

func ValidateKismaticMiniDenyPkgInstallation

func ValidateKismaticMiniDenyPkgInstallation(node NodeDeets, sshUser, sshKey string) error

func WaitUntilSSHOpen added in v1.2.0

func WaitUntilSSHOpen(publicIP, sshUser, sshKey string, timeout time.Duration) bool

WaitUntilSSHOpen waits up to the given timeout for a successful SSH connection to the given node. If the connection is open, returns true. If the timeout is reached, returns false.

func WithInfrastructure

func WithInfrastructure(nodeCount NodeCount, distro linuxDistro, provisioner infrastructureProvisioner, f infraDependentTest)

WithInfrastructure runs the spec with the requested infrastructure

func WithInfrastructureAndDNS added in v1.0.1

func WithInfrastructureAndDNS(nodeCount NodeCount, distro linuxDistro, provisioner infrastructureProvisioner, f infraDependentTest)

WithInfrastructureAndDNS runs the spec with the requested infrastructure and DNS

func WithMiniInfrastructure

func WithMiniInfrastructure(distro linuxDistro, provisioner infrastructureProvisioner, f miniInfraDependentTest)

WithMiniInfrastructure runs the spec with a Minikube-like infrastructure setup.

func WithMiniInfrastructureAndBlockDevice added in v1.3.1

func WithMiniInfrastructureAndBlockDevice(distro linuxDistro, provisioner infrastructureProvisioner, f miniInfraDependentTest)

WithMiniInfrastructureAndBlockDevice runs the spec with the requested infrastructure and an additiona block device The block will be under /dev/xvdb on AWS

Types

type ClusterPlan

type ClusterPlan struct {
	Cluster struct {
		Name                       string
		AdminPassword              string `yaml:"admin_password"`
		DisablePackageInstallation string `yaml:"disable_package_installation"`
		Networking                 struct {
			Type             string
			PodCIDRBlock     string `yaml:"pod_cidr_block"`
			ServiceCIDRBlock string `yaml:"service_cidr_block"`
		}
		Certificates struct {
			Expiry          string
			LocationCity    string `yaml:"location_city"`
			LocationState   string `yaml:"location_state"`
			LocationCountry string `yaml:"location_country"`
		}
		SSH struct {
			User string
			Key  string `yaml:"ssh_key"`
			Port int    `yaml:"ssh_port"`
		}
	}
	Etcd struct {
		ExpectedCount int `yaml:"expected_count"`
		Nodes         []NodePlan
	}
	Master struct {
		ExpectedCount         int `yaml:"expected_count"`
		Nodes                 []NodePlan
		LoadBalancedFQDN      string `yaml:"load_balanced_fqdn"`
		LoadBalancedShortName string `yaml:"load_balanced_short_name"`
	}
	Worker struct {
		ExpectedCount int `yaml:"expected_count"`
		Nodes         []NodePlan
	}
	Ingress struct {
		ExpectedCount int `yaml:"expected_count"`
		Nodes         []NodePlan
	}
	Storage struct {
		ExpectedCount int `yaml:"expected_count"`
		Nodes         []NodePlan
	}
	NFS struct {
		Volumes []NFSVolume `yaml:"nfs_volume"`
	}
}

type DNSRecord added in v1.0.1

type DNSRecord struct {
	Name   string
	Values []string
}

type NFSVolume added in v1.2.0

type NFSVolume struct {
	Host string
}

type NodeCount

type NodeCount struct {
	Etcd    uint16
	Master  uint16
	Worker  uint16
	Ingress uint16
	Storage uint16
}

func (NodeCount) Total

func (nc NodeCount) Total() uint16

type NodeDeets

type NodeDeets struct {
	Hostname  string
	PublicIP  string
	PrivateIP string
	SSHUser   string
	// contains filtered or unexported fields
}

type NodePlan

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

type PlanAWS

type PlanAWS struct {
	Etcd                         []NodeDeets
	Master                       []NodeDeets
	Worker                       []NodeDeets
	Ingress                      []NodeDeets
	Storage                      []NodeDeets
	NFSVolume                    []NFSVolume
	MasterNodeFQDN               string
	MasterNodeShortName          string
	SSHUser                      string
	SSHKeyFile                   string
	HomeDirectory                string
	DisablePackageInstallation   bool
	DisconnectedInstallation     bool
	DisableRegistrySeeding       bool
	AutoConfiguredDockerRegistry bool
	DockerRegistryIP             string
	DockerRegistryPort           int
	DockerRegistryCAPath         string
	ModifyHostsFiles             bool
	HTTPProxy                    string
	HTTPSProxy                   string
	NoProxy                      string
	UseDirectLVM                 bool
	ServiceCIDR                  string
	DisableHelm                  bool
	HeapsterReplicas             int
	HeapsterInfluxdbPVC          string
}

func ValidateKismaticMini

func ValidateKismaticMini(node NodeDeets, user, sshKey string) PlanAWS

ValidateKismaticMini runs validation against a mini Kubernetes cluster

func ValidateKismaticMiniWithBadSSH added in v1.1.0

func ValidateKismaticMiniWithBadSSH(node NodeDeets, user, sshKey string) PlanAWS

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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