v1beta1

package
v1.9.4 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2023 License: Apache-2.0 Imports: 21 Imported by: 11

Documentation

Overview

Package v1beta1 contains resources relating to the Open Application Model. See https://github.com/oam-dev/spec for more details. +kubebuilder:object:generate=true +groupName=core.oam.dev +versionName=v1beta1

Index

Constants

View Source
const (
	Group   = common.Group
	Version = "v1beta1"
)

Package type metadata.

View Source
const (
	// ResourceTrackerTypeRoot means resources in this resourceTracker will only be recycled when application is deleted
	ResourceTrackerTypeRoot = ResourceTrackerType("root")
	// ResourceTrackerTypeVersioned means resources in this resourceTracker will be recycled when this version is unused and this resource is not managed by latest RT
	ResourceTrackerTypeVersioned = ResourceTrackerType("versioned")
	// ResourceTrackerTypeComponentRevision stores all component revisions used
	ResourceTrackerTypeComponentRevision = ResourceTrackerType("component-revision")
)

Variables

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

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

	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ComponentDefinitionKind             = reflect.TypeOf(ComponentDefinition{}).Name()
	ComponentDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: ComponentDefinitionKind}.String()
	ComponentDefinitionKindAPIVersion   = ComponentDefinitionKind + "." + SchemeGroupVersion.String()
	ComponentDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(ComponentDefinitionKind)
)

ComponentDefinition type metadata.

View Source
var (
	WorkloadDefinitionKind             = reflect.TypeOf(WorkloadDefinition{}).Name()
	WorkloadDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: WorkloadDefinitionKind}.String()
	WorkloadDefinitionKindAPIVersion   = WorkloadDefinitionKind + "." + SchemeGroupVersion.String()
	WorkloadDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(WorkloadDefinitionKind)
)

WorkloadDefinition type metadata.

View Source
var (
	TraitDefinitionKind             = reflect.TypeOf(TraitDefinition{}).Name()
	TraitDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: TraitDefinitionKind}.String()
	TraitDefinitionKindAPIVersion   = TraitDefinitionKind + "." + SchemeGroupVersion.String()
	TraitDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(TraitDefinitionKind)
)

TraitDefinition type metadata.

View Source
var (
	PolicyDefinitionKind             = reflect.TypeOf(PolicyDefinition{}).Name()
	PolicyDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: PolicyDefinitionKind}.String()
	PolicyDefinitionKindAPIVersion   = PolicyDefinitionKind + "." + SchemeGroupVersion.String()
	PolicyDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(PolicyDefinitionKind)
)

PolicyDefinition type metadata.

View Source
var (
	WorkflowStepDefinitionKind             = reflect.TypeOf(WorkflowStepDefinition{}).Name()
	WorkflowStepDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: WorkflowStepDefinitionKind}.String()
	WorkflowStepDefinitionKindAPIVersion   = WorkflowStepDefinitionKind + "." + SchemeGroupVersion.String()
	WorkflowStepDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(WorkflowStepDefinitionKind)
)

WorkflowStepDefinition type metadata.

View Source
var (
	DefinitionRevisionKind             = reflect.TypeOf(DefinitionRevision{}).Name()
	DefinitionRevisionGroupKind        = schema.GroupKind{Group: Group, Kind: DefinitionRevisionKind}.String()
	DefinitionRevisionKindAPIVersion   = DefinitionRevisionKind + "." + SchemeGroupVersion.String()
	DefinitionRevisionGroupVersionKind = SchemeGroupVersion.WithKind(DefinitionRevisionKind)
)

DefinitionRevision type metadata.

View Source
var (
	ApplicationKind            = reflect.TypeOf(Application{}).Name()
	ApplicationGroupKind       = schema.GroupKind{Group: Group, Kind: ApplicationKind}.String()
	ApplicationKindAPIVersion  = ApplicationKind + "." + SchemeGroupVersion.String()
	ApplicationKindVersionKind = SchemeGroupVersion.WithKind(ApplicationKind)
)

Application type metadata.

View Source
var (
	ApplicationRevisionKind             = reflect.TypeOf(ApplicationRevision{}).Name()
	ApplicationRevisionGroupKind        = schema.GroupKind{Group: Group, Kind: ApplicationRevisionKind}.String()
	ApplicationRevisionKindAPIVersion   = ApplicationRevisionKind + "." + SchemeGroupVersion.String()
	ApplicationRevisionGroupVersionKind = SchemeGroupVersion.WithKind(ApplicationRevisionKind)
)

ApplicationRevision type metadata

View Source
var (
	ResourceTrackerKind            = reflect.TypeOf(ResourceTracker{}).Name()
	ResourceTrackerGroupKind       = schema.GroupKind{Group: Group, Kind: ResourceTrackerKind}.String()
	ResourceTrackerKindAPIVersion  = ResourceTrackerKind + "." + SchemeGroupVersion.String()
	ResourceTrackerKindVersionKind = SchemeGroupVersion.WithKind(ResourceTrackerKind)
)

ResourceTracker type metadata.

Functions

func Resource added in v1.1.1

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AppPolicy added in v1.1.0

