v1alpha2

package
v0.3.4 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1alpha2 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=v1alpha2

Index

Constants

View Source
const (
	// StatusHealthy represents healthy status.
	StatusHealthy HealthStatus = "HEALTHY"
	// StatusUnhealthy represents unhealthy status.
	StatusUnhealthy = "UNHEALTHY"
	// StatusUnknown represents unknown status.
	StatusUnknown = "UNKNOWN"
)
View Source
const (
	Group   = "core.oam.dev"
	Version = "v1alpha2"
)

Package type metadata.

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}
)
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 (
	ScopeDefinitionKind             = reflect.TypeOf(ScopeDefinition{}).Name()
	ScopeDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: ScopeDefinitionKind}.String()
	ScopeDefinitionKindAPIVersion   = ScopeDefinitionKind + "." + SchemeGroupVersion.String()
	ScopeDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(ScopeDefinitionKind)
)

ScopeDefinition type metadata.

View Source
var (
	ComponentKind             = reflect.TypeOf(Component{}).Name()
	ComponentGroupKind        = schema.GroupKind{Group: Group, Kind: ComponentKind}.String()
	ComponentKindAPIVersion   = ComponentKind + "." + SchemeGroupVersion.String()
	ComponentGroupVersionKind = SchemeGroupVersion.WithKind(ComponentKind)
)

Component type metadata.

View Source
var (
	ApplicationConfigurationKind             = reflect.TypeOf(ApplicationConfiguration{}).Name()
	ApplicationConfigurationGroupKind        = schema.GroupKind{Group: Group, Kind: ApplicationConfigurationKind}.String()
	ApplicationConfigurationKindAPIVersion   = ApplicationConfigurationKind + "." + SchemeGroupVersion.String()
	ApplicationConfigurationGroupVersionKind = SchemeGroupVersion.WithKind(ApplicationConfigurationKind)
)

ApplicationConfiguration type metadata.

View Source
var (
	ContainerizedWorkloadKind             = reflect.TypeOf(ContainerizedWorkload{}).Name()
	ContainerizedWorkloadGroupKind        = schema.GroupKind{Group: Group, Kind: ContainerizedWorkloadKind}.String()
	ContainerizedWorkloadKindAPIVersion   = ContainerizedWorkloadKind + "." + SchemeGroupVersion.String()
	ContainerizedWorkloadGroupVersionKind = SchemeGroupVersion.WithKind(ContainerizedWorkloadKind)
)

ContainerizedWorkload type metadata.

View Source
var (
	ManualScalerTraitKind             = reflect.TypeOf(ManualScalerTrait{}).Name()
	ManualScalerTraitGroupKind        = schema.GroupKind{Group: Group, Kind: ManualScalerTraitKind}.String()
	ManualScalerTraitKindAPIVersion   = ManualScalerTraitKind + "." + SchemeGroupVersion.String()
	ManualScalerTraitGroupVersionKind = SchemeGroupVersion.WithKind(ManualScalerTraitKind)
)

ManualScalerTrait type metadata.

View Source
var (
	HealthScopeKind             = reflect.TypeOf(HealthScope{}).Name()
	HealthScopeGroupKind        = schema.GroupKind{Group: Group, Kind: HealthScopeKind}.String()
	HealthScopeKindAPIVersion   = HealthScopeKind + "." + SchemeGroupVersion.String()
	HealthScopeGroupVersionKind = SchemeGroupVersion.WithKind(HealthScopeKind)
)

HealthScope 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 (
	ApplicationDeploymentKind            = reflect.TypeOf(ApplicationDeployment{}).Name()
	ApplicationDeploymentGroupKind       = schema.GroupKind{Group: Group, Kind: ApplicationDeploymentKind}.String()
	ApplicationDeploymentKindAPIVersion  = ApplicationKind + "." + SchemeGroupVersion.String()
	ApplicationDeploymentKindVersionKind = SchemeGroupVersion.WithKind(ApplicationDeploymentKind)
)

Application type metadata.

Functions

This section is empty.

Types

type AppStatus

type AppStatus struct {
	runtimev1alpha1.ConditionedStatus `json:",inline"`

	Phase ApplicationPhase `json:"status,omitempty"`

	// Components record the related Components created by Application Controller
	Components []runtimev1alpha1.TypedReference `json:"components,omitempty"`

	// Services record the status of the application services
	Services []ApplicationComponentStatus `json:"services,omitempty"`
}

AppStatus defines the observed state of Application

func (*AppStatus) DeepCopy

func (in *AppStatus) DeepCopy() *AppStatus

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

func (*AppStatus) DeepCopyInto

func (in *AppStatus) DeepCopyInto(out *AppStatus)

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 AppStatus       `json:"status,omitempty"`
}

Application is the Schema for the applications API +kubebuilder:subresource:status

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 added in v0.3.1

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

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

type ApplicationComponent added in v0.3.0

type ApplicationComponent struct {
	Name         string `json:"name"`
	WorkloadType string `json:"type"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Settings runtime.RawExtension `json:"settings"`

	// Traits define the trait of one component, the type must be array to keep the order.
	Traits []ApplicationTrait `json:"traits,omitempty"`

	// +kubebuilder:pruning:PreserveUnknownFields
	// scopes in ApplicationComponent defines the component-level scopes
	// the format is <scope-type:scope-instance-name> pairs, the key represents type of `ScopeDefinition` while the value represent the name of scope instance.
	Scopes map[string]string `json:"scopes,omitempty"`
}

ApplicationComponent describe the component of application

func (*ApplicationComponent) DeepCopy added in v0.3.0

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

func (*ApplicationComponent) DeepCopyInto added in v0.3.0

func (in *ApplicationComponent) DeepCopyInto(out *ApplicationComponent)

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

type ApplicationComponentStatus added in v0.3.3

type ApplicationComponentStatus struct {
	Name    string                   `json:"name"`
	Healthy bool                     `json:"healthy"`
	Message string                   `json:"message,omitempty"`
	Traits  []ApplicationTraitStatus `json:"traits,omitempty"`
}

ApplicationComponentStatus record the health status of App component

func (*ApplicationComponentStatus) DeepCopy added in v0.3.3

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

func (*ApplicationComponentStatus) DeepCopyInto added in v0.3.3

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

type ApplicationConfiguration

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

	Spec   ApplicationConfigurationSpec   `json:"spec,omitempty"`
	Status ApplicationConfigurationStatus `json:"status,omitempty"`
}

An ApplicationConfiguration represents an OAM application. +kubebuilder:resource:shortName=appconfig,categories={crossplane,oam} +kubebuilder:subresource:status

func (*ApplicationConfiguration) DeepCopy

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

func (*ApplicationConfiguration) DeepCopyInto

func (in *ApplicationConfiguration) DeepCopyInto(out *ApplicationConfiguration)

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

func (*ApplicationConfiguration) DeepCopyObject

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

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

func (*ApplicationConfiguration) GetCondition

GetCondition of this ApplicationConfiguration.

func (*ApplicationConfiguration) SetConditions

func (ac *ApplicationConfiguration) SetConditions(c ...runtimev1alpha1.Condition)

SetConditions of this ApplicationConfiguration.

type ApplicationConfigurationComponent

type ApplicationConfigurationComponent struct {
	// ComponentName specifies a component whose latest revision will be bind
	// with ApplicationConfiguration. When the spec of the referenced component
	// changes, ApplicationConfiguration will automatically migrate all trait
	// affect from the prior revision to the new one. This is mutually exclusive
	// with RevisionName.
	// +optional
	ComponentName string `json:"componentName,omitempty"`

	// RevisionName of a specific component revision to which to bind
	// ApplicationConfiguration. This is mutually exclusive with componentName.
	// +optional
	RevisionName string `json:"revisionName,omitempty"`

	// DataOutputs specify the data output sources from this component.
	DataOutputs []DataOutput `json:"dataOutputs,omitempty"`

	// DataInputs specify the data input sinks into this component.
	DataInputs []DataInput `json:"dataInputs,omitempty"`

	// ParameterValues specify values for the the specified component's
	// parameters. Any parameter required by the component must be specified.
	// +optional
	ParameterValues []ComponentParameterValue `json:"parameterValues,omitempty"`

	// Traits of the specified component.
	// +optional
	Traits []ComponentTrait `json:"traits,omitempty"`

	// Scopes in which the specified component should exist.
	// +optional
	Scopes []ComponentScope `json:"scopes,omitempty"`
}

An ApplicationConfigurationComponent specifies a component of an ApplicationConfiguration. Each component is used to instantiate a workload.

func (*ApplicationConfigurationComponent) DeepCopy

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

func (*ApplicationConfigurationComponent) DeepCopyInto

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

type ApplicationConfigurationList

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

ApplicationConfigurationList contains a list of ApplicationConfiguration.

func (*ApplicationConfigurationList) DeepCopy

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

func (*ApplicationConfigurationList) DeepCopyInto

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

func (*ApplicationConfigurationList) DeepCopyObject

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

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

type ApplicationConfigurationSpec

type ApplicationConfigurationSpec struct {
	// Components of which this ApplicationConfiguration consists. Each
	// component will be used to instantiate a workload.
	Components []ApplicationConfigurationComponent `json:"components"`
}

An ApplicationConfigurationSpec defines the desired state of a ApplicationConfiguration.

func (*ApplicationConfigurationSpec) DeepCopy

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

func (*ApplicationConfigurationSpec) DeepCopyInto

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

type ApplicationConfigurationStatus

type ApplicationConfigurationStatus struct {
	runtimev1alpha1.ConditionedStatus `json:",inline"`

	// Status is a place holder for a customized controller to fill
	// if it needs a single place to summarize the status of the entire application
	Status ApplicationStatus `json:"status,omitempty"`

	Dependency DependencyStatus `json:"dependency,omitempty"`

	// Workloads created by this ApplicationConfiguration.
	Workloads []WorkloadStatus `json:"workloads,omitempty"`

	// The generation observed by the appConfig controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration"`

	// HistoryWorkloads will record history but still working revision workloads.
	HistoryWorkloads []HistoryWorkload `json:"historyWorkloads,omitempty"`
}

