v1alpha1

package
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the kudo v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kudobuilder/kudo/pkg/apis/kudo +k8s:defaulter-gen=TypeMeta +groupName=kudo.dev

Package v1alpha1 contains API Schema definitions for the kudo v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kudobuilder/kudo/pkg/apis/kudo +k8s:defaulter-gen=TypeMeta +groupName=kudo.dev

Index

Constants

View Source
const DefaultKINDContext = "kind"

DefaultKINDContext defines the default kind context to use.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "kudo.dev", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme is required by pkg/client/...
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type AggregatedStatus added in v0.7.0

type AggregatedStatus struct {
	Status         ExecutionStatus `json:"status,omitempty"`
	ActivePlanName string          `json:"activePlanName,omitempty"`
}

AggregatedStatus is overview of an instance status derived from the plan status

func (*AggregatedStatus) DeepCopy added in v0.7.0

func (in *AggregatedStatus) DeepCopy() *AggregatedStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregatedStatus.

func (*AggregatedStatus) DeepCopyInto added in v0.7.0

func (in *AggregatedStatus) DeepCopyInto(out *AggregatedStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Command added in v0.7.0

type Command struct {
	// The command and argument to run as a string.
	Command string `json:"command"`
	// If set, the `--namespace` flag will be appended to the command with the namespace to use.
	Namespaced bool `json:"namespaced"`
	// If set, failures will be ignored.
	IgnoreFailure bool `json:"ignoreFailure"`
}

Command describes a command to run as a part of a test step or suite.

func (*Command) DeepCopy added in v0.7.0

func (in *Command) DeepCopy() *Command

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Command.

func (*Command) DeepCopyInto added in v0.7.0

func (in *Command) DeepCopyInto(out *Command)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Config

type Config struct {
	Template *string `json:"template" yaml:"template" validate:"required,gt=0"` // makes field mandatory and checks if non empty
	Dest     *string `json:"dest" yaml:"dest" validate:"required,gt=0"`         // makes field mandatory and checks if non empty
}

Config represents a config template which is rendered before the pods are launched.

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Discovery

type Discovery struct {
	Prefix     *string `json:"prefix" yaml:"prefix"`         // no checks needed (TODO: not sure if needed at all, e.g. would it map to a service in k8s)
	Visibility *string `json:"visibility" yaml:"visibility"` // no checks needed (TODO: not sure if needed at all, e.g. would it map to a service in k8s)
}

Discovery represents information about how a tasks should be exposed.

func (*Discovery) DeepCopy

func (in *Discovery) DeepCopy() *Discovery

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Discovery.

func (*Discovery) DeepCopyInto

func (in *Discovery) DeepCopyInto(out *Discovery)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExecutionStatus added in v0.7.0

type ExecutionStatus string

ExecutionStatus captures the state of the rollout.

const (
	// ExecutionInProgress actively deploying, but not yet healthy.
	ExecutionInProgress ExecutionStatus = "IN_PROGRESS"

	// ExecutionPending Not ready to deploy because dependent phases/steps not healthy.
	ExecutionPending ExecutionStatus = "PENDING"

	// ExecutionComplete deployed and healthy.
	ExecutionComplete ExecutionStatus = "COMPLETE"

	// ErrorStatus there was an error deploying the application.
	ErrorStatus ExecutionStatus = "ERROR"

	// ExecutionFatalError there was an error deploying the application.
	ExecutionFatalError ExecutionStatus = "FATAL_ERROR"

	// ExecutionNeverRun is used when this plan/phase/step was never run so far
	ExecutionNeverRun ExecutionStatus = "NEVER_RUN"

	// DeployPlanName is the name of the deployment plan
	DeployPlanName = "deploy"

	// UpgradePlanName is the name of the upgrade plan
	UpgradePlanName = "upgrade"

	// UpdatePlanName is the name of the update plan
	UpdatePlanName = "update"
)

func (ExecutionStatus) IsFinished added in v0.7.0

func (s ExecutionStatus) IsFinished() bool

IsFinished returns true if the status is complete regardless of errors

func (ExecutionStatus) IsRunning added in v0.7.0

func (s ExecutionStatus) IsRunning() bool

IsRunning returns true if the plan is currently being executed

func (ExecutionStatus) IsTerminal added in v0.7.0

func (s ExecutionStatus) IsTerminal() bool

IsTerminal returns true if the status is terminal (either complete, or in a nonrecoverable error)

type HealthCheck

type HealthCheck struct {
	Cmd                    *string `json:"cmd" yaml:"cmd" validate:"omitempty,gt=0"`                                            // makes field optional and checks if non empty
	GracePeriodSecs        int32   `json:"grace-period" yaml:"grace-period" validate:"gte=1"`                                   // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	MaxConsecutiveFailures int32   `json:"max-consecutive-failures" yaml:"max-consecutive-failures" validate:"omitempty,gte=1"` // makes field optional and checks if its gte 1 (TODO: we should make this a pointer to check if set | can it be zero?)
	DelaySecs              int32   `json:"delay" yaml:"delay" validate:"omitempty,gte=1"`                                       // makes field optional and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	TimeoutSecs            int32   `json:"timeout" yaml:"timeout" validate:"gte=1"`                                             // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
}

HealthCheck represents a validation that a pod is healthy.

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheck.

func (*HealthCheck) DeepCopyInto

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostVolume

type HostVolume struct {
	HostPath      *string `json:"host-path" yaml:"host-path" validate:"required,gt=0"`           // makes field mandatory and checks if non empty (TODO: MatchRegex Custom Validation)
	ContainerPath *string `json:"container-path" yaml:"container-path" validate:"required,gt=0"` // makes field mandatory and checks if non empty (TODO: MatchRegex Custom Validation)
}

HostVolume to be mounted in the Pod environment.

func (*HostVolume) DeepCopy

func (in *HostVolume) DeepCopy() *HostVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostVolume.

func (*HostVolume) DeepCopyInto

func (in *HostVolume) DeepCopyInto(out *HostVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Instance

type Instance struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   InstanceSpec   `json:"spec,omitempty"`
	Status InstanceStatus `json:"status,omitempty"`
}

Instance is the Schema for the instances API. +k8s:openapi-gen=true

func (*Instance) DeepCopy

func (in *Instance) DeepCopy() *Instance

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.

func (*Instance) DeepCopyInto

func (in *Instance) DeepCopyInto(out *Instance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Instance) DeepCopyObject

func (in *Instance) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Instance) EnsurePlanStatusInitialized added in v0.7.0