type AppPolicy struct {
	// Name is the unique name of the policy.
	// +optional
	Name string `json:"name,omitempty"`
	// Type is the type of the policy
	Type string `json:"type"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Properties *runtime.RawExtension `json:"properties,omitempty"`
}

AppPolicy defines a global policy for all components in the app.

func (*AppPolicy) DeepCopy added in v1.1.0

func (in *AppPolicy) DeepCopy() *AppPolicy

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

func (*AppPolicy) DeepCopyInto added in v1.1.0

func (in *AppPolicy) DeepCopyInto(out *AppPolicy)

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

type Application

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

	Spec   ApplicationSpec  `json:"spec,omitempty"`
	Status common.AppStatus `json:"status,omitempty"`
}

Application is the Schema for the applications API +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:resource:categories={oam},shortName={app,velaapp} +kubebuilder:printcolumn:name="COMPONENT",type=string,JSONPath=`.spec.components[*].name` +kubebuilder:printcolumn:name="TYPE",type=string,JSONPath=`.spec.components[*].type` +kubebuilder:printcolumn:name="PHASE",type=string,JSONPath=`.status.status` +kubebuilder:printcolumn:name="HEALTHY",type=boolean,JSONPath=`.status.services[*].healthy` +kubebuilder:printcolumn:name="STATUS",type=string,JSONPath=`.status.services[*].message` +kubebuilder:printcolumn:name="AGE",type=date,JSONPath=".metadata.creationTimestamp" +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Application) DeepCopy

func (in *Application) DeepCopy() *Application

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

func (*Application) DeepCopyInto

func (in *Application) DeepCopyInto(out *Application)

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

func (*Application) DeepCopyObject

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

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

func (*Application) GetComponent

func (app *Application) GetComponent(workloadType string) *common.ApplicationComponent

GetComponent get the component from the application based on its workload type

func (*Application) GetCondition added in v1.1.0

func (app *Application) GetCondition(t condition.ConditionType) condition.Condition

GetCondition get condition by given condition type

func (*Application) Hub

func (*Application) Hub()

Hub marks this type as a conversion hub.

func (*Application) SetConditions added in v1.1.0

func (app *Application) SetConditions(c ...condition.Condition)

SetConditions set condition to application

func (*Application) Unstructured added in v1.2.2

func (app *Application) Unstructured() (*unstructured.Unstructured, error)

Unstructured convert application to unstructured.Unstructured.

type ApplicationList

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

ApplicationList contains a list of Application +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ApplicationList) DeepCopy

func (in *ApplicationList) DeepCopy() *ApplicationList

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

func (*ApplicationList) DeepCopyInto

func (in *ApplicationList) DeepCopyInto(out *ApplicationList)

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

func (*ApplicationList) DeepCopyObject

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

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

type ApplicationRevision

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

	Spec   ApplicationRevisionSpec   `json:"spec,omitempty"`
	Status ApplicationRevisionStatus `json:"status,omitempty"`
}

ApplicationRevision is the Schema for the ApplicationRevision API +kubebuilder:storageversion +kubebuilder:resource:categories={oam},shortName=apprev +kubebuilder:subresource:status +kubebuilder:printcolumn:name="AGE",type=date,JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="PUBLISH_VERSION",type=string,JSONPath=`.metadata.annotations['app\.oam\.dev\/publishVersion']` +kubebuilder:printcolumn:name="SUCCEEDED",type=string,JSONPath=`.status.succeeded` +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ApplicationRevision) DeepCopy

func (in *ApplicationRevision) DeepCopy() *ApplicationRevision

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

func (*ApplicationRevision) DeepCopyInto

func (in *ApplicationRevision) DeepCopyInto(out *ApplicationRevision)

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

func (*ApplicationRevision) DeepCopyObject

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

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

type ApplicationRevisionCompressibleFields added in v1.7.0

type ApplicationRevisionCompressibleFields struct {
	// Application records the snapshot of the created/modified Application
	Application Application `json:"application"`

	// ComponentDefinitions records the snapshot of the componentDefinitions related with the created/modified Application
	ComponentDefinitions map[string]*ComponentDefinition `json:"componentDefinitions,omitempty"`

	// WorkloadDefinitions records the snapshot of the workloadDefinitions related with the created/modified Application
	WorkloadDefinitions map[string]WorkloadDefinition `json:"workloadDefinitions,omitempty"`

	// TraitDefinitions records the snapshot of the traitDefinitions related with the created/modified Application
	TraitDefinitions map[string]*TraitDefinition `json:"traitDefinitions,omitempty"`

	// PolicyDefinitions records the snapshot of the PolicyDefinitions related with the created/modified Application
	PolicyDefinitions map[string]PolicyDefinition `json:"policyDefinitions,omitempty"`

	// WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions related with the created/modified Application
	WorkflowStepDefinitions map[string]*WorkflowStepDefinition `json:"workflowStepDefinitions,omitempty"`

	// Policies records the external policies
	Policies map[string]v1alpha1.Policy `json:"policies,omitempty"`

	// Workflow records the external workflow
	Workflow *workflowv1alpha1.Workflow `json:"workflow,omitempty"`

	// ReferredObjects records the referred objects used in the ref-object typed components
	// +kubebuilder:pruning:PreserveUnknownFields
	ReferredObjects []common.ReferredObject `json:"referredObjects,omitempty"`
}

ApplicationRevisionCompressibleFields represents all the fields that can be compressed. So we can better organize them and compress only the compressible fields.

func (*ApplicationRevisionCompressibleFields) DeepCopy added in v1.7.0

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

func (*ApplicationRevisionCompressibleFields) DeepCopyInto added in v1.7.0

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

type ApplicationRevisionCompression added in v1.7.0

type ApplicationRevisionCompression struct {
	compression.CompressedText `json:",inline"`
}

ApplicationRevisionCompression represents the compressed components in apprev in base64.

func (*ApplicationRevisionCompression) DeepCopy added in v1.7.0

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

func (*ApplicationRevisionCompression) DeepCopyInto added in v1.7.0

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

type ApplicationRevisionList

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

ApplicationRevisionList contains a list of ApplicationRevision +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ApplicationRevisionList) DeepCopy

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

func (*ApplicationRevisionList) DeepCopyInto

func (in *ApplicationRevisionList) DeepCopyInto(out *ApplicationRevisionList)

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

func (*ApplicationRevisionList) DeepCopyObject

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

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

type ApplicationRevisionSpec

type ApplicationRevisionSpec struct {
	// ApplicationRevisionCompressibleFields represents all the fields that can be compressed.
	ApplicationRevisionCompressibleFields `json:",inline"`

	// Compression represents the compressed components in apprev in base64 (if compression is enabled).
	Compression ApplicationRevisionCompression `json:"compression,omitempty"`
}

ApplicationRevisionSpec is the spec of ApplicationRevision

func (*ApplicationRevisionSpec) DeepCopy

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

func (*ApplicationRevisionSpec) DeepCopyInto

func (in *ApplicationRevisionSpec) DeepCopyInto(out *ApplicationRevisionSpec)

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

func (*ApplicationRevisionSpec) MarshalJSON added in v1.7.0

func (apprev *ApplicationRevisionSpec) MarshalJSON() ([]byte, error)

MarshalJSON serves the same purpose as the one in ResourceTrackerSpec.

func (*ApplicationRevisionSpec) UnmarshalJSON added in v1.7.0

func (apprev *ApplicationRevisionSpec) UnmarshalJSON(data []byte) error

UnmarshalJSON serves the same purpose as the one in ResourceTrackerSpec.

type ApplicationRevisionStatus added in v1.3.0

type ApplicationRevisionStatus struct {
	// Succeeded records if the workflow finished running with success
	Succeeded bool `json:"succeeded"`
	// Workflow the running status of the workflow
	Workflow *common.WorkflowStatus `json:"workflow,omitempty"`
	// Record the context values to the revision.
	WorkflowContext map[string]string `json:"workflowContext,omitempty"`
}

ApplicationRevisionStatus is the status of ApplicationRevision

func (*ApplicationRevisionStatus) DeepCopy added in v1.3.0

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

func (*ApplicationRevisionStatus) DeepCopyInto added in v1.3.0

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

type ApplicationSpec

type ApplicationSpec struct {
	Components []common.ApplicationComponent `json:"components"`

	// Policies defines the global policies for all components in the app, e.g. security, metrics, gitops,
	// multi-cluster placement rules, etc.
	// Policies are applied after components are rendered and before workflow steps are executed.
	Policies []AppPolicy `json:"policies,omitempty"`

	// Workflow defines how to customize the control logic.
	// If workflow is specified, Vela won't apply any resource, but provide rendered output in AppRevision.
	// Workflow steps are executed in array order, and each step:
	// - will have a context in annotation.
	// - should mark "finish" phase in status.conditions.
	Workflow *Workflow `json:"workflow,omitempty"`
}

ApplicationSpec is the spec of Application

func (*ApplicationSpec) DeepCopy

func (in *ApplicationSpec) DeepCopy() *ApplicationSpec

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

func (*ApplicationSpec) DeepCopyInto

func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec)

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

type ComponentDefinition

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

	Spec   ComponentDefinitionSpec   `json:"spec,omitempty"`
	Status ComponentDefinitionStatus `json:"status,omitempty"`
}

ComponentDefinition is the Schema for the componentdefinitions API +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=comp +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:printcolumn:name="WORKLOAD-KIND",type=string,JSONPath=".spec.workload.definition.kind" +kubebuilder:printcolumn:name="DESCRIPTION",type=string,JSONPath=".metadata.annotations.definition\\.oam\\.dev/description" +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ComponentDefinition) DeepCopy

func (in *ComponentDefinition) DeepCopy() *ComponentDefinition

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

func (*ComponentDefinition) DeepCopyInto

func (in *ComponentDefinition) DeepCopyInto(out *ComponentDefinition)

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

func (*ComponentDefinition) DeepCopyObject

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

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

func (*ComponentDefinition) GetCondition

func (cd *ComponentDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition

GetCondition gets condition from ComponentDefinition

func (*ComponentDefinition) SetConditions

func (cd *ComponentDefinition) SetConditions(c ...condition.Condition)

SetConditions set condition for ComponentDefinition

type ComponentDefinitionList

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

ComponentDefinitionList contains a list of ComponentDefinition

func (*ComponentDefinitionList) DeepCopy

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

func (*ComponentDefinitionList) DeepCopyInto

func (in *ComponentDefinitionList) DeepCopyInto(out *ComponentDefinitionList)

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

func (*ComponentDefinitionList) DeepCopyObject

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

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

type ComponentDefinitionSpec

type ComponentDefinitionSpec struct {
	// Workload is a workload type descriptor
	Workload common.WorkloadTypeDescriptor `json:"workload"`

	// ChildResourceKinds are the list of GVK of the child resources this workload generates
	ChildResourceKinds []common.ChildResourceKind `json:"childResourceKinds,omitempty"`

	// RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload
	// can be used by trait to create resource selectors(e.g. label selector for pods).
	// +optional
	RevisionLabel string `json:"revisionLabel,omitempty"`

	// PodSpecPath indicates where/if this workload has K8s podSpec field
	// if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.
	// +optional
	PodSpecPath string `json:"podSpecPath,omitempty"`

	// Status defines the custom health policy and status message for workload
	// +optional
	Status *common.Status `json:"status,omitempty"`

	// Schematic defines the data format and template of the encapsulation of the workload
	// +optional
	Schematic *common.Schematic `json:"schematic,omitempty"`

	// Extension is used for extension needs by OAM platform builders
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	Extension *runtime.RawExtension `json:"extension,omitempty"`
}

ComponentDefinitionSpec defines the desired state of ComponentDefinition

func (*ComponentDefinitionSpec) DeepCopy

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

func (*ComponentDefinitionSpec) DeepCopyInto

func (in *ComponentDefinitionSpec) DeepCopyInto(out *ComponentDefinitionSpec)

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

type ComponentDefinitionStatus

type ComponentDefinitionStatus struct {
	// ConditionedStatus reflects the observed status of a resource
	condition.ConditionedStatus `json:",inline"`
	// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
	ConfigMapRef string `json:"configMapRef,omitempty"`
	// LatestRevision of the component definition
	// +optional
	LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}

ComponentDefinitionStatus is the status of ComponentDefinition

func (*ComponentDefinitionStatus) DeepCopy

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

func (*ComponentDefinitionStatus) DeepCopyInto

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

type DefinitionRevision added in v1.0.4

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

	Spec DefinitionRevisionSpec `json:"spec,omitempty"`
}

DefinitionRevision is the Schema for the DefinitionRevision API +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=defrev +kubebuilder:printcolumn:name="REVISION",type=integer,JSONPath=".spec.revision" +kubebuilder:printcolumn:name="HASH",type=string,JSONPath=".spec.revisionHash" +kubebuilder:printcolumn:name="TYPE",type=string,JSONPath=".spec.definitionType" +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*DefinitionRevision) DeepCopy added in v1.0.4

func (in *DefinitionRevision) DeepCopy() *DefinitionRevision

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

func (*DefinitionRevision) DeepCopyInto added in v1.0.4

func (in *DefinitionRevision) DeepCopyInto(out *DefinitionRevision)

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

func (*DefinitionRevision) DeepCopyObject added in v1.0.4

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

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

type DefinitionRevisionList added in v1.0.4

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

DefinitionRevisionList contains a list of DefinitionRevision

func (*DefinitionRevisionList) DeepCopy added in v1.0.4

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

func (*DefinitionRevisionList) DeepCopyInto added in v1.0.4

func (in *DefinitionRevisionList) DeepCopyInto(out *DefinitionRevisionList)

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

func (*DefinitionRevisionList) DeepCopyObject added in v1.0.4

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

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

type DefinitionRevisionSpec added in v1.0.4

type DefinitionRevisionSpec struct {
	// Revision record revision number of DefinitionRevision
	Revision int64 `json:"revision"`

	// RevisionHash record the hash value of the spec of DefinitionRevision object.
	RevisionHash string `json:"revisionHash"`

	// DefinitionType
	DefinitionType common.DefinitionType `json:"definitionType"`

	// ComponentDefinition records the snapshot of the created/modified ComponentDefinition
	ComponentDefinition ComponentDefinition `json:"componentDefinition,omitempty"`

	// TraitDefinition records the snapshot of the created/modified TraitDefinition
	TraitDefinition TraitDefinition `json:"traitDefinition,omitempty"`

	// PolicyDefinition records the snapshot of the created/modified PolicyDefinition
	PolicyDefinition PolicyDefinition `json:"policyDefinition,omitempty"`

	// WorkflowStepDefinition records the snapshot of the created/modified WorkflowStepDefinition
	WorkflowStepDefinition WorkflowStepDefinition `json:"workflowStepDefinition,omitempty"`
}

DefinitionRevisionSpec is the spec of DefinitionRevision

func (*DefinitionRevisionSpec) DeepCopy added in v1.0.4

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

func (*DefinitionRevisionSpec) DeepCopyInto added in v1.0.4

func (in *DefinitionRevisionSpec) DeepCopyInto(out *DefinitionRevisionSpec)

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

type ManagedResource added in v1.2.0

type ManagedResource struct {
	common.ClusterObjectReference `json:",inline"`
	common.OAMObjectReference     `json:",inline"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Data *runtime.RawExtension `json:"raw,omitempty"`
	// Deleted marks the resource to be deleted
	Deleted bool `json:"deleted,omitempty"`
	// SkipGC marks the resource to skip gc
	SkipGC bool `json:"skipGC,omitempty"`
}