An ApplicationConfigurationStatus represents the observed state of a ApplicationConfiguration.

func (*ApplicationConfigurationStatus) DeepCopy

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

func (*ApplicationConfigurationStatus) DeepCopyInto

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

type ApplicationDeployment

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

	Spec   ApplicationDeploymentSpec   `json:"spec,omitempty"`
	Status ApplicationDeploymentStatus `json:"status,omitempty"`
}

ApplicationDeployment is the Schema for the ApplicationDeployment API +kubebuilder:object:root=true +kubebuilder:resource:categories={oam} +kubebuilder:subresource:status

func (*ApplicationDeployment) DeepCopy

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

func (*ApplicationDeployment) DeepCopyInto

func (in *ApplicationDeployment) DeepCopyInto(out *ApplicationDeployment)

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

func (*ApplicationDeployment) DeepCopyObject

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

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

type ApplicationDeploymentList

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

ApplicationDeploymentList contains a list of ApplicationDeployment +kubebuilder:object:root=true

func (*ApplicationDeploymentList) DeepCopy

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

func (*ApplicationDeploymentList) DeepCopyInto

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

func (*ApplicationDeploymentList) DeepCopyObject

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

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

type ApplicationDeploymentSpec

type ApplicationDeploymentSpec struct {
	// TargetApplicationName contains the name of the application that we need to upgrade to.
	// We assume that an application is immutable, thus the name alone is suffice
	TargetApplicationName string `json:"targetApplicationName"`

	// SourceApplicationName contains the name of the application that we need to upgrade from.
	// it can be empty only when it's the first time to deploy the application
	SourceApplicationName string `json:"sourceApplicationName,omitempty"`

	// The list of component to upgrade in the application.
	// We only support single component application so far
	// TODO: (RZ) Support multiple components in an application
	// +optional
	ComponentList []string `json:"componentList,omitempty"`

	// RolloutPlan is the details on how to rollout the resources
	RolloutPlan v1alpha1.RolloutPlan `json:"rolloutPlan"`

	// RevertOnDelete revert the rollout when the rollout CR is deleted, default is false
	// It will remove the target application from the kubernetes
	// +optional
	RevertOnDelete *bool `json:"revertOnDelete,omitempty"`
}

ApplicationDeploymentSpec defines how to describe an upgrade between different application

func (*ApplicationDeploymentSpec) DeepCopy

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

func (*ApplicationDeploymentSpec) DeepCopyInto

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

type ApplicationDeploymentStatus

type ApplicationDeploymentStatus struct {
	v1alpha1.RolloutStatus `json:",inline"`

	// LastTargetApplicationName contains the name of the application that we upgraded to
	// We will restart the rollout if this is not the same as the spec
	LastTargetApplicationName string `json:"lastTargetApplicationName"`

	// LastSourceApplicationName contains the name of the application that we need to upgrade from.
	// We will restart the rollout if this is not the same as the spec
	LastSourceApplicationName string `json:"lastSourceApplicationName,omitempty"`
}

ApplicationDeploymentStatus defines the observed state of ApplicationDeployment

func (*ApplicationDeploymentStatus) DeepCopy

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

func (*ApplicationDeploymentStatus) DeepCopyInto

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

type ApplicationList

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

ApplicationList contains a list of Application

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 ApplicationPhase

type ApplicationPhase string

ApplicationPhase is a label for the condition of a application at the current time

const (
	// ApplicationRollingOut means the app is in the middle of rolling out
	ApplicationRollingOut ApplicationPhase = "rollingOut"
	// ApplicationRendering means the app is rendering
	ApplicationRendering ApplicationPhase = "rendering"
	// ApplicationRunning means the app finished rendering and applied result to the cluster
	ApplicationRunning ApplicationPhase = "running"
	// ApplicationHealthChecking means the app finished rendering and applied result to the cluster, but still unhealthy
	ApplicationHealthChecking ApplicationPhase = "healthChecking"
)

type ApplicationSpec added in v0.3.0

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

ApplicationSpec is the spec of Application

func (*ApplicationSpec) DeepCopy added in v0.3.0

func (in *ApplicationSpec) DeepCopy() *ApplicationSpec

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

func (*ApplicationSpec) DeepCopyInto added in v0.3.0

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

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

type ApplicationStatus

type ApplicationStatus string

A ApplicationStatus represents the state of the entire application.

type ApplicationTrait added in v0.3.0