func (i *Instance) EnsurePlanStatusInitialized(ov *OperatorVersion)

EnsurePlanStatusInitialized initializes plan status for all plans this instance supports it does not trigger run of any plan it either initializes everything for a fresh instance without any status or tries to adjust status after OV was updated

func (*Instance) GetPlanInProgress added in v0.7.0

func (i *Instance) GetPlanInProgress() *PlanStatus

GetPlanInProgress returns plan status of currently active plan or nil if no plan is running

func (*Instance) GetPlanToBeExecuted added in v0.7.0

func (i *Instance) GetPlanToBeExecuted(ov *OperatorVersion) (*string, error)

GetPlanToBeExecuted returns name of the plan that should be executed

func (*Instance) NoPlanEverExecuted added in v0.7.0

func (i *Instance) NoPlanEverExecuted() bool

NoPlanEverExecuted returns true is this is new instance for which we never executed any plan

func (*Instance) OperatorVersionNamespace added in v0.7.0

func (i *Instance) OperatorVersionNamespace() string

OperatorVersionNamespace returns the namespace of the OperatorVersion that the Instance references.

func (*Instance) SaveSnapshot added in v0.7.0

func (i *Instance) SaveSnapshot() error

SaveSnapshot stores the current spec of Instance into the snapshot annotation this information is used when executing update/upgrade plans, this overrides any snapshot that existed before

func (*Instance) StartPlanExecution added in v0.7.0

func (i *Instance) StartPlanExecution(planName string, ov *OperatorVersion) error

StartPlanExecution mark plan as to be executed

func (*Instance) UpdateInstanceStatus added in v0.7.0

func (i *Instance) UpdateInstanceStatus(planStatus *PlanStatus)

UpdateInstanceStatus updates `Status.PlanStatus` and `Status.AggregatedStatus` property based on the given plan

type InstanceError added in v0.7.0

type InstanceError struct {
	EventName *string // nil if no warn event should be created
	// contains filtered or unexported fields
}

InstanceError indicates error on that can also emit a kubernetes warn event +k8s:deepcopy-gen=false

func (*InstanceError) Error added in v0.7.0

func (e *InstanceError) Error() string

type InstanceList

type InstanceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Instance `json:"items"`
}

InstanceList contains a list of Instance.

func (*InstanceList) DeepCopy

func (in *InstanceList) DeepCopy() *InstanceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceList.

func (*InstanceList) DeepCopyInto

func (in *InstanceList) DeepCopyInto(out *InstanceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceList) DeepCopyObject