ManagedResource define the resource to be managed by ResourceTracker

func (*ManagedResource) ComponentKey added in v1.2.0

func (in *ManagedResource) ComponentKey() string

ComponentKey computes the key for the component which managed resource belongs to

func (*ManagedResource) DeepCopy added in v1.2.0

func (in *ManagedResource) DeepCopy() *ManagedResource

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

func (*ManagedResource) DeepCopyInto added in v1.2.0

func (in *ManagedResource) DeepCopyInto(out *ManagedResource)

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

func (*ManagedResource) DisplayName added in v1.2.0

func (in *ManagedResource) DisplayName() string

DisplayName readable name for locating resource

func (*ManagedResource) Equal added in v1.2.0

func (in *ManagedResource) Equal(r ManagedResource) bool

Equal check if two managed resource equals

func (*ManagedResource) NamespacedName added in v1.2.0

func (in *ManagedResource) NamespacedName() types.NamespacedName

NamespacedName namespacedName

func (*ManagedResource) ResourceKey added in v1.2.0

func (in *ManagedResource) ResourceKey() string

ResourceKey computes the key for managed resource, resources with the same key points to the same resource

func (*ManagedResource) ToUnstructured added in v1.2.0

func (in *ManagedResource) ToUnstructured() *unstructured.Unstructured