type ApplicationTrait struct {
	Name string `json:"name"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Properties runtime.RawExtension `json:"properties"`
}

ApplicationTrait defines the trait of application

func (*ApplicationTrait) DeepCopy added in v0.3.0

func (in *ApplicationTrait) DeepCopy() *ApplicationTrait

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

func (*ApplicationTrait) DeepCopyInto added in v0.3.0

func (in *ApplicationTrait) DeepCopyInto(out *ApplicationTrait)

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

type ApplicationTraitStatus added in v0.3.3

type ApplicationTraitStatus struct {
	Type    string `json:"type"`
	Healthy bool   `json:"healthy"`
	Message string `json:"message,omitempty"`
}

ApplicationTraitStatus records the trait health status

func (*ApplicationTraitStatus) DeepCopy added in v0.3.3

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

func (*ApplicationTraitStatus) DeepCopyInto added in v0.3.3

func (in *ApplicationTraitStatus) DeepCopyInto(out *ApplicationTraitStatus)

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

type CPUArchitecture

type CPUArchitecture string

A CPUArchitecture required by a containerised workload.

const (
	CPUArchitectureI386  CPUArchitecture = "i386"
	CPUArchitectureAMD64 CPUArchitecture = "amd64"
	CPUArchitectureARM   CPUArchitecture = "arm"
	CPUArchitectureARM64 CPUArchitecture = "arm64"
)

Supported architectures

type CPUResources

type CPUResources struct {
	// Required CPU count. 1.0 represents one CPU core.
	Required resource.Quantity `json:"required"`
}

CPUResources required by a container.

func (*CPUResources) DeepCopy

func (in *CPUResources) DeepCopy() *CPUResources

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

func (*CPUResources) DeepCopyInto

func (in *CPUResources) DeepCopyInto(out *CPUResources)

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

type ChildResourceKind

type ChildResourceKind struct {
	// APIVersion of the child resource
	APIVersion string `json:"apiVersion"`

	// Kind of the child resource
	Kind string `json:"kind"`

	// Selector to select the child resources that the workload wants to expose to traits
	Selector map[string]string `json:"selector,omitempty"`
}

A ChildResourceKind defines a child Kubernetes resource kind with a selector

func (*ChildResourceKind) DeepCopy

func (in *ChildResourceKind) DeepCopy() *ChildResourceKind

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

func (*ChildResourceKind) DeepCopyInto

func (in *ChildResourceKind) DeepCopyInto(out *ChildResourceKind)

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

type Component

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

	Spec   ComponentSpec   `json:"spec,omitempty"`
	Status ComponentStatus `json:"status,omitempty"`
}

A Component describes how an OAM workload kind may be instantiated. +kubebuilder:resource:categories={crossplane,oam} +kubebuilder:subresource:status +kubebuilder:printcolumn:JSONPath=".spec.workload.kind",name=WORKLOAD-KIND,type=string +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*Component) DeepCopy

func (in *Component) DeepCopy() *Component

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

func (*Component) DeepCopyInto

func (in *Component) DeepCopyInto(out *Component)

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

func (*Component) DeepCopyObject

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

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

func (*Component) GetCondition

GetCondition of this Component.

func (*Component) SetConditions

func (cm *Component) SetConditions(c ...runtimev1alpha1.Condition)

SetConditions of this Component.

type ComponentList

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

ComponentList contains a list of Component.

func (*ComponentList) DeepCopy

func (in *ComponentList) DeepCopy() *ComponentList

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

func (*ComponentList) DeepCopyInto

func (in *ComponentList) DeepCopyInto(out *ComponentList)

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

func (*ComponentList) DeepCopyObject

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

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

type ComponentParameter

type ComponentParameter struct {
	// Name of this parameter. OAM ApplicationConfigurations will specify
	// parameter values using this name.
	Name string `json:"name"`

	// FieldPaths specifies an array of fields within this Component's workload
	// that will be overwritten by the value of this parameter. The type of the
	// parameter (e.g. int, string) is inferred from the type of these fields;
	// All fields must be of the same type. Fields are specified as JSON field
	// paths without a leading dot, for example 'spec.replicas'.
	FieldPaths []string `json:"fieldPaths"`

	// +kubebuilder:default:=false
	// Required specifies whether or not a value for this parameter must be
	// supplied when authoring an ApplicationConfiguration.
	// +optional
	Required *bool `json:"required,omitempty"`

	// Description of this parameter.
	// +optional
	Description *string `json:"description,omitempty"`
}

A ComponentParameter defines a configurable parameter of a component.

func (*ComponentParameter) DeepCopy

func (in *ComponentParameter) DeepCopy() *ComponentParameter

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

func (*ComponentParameter) DeepCopyInto

func (in *ComponentParameter) DeepCopyInto(out *ComponentParameter)

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

type ComponentParameterValue

type ComponentParameterValue struct {
	// Name of the component parameter to set.
	Name string `json:"name"`

	// Value to set.
	Value intstr.IntOrString `json:"value"`
}

A ComponentParameterValue specifies a value for a named parameter. The associated component must publish a parameter with this name.

func (*ComponentParameterValue) DeepCopy

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

func (*ComponentParameterValue) DeepCopyInto

func (in *ComponentParameterValue) DeepCopyInto(out *ComponentParameterValue)

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

type ComponentScope

type ComponentScope struct {
	// A ScopeReference must refer to an OAM scope resource.
	ScopeReference runtimev1alpha1.TypedReference `json:"scopeRef"`
}

A ComponentScope specifies a scope in which a component should exist.

func (*ComponentScope) DeepCopy

func (in *ComponentScope) DeepCopy() *ComponentScope

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

func (*ComponentScope) DeepCopyInto

func (in *ComponentScope) DeepCopyInto(out *ComponentScope)

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

type ComponentSpec

type ComponentSpec struct {
	// A Workload that will be created for each ApplicationConfiguration that
	// includes this Component. Workload is an instance of a workloadDefinition.
	// We either use the GVK info or a special "type" field in the workload to associate
	// the content of the workload with its workloadDefinition
	// +kubebuilder:validation:EmbeddedResource
	// +kubebuilder:pruning:PreserveUnknownFields
	Workload runtime.RawExtension `json:"workload"`

	// Parameters exposed by this component. ApplicationConfigurations that
	// reference this component may specify values for these parameters, which
	// will in turn be injected into the embedded workload.
	// +optional
	Parameters []ComponentParameter `json:"parameters,omitempty"`
}

A ComponentSpec defines the desired state of a Component.

func (*ComponentSpec) DeepCopy

func (in *ComponentSpec) DeepCopy() *ComponentSpec

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

func (*ComponentSpec) DeepCopyInto

func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)

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

type ComponentStatus

type ComponentStatus struct {
	// The generation observed by the component controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration"`

	runtimev1alpha1.ConditionedStatus `json:",inline"`

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

A ComponentStatus represents the observed state of a Component.

func (*ComponentStatus) DeepCopy

func (in *ComponentStatus) DeepCopy() *ComponentStatus

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

func (*ComponentStatus) DeepCopyInto

func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus)

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

type ComponentTrait

type ComponentTrait struct {
	// A Trait that will be created for the component
	// +kubebuilder:validation:EmbeddedResource
	// +kubebuilder:pruning:PreserveUnknownFields
	Trait runtime.RawExtension `json:"trait"`

	// DataOutputs specify the data output sources from this trait.
	// +optional
	DataOutputs []DataOutput `json:"dataOutputs,omitempty"`

	// DataInputs specify the data input sinks into this trait.
	// +optional
	DataInputs []DataInput `json:"dataInputs,omitempty"`
}

A ComponentTrait specifies a trait that should be applied to a component.

func (*ComponentTrait) DeepCopy

func (in *ComponentTrait) DeepCopy() *ComponentTrait

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

func (*ComponentTrait) DeepCopyInto

func (in *ComponentTrait) DeepCopyInto(out *ComponentTrait)

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

type ConditionOperator

type ConditionOperator string

ConditionOperator specifies the operator to match a value.

const (
	// ConditionEqual indicates equal to given value
	ConditionEqual ConditionOperator = "eq"
	// ConditionNotEqual indicates not equal to given value
	ConditionNotEqual ConditionOperator = "notEq"
	// ConditionNotEmpty indicates given value not empty
	ConditionNotEmpty ConditionOperator = "notEmpty"
)

type ConditionRequirement

