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.k8s.io
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.k8s.io
Index ¶
- Variables
- func Resource(resource string) schema.GroupResource
- type Config
- type Discovery
- type HealthCheck
- type HostVolume
- type Instance
- type InstanceList
- type InstanceSpec
- type InstanceStatus
- type Maintainer
- type Network
- type Operator
- type OperatorDependency
- type OperatorList
- type OperatorSpec
- type OperatorStatus
- type OperatorVersion
- type OperatorVersionList
- type OperatorVersionSpec
- type OperatorVersionStatus
- type Ordering
- type Parameter
- type Phase
- type PhaseState
- type PhaseStatus
- type Plan
- type PlanExecution
- type PlanExecutionList
- type PlanExecutionSpec
- type PlanExecutionStatus
- type Pod
- type Port
- type RLimit
- type ReadinessCheck
- type ResourceSet
- type Scheduler
- type Secret
- type ServiceSpec
- type Step
- type StepStatus
- type Task
- type TaskSpec
- type TestAssert
- type TestStep
- type TestSuite
- type TransportEncryption
- type VIP
- type Volume
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "kudo.k8s.io", 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 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Discovery.
func (*Discovery) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.
func (*Instance) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Instance) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Instance) GetOperatorVersionNamespace ¶ added in v0.3.0
GetOperatorVersionNamespace returns the namespace of the OperatorVersion that the Instance references.
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 { // Operator specifies a reference to a specific Operator object. OperatorVersion corev1.ObjectReference `json:"operatorVersion,omitempty"` Dependencies []OperatorDependency `json:"dependencies,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 { // TODO turn into struct ActivePlan corev1.ObjectReference `json:"activePlan,omitempty"` Status PhaseState `json:"status,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 string
Maintainer contains contact info for the maintainer of the Operator
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operator.
func (*Operator) DeepCopyInto ¶ added in v0.3.0
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
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
func (in *OperatorVersionStatus) DeepCopy() *OperatorVersionStatus
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 a OperatorVersion being instantiated in an instance.
func (*Parameter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter.
func (*Parameter) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Phase.
func (*Phase) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PhaseState ¶
type PhaseState string
PhaseState captures the state of the rollout.
const PhaseStateComplete PhaseState = "COMPLETE"
PhaseStateComplete deployed and healthy.
const PhaseStateError PhaseState = "ERROR"
PhaseStateError there was an error deploying the application.
const PhaseStateInProgress PhaseState = "IN_PROGRESS"
PhaseStateInProgress actively deploying, but not yet healthy.
const PhaseStatePending PhaseState = "PENDING"
PhaseStatePending Not ready to deploy because dependent phases/steps not healthy.
const PhaseStateSuspend PhaseState = "SUSPEND"
PhaseStateSuspend Spec was triggered to stop this plan execution.
type PhaseStatus ¶
type PhaseStatus struct { Name string `json:"name,omitempty"` Strategy Ordering `json:"strategy,omitempty"` State PhaseState `json:"state,omitempty"` // Steps maps a step name to a list of templated Kubernetes objects stored as a string. Steps []StepStatus `json:"steps"` }
PhaseStatus specifies the status of list of steps that contain Kubernetes objects.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plan.
func (*Plan) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlanExecution ¶
type PlanExecution struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PlanExecutionSpec `json:"spec,omitempty"` Status PlanExecutionStatus `json:"status,omitempty"` }
PlanExecution is the Schema for the planexecutions API. +k8s:openapi-gen=true
func (*PlanExecution) DeepCopy ¶
func (in *PlanExecution) DeepCopy() *PlanExecution
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanExecution.
func (*PlanExecution) DeepCopyInto ¶
func (in *PlanExecution) DeepCopyInto(out *PlanExecution)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PlanExecution) DeepCopyObject ¶
func (in *PlanExecution) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PlanExecutionList ¶
type PlanExecutionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []PlanExecution `json:"items"` }
PlanExecutionList contains a list of PlanExecution.
func (*PlanExecutionList) DeepCopy ¶
func (in *PlanExecutionList) DeepCopy() *PlanExecutionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanExecutionList.
func (*PlanExecutionList) DeepCopyInto ¶
func (in *PlanExecutionList) DeepCopyInto(out *PlanExecutionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PlanExecutionList) DeepCopyObject ¶
func (in *PlanExecutionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PlanExecutionSpec ¶
type PlanExecutionSpec struct { // This flag tells the controller to suspend subsequent executions, it does // not apply to already started executions. Defaults to false. // +optional Suspend *bool `json:"suspend,omitempty" protobuf:"varint,4,opt,name=suspend"` PlanName string `json:"planName"` Instance corev1.ObjectReference `json:"instance"` }
PlanExecutionSpec defines the desired state of PlanExecution.
func (*PlanExecutionSpec) DeepCopy ¶
func (in *PlanExecutionSpec) DeepCopy() *PlanExecutionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanExecutionSpec.
func (*PlanExecutionSpec) DeepCopyInto ¶
func (in *PlanExecutionSpec) DeepCopyInto(out *PlanExecutionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlanExecutionStatus ¶
type PlanExecutionStatus struct { Name string `json:"name,omitempty"` Strategy Ordering `json:"strategy,omitempty"` State PhaseState `json:"state,omitempty"` // Phases maps a phase name to a Phase object Phases []PhaseStatus `json:"phases,omitempty"` }
PlanExecutionStatus defines the observed state of PlanExecution
func (*PlanExecutionStatus) DeepCopy ¶
func (in *PlanExecutionStatus) DeepCopy() *PlanExecutionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanExecutionStatus.
func (*PlanExecutionStatus) DeepCopyInto ¶
func (in *PlanExecutionStatus) DeepCopyInto(out *PlanExecutionStatus)
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 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.
func (*Pod) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Port.
func (*Port) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RLimit.
func (*RLimit) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler.
func (*Scheduler) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.
func (*Secret) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Step.
func (*Step) DeepCopyInto ¶
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"` State PhaseState `json:"state,omitempty"` Delete bool `json:"delete,omitempty"` // Objects will be serialized for each instance as the params and defaults // are provided, but not serialized in the payload. Objects []runtime.Object `json:"-"` }
StepStatus shows the status of the 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Task.
func (*Task) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskSpec.
func (*TaskSpec) DeepCopyInto ¶
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.k8s.io/v1alpha1/TestAssert. metav1.TypeMeta `json:",inline"` // Override the default timeout of 300 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.k8s.io/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 []corev1.ObjectReference `json:"delete,omitempty"` // Indicates that this is a unit test - safe to run without a real Kubernetes cluster. UnitTest bool `json:"unitTest"` }
TestStep settings to apply to a test step.
func (*TestStep) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestStep.
func (*TestStep) DeepCopyInto ¶ added in v0.3.0
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
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.k8s.io/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"` // Path to manifests to install before running tests. ManifestsDir string `json:"manifestsDir"` // 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 the KUDO controller for the tests. StartKUDO bool `json:"startKUDO"` }
TestSuite configures which tests should be loaded.
func (*TestSuite) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestSuite.
func (*TestSuite) DeepCopyInto ¶ added in v0.3.0
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
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VIP.
func (*VIP) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.