ToUnstructured converts managed resource into unstructured

func (*ManagedResource) ToUnstructuredWithData added in v1.2.0

func (in *ManagedResource) ToUnstructuredWithData() (*unstructured.Unstructured, error)

ToUnstructuredWithData converts managed resource into unstructured and unmarshal data

func (*ManagedResource) UnmarshalTo added in v1.2.0

func (in *ManagedResource) UnmarshalTo(obj interface{}) error

UnmarshalTo unmarshal ManagedResource into target object

type PolicyDefinition added in v1.1.0

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

	Spec   PolicyDefinitionSpec   `json:"spec,omitempty"`
	Status PolicyDefinitionStatus `json:"status,omitempty"`
}

PolicyDefinition is the Schema for the policydefinitions API +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=def-policy +kubebuilder:storageversion +kubebuilder:subresource:status +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*PolicyDefinition) DeepCopy added in v1.1.0

func (in *PolicyDefinition) DeepCopy() *PolicyDefinition

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

func (*PolicyDefinition) DeepCopyInto added in v1.1.0

func (in *PolicyDefinition) DeepCopyInto(out *PolicyDefinition)

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

func (*PolicyDefinition) DeepCopyObject added in v1.1.0

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

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

func (*PolicyDefinition) GetCondition added in v1.1.0

