framework

package
v0.0.0-...-730bba4 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2018 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// TestVM is true if in this test run user wants to test VM on istio
	TestVM = flag.Bool("test_vm", false, "whether to test VM on istio")
)

Functions

func InitLogging

func InitLogging() error

InitLogging sets the logging directory. Should be called right after flag.Parse().

Types

type App

type App struct {
	AppYamlTemplate string
	AppYaml         string
	KubeInject      bool
	Template        interface{}
}

App gathers information for Hop app

type AppManager

type AppManager struct {
	Apps []*App
	// contains filtered or unexported fields
}

AppManager organize and deploy apps

func NewAppManager

func NewAppManager(tmpDir, namespace string, istioctl *Istioctl) *AppManager

NewAppManager create a new AppManager

func (*AppManager) AddApp

func (am *AppManager) AddApp(a *App)

AddApp for automated deployment. Must be done before Setup Call.

func (*AppManager) Setup

func (am *AppManager) Setup() error

Setup deploy apps

func (*AppManager) Teardown

func (am *AppManager) Teardown() error

Teardown currently does nothing, only to satisfied cleanable{}

type Cleanable

type Cleanable interface {
	Setup() error
	Teardown() error
}

Cleanable interfaces that need to be registered to CommonConfig

type CommonConfig

type CommonConfig struct {
	// Test Cleanup registration
	Cleanup *testCleanup
	// Test Information
	Info *testInfo
	// Kubernetes and istio installation information
	Kube *KubeInfo
}

CommonConfig regroup all common test configuration.

func NewCommonConfig

func NewCommonConfig(testID string) (*CommonConfig, error)

NewCommonConfig creates a full config with the local head version.

func NewCommonConfigWithVersion

func NewCommonConfigWithVersion(testID, version string) (*CommonConfig, error)

NewCommonConfigWithVersion creates a new CommonConfig with the specified version of Istio. If baseVersion is empty, it will use the local head version.

func (*CommonConfig) RunTest

func (c *CommonConfig) RunTest(m runnable) int

RunTest sets up all registered cleanables in FIFO order Execute the runnable Call teardown on all the cleanables in LIFO order.

type GCPRawVM

type GCPRawVM struct {
	Name        string
	ClusterName string
	Namespace   string
	ProjectID   string
	Zone        string
	// Use Mason does not require provisioning, and therefore all following fields are not required
	UseMason bool
	// ServiceAccount must have iam.serviceAccountActor or owner permissions
	// to the project. Use IAM settings.
	ServiceAccount string
	Image          string
	ImageProject   string
}

GCPRawVM is hosted on Google Cloud Platform

func NewGCPRawVM

func NewGCPRawVM(namespace string) (*GCPRawVM, error)

NewGCPRawVM creates a new vm on GCP

func (*GCPRawVM) GetExternalIP

func (vm *GCPRawVM) GetExternalIP() (string, error)

GetExternalIP returns the internal IP of the VM

func (*GCPRawVM) GetInternalIP

func (vm *GCPRawVM) GetInternalIP() (string, error)

GetInternalIP returns the internal IP of the VM

func (*GCPRawVM) SecureCopy

func (vm *GCPRawVM) SecureCopy(files ...string) (string, error)

SecureCopy copies files to vm via scp

func (*GCPRawVM) SecureShell

func (vm *GCPRawVM) SecureShell(cmd string) (string, error)

SecureShell execeutes cmd on vm through ssh

func (*GCPRawVM) Setup

func (vm *GCPRawVM) Setup() error

Setup initialize the VM

func (*GCPRawVM) Teardown

func (vm *GCPRawVM) Teardown() error

Teardown releases the VM to resource manager

type Istioctl

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

Istioctl gathers istioctl information.

func NewIstioctl

func NewIstioctl(yamlDir, namespace, istioNamespace, proxyHub, proxyTag string) (*Istioctl, error)

NewIstioctl create a new istioctl by given temp dir.

func (*Istioctl) CreateRule

func (i *Istioctl) CreateRule(rule string) error

CreateRule create new rule(s)

func (*Istioctl) DeleteRule

func (i *Istioctl) DeleteRule(rule string) error

DeleteRule Delete rule(s)

func (*Istioctl) Install

func (i *Istioctl) Install() error

Install downloads Istioctl binary.

func (*Istioctl) KubeInject

func (i *Istioctl) KubeInject(src, dest string) error

KubeInject use istio kube-inject to create new yaml with a proxy as sidecar.

func (*Istioctl) ReplaceRule

func (i *Istioctl) ReplaceRule(rule string) error

ReplaceRule replace rule(s)

func (*Istioctl) Setup

func (i *Istioctl) Setup() error

Setup set up istioctl prerequest for tests, port forwarding

func (*Istioctl) Teardown

func (i *Istioctl) Teardown() error

Teardown clean up everything created by setup

type KubeInfo

type KubeInfo struct {
	Namespace string

	TmpDir string

	AuthEnabled bool

	// Istioctl installation
	Istioctl *Istioctl
	// App Manager
	AppManager *AppManager

	// Release directory
	ReleaseDir string
	// Use baseversion if not empty.
	BaseVersion string
	// contains filtered or unexported fields
}

KubeInfo gathers information for kubectl

func (*KubeInfo) Ingress

func (k *KubeInfo) Ingress() (string, error)

Ingress lazily initialize ingress

func (*KubeInfo) IngressOrFail

func (k *KubeInfo) IngressOrFail(t *testing.T) string

IngressOrFail lazily initialize ingress and fail test if not found.

func (*KubeInfo) Setup

func (k *KubeInfo) Setup() error

Setup set up Kubernetes prerequest for tests

func (*KubeInfo) Teardown

func (k *KubeInfo) Teardown() error

Teardown clean up everything created by setup

type RawVM

type RawVM interface {
	Cleanable
	GetInternalIP() (string, error)
	GetExternalIP() (string, error)
	SecureShell(cmd string) (string, error)
	SecureCopy(files ...string) (string, error)
}

RawVM interfaces different cloud venders to support e2e testing with VM

Jump to

Keyboard shortcuts

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