Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the kudo v1beta1 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 v1beta1 contains API Schema definitions for the kudo v1beta1 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
- Variables
- func CleanupPlanExists(ov *OperatorVersion) bool
- func OperatorInstanceName(operatorName string) string
- func OperatorVersionName(operatorName, version string) string
- func ParameterDiff(old, new map[string]string) map[string]string
- func PlanExists(plan string, ov *OperatorVersion) bool
- func Resource(resource string) schema.GroupResource
- func RichParameterDiff(old, new map[string]string) (changed, removed map[string]string)
- func SelectPlan(possiblePlans []string, ov *OperatorVersion) *string
- type DummyTaskSpec
- type ExecutionStatus
- type Instance
- func (i *Instance) AnnotateSnapshot() error
- func (in *Instance) DeepCopy() *Instance
- func (in *Instance) DeepCopyInto(out *Instance)
- func (in *Instance) DeepCopyObject() runtime.Object
- func (i *Instance) GetLastExecutedPlanStatus() *PlanStatus
- func (i *Instance) GetOperatorVersion(c client.Reader) (ov *OperatorVersion, err error)
- func (i *Instance) GetPlanInProgress() *PlanStatus
- func (i *Instance) GetScheduledPlan() *PlanStatus
- func (i *Instance) HasCleanupFinalizer() bool
- func (i *Instance) HasNoFinalizers() bool
- func (i *Instance) IsDeleting() bool
- func (i *Instance) NoPlanEverExecuted() bool
- func (i *Instance) OperatorVersionNamespace() string
- func (i *Instance) PlanStatus(plan string) *PlanStatus
- func (i *Instance) ResetPlanStatus(plan string, updatedTimestamp *metav1.Time) error
- func (i *Instance) SnapshotSpec() (*InstanceSpec, error)
- func (i *Instance) TryAddFinalizer() bool
- func (i *Instance) TryRemoveFinalizer() bool
- func (i *Instance) UpdateInstanceStatus(planStatus *PlanStatus, updatedTimestamp *metav1.Time)
- type InstanceError
- type InstanceList
- type InstanceSpec
- type InstanceStatus
- type KudoOperatorTaskSpec
- type Maintainer
- type Operator
- type OperatorList
- type OperatorSpec
- type OperatorStatus
- type OperatorVersion
- type OperatorVersionList
- type OperatorVersionSpec
- type OperatorVersionStatus
- type Ordering
- type Parameter
- type ParameterType
- type Phase
- type PhaseStatus
- type PipeSpec
- type PipeTaskSpec
- type Plan
- type PlanExecution
- type PlanStatus
- type ResourceTaskSpec
- type Step
- type StepStatus
- type Task
- type TaskSpec
- type ToggleTaskSpec
Constants ¶
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" // CleanupPlanName is the name of the cleanup plan CleanupPlanName = "cleanup" )
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "kudo.dev", Version: "v1beta1"} // 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 )
var ( SpecialPlanNames = []string{ DeployPlanName, UpgradePlanName, UpdatePlanName, CleanupPlanName, } )
Functions ¶
func CleanupPlanExists ¶ added in v0.11.0
func CleanupPlanExists(ov *OperatorVersion) bool
func OperatorInstanceName ¶ added in v0.14.0
func OperatorVersionName ¶ added in v0.14.0
func ParameterDiff ¶ added in v0.10.1
ParameterDiff returns map containing all parameters that were removed or changed between old and new
func PlanExists ¶ added in v0.11.0
func PlanExists(plan string, ov *OperatorVersion) bool
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
func RichParameterDiff ¶ added in v0.12.0
RichParameterDiff compares new and old map and returns two maps: first containing all changed/added and second all removed parameters.
func SelectPlan ¶ added in v0.10.1
func SelectPlan(possiblePlans []string, ov *OperatorVersion) *string
SelectPlan returns nil if none of the plan exists, otherwise the first one in list that exists
Types ¶
type DummyTaskSpec ¶
type DummyTaskSpec struct { // +optional WantErr bool `json:"wantErr,omitempty"` // +optional Fatal bool `json:"fatal,omitempty"` // +optional Done bool `json:"done,omitempty"` }
DummyTaskSpec can succeed or fail on demand and is very useful for testing operators
func (*DummyTaskSpec) DeepCopy ¶
func (in *DummyTaskSpec) DeepCopy() *DummyTaskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DummyTaskSpec.
func (*DummyTaskSpec) DeepCopyInto ¶
func (in *DummyTaskSpec) DeepCopyInto(out *DummyTaskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExecutionStatus ¶
type ExecutionStatus string
ExecutionStatus captures the state of the rollout.
func (ExecutionStatus) IsFinished ¶
func (s ExecutionStatus) IsFinished() bool
IsFinished returns true if the status is complete regardless of errors
func (ExecutionStatus) IsRunning ¶
func (s ExecutionStatus) IsRunning() bool
IsRunning returns true if the plan is currently being executed
func (ExecutionStatus) IsTerminal ¶
func (s ExecutionStatus) IsTerminal() bool
IsTerminal returns true if the status is terminal (either complete, or in a nonrecoverable error)
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 +kubebuilder:subresource:status
func (*Instance) AnnotateSnapshot ¶ added in v0.11.0
annotateSnapshot 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) 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) GetLastExecutedPlanStatus ¶
func (i *Instance) GetLastExecutedPlanStatus() *PlanStatus
GetLastExecutedPlanStatus returns status of plan that is currently running, if there is one running if no plan is running it looks for last executed plan based on timestamps
func (*Instance) GetOperatorVersion ¶ added in v0.14.0
func (i *Instance) GetOperatorVersion(c client.Reader) (ov *OperatorVersion, err error)
GetOperatorVersion retrieves OperatorVersion belonging to the given instance
func (*Instance) GetPlanInProgress ¶
func (i *Instance) GetPlanInProgress() *PlanStatus
GetPlanInProgress returns plan status of currently active plan or nil if no plan is running
func (*Instance) GetScheduledPlan ¶ added in v0.14.0
func (i *Instance) GetScheduledPlan() *PlanStatus
ScheduledPlan returns plan status of currently active plan or nil if no plan is running. In most cases this method will return the same plan status as the [GetPlanInProgress](pkg/apis/kudo/v1beta1/instance_types_helpers.go:25) below. However, there is a small window where both might return different results:
- GetScheduledPlan reads the plan from i.Spec.PlanExecution.PlanName which is set and reset by the instance admission webhook
- GetPlanInProgress goes through i.Spec.PlanStatus map and returns the first found plan that is running
In (1), i.Spec.PlanExecution.PlanName is set directly when the user updates the instance and reset **after** the plan is terminal In (2) i.Spec.PlanStatus is updated **AFTER** the instance controller is done with the reconciliation call
func (*Instance) HasCleanupFinalizer ¶ added in v0.11.0
func (*Instance) HasNoFinalizers ¶ added in v0.11.0
func (*Instance) IsDeleting ¶ added in v0.9.0
IsDeleting returns true is the instance is being deleted.
func (*Instance) NoPlanEverExecuted ¶
NoPlanEverExecuted returns true is this is new instance for which we never executed any plan
func (*Instance) OperatorVersionNamespace ¶
OperatorVersionNamespace returns the namespace of the OperatorVersion that the Instance references.
func (*Instance) PlanStatus ¶ added in v0.9.0
func (i *Instance) PlanStatus(plan string) *PlanStatus
func (*Instance) ResetPlanStatus ¶ added in v0.10.1
ResetPlanStatus method resets a PlanStatus for a passed plan name and instance. Plan/phase/step statuses are set to ExecutionPending meaning that the controller will restart plan execution.
func (*Instance) SnapshotSpec ¶ added in v0.11.0
func (i *Instance) SnapshotSpec() (*InstanceSpec, error)
func (*Instance) TryAddFinalizer ¶ added in v0.9.0
TryAddFinalizer adds the cleanup finalizer to an instance if the finalizer hasn't been added yet, the instance has a cleanup plan and the cleanup plan didn't run yet. Returns true if the cleanup finalizer has been added.
func (*Instance) TryRemoveFinalizer ¶ added in v0.9.0
TryRemoveFinalizer removes the cleanup finalizer of an instance if it has been added, the instance has a cleanup plan and the cleanup plan *successfully* finished. Returns true if the cleanup finalizer has been removed.
func (*Instance) UpdateInstanceStatus ¶
func (i *Instance) UpdateInstanceStatus(planStatus *PlanStatus, updatedTimestamp *metav1.Time)
UpdateInstanceStatus updates `Status.PlanStatus` and `Status.AggregatedStatus` property based on the given plan
type InstanceError ¶
InstanceError indicates error on that can also emit a kubernetes warn event +k8s:deepcopy-gen=false
func (*InstanceError) Error ¶
func (e *InstanceError) Error() string
type InstanceList ¶
type InstanceList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Instance `json:"items"` }
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 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 OperatorVersion object. OperatorVersion corev1.ObjectReference `json:"operatorVersion,omitempty"` Parameters map[string]string `json:"parameters,omitempty"` PlanExecution PlanExecution `json:"planExecution,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"` }
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 KudoOperatorTaskSpec ¶ added in v0.14.0
type KudoOperatorTaskSpec struct { // either repo package name, local package folder or an URL to package tarball // +optional Package string `json:"package,omitempty"` // name of installed operator. this field is set by the CLI and should not be set directly by the user // +optional OperatorName string `json:"operatorName,omitempty"` // +optional InstanceName string `json:"instanceName,omitempty"` // a specific app version in the official repo, defaults to the most recent // +optional AppVersion string `json:"appVersion,omitempty"` // a specific operator version in the official repo, defaults to the most recent one // +optional OperatorVersion string `json:"operatorVersion,omitempty"` // name of the template file (located in the `templates` folder) from which the *parent* instance // generates a parameter file used to populate the *child* Instance.Spec.Parameters // +optional ParameterFile string `json:"parameterFile,omitempty"` }
KudoOperatorSpec specifies how a KUDO operator is installed
func (*KudoOperatorTaskSpec) DeepCopy ¶ added in v0.14.0
func (in *KudoOperatorTaskSpec) DeepCopy() *KudoOperatorTaskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KudoOperatorTaskSpec.
func (*KudoOperatorTaskSpec) DeepCopyInto ¶ added in v0.14.0
func (in *KudoOperatorTaskSpec) DeepCopyInto(out *KudoOperatorTaskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Maintainer ¶
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 ¶
func (in *Maintainer) DeepCopy() *Maintainer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Maintainer.
func (*Maintainer) DeepCopyInto ¶
func (in *Maintainer) DeepCopyInto(out *Maintainer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Operator ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operator.
func (*Operator) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Operator) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OperatorList ¶
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 ¶
func (in *OperatorList) DeepCopy() *OperatorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorList.
func (*OperatorList) DeepCopyInto ¶
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 ¶
func (in *OperatorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OperatorSpec ¶
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"` NamespaceManifest string `json:"namespaceManifest,omitempty"` }
OperatorSpec defines the desired state of Operator
func (*OperatorSpec) DeepCopy ¶
func (in *OperatorSpec) DeepCopy() *OperatorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorSpec.
func (*OperatorSpec) DeepCopyInto ¶
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 ¶
type OperatorStatus struct { }
OperatorStatus defines the observed state of Operator
func (*OperatorStatus) DeepCopy ¶
func (in *OperatorStatus) DeepCopy() *OperatorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorStatus.
func (*OperatorStatus) DeepCopyInto ¶
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 ¶
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 GetOperatorVersionByName ¶ added in v0.14.0
func GetOperatorVersionByName(ovn, ns string, c client.Reader) (ov *OperatorVersion, err error)
func (*OperatorVersion) DeepCopy ¶
func (in *OperatorVersion) DeepCopy() *OperatorVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersion.
func (*OperatorVersion) DeepCopyInto ¶
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 ¶
func (in *OperatorVersion) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OperatorVersionList ¶
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 ¶
func (in *OperatorVersionList) DeepCopy() *OperatorVersionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersionList.
func (*OperatorVersionList) DeepCopyInto ¶
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 ¶
func (in *OperatorVersionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OperatorVersionSpec ¶
type OperatorVersionSpec struct { // +optional Operator corev1.ObjectReference `json:"operator,omitempty"` Version string `json:"version,omitempty"` AppVersion string `json:"appVersion,omitempty"` // Templates is a list of references to YAML templates located in the templates folder and later referenced from tasks. Templates map[string]string `json:"templates,omitempty"` // List of all tasks available in this OperatorVersion. Tasks []Task `json:"tasks,omitempty"` Parameters []Parameter `json:"parameters,omitempty"` // Plans maps a plan name to a plan. // +nullable 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"` // UpgradableFrom lists all OperatorVersions that can upgrade to this OperatorVersion. UpgradableFrom []corev1.ObjectReference `json:"upgradableFrom,omitempty"` }
OperatorVersionSpec defines the desired state of OperatorVersion.
func (*OperatorVersionSpec) DeepCopy ¶
func (in *OperatorVersionSpec) DeepCopy() *OperatorVersionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersionSpec.
func (*OperatorVersionSpec) DeepCopyInto ¶
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 ¶
type OperatorVersionStatus struct { }
OperatorVersionStatus defines the observed state of OperatorVersion.
func (*OperatorVersionStatus) DeepCopy ¶
func (in *OperatorVersionStatus) DeepCopy() *OperatorVersionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorVersionStatus.
func (*OperatorVersionStatus) DeepCopyInto ¶
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.
type Parameter ¶
type Parameter struct { // DisplayName can be used by UIs. DisplayName string `json:"displayName,omitempty"` // Name is the string that should be used in the template file for example, // if `name: COUNT` then using the variable in a spec like: // // spec: // replicas: {{ .Params.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"` // Type specifies the value type. Defaults to `string`. Type ParameterType `json:"value-type,omitempty"` }
Parameter captures the variability of an OperatorVersion being instantiated in an instance.
func GetExistingParamDefinitions ¶ added in v0.12.0
func GetExistingParamDefinitions(params map[string]string, ov *OperatorVersion) []Parameter
GetExistingParamDefinitions retrieves parameter metadata from OperatorVersion
func GetParamDefinitions ¶ added in v0.10.1
func GetParamDefinitions(params map[string]string, ov *OperatorVersion) ([]Parameter, error)
GetParamDefinitions retrieves parameter metadata from OperatorVersion but returns an error if any parameter is missing
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 ParameterType ¶ added in v0.11.0
type ParameterType string
ParameterType specifies the type of a parameter value.
const ( // StringValueType is used for parameter values that are provided as a string. StringValueType ParameterType = "string" // ArrayValueType is used for parameter values that described an array of values. ArrayValueType ParameterType = "array" // MapValueType is used for parameter values that describe a mapping type. MapValueType ParameterType = "map" )
type Phase ¶
type Phase struct { // +optional Name string `json:"name"` // +optional Strategy Ordering `json:"strategy"` // Steps maps a step name to a list of templated Kubernetes objects stored as a string. // +optional Steps []Step `json:"steps"` }
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 PhaseStatus ¶
type PhaseStatus struct { Name string `json:"name,omitempty"` Status ExecutionStatus `json:"status,omitempty"` Message string `json:"message,omitempty"` // more verbose explanation of the status, e.g. a detailed error message Steps []StepStatus `json:"steps,omitempty"` }
PhaseStatus is representing status of a phase
func GetPhaseStatus ¶ added in v0.10.1
func GetPhaseStatus(phaseName string, planStatus *PlanStatus) *PhaseStatus
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.
func (*PhaseStatus) Set ¶ added in v0.9.0
func (s *PhaseStatus) Set(status ExecutionStatus)
func (*PhaseStatus) SetWithMessage ¶ added in v0.9.0
func (s *PhaseStatus) SetWithMessage(status ExecutionStatus, message string)
type PipeSpec ¶ added in v0.9.0
type PipeSpec struct { // +optional File string `json:"file"` // +optional EnvFile string `json:"envFile"` // +optional Kind string `json:"kind"` // +optional Key string `json:"key"` }
PipeSpec describes how a file generated by a PipeTask is stored and referenced
func (*PipeSpec) DeepCopy ¶ added in v0.9.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PipeSpec.
func (*PipeSpec) DeepCopyInto ¶ added in v0.9.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PipeTaskSpec ¶ added in v0.9.0
type PipeTaskSpec struct { // +optional Pod string `json:"pod,omitempty"` // +optional // +nullable Pipe []PipeSpec `json:"pipe,omitempty"` }
PipeTask specifies a task that generates files and stores them for later usage in subsequent tasks
func (*PipeTaskSpec) DeepCopy ¶ added in v0.9.0
func (in *PipeTaskSpec) DeepCopy() *PipeTaskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PipeTaskSpec.
func (*PipeTaskSpec) DeepCopyInto ¶ added in v0.9.0
func (in *PipeTaskSpec) DeepCopyInto(out *PipeTaskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Plan ¶
type Plan struct { // +optional Strategy Ordering `json:"strategy"` // Phases maps a phase name to a Phase object. // +optional // +nullable Phases []Phase `json:"phases"` }
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 ¶ added in v0.10.1
type PlanExecution struct { PlanName string `json:"planName,omitempty"` UID apimachinerytypes.UID `json:"uid,omitempty"` Status ExecutionStatus `json:"status,omitempty"` }
There are two ways a plan execution can be triggered:
- indirectly through update of a corresponding parameter in the InstanceSpec.Parameters map
- directly through setting of the InstanceSpec.PlanExecution.PlanName field
While indirect (1) triggers happens every time a user changes a parameter, a directly (2) triggered plan is reserved for the situations when parameters doesn't change e.g. a periodic backup is triggered overriding the existing backup file. Additionally, this opens room for canceling and overriding currently running plans in the future. Note: PlanExecution field defines plan name and corresponding parameters that IS CURRENTLY executed. Once the instance controller (IC) is done with the execution, this field will be cleared. Each plan execution has a unique UID so should the same plan be re-triggered it will have a new UID
func (*PlanExecution) DeepCopy ¶ added in v0.10.1
func (in *PlanExecution) DeepCopy() *PlanExecution
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanExecution.
func (*PlanExecution) DeepCopyInto ¶ added in v0.10.1
func (in *PlanExecution) DeepCopyInto(out *PlanExecution)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlanStatus ¶
type PlanStatus struct { Name string `json:"name,omitempty"` Status ExecutionStatus `json:"status,omitempty"` Message string `json:"message,omitempty"` // more verbose explanation of the status, e.g. a detailed error message // +nullable LastUpdatedTimestamp *metav1.Time `json:"lastUpdatedTimestamp,omitempty"` Phases []PhaseStatus `json:"phases,omitempty"` UID apimachinerytypes.UID `json:"uid,omitempty"` }
PlanStatus is representing status of a plan
These are valid states and transitions
+----------------+ | Never executed | +-------+--------+ | v
+-------------+ +-------+--------+ | Error |<------>| Pending | +------+------+ +-------+--------+
^ | | v | +-------+--------+ +-------------->| In progress | | +-------+--------+ | | v v
+------+------+ +-------+--------+ | Fatal error | | Complete | +-------------+ +----------------+
func (*PlanStatus) DeepCopy ¶
func (in *PlanStatus) DeepCopy() *PlanStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanStatus.
func (*PlanStatus) DeepCopyInto ¶
func (in *PlanStatus) DeepCopyInto(out *PlanStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PlanStatus) Set ¶ added in v0.9.0
func (s *PlanStatus) Set(status ExecutionStatus)
func (*PlanStatus) SetWithMessage ¶ added in v0.9.0
func (s *PlanStatus) SetWithMessage(status ExecutionStatus, message string)
type ResourceTaskSpec ¶
type ResourceTaskSpec struct { // +optional // +nullable Resources []string `json:"resources,omitempty"` }
ResourceTaskSpec is referencing a list of resources
func (*ResourceTaskSpec) DeepCopy ¶
func (in *ResourceTaskSpec) DeepCopy() *ResourceTaskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceTaskSpec.
func (*ResourceTaskSpec) DeepCopyInto ¶
func (in *ResourceTaskSpec) DeepCopyInto(out *ResourceTaskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Step ¶
type Step struct { // +optional Name string `json:"name"` // +optional Tasks []string `json:"tasks"` }
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"` Message string `json:"message,omitempty"` // more verbose explanation of the status, e.g. a detailed error message Status ExecutionStatus `json:"status,omitempty"` }
StepStatus is representing status of a step
func GetStepStatus ¶ added in v0.10.1
func GetStepStatus(stepName string, phaseStatus *PhaseStatus) *StepStatus
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.
func (*StepStatus) Set ¶ added in v0.9.0
func (s *StepStatus) Set(status ExecutionStatus)
func (*StepStatus) SetWithMessage ¶ added in v0.9.0
func (s *StepStatus) SetWithMessage(status ExecutionStatus, message string)
type Task ¶
type Task struct { // +optional Name string `json:"name"` // +optional Kind string `json:"kind"` // +optional Spec TaskSpec `json:"spec"` }
Task is a global, polymorphic implementation of all publicly available tasks
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 { ResourceTaskSpec `json:",inline"` DummyTaskSpec `json:",inline"` PipeTaskSpec `json:",inline"` ToggleTaskSpec `json:",inline"` KudoOperatorTaskSpec `json:",inline"` }
TaskSpec embeds all possible task specs. This allows us to avoid writing custom un/marshallers that would only parse certain fields depending on the task Kind. The downside of this approach is, that embedded types can not have fields with the same json names as it would become ambiguous for the default parser. We might revisit this approach in the future should this become an issue.
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 ToggleTaskSpec ¶ added in v0.11.0
type ToggleTaskSpec struct { // +optional Parameter string `json:"parameter,omitempty"` }
ToggleTaskSpec is referencing a ResourceTaskSpec and a parameter
func (*ToggleTaskSpec) DeepCopy ¶ added in v0.11.0
func (in *ToggleTaskSpec) DeepCopy() *ToggleTaskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ToggleTaskSpec.
func (*ToggleTaskSpec) DeepCopyInto ¶ added in v0.11.0
func (in *ToggleTaskSpec) DeepCopyInto(out *ToggleTaskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.