func (d *PolicyDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition

GetCondition gets condition from PolicyDefinition

func (*PolicyDefinition) SetConditions added in v1.1.0

func (d *PolicyDefinition) SetConditions(c ...condition.Condition)

SetConditions set condition for PolicyDefinition

type PolicyDefinitionList added in v1.1.0

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

PolicyDefinitionList contains a list of PolicyDefinition

func (*PolicyDefinitionList) DeepCopy added in v1.1.0

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

func (*PolicyDefinitionList) DeepCopyInto added in v1.1.0

func (in *PolicyDefinitionList) DeepCopyInto(out *PolicyDefinitionList)

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

func (*PolicyDefinitionList) DeepCopyObject added in v1.1.0

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

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

type PolicyDefinitionSpec added in v1.1.0

type PolicyDefinitionSpec struct {
	// Reference to the CustomResourceDefinition that defines this trait kind.
	Reference common.DefinitionReference `json:"definitionRef,omitempty"`

	// Schematic defines the data format and template of the encapsulation of the policy definition.
	// Only CUE schematic is supported for now.
	// +optional
	Schematic *common.Schematic `json:"schematic,omitempty"`

	// ManageHealthCheck means the policy will handle health checking and skip application controller
	// built-in health checking.
	ManageHealthCheck bool `json:"manageHealthCheck,omitempty"`
}

PolicyDefinitionSpec defines the desired state of PolicyDefinition

func (*PolicyDefinitionSpec) DeepCopy added in v1.1.0

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

func (*PolicyDefinitionSpec) DeepCopyInto added in v1.1.0

func (in *PolicyDefinitionSpec) DeepCopyInto(out *PolicyDefinitionSpec)

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

type PolicyDefinitionStatus added in v1.1.0

type PolicyDefinitionStatus struct {
	// ConditionedStatus reflects the observed status of a resource
	condition.ConditionedStatus `json:",inline"`

	// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
	ConfigMapRef string `json:"configMapRef,omitempty"`

	// LatestRevision of the component definition
	// +optional
	LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}

PolicyDefinitionStatus is the status of PolicyDefinition

func (*PolicyDefinitionStatus) DeepCopy added in v1.1.0

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

func (*PolicyDefinitionStatus) DeepCopyInto added in v1.1.0

func (in *PolicyDefinitionStatus) DeepCopyInto(out *PolicyDefinitionStatus)

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

type ResourceTracker

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

	Spec ResourceTrackerSpec `json:"spec,omitempty"`
}

An ResourceTracker represents a tracker for track cross namespace resources +kubebuilder:printcolumn:name="TYPE",type=string,JSONPath=`.spec.type` +kubebuilder:printcolumn:name="APP",type=string,JSONPath=`.metadata.labels['app\.oam\.dev\/name']` +kubebuilder:printcolumn:name="APP-NS",type=string,JSONPath=`.metadata.labels['app\.oam\.dev\/namespace']` +kubebuilder:printcolumn:name="APP-GEN",type=number,JSONPath=`.spec.applicationGeneration` +kubebuilder:resource:scope=Cluster,categories={oam},shortName=rt

func (*ResourceTracker) AddManagedResource added in v1.2.0

func (in *ResourceTracker) AddManagedResource(rsc client.Object, metaOnly bool, skipGC bool, creator string) (updated bool)

