integration_tests

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2018 License: Apache-2.0 Imports: 27 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    = "Z1U99XHRIRLO81"
)

Variables

This section is empty.

Functions

func AWSClientFromEnvironment

func AWSClientFromEnvironment() (infrastructureProvisioner, bool)

func ContainsOverrides

func ContainsOverrides(nodes provisionedNodes, sshKey string) error

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

func FailIfSuccess(err error)

func FileExists

func FileExists(path string) bool

func GetSSHKeyFile

func GetSSHKeyFile() (string, error)

func InstallDockerPackage added in v1.8.0

func InstallDockerPackage(nodes provisionedNodes, distro linuxDistro, sshKey string)

func InstallKismaticPackages

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 SubDescribe

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

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

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

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
		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

type DNSRecord struct {
	Name   string
	Values []string
}

type NFSVolume

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
	DisableDockerInstallation    bool
	DisconnectedInstallation     bool
	DockerRegistryServer         string
	DockerRegistryCAPath         string
	DockerRegistryUsername       string
	DockerRegistryPassword       string
	ModifyHostsFiles             bool
	HTTPProxy                    string
	HTTPSProxy                   string
	NoProxy                      string
	DockerStorageDriver          string
	ServiceCIDR                  string
	DisableCNI                   bool
	CNIProvider                  string
	DNSProvider                  string
	DisableHelm                  bool
	HeapsterReplicas             int
	HeapsterInfluxdbPVC          string
	CloudProvider                string
	KubeAPIServerOptions         map[string]string
	KubeControllerManagerOptions map[string]string
	KubeSchedulerOptions         map[string]string
	KubeProxyOptions             map[string]string
	KubeletOptions               map[string]string
}

func ValidateKismaticMini

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

ValidateKismaticMini runs validation against a mini Kubernetes cluster

func ValidateKismaticMiniWithBadSSH

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