type ConditionRequirement struct {
	Operator ConditionOperator `json:"op"`

	// +optional
	// Value specifies an expected value
	// This is mutually exclusive with ValueFrom
	Value string `json:"value,omitempty"`
	// +optional
	// ValueFrom specifies expected value from AppConfig
	// This is mutually exclusive with Value
	ValueFrom ValueFrom `json:"valueFrom,omitempty"`

	// +optional
	// FieldPath specifies got value from workload/trait object
	FieldPath string `json:"fieldPath,omitempty"`
}

ConditionRequirement specifies the requirement to match a value.

func (*ConditionRequirement) DeepCopy

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

func (*ConditionRequirement) DeepCopyInto

func (in *ConditionRequirement) DeepCopyInto(out *ConditionRequirement)

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

type Container

type Container struct {
	// Name of this container. Must be unique within its workload.
	Name string `json:"name"`

	// Image this container should run. Must be a path-like or URI-like
	// representation of an OCI image. May be prefixed with a registry address
	// and should be suffixed with a tag.
	Image string `json:"image"`

	// Resources required by this container
	// +optional
	Resources *ContainerResources `json:"resources,omitempty"`

	// Command to be run by this container.
	// +optional
	Command []string `json:"command,omitempty"`

	// Arguments to be passed to the command run by this container.
	// +optional
	Arguments []string `json:"args,omitempty"`

	// Environment variables that should be set within this container.
	// +optional
	Environment []ContainerEnvVar `json:"env,omitempty"`

	// ConfigFiles that should be written within this container.
	// +optional
	ConfigFiles []ContainerConfigFile `json:"config,omitempty"`

	// Ports exposed by this container.
	// +optional
	Ports []ContainerPort `json:"ports,omitempty"`

	// A LivenessProbe assesses whether this container is alive. Containers that
	// fail liveness probes will be restarted.
	// +optional
	LivenessProbe *ContainerHealthProbe `json:"livenessProbe,omitempty"`

	// A ReadinessProbe assesses whether this container is ready to serve
	// requests. Containers that fail readiness probes will be withdrawn from
	// service.
	// +optional
	ReadinessProbe *ContainerHealthProbe `json:"readinessProbe,omitempty"`

	// ImagePullSecret specifies the name of a Secret from which the
	// credentials required to pull this container's image can be loaded.
	// +optional
	ImagePullSecret *string `json:"imagePullSecret,omitempty"`
}

A Container represents an Open Containers Initiative (OCI) container.

func (*Container) DeepCopy

func (in *Container) DeepCopy() *Container

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

func (*Container) DeepCopyInto

func (in *Container) DeepCopyInto(out *Container)

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

type ContainerConfigFile

type ContainerConfigFile struct {
	// Path within the container at which the configuration file should be
	// written.
	Path string `json:"path"`

	// Value that should be written to the configuration file.
	// +optional
	Value *string `json:"value,omitempty"`

	// FromSecret is a secret key reference which can be used to assign a value
	// to be written to the configuration file at the given path in the
	// container.
	// +optional
	FromSecret *SecretKeySelector `json:"fromSecret,omitempty"`
}

A ContainerConfigFile specifies a configuration file that should be written within a container.

func (*ContainerConfigFile) DeepCopy

func (in *ContainerConfigFile) DeepCopy() *ContainerConfigFile

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

func (*ContainerConfigFile) DeepCopyInto

func (in *ContainerConfigFile) DeepCopyInto(out *ContainerConfigFile)

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

type ContainerEnvVar

type ContainerEnvVar struct {
	// Name of the environment variable. Must be composed of valid Unicode
	// letter and number characters, as well as _ and -.
	// +kubebuilder:validation:Pattern=^[-_a-zA-Z0-9]+$
	Name string `json:"name"`

	// Value of the environment variable.
	// +optional
	Value *string `json:"value,omitempty"`

	// FromSecret is a secret key reference which can be used to assign a value
	// to the environment variable.
	// +optional
	FromSecret *SecretKeySelector `json:"fromSecret,omitempty"`
}

A ContainerEnvVar specifies an environment variable that should be set within a container.

func (*ContainerEnvVar) DeepCopy

func (in *ContainerEnvVar) DeepCopy() *ContainerEnvVar

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

func (*ContainerEnvVar) DeepCopyInto

func (in *ContainerEnvVar) DeepCopyInto(out *ContainerEnvVar)

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

type ContainerHealthProbe

type ContainerHealthProbe struct {
	// Exec probes a container's health by executing a command.
	// +optional
	Exec *ExecProbe `json:"exec,omitempty"`

	// HTTPGet probes a container's health by sending an HTTP GET request.
	// +optional
	HTTPGet *HTTPGetProbe `json:"httpGet,omitempty"`

	// TCPSocketProbe probes a container's health by connecting to a TCP socket.
	// +optional
	TCPSocket *TCPSocketProbe `json:"tcpSocket,omitempty"`

	// InitialDelaySeconds after a container starts before the first probe.
	// +optional
	InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`

	// PeriodSeconds between probes.
	// +optional
	PeriodSeconds *int32 `json:"periodSeconds,omitempty"`

	// TimeoutSeconds after which the probe times out.
	// +optional
	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`

	// SuccessThreshold specifies how many consecutive probes must success in
	// order for the container to be considered healthy.
	// +optional
	SuccessThreshold *int32 `json:"successThreshold,omitempty"`

	// FailureThreshold specifies how many consecutive probes must fail in order
	// for the container to be considered healthy.
	// +optional
	FailureThreshold *int32 `json:"failureThreshold,omitempty"`
}

A ContainerHealthProbe specifies how to probe the health of a container. Exactly one of Exec, HTTPGet, or TCPSocket must be specified.

func (*ContainerHealthProbe) DeepCopy

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

func (*ContainerHealthProbe) DeepCopyInto

func (in *ContainerHealthProbe) DeepCopyInto(out *ContainerHealthProbe)

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

type ContainerPort

type ContainerPort struct {
	// Name of this port. Must be unique within its container. Must be lowercase
	// alphabetical characters.
	// +kubebuilder:validation:Pattern=^[a-z]+$
	Name string `json:"name"`

	// Port number. Must be unique within its container.
	Port int32 `json:"containerPort"`

	// Protocol used by the server listening on this port.
	// +kubebuilder:validation:Enum=TCP;UDP
	// +optional
	Protocol *TransportProtocol `json:"protocol,omitempty"`
}

A ContainerPort specifies a port that is exposed by a container.

func (*ContainerPort) DeepCopy

func (in *ContainerPort) DeepCopy() *ContainerPort

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

func (*ContainerPort) DeepCopyInto

func (in *ContainerPort) DeepCopyInto(out *ContainerPort)

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

type ContainerResources

type ContainerResources struct {
	// CPU required by this container.
	CPU CPUResources `json:"cpu"`

	// Memory required by this container.
	Memory MemoryResources `json:"memory"`

	// GPU required by this container.
	// +optional
	GPU *GPUResources `json:"gpu,omitempty"`

	// Volumes required by this container.
	// +optional
	Volumes []VolumeResource `json:"volumes,omitempty"`

	// Extended resources required by this container.
	// +optional
	Extended []ExtendedResource `json:"extended,omitempty"`
}

ContainerResources specifies a container's required compute resources.

func (*ContainerResources) DeepCopy

func (in *ContainerResources) DeepCopy() *ContainerResources

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

func (*ContainerResources) DeepCopyInto

func (in *ContainerResources) DeepCopyInto(out *ContainerResources)

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

type ContainerizedWorkload

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

	Spec   ContainerizedWorkloadSpec   `json:"spec,omitempty"`
	Status ContainerizedWorkloadStatus `json:"status,omitempty"`
}

A ContainerizedWorkload is a workload that runs OCI containers. +kubebuilder:resource:categories={crossplane,oam} +kubebuilder:subresource:status

func (*ContainerizedWorkload) DeepCopy

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