AddManagedResource add object to managed resources, if exists, update

func (*ResourceTracker) ContainsManagedResource added in v1.4.0

func (in *ResourceTracker) ContainsManagedResource(rsc client.Object) bool

ContainsManagedResource check if resource exists in ResourceTracker

func (*ResourceTracker) DeepCopy

func (in *ResourceTracker) DeepCopy() *ResourceTracker

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

func (*ResourceTracker) DeepCopyInto

func (in *ResourceTracker) DeepCopyInto(out *ResourceTracker)

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

func (*ResourceTracker) DeepCopyObject

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

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

func (*ResourceTracker) DeleteManagedResource added in v1.2.0

func (in *ResourceTracker) DeleteManagedResource(rsc client.Object, remove bool) (updated bool)

DeleteManagedResource if remove flag is on, it will remove the object from recorded resources. otherwise, it will mark the object as deleted instead of removing it workflow stage: resources are marked as deleted (and execute the deletion action) state-keep stage: resources marked as deleted and successfully deleted will be removed from resourcetracker

type ResourceTrackerCompression added in v1.6.0

type ResourceTrackerCompression struct {
	compression.CompressedText `json:",inline"`
}

ResourceTrackerCompression represents the compressed components in ResourceTracker.

func (*ResourceTrackerCompression) DeepCopy added in v1.6.0

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

func (*ResourceTrackerCompression) DeepCopyInto added in v1.6.0

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

type ResourceTrackerList

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

ResourceTrackerList contains a list of ResourceTracker

func (*ResourceTrackerList) DeepCopy

func (in *ResourceTrackerList) DeepCopy() *ResourceTrackerList

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

func (*ResourceTrackerList) DeepCopyInto

func (in *ResourceTrackerList) DeepCopyInto(out *ResourceTrackerList)

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

func (*ResourceTrackerList) DeepCopyObject

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

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

type ResourceTrackerSpec added in v1.2.0

type ResourceTrackerSpec struct {
	Type                  ResourceTrackerType        `json:"type,omitempty"`
	ApplicationGeneration int64                      `json:"applicationGeneration"`
	ManagedResources      []ManagedResource          `json:"managedResources,omitempty"`
	Compression           ResourceTrackerCompression `json:"compression,omitempty"`
}

ResourceTrackerSpec define the spec of resourceTracker

func (*ResourceTrackerSpec) DeepCopy added in v1.2.0

func (in *ResourceTrackerSpec) DeepCopy() *ResourceTrackerSpec

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

func (*ResourceTrackerSpec) DeepCopyInto added in v1.2.0

func (in *ResourceTrackerSpec) DeepCopyInto(out *ResourceTrackerSpec)

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

func (*ResourceTrackerSpec) MarshalJSON added in v1.6.0

func (in *ResourceTrackerSpec) MarshalJSON() ([]byte, error)

MarshalJSON will encode ResourceTrackerSpec according to the compression type. If type specified, it will encode data to compression data. Note: this is not the standard json Marshal process but re-use the framework function.

func (*ResourceTrackerSpec) UnmarshalJSON added in v1.6.0

func (in *ResourceTrackerSpec) UnmarshalJSON(src []byte) error

UnmarshalJSON will decode ResourceTrackerSpec according to the compression type. If type specified, it will decode data from compression data. Note: this is not the standard json Unmarshal process but re-use the framework function.

type ResourceTrackerType added in v1.2.0

type ResourceTrackerType string

ResourceTrackerType defines the type of resourceTracker

type StageType added in v1.6.0

type StageType string

StageType describes how the manifests should be dispatched. Only one of the following stage types may be specified. If none of the following types is specified, the default one is DefaultDispatch.

const (
	// PreDispatch means that pre dispatch for manifests
	PreDispatch StageType = "PreDispatch"
	// DefaultDispatch means that default dispatch for manifests
	DefaultDispatch StageType = "DefaultDispatch"
	// PostDispatch means that post dispatch for manifests
	PostDispatch StageType = "PostDispatch"
)

type TraitDefinition

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

	Spec   TraitDefinitionSpec   `json:"spec,omitempty"`
	Status TraitDefinitionStatus `json:"status,omitempty"`
}

A TraitDefinition registers a kind of Kubernetes custom resource as a valid OAM trait kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the trait when it is embedded in an OAM ApplicationConfiguration. +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=trait +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="APPLIES-TO",type=string,JSONPath=".spec.appliesToWorkloads" +kubebuilder:printcolumn:name="DESCRIPTION",type=string,JSONPath=".metadata.annotations.definition\\.oam\\.dev/description" +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*TraitDefinition) DeepCopy

func (in *TraitDefinition) DeepCopy() *TraitDefinition

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

func (*TraitDefinition) DeepCopyInto

func (in *TraitDefinition) DeepCopyInto(out *TraitDefinition)

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

func (*TraitDefinition) DeepCopyObject

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

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

func (*TraitDefinition) GetCondition