func (in *InstanceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type InstanceSpec

type InstanceSpec struct {
	// OperatorVersion specifies a reference to a specific Operator object.
	OperatorVersion corev1.ObjectReference `json:"operatorVersion,omitempty"`

	Parameters map[string]string `json:"parameters,omitempty"`
}

InstanceSpec defines the desired state of Instance.

func (*InstanceSpec) DeepCopy

func (in *InstanceSpec) DeepCopy() *InstanceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSpec.

func (*InstanceSpec) DeepCopyInto

func (in *InstanceSpec) DeepCopyInto(out *InstanceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceStatus

type InstanceStatus struct {
	// slice would be enough here but we cannot use slice because order of sequence in yaml is considered significant while here it's not
	PlanStatus       map[string]PlanStatus `json:"planStatus,omitempty"`
	AggregatedStatus AggregatedStatus      `json:"aggregatedStatus,omitempty"`
}

InstanceStatus defines the observed state of Instance

func (*InstanceStatus) DeepCopy

func (in *InstanceStatus) DeepCopy() *InstanceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceStatus.

func (*InstanceStatus) DeepCopyInto

func (in *InstanceStatus) DeepCopyInto(out *InstanceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Maintainer added in v0.2.0

type Maintainer struct {
	// Name is a user name or organization name.
	Name string `json:"name,omitempty"`

	// Email is an optional email address to contact the named maintainer.
	Email string `json:"email,omitempty"`
}

Maintainer describes an Operator maintainer.

func (*Maintainer) DeepCopy added in v0.7.0

func (in *Maintainer) DeepCopy() *Maintainer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Maintainer.

func (*Maintainer) DeepCopyInto added in v0.7.0

func (in *Maintainer) DeepCopyInto(out *Maintainer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Network

type Network struct {
	HostPorts      []int32 `json:"host-ports" yaml:"host-ports" validate:"required,gt=0,dive,gte=1,max=65535"`           // makes field mandatory and checks if its a valid port (TODO: we should make this a pointer to check if set, also check for duplicates)
	ContainerPorts []int32 `json:"container-ports" yaml:"container-ports" validate:"required,gt=0,dive,gte=1,max=65535"` // makes field mandatory and checks if its a valid port (TODO: we should make this a pointer to check if set, also check for duplicates)
	Labels         string  `json:"labels" yaml:"labels"`                                                                 // no checks needed (TODO: not sure if needed at all, e.g. would it map to a service in k8s)
}

Network represents a network setting or virtual network to be joined.

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectReference added in v0.4.0

type ObjectReference struct {
	corev1.ObjectReference `json:",inline"`
	// Labels to match on.
	Labels map[string]string
}

ObjectReference is a Kubernetes object reference with added labels to allow referencing objects by label.

func (*ObjectReference) DeepCopy added in v0.4.0

func (in *ObjectReference) DeepCopy() *ObjectReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.

func (*ObjectReference) DeepCopyInto added in v0.4.0

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Operator added in v0.3.0

type Operator struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OperatorSpec   `json:"spec,omitempty"`
	Status OperatorStatus `json:"status,omitempty"`
}

Operator is the Schema for the operator API +k8s:openapi-gen=true

func (*Operator) DeepCopy added in v0.3.0

func (in *Operator) DeepCopy() *Operator

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operator.

func (*Operator) DeepCopyInto added in v0.3.0

func (in *Operator) DeepCopyInto(out *Operator)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Operator) DeepCopyObject added in v0.3.0

func (in *Operator) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatorDependency added in v0.3.0

type OperatorDependency struct {
	// Name specifies the name of the dependency. Referenced via defaults.config.
	ReferenceName string `json:"referenceName"`
	corev1.ObjectReference

	// Version captures the requirements for what versions of the above object
	// are allowed.
	//
	// Example: ^3.1.4
	Version string `json:"version"`
}

OperatorDependency references a defined operator.

func (*OperatorDependency) DeepCopy added in v0.3.0

func (in *OperatorDependency) DeepCopy() *OperatorDependency

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorDependency.

func (*OperatorDependency) DeepCopyInto added in v0.3.0

func (in *OperatorDependency) DeepCopyInto(out *OperatorDependency)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatorList added in v0.3.0

type OperatorList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Operator `json:"items"`
}

OperatorList contains a list of Operator

func (*OperatorList) DeepCopy added in v0.3.0

func (in *OperatorList) DeepCopy() *OperatorList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorList.

func (*OperatorList) DeepCopyInto added in v0.3.0

func (in *OperatorList) DeepCopyInto(out *OperatorList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatorList) DeepCopyObject added in v0.3.0

func (in *OperatorList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatorSpec added in v0.3.0

type OperatorSpec struct {
	Description       string        `json:"description,omitempty"`
	KudoVersion       string        `json:"kudoVersion,omitempty"`
	KubernetesVersion string        `json:"kubernetesVersion,omitempty"`
	Maintainers       []*Maintainer `json:"maintainers,omitempty"`
	URL               string        `json:"url,omitempty"`
}

OperatorSpec defines the desired state of Operator

func (*OperatorSpec) DeepCopy added in v0.3.0

func (in *OperatorSpec) DeepCopy() *OperatorSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorSpec.

func (*OperatorSpec) DeepCopyInto added in v0.3.0

func (in *OperatorSpec) DeepCopyInto(out *OperatorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatorStatus added in v0.3.0

type OperatorStatus struct {
}

OperatorStatus defines the observed state of Operator

func (*OperatorStatus) DeepCopy added in v0.3.0

func (in *OperatorStatus) DeepCopy() *OperatorStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorStatus.

func (*OperatorStatus) DeepCopyInto added in v0.3.0

func (in *OperatorStatus) DeepCopyInto(out *OperatorStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatorVersion added in v0.3.0

type OperatorVersion struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OperatorVersionSpec   `json:"spec,omitempty"`
	Status OperatorVersionStatus `json:"status,omitempty"`
}

OperatorVersion is the Schema for the operatorversions API. +k8s:openapi-gen=true

func (*OperatorVersion) DeepCopy added in v0.3.0

func (in *OperatorVersion) DeepCopy() *OperatorVersion

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersion.

func (*OperatorVersion) DeepCopyInto added in v0.3.0

func (in *OperatorVersion) DeepCopyInto(out *OperatorVersion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatorVersion) DeepCopyObject added in v0.3.0

func (in *OperatorVersion) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatorVersionList added in v0.3.0

type OperatorVersionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OperatorVersion `json:"items"`
}

OperatorVersionList contains a list of OperatorVersion.

func (*OperatorVersionList) DeepCopy added in v0.3.0

func (in *OperatorVersionList) DeepCopy() *OperatorVersionList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersionList.

func (*OperatorVersionList) DeepCopyInto added in v0.3.0

func (in *OperatorVersionList) DeepCopyInto(out *OperatorVersionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatorVersionList) DeepCopyObject added in v0.3.0

func (in *OperatorVersionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OperatorVersionSpec added in v0.3.0

type OperatorVersionSpec struct {
	// +optional
	Operator corev1.ObjectReference `json:"operator,omitempty"`
	Version  string                 `json:"version,omitempty"`

	// Yaml captures a templated yaml list of elements that define the application operator instance.
	Templates map[string]string   `json:"templates,omitempty"`
	Tasks     map[string]TaskSpec `json:"tasks,omitempty"`

	Parameters []Parameter `json:"parameters,omitempty"`

	// Plans maps a plan name to a plan.
	Plans map[string]Plan `json:"plans,omitempty"`

	// ConnectionString defines a templated string that can be used to connect to an instance of the Operator.
	// +optional
	ConnectionString string `json:"connectionString,omitempty"`

	// Dependencies a list of all dependencies of the operator.
	Dependencies []OperatorDependency `json:"dependencies,omitempty"`

	// UpgradableFrom lists all OperatorVersions that can upgrade to this OperatorVersion.
	UpgradableFrom []OperatorVersion `json:"upgradableFrom,omitempty"`
}

OperatorVersionSpec defines the desired state of OperatorVersion.

func (*OperatorVersionSpec) DeepCopy added in v0.3.0

func (in *OperatorVersionSpec) DeepCopy() *OperatorVersionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersionSpec.

func (*OperatorVersionSpec) DeepCopyInto added in v0.3.0

func (in *OperatorVersionSpec) DeepCopyInto(out *OperatorVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatorVersionStatus added in v0.3.0

type OperatorVersionStatus struct {
}

OperatorVersionStatus defines the observed state of OperatorVersion.

func (*OperatorVersionStatus) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersionStatus.

func (*OperatorVersionStatus) DeepCopyInto added in v0.3.0

func (in *OperatorVersionStatus) DeepCopyInto(out *OperatorVersionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Ordering

type Ordering string

Ordering specifies how the subitems in this plan/phase should be rolled out.

const Parallel Ordering = "parallel"

Parallel specifies that the plan or objects in the phase can all be launched at the same time.

const Serial Ordering = "serial"

Serial specifies that the plans or objects should be created in order. The first should be healthy before continuing on.

type Parameter

type Parameter struct {
	// DisplayName can be used by UI's.
	DisplayName string `json:"displayName,omitempty"`

	// Name is the string that should be used in the templated file for example,
	// if `name: COUNT` then using the variable in a spec like:
	//
	// spec:
	//   replicas:  {{COUNT}}
	Name string `json:"name,omitempty"`

	// Description captures a longer description of how the parameter will be used.
	Description string `json:"description,omitempty"`

	// Required specifies if the parameter is required to be provided by all instances, or whether a default can suffice.
	Required bool `json:"required,omitempty"`

	// Default is a default value if no parameter is provided by the instance.
	Default *string `json:"default,omitempty"`

	// Trigger identifies the plan that gets executed when this parameter changes in the Instance object.
	// Default is `update` if a plan with that name exists, otherwise it's `deploy`
	Trigger string `json:"trigger,omitempty"`
}

Parameter captures the variability of an OperatorVersion being instantiated in an instance.

func (*Parameter) DeepCopy

func (in *Parameter) DeepCopy() *Parameter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter.

func (*Parameter) DeepCopyInto

func (in *Parameter) DeepCopyInto(out *Parameter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Phase

type Phase struct {
	Name     string   `json:"name" validate:"required"`     // makes field mandatory and checks if set and non empty
	Strategy Ordering `json:"strategy" validate:"required"` // makes field mandatory and checks if set and non empty

	// Steps maps a step name to a list of templated Kubernetes objects stored as a string.
	Steps []Step `json:"steps" validate:"required,gt=0,dive"` // makes field mandatory and checks if its gt 0
}

Phase specifies a list of steps that contain Kubernetes objects.

func (*Phase) DeepCopy

func (in *Phase) DeepCopy() *Phase

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Phase.

func (*Phase) DeepCopyInto

func (in *Phase) DeepCopyInto(out *Phase)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PhaseStatus

type PhaseStatus struct {
	Name   string          `json:"name,omitempty"`
	Status ExecutionStatus `json:"status,omitempty"`
	Steps  []StepStatus    `json:"steps,omitempty"`
}

PhaseStatus is representing status of a phase

func (*PhaseStatus) DeepCopy

func (in *PhaseStatus) DeepCopy() *PhaseStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhaseStatus.

func (*PhaseStatus) DeepCopyInto

func (in *PhaseStatus) DeepCopyInto(out *PhaseStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Plan

type Plan struct {
	Strategy Ordering `json:"strategy" validate:"required"` // makes field mandatory and checks if set and non empty
	// Phases maps a phase name to a Phase object.
	Phases []Phase `json:"phases" validate:"required,gt=0,dive"` // makes field mandatory and checks if its gt 0
}

Plan specifies a series of Phases that need to be completed.

func (*Plan) DeepCopy

func (in *Plan) DeepCopy() *Plan

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plan.

func (*Plan) DeepCopyInto

func (in *Plan) DeepCopyInto(out *Plan)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlanStatus added in v0.7.0

type PlanStatus struct {
	Name            string          `json:"name,omitempty"`
	Status          ExecutionStatus `json:"status,omitempty"`
	LastFinishedRun metav1.Time     `json:"lastFinishedRun,omitempty"`
	Phases          []PhaseStatus   `json:"phases,omitempty"`
}

PlanStatus is representing status of a plan

These are valid states and trainsitions

+----------------+
| Never executed |
+-------+--------+
        |
        v

+-------------+ +-------+--------+ | Error |<------>| Pending | +------+------+ +-------+--------+

^                       |
|                       v
|               +-------+--------+
+-------------->|  In progress   |
|               +-------+--------+
|                       |
v                       v

+------+------+ +-------+--------+ | Fatal error | | Complete | +-------------+ +----------------+

func (*PlanStatus) DeepCopy added in v0.7.0

func (in *PlanStatus) DeepCopy() *PlanStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanStatus.

func (*PlanStatus) DeepCopyInto added in v0.7.0

func (in *PlanStatus) DeepCopyInto(out *PlanStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Pod

type Pod struct {
	ResourceSets      map[string]*ResourceSet `json:"resource-sets" yaml:"resource-sets" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"` // makes field optional and checks nil pointer, empty keys and dives into nested object
	Placement         *string                 `json:"placement" yaml:"placement" validate:"omitempty,gt=0"`                                                  // makes field optional and checks if non empty
	Count             int32                   `json:"count" yaml:"count" validate:"gte=1"`                                                                   // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	Image             *string                 `json:"image" yaml:"image" validate:"omitempty,gt=0"`                                                          // makes field optional and checks if non empty
	Networks          map[string]*Network     `json:"networks" yaml:"networks" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`           // makes field optional and checks nil pointer, empty keys and dives into nested object
	RLimits           map[string]*RLimit      `json:"rlimits" yaml:"rlimits" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`             // makes field optional and checks nil pointer, empty keys and dives into nested object
	Uris              []*string               `json:"uris" yaml:"uris" validate:"required,gt=0,dive,required,gt=0"`                                          // makes field mandatory and checks if non empty (TODO: check for duplicates)
	Tasks             map[string]*Task        `json:"tasks" yaml:"tasks" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`                 // makes field optional and checks nil pointer, empty keys and dives into nested object
	Volume            *Volume                 `json:"volume" yaml:"volume"`                                                                                  // field optional, no need to validate
	Volumes           map[string]*Volume      `json:"volumes" yaml:"volumes" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`             // makes field optional and checks nil pointer, empty keys and dives into nested object
	PreReservedRole   *string                 `json:"pre-reserved-role" yaml:"pre-reserved-role" validate:"omitempty,gt=0"`                                  // makes field optional and checks if non empty
	Secrets           map[string]*Secret      `json:"secrets" yaml:"secrets" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`             // makes field optional and checks nil pointer, empty keys and dives into nested object
	SharePidNamespace bool                    `json:"share-pid-namespace" yaml:"share-pid-namespace"`                                                        // no checks needed
	AllowDecommission bool                    `json:"allow-decommission" yaml:"allow-decommission"`                                                          // no checks needed
	HostVolumes       map[string]*HostVolume  `json:"host-volumes" yaml:"host-volumes" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`   // makes field optional and checks nil pointer, empty keys and dives into nested objects
}

Pod represents a pod definition which could be deployed as part of a plan.

func (*Pod) DeepCopy

func (in *Pod) DeepCopy() *Pod

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.

func (*Pod) DeepCopyInto

func (in *Pod) DeepCopyInto(out *Pod)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Port

type Port struct {
	Port      int32   `json:"port" yaml:"port" validate:"gte=1,max=65535"`      // makes field mandatory and checks if its a valid port (TODO: we should make this a pointer to check if set)
	EnvKey    *string `json:"env-key" yaml:"env-key" validate:"omitempty,gt=0"` // makes field optional but when set checks if non empty&nil values
	Advertise bool    `json:"advertise" yaml:"advertise"`                       // no checks needed (TODO: not sure if needed at all, e.g. would it map to a service in k8s)
	VIP       *VIP    `json:"vip" yaml:"vip"`                                   // no checks needed (TODO: not sure if needed at all, e.g. would it map to a service in k8s)
}

Port represents a port an application should listen on.

func (*Port) DeepCopy

func (in *Port) DeepCopy() *Port

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Port.

func (*Port) DeepCopyInto

func (in *Port) DeepCopyInto(out *Port)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RLimit

type RLimit struct {
	Soft int64 `json:"soft" yaml:"soft" validate:"gte=1"` // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set | does this apply in k8s land?)
	Hard int64 `json:"hard" yaml:"hard" validate:"gte=1"` // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set | does this apply in k8s land?)
}

RLimit represents an rlimit setting to be applied to the pod.

func (*RLimit) DeepCopy

func (in *RLimit) DeepCopy() *RLimit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RLimit.

func (*RLimit) DeepCopyInto

func (in *RLimit) DeepCopyInto(out *RLimit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReadinessCheck

type ReadinessCheck struct {
	Cmd          *string `json:"cmd" yaml:"cmd" validate:"omitempty,gt=0"`      // makes field mandatory and checks if non empty
	IntervalSecs int32   `json:"interval" yaml:"interval" validate:"gte=1"`     // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	DelaySecs    int32   `json:"delay" yaml:"delay" validate:"omitempty,gte=1"` // makes field optional and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	TimeoutSecs  int32   `json:"timeout" yaml:"timeout" validate:"gte=1"`       // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
}

ReadinessCheck represents an additional HealthCheck which is used when a task is first started.

func (*ReadinessCheck) DeepCopy

func (in *ReadinessCheck) DeepCopy() *ReadinessCheck

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessCheck.

func (*ReadinessCheck) DeepCopyInto

func (in *ReadinessCheck) DeepCopyInto(out *ReadinessCheck)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceSet

type ResourceSet struct {
	Cpus     float64            `json:"cpus" yaml:"cpus" validate:"omitempty,gt=0"`                                                // makes field optional and checks if non empty (TODO: we should make this a pointer to check if set)
	Gpus     float64            `json:"gpus" yaml:"gpus" validate:"omitempty,gt=0"`                                                // makes field optional and checks if non empty (TODO: we should make this a pointer to check if set)
	MemoryMB int32              `json:"memory" yaml:"memory" validate:"omitempty,gte=1"`                                           // makes field optional and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	Ports    map[string]*Port   `json:"ports" yaml:"ports" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`     // makes field optional and checks nil pointer, empty keys and dives into nested object
	Volume   *Volume            `json:"volume" yaml:"volume"`                                                                      // field optional, no need to validate
	Volumes  map[string]*Volume `json:"volumes" yaml:"volumes" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"` // makes field optional and checks nil pointer, empty keys and dives into nested object
}

ResourceSet defines a single set of resources which can be reused across tasks.

func (*ResourceSet) DeepCopy

func (in *ResourceSet) DeepCopy() *ResourceSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSet.

func (*ResourceSet) DeepCopyInto

func (in *ResourceSet) DeepCopyInto(out *ResourceSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Scheduler

type Scheduler struct {
	Principal *string `json:"principal" yaml:"principal" validate:"omitempty,gt=0"` // makes field optional and checks if non empty
	Zookeeper *string `json:"zookeeper" yaml:"zookeeper" validate:"omitempty,gt=0"` // makes field optional and checks if non empty
	User      *string `json:"user" yaml:"user" validate:"omitempty,gt=0"`           // makes field optional and checks if non empty
}

Scheduler contains settings for the (Mesos) scheduler from the original yaml. It is not required for this project, but kept for compatibility reasons.

func (*Scheduler) DeepCopy

func (in *Scheduler) DeepCopy() *Scheduler

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler.

func (*Scheduler) DeepCopyInto

func (in *Scheduler) DeepCopyInto(out *Scheduler)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Secret

type Secret struct {
	SecretPath *string `json:"secret" yaml:"secret" validate:"required,gt=0"`    // makes field mandatory and checks if non empty
	EnvKey     *string `json:"env-key" yaml:"env-key" validate:"omitempty,gt=0"` // makes field optional and checks if non empty
	FilePath   *string `json:"file" yaml:"file" validate:"omitempty,gt=0"`       // makes field optional and checks if non empty (TODO: MatchRegex Custom Validation)
}

Secret to be made available in the Pod environment.

func (*Secret) DeepCopy

func (in *Secret) DeepCopy() *Secret

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.

func (*Secret) DeepCopyInto

func (in *Secret) DeepCopyInto(out *Secret)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSpec

type ServiceSpec struct {
	Name      *string          `json:"name" yaml:"name" validate:"required,gt=0"`                                             // makes field mandatory and checks if non empty
	WebURL    *string          `json:"web-url" yaml:"web-url" validate:"required,gt=0"`                                       // makes field mandatory and checks if non empty
	Scheduler *Scheduler       `json:"scheduler" yaml:"scheduler"`                                                            // field optional, no need to validate
	Pods      map[string]*Pod  `json:"pods" yaml:"pods" validate:"required,gt=0,dive,keys,required,endkeys,required,dive"`    // makes field mandatory and checks nil pointer, empty keys and dives into nested object
	Plans     map[string]*Plan `json:"plans" yaml:"plans" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"` // makes field optional and checks nil pointer, empty keys and dives into nested object
}

ServiceSpec represents the overall service definition.

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Step

type Step struct {
	Name   string   `json:"name" validate:"required"`                     // makes field mandatory and checks if set and non empty
	Tasks  []string `json:"tasks" validate:"required,gt=0,dive,required"` // makes field mandatory and checks if non empty
	Delete bool     `json:"delete,omitempty"`                             // no checks needed

	// Objects will be serialized for each instance as the params and defaults are provided.
	Objects []runtime.Object `json:"-"` // no checks needed
}

Step defines a specific set of operations that occur.

func (*Step) DeepCopy

func (in *Step) DeepCopy() *Step

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Step.

func (*Step) DeepCopyInto

func (in *Step) DeepCopyInto(out *Step)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepStatus

type StepStatus struct {
	Name   string          `json:"name,omitempty"`
	Status ExecutionStatus `json:"status,omitempty"`
}

StepStatus is representing status of a step

func (*StepStatus) DeepCopy

func (in *StepStatus) DeepCopy() *StepStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepStatus.

func (*StepStatus) DeepCopyInto

func (in *StepStatus) DeepCopyInto(out *StepStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Task

type Task struct {
	Goal                    *string                `json:"goal" yaml:"goal" validate:"required,gt=0,eq=RUNNING|eq=FINISH|eq=ONCE"`                    // makes field mandatory and checks if set and non empty, allows just RUNNING,FINISH,ONCE
	Essential               bool                   `json:"essential" yaml:"essential" validate:"isdefault"`                                           // makes field optional but if set it expects it to be false and will fail if true (TODO: we should make this a pointer to check if set)
	Cmd                     *string                `json:"cmd" yaml:"cmd" validate:"required,gt=0"`                                                   // makes field mandatory and checks if set and non empty
	Env                     map[string]*string     `json:"env" yaml:"env" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,gt=0"`         // makes field optional and checks nil pointer, empty strings for keys and values
	Configs                 map[string]*Config     `json:"configs" yaml:"configs" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"` // makes field optional and checks nil pointer, empty keys and dives into nested object
	Cpus                    float64                `json:"cpus" yaml:"cpus" validate:"gte=1"`                                                         // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	Gpus                    float64                `json:"gpus" yaml:"gpus" validate:"omitempty,gte=1"`                                               // makes field optional but if set value needs to be gt 0 (TODO: we should make this a pointer to check if set)
	MemoryMB                float64                `json:"memory" yaml:"memory" validate:"gte=1"`                                                     // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	Ports                   map[string]*Port       `json:"ports" yaml:"ports" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"`     // makes field optional and checks nil pointer, empty strings for keys and values
	HealthCheck             *HealthCheck           `json:"health-check" yaml:"health-check"`                                                          // field optional, no need to validate
	ReadinessCheck          *ReadinessCheck        `json:"readiness-check" yaml:"readiness-check"`                                                    // field optional, no need to validate
	Volume                  *Volume                `json:"volume" yaml:"volume"`                                                                      // field optional, no need to validate
	Volumes                 map[string]*Volume     `json:"volumes" yaml:"volumes" validate:"omitempty,gt=0,dive,keys,required,endkeys,required,dive"` // makes field optional and checks nil pointer, empty strings for keys and values
	ResourceSet             *string                `json:"resource-set" yaml:"resource-set" validate:"omitempty,gt=0"`                                // makes field optional and checks if non empty
	Discovery               *Discovery             `json:"discovery" yaml:"discovery"`                                                                // field optional, no need to validate
	TaskKillGracePeriodSecs int32                  `json:"kill-grace-period" yaml:"kill-grace-period" validate:"omitempty,gte=1"`                     // makes field optional and checks if its gte 1 (TODO: we should make this a pointer to check if set)
	TransportEncryption     []*TransportEncryption `json:"transport-encryption" yaml:"transport-encryption" validate:"omitempty,gt=0,dive"`           // makes field optional and checks if object is non empty
}

Task specifies a task to be run inside the pod.

func (*Task) DeepCopy

func (in *Task) DeepCopy() *Task

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Task.

func (*Task) DeepCopyInto

func (in *Task) DeepCopyInto(out *Task)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TaskSpec

type TaskSpec struct {
	Resources []string `json:"resources"`
}

TaskSpec is a struct containing lists of Kustomize resources.

func (*TaskSpec) DeepCopy

func (in *TaskSpec) DeepCopy() *TaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskSpec.

func (*TaskSpec) DeepCopyInto

func (in *TaskSpec) DeepCopyInto(out *TaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestAssert added in v0.3.0

type TestAssert struct {
	// The type meta object, should always be a GVK of kudo.dev/v1alpha1/TestAssert.
	metav1.TypeMeta `json:",inline"`
	// Override the default timeout of 30 seconds (in seconds).
	Timeout int `json:"timeout"`
}

TestAssert represents the settings needed to verify the result of a test step.

func (*TestAssert) DeepCopy added in v0.3.0

func (in *TestAssert) DeepCopy() *TestAssert

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestAssert.

func (*TestAssert) DeepCopyInto added in v0.3.0

func (in *TestAssert) DeepCopyInto(out *TestAssert)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TestAssert) DeepCopyObject added in v0.3.0

func (in *TestAssert) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TestStep added in v0.3.0

type TestStep struct {
	// The type meta object, should always be a GVK of kudo.dev/v1alpha1/TestStep.
	metav1.TypeMeta `json:",inline"`
	// Override the default metadata. Set labels or override the test step name.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Index int `json:"index,omitempty"`
	// Objects to delete at the beginning of the test step.
	Delete []ObjectReference `json:"delete,omitempty"`

	// Indicates that this is a unit test - safe to run without a real Kubernetes cluster.
	UnitTest bool `json:"unitTest"`

	// Kubectl commands to run at the start of the test
	Kubectl []string `json:"kubectl"`

	// Commands to run prior at the beginning of the test step.
	Commands []Command `json:"commands"`
}

TestStep settings to apply to a test step.

func (*TestStep) DeepCopy added in v0.3.0

func (in *TestStep) DeepCopy() *TestStep

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestStep.

func (*TestStep) DeepCopyInto added in v0.3.0

func (in *TestStep) DeepCopyInto(out *TestStep)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TestStep) DeepCopyObject added in v0.3.0

func (in *TestStep) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TestSuite added in v0.3.0

type TestSuite struct {
	// The type meta object, should always be a GVK of kudo.dev/v1alpha1/TestSuite.
	metav1.TypeMeta `json:",inline"`
	// Set labels or the test suite name.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Path to CRDs to install before running tests.
	CRDDir string `json:"crdDir"`
	// Paths to directories containing manifests to install before running tests.
	ManifestDirs []string `json:"manifestDirs"`
	// Directories containing test cases to run.
	TestDirs []string `json:"testDirs"`
	// Whether or not to start a local etcd and kubernetes API server for the tests.
	StartControlPlane bool `json:"startControlPlane"`
	// Whether or not to start a local kind cluster for the tests.
	StartKIND bool `json:"startKIND"`
	// Path to the KIND configuration file to use.
	KINDConfig string `json:"kindConfig"`
	// KIND context to use.
	KINDContext string `json:"kindContext"`
	// If set, each node defined in the kind configuration will have a docker named volume mounted into it to persist
	// pulled container images across test runs.
	KINDNodeCache bool `json:"kindNodeCache"`
	// Whether or not to start the KUDO controller for the tests.
	StartKUDO bool `json:"startKUDO"`
	// If set, do not delete the resources after running the tests (implies SkipClusterDelete).
	SkipDelete bool `json:"skipDelete"`
	// If set, do not delete the mocked control plane or kind cluster.
	SkipClusterDelete bool `json:"skipClusterDelete"`
	// Override the default timeout of 30 seconds (in seconds).
	Timeout int `json:"timeout"`
	// The maximum number of tests to run at once (default: 8).
	Parallel int `json:"parallel"`
	// The directory to output artifacts to (current working directory if not specified).
	ArtifactsDir string `json:"artifactsDir"`
	// Kubectl commands to run before running any tests.
	Kubectl []string `json:"kubectl"`
	// Commands to run prior to running the tests.
	Commands []Command `json:"commands"`
}

TestSuite configures which tests should be loaded.

func (*TestSuite) DeepCopy added in v0.3.0

func (in *TestSuite) DeepCopy() *TestSuite

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestSuite.

func (*TestSuite) DeepCopyInto added in v0.3.0

func (in *TestSuite) DeepCopyInto(out *TestSuite)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TestSuite) DeepCopyObject added in v0.3.0

func (in *TestSuite) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TransportEncryption

type TransportEncryption struct {
	Name *string `json:"name" yaml:"name" validate:"required,gt=0"`                    // makes field mandatory and checks if non empty
	Type *string `json:"type" yaml:"type" validate:"required,gt=0,eq=TLS|eq=KEYSTORE"` // makes field mandatory and checks if non empty, allows just TLS or KEYSTORE
}

TransportEncryption represents information about the TLS certificate used for encrypting traffic.

func (*TransportEncryption) DeepCopy

func (in *TransportEncryption) DeepCopy() *TransportEncryption

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportEncryption.

func (*TransportEncryption) DeepCopyInto

func (in *TransportEncryption) DeepCopyInto(out *TransportEncryption)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VIP

type VIP struct {
	Port   int32   `json:"port" yaml:"port"`
	Prefix *string `json:"prefix" yaml:"prefix"`
}

VIP define a Virtual IP address for a given port.

func (*VIP) DeepCopy

func (in *VIP) DeepCopy() *VIP

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VIP.

func (*VIP) DeepCopyInto

func (in *VIP) DeepCopyInto(out *VIP)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Volume

type Volume struct {
	Path   *string `json:"path" yaml:"path" validate:"required,gt=0"`                  // makes field mandatory and checks if non empty (TODO: MatchRegex Custom Validation)
	Type   *string `json:"type" yaml:"type" validate:"required,gt=0,eq=ROOT|eq=MOUNT"` // makes field mandatory and checks if non empty, allows just ROOT or MOUNT
	SizeMB int32   `json:"size" yaml:"size" validate:"gte=1"`                          // makes field mandatory and checks if its gte 1 (TODO: we should make this a pointer to check if set)`
}

Volume to be mounted in the Pod environment.

func (*Volume) DeepCopy

func (in *Volume) DeepCopy() *Volume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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