func (*ContainerizedWorkload) DeepCopyInto

func (in *ContainerizedWorkload) DeepCopyInto(out *ContainerizedWorkload)

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

func (*ContainerizedWorkload) DeepCopyObject

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

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

func (*ContainerizedWorkload) GetCondition

GetCondition of this ContainerizedWorkload.

func (*ContainerizedWorkload) SetConditions

func (wl *ContainerizedWorkload) SetConditions(c ...runtimev1alpha1.Condition)

SetConditions of this ContainerizedWorkload.

type ContainerizedWorkloadList

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

ContainerizedWorkloadList contains a list of ContainerizedWorkload.

func (*ContainerizedWorkloadList) DeepCopy

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

func (*ContainerizedWorkloadList) DeepCopyInto

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

func (*ContainerizedWorkloadList) DeepCopyObject

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

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

type ContainerizedWorkloadSpec

type ContainerizedWorkloadSpec struct {
	// OperatingSystem required by this workload.
	// +kubebuilder:validation:Enum=linux;windows
	// +optional
	OperatingSystem *OperatingSystem `json:"osType,omitempty"`

	// CPUArchitecture required by this workload.
	// +kubebuilder:validation:Enum=i386;amd64;arm;arm64
	// +optional
	CPUArchitecture *CPUArchitecture `json:"arch,omitempty"`

	// Containers of which this workload consists.
	Containers []Container `json:"containers"`
}

A ContainerizedWorkloadSpec defines the desired state of a ContainerizedWorkload.

func (*ContainerizedWorkloadSpec) DeepCopy

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

func (*ContainerizedWorkloadSpec) DeepCopyInto

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

type ContainerizedWorkloadStatus

type ContainerizedWorkloadStatus struct {
	runtimev1alpha1.ConditionedStatus `json:",inline"`

	// Resources managed by this containerised workload.
	Resources []runtimev1alpha1.TypedReference `json:"resources,omitempty"`
}

A ContainerizedWorkloadStatus represents the observed state of a ContainerizedWorkload.

func (*ContainerizedWorkloadStatus) DeepCopy

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

func (*ContainerizedWorkloadStatus) DeepCopyInto

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

type DataInput

type DataInput struct {
	// ValueFrom specifies the value source.
	ValueFrom DataInputValueFrom `json:"valueFrom,omitempty"`

	// ToFieldPaths specifies the field paths of an object to fill passed value.
	ToFieldPaths []string `json:"toFieldPaths,omitempty"`

	// StrategyMergeKeys specifies the merge key if the toFieldPaths target is an array.
	// The StrategyMergeKeys is optional, by default, if the toFieldPaths target is an array, we will append.
	// If StrategyMergeKeys specified, we will check the key in the target array.
	// If any key exist, do update; if no key exist, append.
	StrategyMergeKeys []string `json:"strategyMergeKeys,omitempty"`
}

DataInput specifies a data input sink to an object. If input is array, it will be appended to the target field paths.

func (*DataInput) DeepCopy

func (in *DataInput) DeepCopy() *DataInput

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

func (*DataInput) DeepCopyInto

func (in *DataInput) DeepCopyInto(out *DataInput)

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

type DataInputValueFrom

type DataInputValueFrom struct {
	// DataOutputName matches a name of a DataOutput in the same AppConfig.
	DataOutputName string `json:"dataOutputName"`
}

DataInputValueFrom specifies the value source for a data input.

func (*DataInputValueFrom) DeepCopy

func (in *DataInputValueFrom) DeepCopy() *DataInputValueFrom

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

func (*DataInputValueFrom) DeepCopyInto

func (in *DataInputValueFrom) DeepCopyInto(out *DataInputValueFrom)

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

type DataOutput

type DataOutput struct {
	// Name is the unique name of a DataOutput in an ApplicationConfiguration.
	Name string `json:"name,omitempty"`

	// FieldPath refers to the value of an object's field.
	FieldPath string `json:"fieldPath,omitempty"`

	// Conditions specify the conditions that should be satisfied before emitting a data output.
	// Different conditions are AND-ed together.
	// If no conditions is specified, it is by default to check output value not empty.
	// +optional
	Conditions []ConditionRequirement `json:"conditions,omitempty"`
}

DataOutput specifies a data output source from an object.

func (*DataOutput) DeepCopy

func (in *DataOutput) DeepCopy() *DataOutput

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

func (*DataOutput) DeepCopyInto

func (in *DataOutput) DeepCopyInto(out *DataOutput)

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

type DefinitionReference

type DefinitionReference struct {
	// Name of the referenced CustomResourceDefinition.
	Name string `json:"name"`

	// Version indicate which version should be used if CRD has multiple versions
	// by default it will use the first one if not specified
	Version string `json:"version,omitempty"`
}

A DefinitionReference refers to a CustomResourceDefinition by name.

func (*DefinitionReference) DeepCopy

func (in *DefinitionReference) DeepCopy() *DefinitionReference

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

func (*DefinitionReference) DeepCopyInto

func (in *DefinitionReference) DeepCopyInto(out *DefinitionReference)

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

type DependencyFromObject

type DependencyFromObject struct {
	runtimev1alpha1.TypedReference `json:",inline"`
	FieldPath                      string `json:"fieldPath,omitempty"`
}

DependencyFromObject represents the object that dependency data comes from.

func (*DependencyFromObject) DeepCopy

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

func (*DependencyFromObject) DeepCopyInto

func (in *DependencyFromObject) DeepCopyInto(out *DependencyFromObject)

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

type DependencyStatus

type DependencyStatus struct {
	Unsatisfied []UnstaifiedDependency `json:"unsatisfied,omitempty"`
}

DependencyStatus represents the observed state of the dependency of an ApplicationConfiguration.

func (*DependencyStatus) DeepCopy

func (in *DependencyStatus) DeepCopy() *DependencyStatus

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

func (*DependencyStatus) DeepCopyInto

func (in *DependencyStatus) DeepCopyInto(out *DependencyStatus)

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

type DependencyToObject

type DependencyToObject struct {
	runtimev1alpha1.TypedReference `json:",inline"`
	FieldPaths                     []string `json:"fieldPaths,omitempty"`
}

DependencyToObject represents the object that dependency data goes to.

func (*DependencyToObject) DeepCopy

func (in *DependencyToObject) DeepCopy() *DependencyToObject

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

func (*DependencyToObject) DeepCopyInto

func (in *DependencyToObject) DeepCopyInto(out *DependencyToObject)

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

type DiskResource

type DiskResource struct {
	// Required disk space.
	Required resource.Quantity `json:"required"`

	// Ephemeral specifies whether an external disk needs to be mounted.
	// +optional
	Ephemeral *bool `json:"ephemeral,omitempty"`
}

DiskResource required by a container.

func (*DiskResource) DeepCopy

func (in *DiskResource) DeepCopy() *DiskResource

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

func (*DiskResource) DeepCopyInto

func (in *DiskResource) DeepCopyInto(out *DiskResource)

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

type ExecProbe

type ExecProbe struct {
	// Command to be run by this probe.
	Command []string `json:"command"`
}

An ExecProbe probes a container's health by executing a command.

func (*ExecProbe) DeepCopy

func (in *ExecProbe) DeepCopy() *ExecProbe

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

func (*ExecProbe) DeepCopyInto

func (in *ExecProbe) DeepCopyInto(out *ExecProbe)

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

type ExtendedResource

type ExtendedResource struct {
	// Name of the external resource. Resource names are specified in
	// kind.group/version format, e.g. motionsensor.ext.example.com/v1.
	Name string `json:"name"`

	// Required extended resource(s), e.g. 8 or "very-cool-widget"
	Required intstr.IntOrString `json:"required"`
}