func (td *TraitDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition

GetCondition gets condition from TraitDefinition

func (*TraitDefinition) SetConditions

func (td *TraitDefinition) SetConditions(c ...condition.Condition)

SetConditions set condition for TraitDefinition

type TraitDefinitionList

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

TraitDefinitionList contains a list of TraitDefinition.

func (*TraitDefinitionList) DeepCopy

func (in *TraitDefinitionList) DeepCopy() *TraitDefinitionList

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

func (*TraitDefinitionList) DeepCopyInto

func (in *TraitDefinitionList) DeepCopyInto(out *TraitDefinitionList)

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

func (*TraitDefinitionList) DeepCopyObject

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

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

type TraitDefinitionSpec

type TraitDefinitionSpec struct {
	// Reference to the CustomResourceDefinition that defines this trait kind.
	Reference common.DefinitionReference `json:"definitionRef,omitempty"`

	// Revision indicates whether a trait is aware of component revision
	// +optional
	RevisionEnabled bool `json:"revisionEnabled,omitempty"`

	// WorkloadRefPath indicates where/if a trait accepts a workloadRef object
	// +optional
	WorkloadRefPath string `json:"workloadRefPath,omitempty"`

	// PodDisruptive specifies whether using the trait will cause the pod to restart or not.
	// +optional
	PodDisruptive bool `json:"podDisruptive,omitempty"`

	// AppliesToWorkloads specifies the list of workload kinds this trait
	// applies to. Workload kinds are specified in resource.group/version format,
	// e.g. server.core.oam.dev/v1alpha2. Traits that omit this field apply to
	// all workload kinds.
	// +optional
	AppliesToWorkloads []string `json:"appliesToWorkloads,omitempty"`

	// ConflictsWith specifies the list of traits(CRD name, Definition name, CRD group)
	// which could not apply to the same workloads with this trait.
	// Traits that omit this field can work with any other traits.
	// Example rules:
	// "service" # Trait definition name
	// "services.k8s.io" # API resource/crd name
	// "*.networking.k8s.io" # API group
	// "labelSelector:foo=bar" # label selector
	// labelSelector format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse
	// +optional
	ConflictsWith []string `json:"conflictsWith,omitempty"`

	// Schematic defines the data format and template of the encapsulation of the trait.
	// Only CUE and Kube schematic are supported for now.
	// +optional
	Schematic *common.Schematic `json:"schematic,omitempty"`

	// Status defines the custom health policy and status message for trait
	// +optional
	Status *common.Status `json:"status,omitempty"`

	// Extension is used for extension needs by OAM platform builders
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	Extension *runtime.RawExtension `json:"extension,omitempty"`

	// ManageWorkload defines the trait would be responsible for creating the workload
	// +optional
	ManageWorkload bool `json:"manageWorkload,omitempty"`
	// ControlPlaneOnly defines which cluster is dispatched to
	// +optional
	ControlPlaneOnly bool `json:"controlPlaneOnly,omitempty"`

	// Stage defines the stage information to which this trait resource processing belongs.
	// Currently, PreDispatch and PostDispatch are provided, which are used to control resource
	// pre-process and post-process respectively.
	// +optional
	Stage StageType `json:"stage,omitempty"`
}

A TraitDefinitionSpec defines the desired state of a TraitDefinition.

func (*TraitDefinitionSpec) DeepCopy

func (in *TraitDefinitionSpec) DeepCopy() *TraitDefinitionSpec

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

func (*TraitDefinitionSpec) DeepCopyInto

func (in *TraitDefinitionSpec) DeepCopyInto(out *TraitDefinitionSpec)

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

type TraitDefinitionStatus

type TraitDefinitionStatus struct {
	// ConditionedStatus reflects the observed status of a resource
	condition.ConditionedStatus `json:",inline"`
	// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
	ConfigMapRef string `json:"configMapRef,omitempty"`
	// LatestRevision of the component definition
	// +optional
	LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}

TraitDefinitionStatus is the status of TraitDefinition

func (*TraitDefinitionStatus) DeepCopy

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

func (*TraitDefinitionStatus) DeepCopyInto

func (in *TraitDefinitionStatus) DeepCopyInto(out *TraitDefinitionStatus)

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

type Workflow added in v1.1.0

type Workflow struct {
	Ref   string                                `json:"ref,omitempty"`
	Mode  *workflowv1alpha1.WorkflowExecuteMode `json:"mode,omitempty"`
	Steps []workflowv1alpha1.WorkflowStep       `json:"steps,omitempty"`
}

Workflow defines workflow steps and other attributes

func (*Workflow) DeepCopy added in v1.1.0

func (in *Workflow) DeepCopy() *Workflow

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

func (*Workflow) DeepCopyInto added in v1.1.0

func (in *Workflow) DeepCopyInto(out *Workflow)

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

type WorkflowStepDefinition added in v1.1.0

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

	Spec   WorkflowStepDefinitionSpec   `json:"spec,omitempty"`
	Status WorkflowStepDefinitionStatus `json:"status,omitempty"`
}

WorkflowStepDefinition is the Schema for the workflowstepdefinitions API +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=workflowstep +kubebuilder:storageversion +kubebuilder:subresource:status +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*WorkflowStepDefinition) DeepCopy added in v1.1.0

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

func (*WorkflowStepDefinition) DeepCopyInto added in v1.1.0

func (in *WorkflowStepDefinition) DeepCopyInto(out *WorkflowStepDefinition)

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

func (*WorkflowStepDefinition) DeepCopyObject added in v1.1.0

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

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

func (*WorkflowStepDefinition) GetCondition added in v1.1.0

