environment

package
v0.2.51 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2022 License: MIT Imports: 25 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Artifacts

type Artifacts struct {
	Namespace string
	DBName    string
	Client    *client.K8sClient
	// contains filtered or unexported fields
}

Artifacts is an artifacts dumping structure that copies logs and database dumps for all deployed pods

func NewArtifacts

func NewArtifacts(client *client.K8sClient, namespace string) (*Artifacts, error)

NewArtifacts create new artifacts instance for provided environment

func (*Artifacts) DumpTestResult

func (a *Artifacts) DumpTestResult(testDir string, dbName string) error

DumpTestResult dumps all pods logs and db dump in a separate test dir

type Config

type Config struct {
	// TTL is time to live for the environment, used with kube-janitor
	TTL time.Duration
	// NamespacePrefix is a static namespace prefix
	NamespacePrefix string
	// Namespace is full namespace name
	Namespace string
	// Labels is a set of labels applied to the namespace in a format of "key=value"
	Labels []string

	// Allow deployment to nodes with these olerances
	Tolerations []map[string]string
	// Restrict deployment to only nodes matching a particular node role
	NodeSelector map[string]string
	// ReadyCheckData is settings for readiness probes checks for all deployment components
	// checking that all pods are ready by default with 8 minutes timeout
	//	&client.ReadyCheckData{
	//		ReadinessProbeCheckSelector: "",
	//		Timeout:                     8 * time.Minute,
	//	}
	ReadyCheckData *client.ReadyCheckData
	// DryRun if true, app will just generate a manifest in local dir
	DryRun bool
	// InsideK8s used for long-running soak tests where you connect to env from the inside
	InsideK8s bool
	// KeepConnection keeps connection until interrupted with a signal, useful when prototyping and debugging a new env
	KeepConnection bool
	// RemoveOnInterrupt automatically removes an environment on interrupt
	RemoveOnInterrupt bool
	// UpdateWaitInterval an interval to wait for deployment update started
	UpdateWaitInterval time.Duration
	// contains filtered or unexported fields
}

Config is an environment common configuration, labels, annotations, connection types, readiness check, etc.

type ConnectedChart added in v0.2.3

type ConnectedChart interface {
	// IsDeploymentNeeded
	// true - we deploy/connect and expose environment data
	// false - we are using external environment, but still exposing data
	IsDeploymentNeeded() bool
	// GetName name of the deployed part
	GetName() string
	// GetPath get Helm chart path, repo or local path
	GetPath() string
	// GetVersion gets the chart's version, empty string if none is specified
	GetVersion() string
	// GetProps get code props if it's typed environment
	GetProps() interface{}
	// GetValues get values.yml props as map, if it's Helm
	GetValues() *map[string]interface{}
	// ExportData export deployment part data in the env
	ExportData(e *Environment) error
}

ConnectedChart interface to interact both with cdk8s apps and helm charts

type Environment

type Environment struct {
	App cdk8s.App

	Charts    []ConnectedChart  // All connected charts in the
	Cfg       *Config           // The environment specific config
	Client    *client.K8sClient // Client connecting to the K8s cluster
	Fwd       *client.Forwarder // Used to forward ports from local machine to the K8s cluster
	Artifacts *Artifacts
	Chaos     *client.Chaos
	URLs      map[string][]string // General URLs of launched resources. Uses '_local' to delineate forwarded ports
	// contains filtered or unexported fields
}

Environment describes a launched test environment

func New

func New(cfg *Config) *Environment

New creates new environment

func (*Environment) AddChart added in v0.2.3

func (m *Environment) AddChart(f func(root cdk8s.Chart) ConnectedChart) *Environment

AddChart adds a chart to the deployment

func (*Environment) AddHelm added in v0.2.3

func (m *Environment) AddHelm(chart ConnectedChart) *Environment

func (*Environment) ClearCharts added in v0.2.26

func (m *Environment) ClearCharts()

ClearCharts recreates cdk8s app

func (*Environment) Deploy

func (m *Environment) Deploy(manifest string) error

Deploy deploy synthesized manifest and check logs for readiness

func (*Environment) DumpLogs added in v0.2.25

func (m *Environment) DumpLogs(path string) error

DumpLogs dumps all logs into a file

func (*Environment) ModifyHelm added in v0.2.26

func (m *Environment) ModifyHelm(name string, chart ConnectedChart) *Environment

ModifyHelm modifies helm chart in deployment

func (*Environment) PrintExportData added in v0.2.26

func (m *Environment) PrintExportData() error

PrintExportData prints export data

func (*Environment) ResourcesSummary added in v0.2.24

func (m *Environment) ResourcesSummary(selector string) (map[string]map[string]string, error)

ResourcesSummary returns resources summary for selected pods as a map, used in reports

func (*Environment) Run added in v0.2.3

func (m *Environment) Run() error

Run deploys or connects to already created environment

func (*Environment) Shutdown

func (m *Environment) Shutdown() error

Shutdown environment, remove namespace

Jump to

Keyboard shortcuts

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