ExtendedResource required by a container.

func (*ExtendedResource) DeepCopy

func (in *ExtendedResource) DeepCopy() *ExtendedResource

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

func (*ExtendedResource) DeepCopyInto

func (in *ExtendedResource) DeepCopyInto(out *ExtendedResource)

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

type GPUResources

type GPUResources struct {
	// Required GPU count.
	Required resource.Quantity `json:"required"`
}

GPUResources required by a container.

func (*GPUResources) DeepCopy

func (in *GPUResources) DeepCopy() *GPUResources

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

func (*GPUResources) DeepCopyInto

func (in *GPUResources) DeepCopyInto(out *GPUResources)

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

type HTTPGetProbe

type HTTPGetProbe struct {
	// Path to probe, e.g. '/healthz'.
	Path string `json:"path"`

	// Port to probe.
	Port int32 `json:"port"`

	// HTTPHeaders to send with the GET request.
	// +optional
	HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty"`
}

A HTTPGetProbe probes a container's health by sending an HTTP GET request.

func (*HTTPGetProbe) DeepCopy

func (in *HTTPGetProbe) DeepCopy() *HTTPGetProbe

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

func (*HTTPGetProbe) DeepCopyInto

func (in *HTTPGetProbe) DeepCopyInto(out *HTTPGetProbe)

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

type HTTPHeader

type HTTPHeader struct {
	// Name of this HTTP header. Must be unique per probe.
	Name string `json:"name"`

	// Value of this HTTP header.
	Value string `json:"value"`
}

A HTTPHeader to be passed when probing a container.

func (*HTTPHeader) DeepCopy

func (in *HTTPHeader) DeepCopy() *HTTPHeader

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

func (*HTTPHeader) DeepCopyInto

func (in *HTTPHeader) DeepCopyInto(out *HTTPHeader)

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

type HealthScope

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

	Spec   HealthScopeSpec   `json:"spec,omitempty"`
	Status HealthScopeStatus `json:"status,omitempty"`
}

A HealthScope determines an aggregate health status based of the health of components. +kubebuilder:resource:categories={crossplane,oam} +kubebuilder:subresource:status +kubebuilder:printcolumn:JSONPath=".status.health",name=HEALTH,type=string

func (*HealthScope) AddWorkloadReference

func (hs *HealthScope) AddWorkloadReference(r runtimev1alpha1.TypedReference)

AddWorkloadReference to add a workload reference to this scope.

func (*HealthScope) DeepCopy

func (in *HealthScope) DeepCopy() *HealthScope

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

func (*HealthScope) DeepCopyInto

func (in *HealthScope) DeepCopyInto(out *HealthScope)

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

func (*HealthScope) DeepCopyObject

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

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

func (*HealthScope) GetCondition

GetCondition of this HealthScope.

func (*HealthScope) GetWorkloadReferences

func (hs *HealthScope) GetWorkloadReferences() []runtimev1alpha1.TypedReference

GetWorkloadReferences to get all workload references for scope.

func (*HealthScope) SetConditions

func (hs *HealthScope) SetConditions(c ...runtimev1alpha1.Condition)

SetConditions of this HealthScope.

type HealthScopeList

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

HealthScopeList contains a list of HealthScope.

func (*HealthScopeList) DeepCopy

func (in *HealthScopeList) DeepCopy() *HealthScopeList

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

func (*HealthScopeList) DeepCopyInto

func (in *HealthScopeList) DeepCopyInto(out *HealthScopeList)

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

func (*HealthScopeList) DeepCopyObject

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

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

type HealthScopeSpec

type HealthScopeSpec struct {
	// ProbeTimeout is the amount of time in seconds to wait when receiving a response before marked failure.
	ProbeTimeout *int32 `json:"probe-timeout,omitempty"`

	// ProbeInterval is the amount of time in seconds between probing tries.
	ProbeInterval *int32 `json:"probe-interval,omitempty"`

	// WorkloadReferences to the workloads that are in this scope.
	WorkloadReferences []runtimev1alpha1.TypedReference `json:"workloadRefs"`
}

A HealthScopeSpec defines the desired state of a HealthScope.

func (*HealthScopeSpec) DeepCopy

func (in *HealthScopeSpec) DeepCopy() *HealthScopeSpec

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

func (*HealthScopeSpec) DeepCopyInto

func (in *HealthScopeSpec) DeepCopyInto(out *HealthScopeSpec)

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

type HealthScopeStatus

type HealthScopeStatus struct {
	runtimev1alpha1.ConditionedStatus `json:",inline"`

	// ScopeHealthCondition represents health condition summary of the scope
	ScopeHealthCondition ScopeHealthCondition `json:"scopeHealthCondition"`

	// WorkloadHealthConditions represents health condition of workloads in the scope
	WorkloadHealthConditions []*WorkloadHealthCondition `json:"healthConditions,omitempty"`
}

A HealthScopeStatus represents the observed state of a HealthScope.

func (*HealthScopeStatus) DeepCopy

func (in *HealthScopeStatus) DeepCopy() *HealthScopeStatus

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

func (*HealthScopeStatus) DeepCopyInto

func (in *HealthScopeStatus) DeepCopyInto(out *HealthScopeStatus)

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

type HealthStatus

type HealthStatus string

HealthStatus represents health status strings.

type HistoryWorkload

type HistoryWorkload struct {
	// Revision of this workload
	Revision string `json:"revision,omitempty"`

	// Reference to running workload.
	Reference runtimev1alpha1.TypedReference `json:"workloadRef,omitempty"`
}

HistoryWorkload contain the old component revision that are still running

func (*HistoryWorkload) DeepCopy

func (in *HistoryWorkload) DeepCopy() *HistoryWorkload

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

func (*HistoryWorkload) DeepCopyInto

func (in *HistoryWorkload) DeepCopyInto(out *HistoryWorkload)

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

type ManualScalerTrait

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

	Spec   ManualScalerTraitSpec   `json:"spec,omitempty"`
	Status ManualScalerTraitStatus `json:"status,omitempty"`
}

A ManualScalerTrait determines how many replicas a workload should have. +kubebuilder:resource:categories={crossplane,oam} +kubebuilder:subresource:status

func (*ManualScalerTrait) DeepCopy

func (in *ManualScalerTrait) DeepCopy() *ManualScalerTrait

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

func (*ManualScalerTrait) DeepCopyInto

func (in *ManualScalerTrait) DeepCopyInto(out *ManualScalerTrait)

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

func (*ManualScalerTrait) DeepCopyObject

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

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

func (*ManualScalerTrait) GetCondition

GetCondition of this ManualScalerTrait.

func (*ManualScalerTrait) GetWorkloadReference

func (tr *ManualScalerTrait) GetWorkloadReference() runtimev1alpha1.TypedReference

GetWorkloadReference of this ManualScalerTrait.

func (*ManualScalerTrait) SetConditions

func (tr *ManualScalerTrait) SetConditions(c ...runtimev1alpha1.Condition)

SetConditions of this ManualScalerTrait.

func (*ManualScalerTrait) SetWorkloadReference

func (tr *ManualScalerTrait) SetWorkloadReference(r runtimev1alpha1.TypedReference)

SetWorkloadReference of this ManualScalerTrait.

type ManualScalerTraitList

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

ManualScalerTraitList contains a list of ManualScalerTrait.

func (*ManualScalerTraitList) DeepCopy

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

func (*ManualScalerTraitList) DeepCopyInto

func (in *ManualScalerTraitList) DeepCopyInto(out *ManualScalerTraitList)

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

func (*ManualScalerTraitList) DeepCopyObject

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

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

type ManualScalerTraitSpec