func (d *WorkflowStepDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition

GetCondition gets condition from WorkflowStepDefinition

func (*WorkflowStepDefinition) SetConditions added in v1.1.0

func (d *WorkflowStepDefinition) SetConditions(c ...condition.Condition)

SetConditions set condition for WorkflowStepDefinition

type WorkflowStepDefinitionList added in v1.1.0

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

WorkflowStepDefinitionList contains a list of WorkflowStepDefinition

func (*WorkflowStepDefinitionList) DeepCopy added in v1.1.0

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

func (*WorkflowStepDefinitionList) DeepCopyInto added in v1.1.0

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

func (*WorkflowStepDefinitionList) DeepCopyObject added in v1.1.0

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

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

type WorkflowStepDefinitionSpec added in v1.1.0

type WorkflowStepDefinitionSpec struct {
	// Reference to the CustomResourceDefinition that defines this trait kind.
	Reference common.DefinitionReference `json:"definitionRef,omitempty"`

	// Schematic defines the data format and template of the encapsulation of the workflow step definition.
	// Only CUE schematic is supported for now.
	// +optional
	Schematic *common.Schematic `json:"schematic,omitempty"`
}

WorkflowStepDefinitionSpec defines the desired state of WorkflowStepDefinition

func (*WorkflowStepDefinitionSpec) DeepCopy added in v1.1.0

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

func (*WorkflowStepDefinitionSpec) DeepCopyInto added in v1.1.0

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

type WorkflowStepDefinitionStatus added in v1.1.0

type WorkflowStepDefinitionStatus struct {
	// ConditionedStatus reflects the observed status of a resource
	condition.ConditionedStatus `json:",inline"`
	// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
	ConfigMapRef string `json:"configMapRef,omitempty"`
	// LatestRevision of the component definition
	// +optional
	LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}

WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition

func (*WorkflowStepDefinitionStatus) DeepCopy added in v1.1.0

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

func (*WorkflowStepDefinitionStatus) DeepCopyInto added in v1.1.0

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

type WorkloadDefinition

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

	Spec   WorkloadDefinitionSpec   `json:"spec,omitempty"`
	Status WorkloadDefinitionStatus `json:"status,omitempty"`
}

A WorkloadDefinition registers a kind of Kubernetes custom resource as a valid OAM workload kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the workload when it is embedded in an OAM Component. +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=workload +kubebuilder:storageversion +kubebuilder:printcolumn:name="DEFINITION-NAME",type=string,JSONPath=".spec.definitionRef.name" +kubebuilder:printcolumn:name="DESCRIPTION",type=string,JSONPath=".metadata.annotations.definition\\.oam\\.dev/description" +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*WorkloadDefinition) DeepCopy

func (in *WorkloadDefinition) DeepCopy() *WorkloadDefinition

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

func (*WorkloadDefinition) DeepCopyInto

func (in *WorkloadDefinition) DeepCopyInto(out *WorkloadDefinition)

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

func (*WorkloadDefinition) DeepCopyObject

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

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

func (*WorkloadDefinition) GetCondition

func (wd *WorkloadDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition

GetCondition gets condition from WorkloadDefinition

func (*WorkloadDefinition) SetConditions

func (wd *WorkloadDefinition) SetConditions(c ...condition.Condition)

SetConditions set condition for WorkloadDefinition

type WorkloadDefinitionList

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

WorkloadDefinitionList contains a list of WorkloadDefinition. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*WorkloadDefinitionList) DeepCopy

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

func (*WorkloadDefinitionList) DeepCopyInto

func (in *WorkloadDefinitionList) DeepCopyInto(out *WorkloadDefinitionList)

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

func (*WorkloadDefinitionList) DeepCopyObject

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

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

type WorkloadDefinitionSpec

type WorkloadDefinitionSpec struct {
	// Reference to the CustomResourceDefinition that defines this workload kind.
	Reference common.DefinitionReference `json:"definitionRef"`

	// ChildResourceKinds are the list of GVK of the child resources this workload generates
	ChildResourceKinds []common.ChildResourceKind `json:"childResourceKinds,omitempty"`

	// RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload
	// can be used by trait to create resource selectors(e.g. label selector for pods).
	// +optional
	RevisionLabel string `json:"revisionLabel,omitempty"`

	// PodSpecPath indicates where/if this workload has K8s podSpec field
	// if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.
	// +optional
	PodSpecPath string `json:"podSpecPath,omitempty"`

	// Status defines the custom health policy and status message for workload
	// +optional
	Status *common.Status `json:"status,omitempty"`

	// Schematic defines the data format and template of the encapsulation of the workload
	// +optional
	Schematic *common.Schematic `json:"schematic,omitempty"`

	// Extension is used for extension needs by OAM platform builders
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	Extension *runtime.RawExtension `json:"extension,omitempty"`
}

A WorkloadDefinitionSpec defines the desired state of a WorkloadDefinition.

func (*WorkloadDefinitionSpec) DeepCopy

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

func (*WorkloadDefinitionSpec) DeepCopyInto

func (in *WorkloadDefinitionSpec) DeepCopyInto(out *WorkloadDefinitionSpec)

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

type WorkloadDefinitionStatus

type WorkloadDefinitionStatus struct {
	condition.ConditionedStatus `json:",inline"`
}

WorkloadDefinitionStatus is the status of WorkloadDefinition

func (*WorkloadDefinitionStatus) DeepCopy

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

func (*WorkloadDefinitionStatus) DeepCopyInto

func (in *WorkloadDefinitionStatus) DeepCopyInto(out *WorkloadDefinitionStatus)

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