type ManualScalerTraitSpec struct {
	// ReplicaCount of the workload this trait applies to.
	ReplicaCount int32 `json:"replicaCount"`

	// WorkloadReference to the workload this trait applies to.
	WorkloadReference runtimev1alpha1.TypedReference `json:"workloadRef"`
}

A ManualScalerTraitSpec defines the desired state of a ManualScalerTrait.

func (*ManualScalerTraitSpec) DeepCopy

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

func (*ManualScalerTraitSpec) DeepCopyInto

func (in *ManualScalerTraitSpec) DeepCopyInto(out *ManualScalerTraitSpec)

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

type ManualScalerTraitStatus

type ManualScalerTraitStatus struct {
	runtimev1alpha1.ConditionedStatus `json:",inline"`
}

A ManualScalerTraitStatus represents the observed state of a ManualScalerTrait.

func (*ManualScalerTraitStatus) DeepCopy

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

func (*ManualScalerTraitStatus) DeepCopyInto

func (in *ManualScalerTraitStatus) DeepCopyInto(out *ManualScalerTraitStatus)

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

type MemoryResources

type MemoryResources struct {
	// Required memory.
	Required resource.Quantity `json:"required"`
}

MemoryResources required by a container.

func (*MemoryResources) DeepCopy

func (in *MemoryResources) DeepCopy() *MemoryResources

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

func (*MemoryResources) DeepCopyInto

func (in *MemoryResources) DeepCopyInto(out *MemoryResources)

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

type OperatingSystem

type OperatingSystem string

An OperatingSystem required by a containerised workload.

const (
	OperatingSystemLinux   OperatingSystem = "linux"
	OperatingSystemWindows OperatingSystem = "windows"
)

Supported operating system types.

type Revision

type Revision struct {
	Name     string `json:"name"`
	Revision int64  `json:"revision"`
}

Revision has name and revision number

func (*Revision) DeepCopy

func (in *Revision) DeepCopy() *Revision

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

func (*Revision) DeepCopyInto

func (in *Revision) DeepCopyInto(out *Revision)

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

type ScopeDefinition

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

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

A ScopeDefinition registers a kind of Kubernetes custom resource as a valid OAM scope kind by referencing its CustomResourceDefinition. The CRD is used to validate the schema of the scope when it is embedded in an OAM ApplicationConfiguration. +kubebuilder:printcolumn:JSONPath=".spec.definitionRef.name",name=DEFINITION-NAME,type=string +kubebuilder:resource:scope=Cluster,categories={crossplane,oam}

func (*ScopeDefinition) DeepCopy

func (in *ScopeDefinition) DeepCopy() *ScopeDefinition

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

func (*ScopeDefinition) DeepCopyInto

func (in *ScopeDefinition) DeepCopyInto(out *ScopeDefinition)

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

func (*ScopeDefinition) DeepCopyObject

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

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

type ScopeDefinitionList

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

ScopeDefinitionList contains a list of ScopeDefinition.

func (*ScopeDefinitionList) DeepCopy

func (in *ScopeDefinitionList) DeepCopy() *ScopeDefinitionList

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

func (*ScopeDefinitionList) DeepCopyInto

func (in *ScopeDefinitionList) DeepCopyInto(out *ScopeDefinitionList)

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

func (*ScopeDefinitionList) DeepCopyObject

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

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

type ScopeDefinitionSpec

type ScopeDefinitionSpec struct {
	// Reference to the CustomResourceDefinition that defines this scope kind.
	Reference DefinitionReference `json:"definitionRef"`

	// WorkloadRefsPath indicates if/where a scope accepts workloadRef objects
	WorkloadRefsPath string `json:"workloadRefsPath,omitempty"`

	// AllowComponentOverlap specifies whether an OAM component may exist in
	// multiple instances of this kind of scope.
	AllowComponentOverlap bool `json:"allowComponentOverlap"`

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

A ScopeDefinitionSpec defines the desired state of a ScopeDefinition.

func (*ScopeDefinitionSpec) DeepCopy

func (in *ScopeDefinitionSpec) DeepCopy() *ScopeDefinitionSpec

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

func (*ScopeDefinitionSpec) DeepCopyInto

func (in *ScopeDefinitionSpec) DeepCopyInto(out *ScopeDefinitionSpec)

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

type ScopeHealthCondition

type ScopeHealthCondition struct {
	HealthStatus       HealthStatus `json:"healthStatus"`
	Total              int64        `json:"total,omitempty"`
	HealthyWorkloads   int64        `json:"healthyWorkloads,omitempty"`
	UnhealthyWorkloads int64        `json:"unhealthyWorkloads,omitempty"`
	UnknownWorkloads   int64        `json:"unknownWorkloads,omitempty"`
}

ScopeHealthCondition represents health condition summary of a scope.

func (*ScopeHealthCondition) DeepCopy

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

func (*ScopeHealthCondition) DeepCopyInto

func (in *ScopeHealthCondition) DeepCopyInto(out *ScopeHealthCondition)

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

type ScopeStatus

type ScopeStatus string

A ScopeStatus represents the state of a scope.

type SecretKeySelector

type SecretKeySelector struct {
	// The name of the secret.
	Name string `json:"name"`

	// The key to select.
	Key string `json:"key"`
}

A SecretKeySelector is a reference to a secret key in an arbitrary namespace.

func (*SecretKeySelector) DeepCopy

func (in *SecretKeySelector) DeepCopy() *SecretKeySelector

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

func (*SecretKeySelector) DeepCopyInto

func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)

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

type Status added in v0.3.3

type Status struct {
	// CustomStatus defines the custom status message that could display to user
	// +optional
	CustomStatus string `json:"customStatus,omitempty"`
	// HealthPolicy defines the health check policy for the abstraction
	// +optional
	HealthPolicy string `json:"healthPolicy,omitempty"`
}

Status defines the loop back status of the abstraction by using CUE template

func (*Status) DeepCopy added in v0.3.3

func (in *Status) DeepCopy() *Status

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

func (*Status) DeepCopyInto added in v0.3.3

func (in *Status) DeepCopyInto(out *Status)

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

type TCPSocketProbe

type TCPSocketProbe struct {
	// Port this probe should connect to.
	Port int32 `json:"port"`
}

A TCPSocketProbe probes a container's health by connecting to a TCP socket.

func (*TCPSocketProbe) DeepCopy

func (in *TCPSocketProbe) DeepCopy() *TCPSocketProbe

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

func (*TCPSocketProbe) DeepCopyInto

func (in *TCPSocketProbe) DeepCopyInto(out *TCPSocketProbe)

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

type TraitDefinition

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

	Spec TraitDefinitionSpec `json:"spec,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:printcolumn:JSONPath=".spec.definitionRef.name",name=DEFINITION-NAME,type=string +kubebuilder:resource:scope=Cluster,categories={crossplane,oam}

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.

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 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"`

	// AppliesToWorkloads specifies the list of workload kinds this trait
	// applies to. Workload kinds are specified in kind.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"`

	// Template defines the abstraction template data of the workload, it will replace the old template in extension field.
	// the data format depends on templateType, by default it's CUE
	// +optional
	Template string `json:"template,omitempty"`

	// TemplateType defines the data format of the template, by default it's CUE format
	// Terraform HCL, Helm Chart will also be candidates in the near future.
	// +optional
	TemplateType string `json:"templateType,omitempty"`

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

	// Extension is used for extension needs by OAM platform builders
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	Extension *runtime.RawExtension `json:"extension,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 TraitStatus

type TraitStatus string

A TraitStatus represents the state of a trait.

type TransportProtocol

type TransportProtocol string

A TransportProtocol represents a transport layer protocol.

const (
	TransportProtocolTCP TransportProtocol = "TCP"
	TransportProtocolUDP TransportProtocol = "UDP"
)

Transport protocols.

type UnstaifiedDependency

type UnstaifiedDependency struct {
	Reason string               `json:"reason"`
	From   DependencyFromObject `json:"from"`
	To     DependencyToObject   `json:"to"`
}

UnstaifiedDependency describes unsatisfied dependency flow between one pair of objects.

func (*UnstaifiedDependency) DeepCopy

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

func (*UnstaifiedDependency) DeepCopyInto

func (in *UnstaifiedDependency) DeepCopyInto(out *UnstaifiedDependency)

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

type ValueFrom

type ValueFrom struct {
	FieldPath string `json:"fieldPath"`
}

ValueFrom gets value from AppConfig object by specifying a path

func (*ValueFrom) DeepCopy

func (in *ValueFrom) DeepCopy() *ValueFrom

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

func (*ValueFrom) DeepCopyInto

func (in *ValueFrom) DeepCopyInto(out *ValueFrom)

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

type VolumeAccessMode

type VolumeAccessMode string

A VolumeAccessMode determines how a volume may be accessed.

const (
	VolumeAccessModeRO VolumeAccessMode = "RO"
	VolumeAccessModeRW VolumeAccessMode = "RW"
)

Volume access modes.

type VolumeResource

type VolumeResource struct {
	// Name of this volume. Must be unique within its container.
	Name string `json:"name"`

	// MountPath at which this volume will be mounted within its container.
	MountPath string `json:"mountPath"`

	// AccessMode of this volume; RO (read only) or RW (read and write).
	// +optional
	// +kubebuilder:validation:Enum=RO;RW
	AccessMode *VolumeAccessMode `json:"accessMode,omitempty"`

	// SharingPolicy of this volume; Exclusive or Shared.
	// +optional
	// +kubebuilder:validation:Enum=Exclusive;Shared
	SharingPolicy *VolumeSharingPolicy `json:"sharingPolicy,omitempty"`

	// Disk requirements of this volume.
	// +optional
	Disk *DiskResource `json:"disk,omitempty"`
}

VolumeResource required by a container.

func (*VolumeResource) DeepCopy

func (in *VolumeResource) DeepCopy() *VolumeResource

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

func (*VolumeResource) DeepCopyInto

func (in *VolumeResource) DeepCopyInto(out *VolumeResource)

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

type VolumeSharingPolicy

type VolumeSharingPolicy string

A VolumeSharingPolicy determines how a volume may be shared.

const (
	VolumeSharingPolicyExclusive VolumeSharingPolicy = "Exclusive"
	VolumeSharingPolicyShared    VolumeSharingPolicy = "Shared"
)

Volume sharing policies.

type WorkloadDefinition

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

	Spec WorkloadDefinitionSpec `json:"spec,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:printcolumn:JSONPath=".spec.definitionRef.name",name=DEFINITION-NAME,type=string +kubebuilder:resource:scope=Cluster,categories={crossplane,oam}

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.

type WorkloadDefinitionList

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

WorkloadDefinitionList contains a list of WorkloadDefinition.

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 DefinitionReference `json:"definitionRef"`

	// ChildResourceKinds are the list of GVK of the child resources this workload generates
	ChildResourceKinds []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 *Status `json:"status,omitempty"`

	// Template defines the abstraction template data of the workload, it will replace the old template in extension field.
	// the data format depends on templateType, by default it's CUE
	// +optional
	Template string `json:"template,omitempty"`

	// TemplateType defines the data format of the template, by default it's CUE format
	// Terraform HCL, Helm Chart will also be candidates in the near future.
	// +optional
	TemplateType string `json:"templateType,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 WorkloadHealthCondition

type WorkloadHealthCondition struct {
	// ComponentName represents the component name if target is a workload
	ComponentName  string                         `json:"componentName,omitempty"`
	TargetWorkload runtimev1alpha1.TypedReference `json:"targetWorkload,omitempty"`
	HealthStatus   HealthStatus                   `json:"healthStatus"`
	Diagnosis      string                         `json:"diagnosis,omitempty"`
	// WorkloadStatus represents status of workloads whose HealthStatus is UNKNOWN.
	WorkloadStatus string `json:"workloadStatus,omitempty"`
}

WorkloadHealthCondition represents informative health condition.

func (*WorkloadHealthCondition) DeepCopy

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

func (*WorkloadHealthCondition) DeepCopyInto

func (in *WorkloadHealthCondition) DeepCopyInto(out *WorkloadHealthCondition)

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

type WorkloadScope

type WorkloadScope struct {
	// Status is a place holder for a customized controller to fill
	// if it needs a single place to summarize the status of the scope
	Status ScopeStatus `json:"status,omitempty"`

	// Reference to a scope created by an ApplicationConfiguration.
	Reference runtimev1alpha1.TypedReference `json:"scopeRef"`
}

A WorkloadScope represents a scope associated with a workload and its status

func (*WorkloadScope) DeepCopy

func (in *WorkloadScope) DeepCopy() *WorkloadScope

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

func (*WorkloadScope) DeepCopyInto

func (in *WorkloadScope) DeepCopyInto(out *WorkloadScope)

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

type WorkloadStatus

type WorkloadStatus struct {
	// Status is a place holder for a customized controller to fill
	// if it needs a single place to summarize the entire status of the workload
	Status string `json:"status,omitempty"`

	// ComponentName that produced this workload.
	ComponentName string `json:"componentName,omitempty"`

	// ComponentRevisionName of current component
	ComponentRevisionName string `json:"componentRevisionName,omitempty"`

	// DependencyUnsatisfied notify does the workload has dependency unsatisfied
	DependencyUnsatisfied bool `json:"dependencyUnsatisfied,omitempty"`

	// AppliedComponentRevision indicates the applied component revision name of this workload
	AppliedComponentRevision string `json:"appliedComponentRevision,omitempty"`

	// Reference to a workload created by an ApplicationConfiguration.
	Reference runtimev1alpha1.TypedReference `json:"workloadRef,omitempty"`

	// Traits associated with this workload.
	Traits []WorkloadTrait `json:"traits,omitempty"`

	// Scopes associated with this workload.
	Scopes []WorkloadScope `json:"scopes,omitempty"`
}

A WorkloadStatus represents the status of a workload.

func (*WorkloadStatus) DeepCopy

func (in *WorkloadStatus) DeepCopy() *WorkloadStatus

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

func (*WorkloadStatus) DeepCopyInto

func (in *WorkloadStatus) DeepCopyInto(out *WorkloadStatus)

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

type WorkloadTrait

type WorkloadTrait struct {
	// Status is a place holder for a customized controller to fill
	// if it needs a single place to summarize the status of the trait
	Status TraitStatus `json:"status,omitempty"`

	// Reference to a trait created by an ApplicationConfiguration.
	Reference runtimev1alpha1.TypedReference `json:"traitRef"`

	// Message will allow controller to leave some additional information for this trait
	Message string `json:"message,omitempty"`

	// AppliedGeneration indicates the generation observed by the appConfig controller.
	// The same field is also recorded in the annotations of traits.
	// A trait is possible to be deleted from cluster after created.
	// This field is useful to track the observed generation of traits after they are
	// deleted.
	AppliedGeneration int64 `json:"appliedGeneration,omitempty"`

	// DependencyUnsatisfied notify does the trait has dependency unsatisfied
	DependencyUnsatisfied bool `json:"dependencyUnsatisfied,omitempty"`
}

A WorkloadTrait represents a trait associated with a workload and its status

func (*WorkloadTrait) DeepCopy

func (in *WorkloadTrait) DeepCopy() *WorkloadTrait

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

func (*WorkloadTrait) DeepCopyInto

func (in *WorkloadTrait) DeepCopyInto(out *WorkloadTrait)

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