v1alpha1

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group. +kubebuilder:object:generate=true +groupName=openchoreo.dev

Index

Constants

View Source
const (
	// TargetPlaneDataPlane indicates resources should be deployed to the data plane.
	TargetPlaneDataPlane = "dataplane"

	// TargetPlaneObservabilityPlane indicates resources should be deployed to the observability plane.
	TargetPlaneObservabilityPlane = "observabilityplane"
)

TargetPlane constants define which plane resources should be deployed to.

Variables

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

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AgentConnectionStatus added in v0.12.0

type AgentConnectionStatus struct {
	// Connected indicates whether any cluster agent is currently connected
	Connected bool `json:"connected"`

	// ConnectedAgents is the number of cluster agents currently connected
	ConnectedAgents int `json:"connectedAgents"`

	// LastConnectedTime is when an agent last successfully connected
	// +optional
	LastConnectedTime *metav1.Time `json:"lastConnectedTime,omitempty"`

	// LastDisconnectedTime is when the last agent disconnected
	// +optional
	LastDisconnectedTime *metav1.Time `json:"lastDisconnectedTime,omitempty"`

	// LastHeartbeatTime is when the control plane last received any communication from an agent
	// +optional
	LastHeartbeatTime *metav1.Time `json:"lastHeartbeatTime,omitempty"`

	// Message provides additional information about the agent connection status
	// +optional
	Message string `json:"message,omitempty"`
}

AgentConnectionStatus tracks the status of cluster agent connections

func (*AgentConnectionStatus) DeepCopy added in v0.12.0

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

func (*AgentConnectionStatus) DeepCopyInto added in v0.12.0

func (in *AgentConnectionStatus) DeepCopyInto(out *AgentConnectionStatus)

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

type AuthzCondition added in v1.1.0

type AuthzCondition struct {
	// Actions is the list of actions this condition applies to.
	// Supports exact match ("releasebinding:create") and wildcards ("releasebinding:*").
	// +required
	// +kubebuilder:validation:MinItems=1
	Actions []string `json:"actions"`

	// Expression is a CEL expression that must evaluate to true for the action to be permitted.
	// Examples:
	//   resource.environment in ["dev", "staging"]
	// +required
	// +kubebuilder:validation:MinLength=1
	Expression string `json:"expression"`
}

AuthzCondition represents the conditions under which an action is allowed or denied in an authorization role.

func (*AuthzCondition) DeepCopy added in v1.1.0

func (in *AuthzCondition) DeepCopy() *AuthzCondition

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

func (*AuthzCondition) DeepCopyInto added in v1.1.0

func (in *AuthzCondition) DeepCopyInto(out *AuthzCondition)

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

type AuthzRole added in v0.14.0

type AuthzRole struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              AuthzRoleSpec `json:"spec,omitempty"`
}

AuthzRole is the Schema for the authzroles API

func (*AuthzRole) DeepCopy added in v0.14.0

func (in *AuthzRole) DeepCopy() *AuthzRole

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

func (*AuthzRole) DeepCopyInto added in v0.14.0

func (in *AuthzRole) DeepCopyInto(out *AuthzRole)

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

func (*AuthzRole) DeepCopyObject added in v0.14.0

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

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

type AuthzRoleBinding added in v0.14.0

type AuthzRoleBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              AuthzRoleBindingSpec `json:"spec,omitempty"`
}

AuthzRoleBinding is the Schema for the authzrolebindings API

func (*AuthzRoleBinding) DeepCopy added in v0.14.0

func (in *AuthzRoleBinding) DeepCopy() *AuthzRoleBinding

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

func (*AuthzRoleBinding) DeepCopyInto added in v0.14.0

func (in *AuthzRoleBinding) DeepCopyInto(out *AuthzRoleBinding)

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

func (*AuthzRoleBinding) DeepCopyObject added in v0.14.0

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

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

type AuthzRoleBindingList added in v0.14.0

type AuthzRoleBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitzero"`
	Items           []AuthzRoleBinding `json:"items"`
}

AuthzRoleBindingList contains a list of AuthzRoleBinding

func (*AuthzRoleBindingList) DeepCopy added in v0.14.0

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

func (*AuthzRoleBindingList) DeepCopyInto added in v0.14.0

func (in *AuthzRoleBindingList) DeepCopyInto(out *AuthzRoleBindingList)

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

func (*AuthzRoleBindingList) DeepCopyObject added in v0.14.0

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

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

type AuthzRoleBindingSpec added in v0.14.0

type AuthzRoleBindingSpec struct {
	// Entitlement defines the subject (from JWT claims) to grant the role to
	// +required
	Entitlement EntitlementClaim `json:"entitlement"`

	// RoleMappings is the list of role-scope pairs this binding grants
	// +required
	// +kubebuilder:validation:MinItems=1
	RoleMappings []RoleMapping `json:"roleMappings"`

	// Effect indicates whether this binding allows or denies access (default: allow)
	// +kubebuilder:default=allow
	// +optional
	Effect EffectType `json:"effect,omitempty"`
}

AuthzRoleBindingSpec defines the desired state of AuthzRoleBinding

func (*AuthzRoleBindingSpec) DeepCopy added in v0.14.0

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

func (*AuthzRoleBindingSpec) DeepCopyInto added in v0.14.0

func (in *AuthzRoleBindingSpec) DeepCopyInto(out *AuthzRoleBindingSpec)

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

type AuthzRoleList added in v0.14.0

type AuthzRoleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitzero"`
	Items           []AuthzRole `json:"items"`
}

AuthzRoleList contains a list of AuthzRole

func (*AuthzRoleList) DeepCopy added in v0.14.0

func (in *AuthzRoleList) DeepCopy() *AuthzRoleList

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

func (*AuthzRoleList) DeepCopyInto added in v0.14.0

func (in *AuthzRoleList) DeepCopyInto(out *AuthzRoleList)

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

func (*AuthzRoleList) DeepCopyObject added in v0.14.0

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

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

type AuthzRoleSpec added in v0.14.0

type AuthzRoleSpec struct {
	// Actions is the list of actions this role can perform
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:example:={"component:create"}
	// +required
	Actions []string `json:"actions"`

	// Description is a human-readable description of the role
	// +optional
	Description string `json:"description,omitempty"`
}

AuthzRoleSpec defines the desired state of AuthzRole

func (*AuthzRoleSpec) DeepCopy added in v0.14.0

func (in *AuthzRoleSpec) DeepCopy() *AuthzRoleSpec

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

func (*AuthzRoleSpec) DeepCopyInto added in v0.14.0

func (in *AuthzRoleSpec) DeepCopyInto(out *AuthzRoleSpec)

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

type ClusterAgentConfig added in v0.9.0

type ClusterAgentConfig struct {
	// ClientCA contains the CA certificate used to verify the agent's client certificate
	// This allows per-plane CA configuration for enhanced security
	ClientCA ValueFrom `json:"clientCA"`
}

ClusterAgentConfig defines the configuration for cluster agent-based communication The cluster agent establishes a WebSocket connection to the control plane's cluster gateway

func (*ClusterAgentConfig) DeepCopy added in v0.9.0

func (in *ClusterAgentConfig) DeepCopy() *ClusterAgentConfig

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

func (*ClusterAgentConfig) DeepCopyInto added in v0.9.0

func (in *ClusterAgentConfig) DeepCopyInto(out *ClusterAgentConfig)

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

type ClusterAuthzRole added in v1.0.0

type ClusterAuthzRole struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ClusterAuthzRoleSpec `json:"spec,omitempty"`
}

ClusterAuthzRole is the Schema for the clusterauthzroles API

func (*ClusterAuthzRole) DeepCopy added in v1.0.0

func (in *ClusterAuthzRole) DeepCopy() *ClusterAuthzRole

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

func (*ClusterAuthzRole) DeepCopyInto added in v1.0.0

func (in *ClusterAuthzRole) DeepCopyInto(out *ClusterAuthzRole)

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

func (*ClusterAuthzRole) DeepCopyObject added in v1.0.0

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

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

type ClusterAuthzRoleBinding added in v1.0.0

type ClusterAuthzRoleBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ClusterAuthzRoleBindingSpec `json:"spec,omitempty"`
}

ClusterAuthzRoleBinding is the Schema for the clusterauthzrolebindings API

func (*ClusterAuthzRoleBinding) DeepCopy added in v1.0.0

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

func (*ClusterAuthzRoleBinding) DeepCopyInto added in v1.0.0

func (in *ClusterAuthzRoleBinding) DeepCopyInto(out *ClusterAuthzRoleBinding)

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

func (*ClusterAuthzRoleBinding) DeepCopyObject added in v1.0.0

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

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

type ClusterAuthzRoleBindingList added in v1.0.0

type ClusterAuthzRoleBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitzero"`
	Items           []ClusterAuthzRoleBinding `json:"items"`
}

ClusterAuthzRoleBindingList contains a list of ClusterAuthzRoleBinding

func (*ClusterAuthzRoleBindingList) DeepCopy added in v1.0.0

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

func (*ClusterAuthzRoleBindingList) DeepCopyInto added in v1.0.0

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

func (*ClusterAuthzRoleBindingList) DeepCopyObject added in v1.0.0

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

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

type ClusterAuthzRoleBindingSpec added in v1.0.0

type ClusterAuthzRoleBindingSpec struct {
	// Entitlement defines the subject (from JWT claims) to grant the role to
	// +required
	Entitlement EntitlementClaim `json:"entitlement"`

	// RoleMappings is the list of cluster roles this binding grants
	// +required
	// +kubebuilder:validation:MinItems=1
	RoleMappings []ClusterRoleMapping `json:"roleMappings"`

	// Effect indicates whether this binding allows or denies access (default: allow)
	// +kubebuilder:default=allow
	// +optional
	Effect EffectType `json:"effect,omitempty"`
}

ClusterAuthzRoleBindingSpec defines the desired state of ClusterAuthzRoleBinding +kubebuilder:validation:XValidation:rule="self.roleMappings.all(m, m.roleRef.kind == 'ClusterAuthzRole')",message="ClusterAuthzRoleBinding can only reference ClusterAuthzRole"

func (*ClusterAuthzRoleBindingSpec) DeepCopy added in v1.0.0

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

func (*ClusterAuthzRoleBindingSpec) DeepCopyInto added in v1.0.0

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

type ClusterAuthzRoleList added in v1.0.0

type ClusterAuthzRoleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitzero"`
	Items           []ClusterAuthzRole `json:"items"`
}

ClusterAuthzRoleList contains a list of ClusterAuthzRole

func (*ClusterAuthzRoleList) DeepCopy added in v1.0.0

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

func (*ClusterAuthzRoleList) DeepCopyInto added in v1.0.0

func (in *ClusterAuthzRoleList) DeepCopyInto(out *ClusterAuthzRoleList)

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

func (*ClusterAuthzRoleList) DeepCopyObject added in v1.0.0

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

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

type ClusterAuthzRoleSpec added in v1.0.0

type ClusterAuthzRoleSpec struct {
	// Actions is the list of actions this role can perform
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:example:={"component:create"}
	// +required
	Actions []string `json:"actions"`

	// Description is a human-readable description of the role
	// +optional
	Description string `json:"description,omitempty"`
}

ClusterAuthzRoleSpec defines the desired state of ClusterAuthzRole

func (*ClusterAuthzRoleSpec) DeepCopy added in v1.0.0

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

func (*ClusterAuthzRoleSpec) DeepCopyInto added in v1.0.0

func (in *ClusterAuthzRoleSpec) DeepCopyInto(out *ClusterAuthzRoleSpec)

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

type ClusterComponentType added in v0.16.0

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

	Spec   ClusterComponentTypeSpec   `json:"spec,omitempty"`
	Status ClusterComponentTypeStatus `json:"status,omitempty"`
}

ClusterComponentType is the Schema for the clustercomponenttypes API. ClusterComponentType is a cluster-scoped version of ComponentType that can be referenced by Components across all namespaces.

func (*ClusterComponentType) DeepCopy added in v0.16.0

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

func (*ClusterComponentType) DeepCopyInto added in v0.16.0

func (in *ClusterComponentType) DeepCopyInto(out *ClusterComponentType)

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

func (*ClusterComponentType) DeepCopyObject added in v0.16.0

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

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

type ClusterComponentTypeList added in v0.16.0

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

ClusterComponentTypeList contains a list of ClusterComponentType.

func (*ClusterComponentTypeList) DeepCopy added in v0.16.0

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

func (*ClusterComponentTypeList) DeepCopyInto added in v0.16.0

func (in *ClusterComponentTypeList) DeepCopyInto(out *ClusterComponentTypeList)

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

func (*ClusterComponentTypeList) DeepCopyObject added in v0.16.0

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

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

type ClusterComponentTypeSpec added in v0.16.0

type ClusterComponentTypeSpec struct {
	// WorkloadType must be one of: deployment, statefulset, cronjob, job, proxy
	// This determines the primary workload resource type for this component type
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=deployment;statefulset;cronjob;job;proxy
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.workloadType cannot be changed after creation"
	WorkloadType string `json:"workloadType"`

	// AllowedWorkflows restricts which ClusterWorkflow CRs developers can use
	// for building components of this type. If empty, no workflows are allowed.
	// References must point to ClusterWorkflow resources.
	// +optional
	AllowedWorkflows []ClusterWorkflowRef `json:"allowedWorkflows,omitempty"`

	// Parameters defines what developers can configure when creating components of this type.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// EnvironmentConfigs defines per-environment configurations developers can set via ReleaseBinding.
	// +optional
	EnvironmentConfigs *SchemaSection `json:"environmentConfigs,omitempty"`

	// Traits are pre-configured trait instances embedded in the ClusterComponentType.
	// Only ClusterTrait references are allowed since ClusterComponentType is cluster-scoped.
	// The PE binds trait parameters using concrete values or CEL expressions
	// referencing the ComponentType schema (e.g., "${parameters.storage.mountPath}").
	// These traits are automatically applied to all Components of this type.
	// +optional
	Traits []ClusterComponentTypeTrait `json:"traits,omitempty"`

	// AllowedTraits restricts which ClusterTrait CRs developers can attach to Components of this type.
	// When specified, only ClusterTraits listed here (matched by name) may be attached beyond those already embedded in spec.traits.
	// ClusterTrait references listed here must not overlap with traits already embedded in spec.traits.
	// If empty or omitted, no additional component-level traits are allowed.
	// +optional
	AllowedTraits []ClusterTraitRef `json:"allowedTraits,omitempty"`

	// Validations are CEL-based rules evaluated during rendering.
	// All rules must evaluate to true for rendering to proceed.
	// +optional
	Validations []ValidationRule `json:"validations,omitempty"`

	// Resources are templates that generate Kubernetes resources dynamically.
	// At least one resource template is required. For non-proxy workload types,
	// one resource must have an id matching the workloadType. When workloadType
	// is "proxy", a matching resource id is not required.
	// +kubebuilder:validation:MinItems=1
	Resources []ResourceTemplate `json:"resources"`
}

ClusterComponentTypeSpec defines the desired state of ClusterComponentType. +kubebuilder:validation:XValidation:rule="self.workloadType == 'proxy' || self.resources.exists(r, r.id == self.workloadType)",message="resources must contain a primary resource with id matching workloadType (unless workloadType is 'proxy')"

func (*ClusterComponentTypeSpec) DeepCopy added in v0.16.0

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

func (*ClusterComponentTypeSpec) DeepCopyInto added in v0.16.0

func (in *ClusterComponentTypeSpec) DeepCopyInto(out *ClusterComponentTypeSpec)

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

type ClusterComponentTypeStatus added in v0.16.0

type ClusterComponentTypeStatus struct {
}

ClusterComponentTypeStatus defines the observed state of ClusterComponentType.

func (*ClusterComponentTypeStatus) DeepCopy added in v0.16.0

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

func (*ClusterComponentTypeStatus) DeepCopyInto added in v0.16.0

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

type ClusterComponentTypeTrait added in v0.16.0

type ClusterComponentTypeTrait struct {
	// Kind is the kind of trait. Must be ClusterTrait.
	// +kubebuilder:default=ClusterTrait
	Kind ClusterTraitRefKind `json:"kind,omitempty"`

	// Name is the name of the ClusterTrait resource to use.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// InstanceName uniquely identifies this trait instance.
	// Must be unique across all embedded traits in the ClusterComponentType
	// and must not collide with any component-level trait instance names.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	InstanceName string `json:"instanceName"`

	// Parameters contains trait parameter bindings.
	// Values can be concrete (locked by PE) or CEL expressions referencing
	// the ComponentType schema using ${...} syntax.
	// Example: "${parameters.storage.mountPath}" or "app-data" (locked)
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`

	// EnvironmentConfigs contains trait environment config bindings.
	// Values can be concrete (locked by PE) or CEL expressions referencing
	// the ComponentType schema using ${...} syntax.
	// Example: "${environmentConfigs.storage.size}" or "local-path" (locked)
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	EnvironmentConfigs *runtime.RawExtension `json:"environmentConfigs,omitempty"`
}

ClusterComponentTypeTrait represents a pre-configured trait instance embedded in a ClusterComponentType. Only ClusterTrait references are allowed since ClusterComponentType is cluster-scoped.

func (*ClusterComponentTypeTrait) DeepCopy added in v0.16.0

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

func (*ClusterComponentTypeTrait) DeepCopyInto added in v0.16.0

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

type ClusterDataPlane added in v0.14.0

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

	Spec   ClusterDataPlaneSpec   `json:"spec,omitempty"`
	Status ClusterDataPlaneStatus `json:"status,omitempty"`
}

ClusterDataPlane is the Schema for the clusterdataplanes API. It is a cluster-scoped version of DataPlane, allowing platform administrators to define data plane configurations that can be referenced across multiple namespaces.

func (*ClusterDataPlane) DeepCopy added in v0.14.0

func (in *ClusterDataPlane) DeepCopy() *ClusterDataPlane

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

func (*ClusterDataPlane) DeepCopyInto added in v0.14.0

func (in *ClusterDataPlane) DeepCopyInto(out *ClusterDataPlane)

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

func (*ClusterDataPlane) DeepCopyObject added in v0.14.0

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

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

func (*ClusterDataPlane) GetConditions added in v0.14.0

func (c *ClusterDataPlane) GetConditions() []metav1.Condition

GetConditions returns the conditions of the ClusterDataPlane.

func (*ClusterDataPlane) SetConditions added in v0.14.0

func (c *ClusterDataPlane) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions of the ClusterDataPlane.

type ClusterDataPlaneList added in v0.14.0

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

ClusterDataPlaneList contains a list of ClusterDataPlane.

func (*ClusterDataPlaneList) DeepCopy added in v0.14.0

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

func (*ClusterDataPlaneList) DeepCopyInto added in v0.14.0

func (in *ClusterDataPlaneList) DeepCopyInto(out *ClusterDataPlaneList)

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

func (*ClusterDataPlaneList) DeepCopyObject added in v0.14.0

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

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

type ClusterDataPlaneSpec added in v0.14.0

type ClusterDataPlaneSpec struct {
	// PlaneID identifies the logical plane this CR connects to.
	// Multiple ClusterDataPlane CRs can share the same planeID to connect to the same physical cluster
	// while maintaining separate configurations for multi-tenancy scenarios.
	// This field is required and must uniquely identify the physical cluster agent connection.
	// Format: lowercase alphanumeric characters, hyphens allowed, max 63 characters.
	// Examples: "prod-cluster", "shared-dataplane", "us-east-1"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	PlaneID string `json:"planeID"`

	// ClusterAgent specifies the configuration for cluster agent-based communication
	// The cluster agent establishes a WebSocket connection to the control plane's cluster gateway
	// This field is mandatory - all data planes must use cluster agent communication
	ClusterAgent ClusterAgentConfig `json:"clusterAgent"`

	// Gateway specifies the configuration for the API gateway in this DataPlane.
	// +optional
	Gateway GatewaySpec `json:"gateway,omitempty"`

	// SecretStoreRef specifies the ESO ClusterSecretStore to use in the data plane
	// +optional
	SecretStoreRef *SecretStoreRef `json:"secretStoreRef,omitempty"`

	// ObservabilityPlaneRef specifies the ClusterObservabilityPlane for this ClusterDataPlane.
	// Since this is a cluster-scoped resource, it can only reference cluster-scoped ClusterObservabilityPlane.
	// Namespace-scoped ObservabilityPlane references are NOT supported for cluster-scoped resources.
	//
	// Default behavior:
	// - If not specified, the system looks for a ClusterObservabilityPlane named "default"
	// - If "default" ClusterObservabilityPlane doesn't exist, observability features are disabled
	//
	// The kind field must be "ClusterObservabilityPlane".
	// +optional
	// +kubebuilder:validation:XValidation:rule="!has(self.kind) || self.kind == 'ClusterObservabilityPlane'",message="ClusterDataPlane can only reference ClusterObservabilityPlane"
	ObservabilityPlaneRef *ClusterObservabilityPlaneRef `json:"observabilityPlaneRef,omitempty"`
}

ClusterDataPlaneSpec defines the desired state of ClusterDataPlane. This is a cluster-scoped version of DataPlaneSpec, allowing platform admins to define data planes that can be referenced across namespaces.

func (*ClusterDataPlaneSpec) DeepCopy added in v0.14.0

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

func (*ClusterDataPlaneSpec) DeepCopyInto added in v0.14.0

func (in *ClusterDataPlaneSpec) DeepCopyInto(out *ClusterDataPlaneSpec)

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

type ClusterDataPlaneStatus added in v0.14.0

type ClusterDataPlaneStatus struct {
	// ObservedGeneration reflects the generation of the most recently observed ClusterDataPlane.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the current state of the ClusterDataPlane resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// AgentConnection tracks the status of cluster agent connections to this data plane
	// +optional
	AgentConnection *AgentConnectionStatus `json:"agentConnection,omitempty"`
}

ClusterDataPlaneStatus defines the observed state of ClusterDataPlane.

func (*ClusterDataPlaneStatus) DeepCopy added in v0.14.0

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

func (*ClusterDataPlaneStatus) DeepCopyInto added in v0.14.0

func (in *ClusterDataPlaneStatus) DeepCopyInto(out *ClusterDataPlaneStatus)

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

type ClusterObservabilityPlane added in v0.14.0

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

	Spec   ClusterObservabilityPlaneSpec   `json:"spec,omitempty"`
	Status ClusterObservabilityPlaneStatus `json:"status,omitempty"`
}

ClusterObservabilityPlane is the Schema for the clusterobservabilityplanes API. It is a cluster-scoped version of ObservabilityPlane, allowing platform administrators to define observability plane configurations that can be referenced across multiple namespaces.

func (*ClusterObservabilityPlane) DeepCopy added in v0.14.0

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

func (*ClusterObservabilityPlane) DeepCopyInto added in v0.14.0

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

func (*ClusterObservabilityPlane) DeepCopyObject added in v0.14.0

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

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

func (*ClusterObservabilityPlane) GetConditions added in v0.14.0

func (c *ClusterObservabilityPlane) GetConditions() []metav1.Condition

GetConditions returns the conditions of the ClusterObservabilityPlane.

func (*ClusterObservabilityPlane) SetConditions added in v0.14.0

func (c *ClusterObservabilityPlane) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions of the ClusterObservabilityPlane.

type ClusterObservabilityPlaneList added in v0.14.0

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

ClusterObservabilityPlaneList contains a list of ClusterObservabilityPlane.

func (*ClusterObservabilityPlaneList) DeepCopy added in v0.14.0

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

func (*ClusterObservabilityPlaneList) DeepCopyInto added in v0.14.0

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

func (*ClusterObservabilityPlaneList) DeepCopyObject added in v0.14.0

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

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

type ClusterObservabilityPlaneRef added in v0.15.0

type ClusterObservabilityPlaneRef struct {
	// Kind is the kind of observability plane. Must be ClusterObservabilityPlane.
	// +required
	Kind ClusterObservabilityPlaneRefKind `json:"kind"`

	// Name is the name of the ClusterObservabilityPlane resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	Name string `json:"name"`
}

ClusterObservabilityPlaneRef represents a reference to a ClusterObservabilityPlane. Used by cluster-scoped resources (ClusterDataPlane, ClusterWorkflowPlane) that can only reference cluster-scoped observability planes.

func (*ClusterObservabilityPlaneRef) DeepCopy added in v0.15.0

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

func (*ClusterObservabilityPlaneRef) DeepCopyInto added in v0.15.0

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

type ClusterObservabilityPlaneRefKind added in v0.15.0

type ClusterObservabilityPlaneRefKind string

ClusterObservabilityPlaneRefKind defines the kind for cluster-scoped observability plane references. Only ClusterObservabilityPlane is allowed since cluster-scoped resources can only reference other cluster-scoped resources. +kubebuilder:validation:Enum=ClusterObservabilityPlane

const (
	// ClusterObservabilityPlaneRefKindClusterObservabilityPlane references a cluster-scoped ClusterObservabilityPlane
	ClusterObservabilityPlaneRefKindClusterObservabilityPlane ClusterObservabilityPlaneRefKind = "ClusterObservabilityPlane"
)

type ClusterObservabilityPlaneSpec added in v0.14.0

type ClusterObservabilityPlaneSpec struct {
	// PlaneID identifies the logical plane this CR connects to.
	// Multiple ClusterObservabilityPlane CRs can share the same planeID to connect to the same physical cluster
	// while maintaining separate configurations for multi-tenancy scenarios.
	// This field is required and must uniquely identify the physical cluster agent connection.
	// Format: lowercase alphanumeric characters, hyphens allowed, max 63 characters.
	// Examples: "shared-obs", "monitoring-cluster", "eu-central-1"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	PlaneID string `json:"planeID"`

	// ClusterAgent specifies the configuration for cluster agent-based communication
	// The cluster agent establishes a WebSocket connection to the control plane's cluster gateway
	// This field is mandatory - all observability planes must use cluster agent communication
	ClusterAgent ClusterAgentConfig `json:"clusterAgent"`

	// ObserverURL is the base URL of the Observer API in the observability plane cluster
	// +required
	ObserverURL string `json:"observerURL"`

	// RCAAgentURL is the base URL of the RCA Agent API in the observability plane cluster
	// +optional
	RCAAgentURL string `json:"rcaAgentURL,omitempty"`

	// FinOpsAgentURL is the base URL of the FinOps Agent API in the observability plane cluster
	// +optional
	FinOpsAgentURL string `json:"finOpsAgentURL,omitempty"`
}

ClusterObservabilityPlaneSpec defines the desired state of ClusterObservabilityPlane. This is a cluster-scoped version of ObservabilityPlaneSpec, allowing platform admins to define observability planes that can be referenced across namespaces.

func (*ClusterObservabilityPlaneSpec) DeepCopy added in v0.14.0

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

func (*ClusterObservabilityPlaneSpec) DeepCopyInto added in v0.14.0

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

type ClusterObservabilityPlaneStatus added in v0.14.0

type ClusterObservabilityPlaneStatus struct {
	// ObservedGeneration reflects the generation of the most recently observed ClusterObservabilityPlane.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the current state of the ClusterObservabilityPlane resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// AgentConnection tracks the status of cluster agent connections to this observability plane
	// +optional
	AgentConnection *AgentConnectionStatus `json:"agentConnection,omitempty"`
}

ClusterObservabilityPlaneStatus defines the observed state of ClusterObservabilityPlane.

func (*ClusterObservabilityPlaneStatus) DeepCopy added in v0.14.0

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

func (*ClusterObservabilityPlaneStatus) DeepCopyInto added in v0.14.0

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

type ClusterResourceType added in v1.1.0

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

	Spec   ClusterResourceTypeSpec   `json:"spec,omitempty"`
	Status ClusterResourceTypeStatus `json:"status,omitempty"`
}

ClusterResourceType is the Schema for the clusterresourcetypes API. ClusterResourceType is the cluster-scoped sibling of ResourceType. Resources in any namespace can reference a ClusterResourceType via Resource.spec.type.

func (*ClusterResourceType) DeepCopy added in v1.1.0

func (in *ClusterResourceType) DeepCopy() *ClusterResourceType

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

func (*ClusterResourceType) DeepCopyInto added in v1.1.0

func (in *ClusterResourceType) DeepCopyInto(out *ClusterResourceType)

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

func (*ClusterResourceType) DeepCopyObject added in v1.1.0

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

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

type ClusterResourceTypeList added in v1.1.0

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

ClusterResourceTypeList contains a list of ClusterResourceType.

func (*ClusterResourceTypeList) DeepCopy added in v1.1.0

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

func (*ClusterResourceTypeList) DeepCopyInto added in v1.1.0

func (in *ClusterResourceTypeList) DeepCopyInto(out *ClusterResourceTypeList)

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

func (*ClusterResourceTypeList) DeepCopyObject added in v1.1.0

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

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

type ClusterResourceTypeSpec added in v1.1.0

type ClusterResourceTypeSpec struct {
	// Parameters is the schema for Resource.spec.parameters values supplied by
	// Resource authors. Validated against this schema.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// EnvironmentConfigs defines the per-env schema.
	// Validates ResourceBinding.spec.resourceTypeEnvironmentConfigs.
	// +optional
	EnvironmentConfigs *SchemaSection `json:"environmentConfigs,omitempty"`

	// RetainPolicy is the default retention for ResourceBindings of this type.
	// Per-env override is available via ResourceBinding.spec.retainPolicy.
	// +optional
	// +kubebuilder:default=Delete
	RetainPolicy ResourceRetainPolicy `json:"retainPolicy,omitempty"`

	// Outputs declares values that workloads consume via
	// Workload.spec.dependencies.resources[].envBindings or fileBindings.
	// Each entry is identified by a unique name and picks exactly one of value,
	// secretKeyRef, or configMapKeyRef. Output value, name, and key fields support
	// ${...} CEL templating evaluated against metadata.*, parameters.*,
	// environmentConfigs.*, and applied.<id>.status.*.
	// +optional
	// +listType=map
	// +listMapKey=name
	Outputs []ResourceTypeOutput `json:"outputs,omitempty"`

	// Resources are the Kubernetes manifests the ClusterResourceType provisioner
	// emits on the data plane. Each entry has a unique id used by readyWhen and
	// outputs CEL to reference applied.<id>.status.* fields.
	// +kubebuilder:validation:MinItems=1
	// +listType=map
	// +listMapKey=id
	Resources []ResourceTypeManifest `json:"resources"`
}

ClusterResourceTypeSpec defines the desired state of ClusterResourceType. Currently mirrors ResourceTypeSpec; may diverge as cluster-scoped concerns emerge.

func (*ClusterResourceTypeSpec) DeepCopy added in v1.1.0

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

func (*ClusterResourceTypeSpec) DeepCopyInto added in v1.1.0

func (in *ClusterResourceTypeSpec) DeepCopyInto(out *ClusterResourceTypeSpec)

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

type ClusterResourceTypeStatus added in v1.1.0

type ClusterResourceTypeStatus struct {
}

ClusterResourceTypeStatus defines the observed state of ClusterResourceType.

func (*ClusterResourceTypeStatus) DeepCopy added in v1.1.0

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

func (*ClusterResourceTypeStatus) DeepCopyInto added in v1.1.0

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

type ClusterRoleMapping added in v1.0.0

type ClusterRoleMapping struct {
	// RoleRef references the ClusterAuthzRole to bind
	RoleRef RoleRef `json:"roleRef"`

	// Scope defines the target scope within the ownership hierarchy
	// +optional
	Scope ClusterTargetScope `json:"scope,omitempty"`

	// Conditions define attribute-based restrictions on specific actions granted by the role.
	// Multiple entries whose actions match the request are combined with OR semantics —
	// at least one matching entry must pass for the action to be permitted.
	// If omitted, no attribute restrictions apply — the RBAC grant stands as-is.
	// +optional
	Conditions []AuthzCondition `json:"conditions,omitempty"`
}

ClusterRoleMapping pairs a role reference with an optional scope for cluster-scoped bindings +kubebuilder:validation:XValidation:rule="!has(self.scope) || (!has(self.scope.project) || has(self.scope.namespace)) && (!has(self.scope.component) || has(self.scope.project))",message="scope.project requires scope.namespace, and scope.component requires scope.project" +kubebuilder:validation:XValidation:rule="!has(self.scope) || !has(self.scope.resource) || has(self.scope.project)",message="scope.resource requires scope.project" +kubebuilder:validation:XValidation:rule="!has(self.scope) || !has(self.scope.component) || !has(self.scope.resource)",message="scope.component and scope.resource are mutually exclusive"

func (*ClusterRoleMapping) DeepCopy added in v1.0.0

func (in *ClusterRoleMapping) DeepCopy() *ClusterRoleMapping

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

func (*ClusterRoleMapping) DeepCopyInto added in v1.0.0

func (in *ClusterRoleMapping) DeepCopyInto(out *ClusterRoleMapping)

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

type ClusterTargetScope added in v1.0.0

type ClusterTargetScope struct {
	// Namespace scopes to a specific namespace (optional)
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Project scopes to a specific project (optional, requires namespace)
	// +optional
	Project string `json:"project,omitempty"`

	// Component scopes to a specific component (optional, requires project)
	// +optional
	Component string `json:"component,omitempty"`

	// Resource scopes to a specific resource (optional, requires project)
	// +optional
	Resource string `json:"resource,omitempty"`
}

ClusterTargetScope defines which resources this cluster binding applies to within the ownership hierarchy. All fields are optional - omitted fields mean "all" at that level. Component and Resource are sibling sub-scopes under Project; a binding must not set both.

func (*ClusterTargetScope) DeepCopy added in v1.0.0

func (in *ClusterTargetScope) DeepCopy() *ClusterTargetScope

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

func (*ClusterTargetScope) DeepCopyInto added in v1.0.0

func (in *ClusterTargetScope) DeepCopyInto(out *ClusterTargetScope)

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

type ClusterTrait added in v0.16.0

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

	Spec   ClusterTraitSpec   `json:"spec,omitempty"`
	Status ClusterTraitStatus `json:"status,omitempty"`
}

ClusterTrait is the Schema for the clustertraits API. ClusterTrait is a cluster-scoped version of Trait that can be referenced by Components across all namespaces.

func (*ClusterTrait) DeepCopy added in v0.16.0

func (in *ClusterTrait) DeepCopy() *ClusterTrait

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

func (*ClusterTrait) DeepCopyInto added in v0.16.0

func (in *ClusterTrait) DeepCopyInto(out *ClusterTrait)

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

func (*ClusterTrait) DeepCopyObject added in v0.16.0

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

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

type ClusterTraitList added in v0.16.0

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

ClusterTraitList contains a list of ClusterTrait.

func (*ClusterTraitList) DeepCopy added in v0.16.0

func (in *ClusterTraitList) DeepCopy() *ClusterTraitList

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

func (*ClusterTraitList) DeepCopyInto added in v0.16.0

func (in *ClusterTraitList) DeepCopyInto(out *ClusterTraitList)

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

func (*ClusterTraitList) DeepCopyObject added in v0.16.0

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

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

type ClusterTraitRef added in v0.16.0

type ClusterTraitRef struct {
	// Kind is the kind of trait. Must be ClusterTrait.
	// +required
	Kind ClusterTraitRefKind `json:"kind"`

	// Name is the name of the ClusterTrait resource
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

ClusterTraitRef represents a reference to a ClusterTrait. Used by cluster-scoped resources (ClusterComponentType) that can only reference cluster-scoped traits.

func (*ClusterTraitRef) DeepCopy added in v0.16.0

func (in *ClusterTraitRef) DeepCopy() *ClusterTraitRef

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

func (*ClusterTraitRef) DeepCopyInto added in v0.16.0

func (in *ClusterTraitRef) DeepCopyInto(out *ClusterTraitRef)

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

type ClusterTraitRefKind added in v0.16.0

type ClusterTraitRefKind string

ClusterTraitRefKind defines the kind for cluster-scoped trait references. Only ClusterTrait is allowed since cluster-scoped resources can only reference other cluster-scoped resources. +kubebuilder:validation:Enum=ClusterTrait

const (
	// ClusterTraitRefKindClusterTrait references a cluster-scoped ClusterTrait
	ClusterTraitRefKindClusterTrait ClusterTraitRefKind = "ClusterTrait"
)

type ClusterTraitSpec added in v0.16.0

type ClusterTraitSpec struct {
	// Parameters defines developer-facing configuration options for this trait.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// EnvironmentConfigs defines per-environment configurations for this trait via ReleaseBinding.
	// +optional
	EnvironmentConfigs *SchemaSection `json:"environmentConfigs,omitempty"`

	// Validations are CEL-based rules evaluated during rendering.
	// All rules must evaluate to true for rendering to proceed.
	// +optional
	Validations []ValidationRule `json:"validations,omitempty"`

	// Creates defines new Kubernetes resources to create when this trait is applied
	// +optional
	Creates []TraitCreate `json:"creates,omitempty"`

	// Patches defines modifications to existing resources generated by the ComponentType
	// +optional
	Patches []TraitPatch `json:"patches,omitempty"`
}

ClusterTraitSpec defines the desired state of ClusterTrait.

func (*ClusterTraitSpec) DeepCopy added in v0.16.0

func (in *ClusterTraitSpec) DeepCopy() *ClusterTraitSpec

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

func (*ClusterTraitSpec) DeepCopyInto added in v0.16.0

func (in *ClusterTraitSpec) DeepCopyInto(out *ClusterTraitSpec)

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

type ClusterTraitStatus added in v0.16.0

type ClusterTraitStatus struct {
}

ClusterTraitStatus defines the observed state of ClusterTrait.

func (*ClusterTraitStatus) DeepCopy added in v0.16.0

func (in *ClusterTraitStatus) DeepCopy() *ClusterTraitStatus

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

func (*ClusterTraitStatus) DeepCopyInto added in v0.16.0

func (in *ClusterTraitStatus) DeepCopyInto(out *ClusterTraitStatus)

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

type ClusterWorkflow added in v1.0.0

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

	Spec   ClusterWorkflowSpec   `json:"spec,omitempty"`
	Status ClusterWorkflowStatus `json:"status,omitempty"`
}

ClusterWorkflow is the Schema for the clusterworkflows API. ClusterWorkflow is a cluster-scoped version of Workflow that can be referenced by Components across all namespaces.

func (*ClusterWorkflow) DeepCopy added in v1.0.0

func (in *ClusterWorkflow) DeepCopy() *ClusterWorkflow

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

func (*ClusterWorkflow) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflow) DeepCopyInto(out *ClusterWorkflow)

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

func (*ClusterWorkflow) DeepCopyObject added in v1.0.0

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

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

type ClusterWorkflowList added in v1.0.0

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

ClusterWorkflowList contains a list of ClusterWorkflow.

func (*ClusterWorkflowList) DeepCopy added in v1.0.0

func (in *ClusterWorkflowList) DeepCopy() *ClusterWorkflowList

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

func (*ClusterWorkflowList) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowList) DeepCopyInto(out *ClusterWorkflowList)

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

func (*ClusterWorkflowList) DeepCopyObject added in v1.0.0

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

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

type ClusterWorkflowPlane added in v1.0.0

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

	Spec   ClusterWorkflowPlaneSpec   `json:"spec,omitempty"`
	Status ClusterWorkflowPlaneStatus `json:"status,omitempty"`
}

ClusterWorkflowPlane is the Schema for the clusterworkflowplanes API. It is a cluster-scoped version of WorkflowPlane, allowing platform administrators to define workflow plane configurations that can be referenced across multiple namespaces.

func (*ClusterWorkflowPlane) DeepCopy added in v1.0.0

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

func (*ClusterWorkflowPlane) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowPlane) DeepCopyInto(out *ClusterWorkflowPlane)

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

func (*ClusterWorkflowPlane) DeepCopyObject added in v1.0.0

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

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

func (*ClusterWorkflowPlane) GetConditions added in v1.0.0

func (c *ClusterWorkflowPlane) GetConditions() []metav1.Condition

GetConditions returns the conditions of the ClusterWorkflowPlane.

func (*ClusterWorkflowPlane) SetConditions added in v1.0.0

func (c *ClusterWorkflowPlane) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions of the ClusterWorkflowPlane.

type ClusterWorkflowPlaneList added in v1.0.0

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

ClusterWorkflowPlaneList contains a list of ClusterWorkflowPlane.

func (*ClusterWorkflowPlaneList) DeepCopy added in v1.0.0

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

func (*ClusterWorkflowPlaneList) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowPlaneList) DeepCopyInto(out *ClusterWorkflowPlaneList)

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

func (*ClusterWorkflowPlaneList) DeepCopyObject added in v1.0.0

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

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

type ClusterWorkflowPlaneRef added in v1.0.0

type ClusterWorkflowPlaneRef struct {
	// Kind is the kind of workflow plane. Must be ClusterWorkflowPlane.
	// +required
	Kind ClusterWorkflowPlaneRefKind `json:"kind"`

	// Name is the name of the ClusterWorkflowPlane resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

ClusterWorkflowPlaneRef represents a reference to a ClusterWorkflowPlane. Used by cluster-scoped resources (ClusterWorkflow) that can only reference cluster-scoped workflow planes.

func (*ClusterWorkflowPlaneRef) DeepCopy added in v1.0.0

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

func (*ClusterWorkflowPlaneRef) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowPlaneRef) DeepCopyInto(out *ClusterWorkflowPlaneRef)

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

type ClusterWorkflowPlaneRefKind added in v1.0.0

type ClusterWorkflowPlaneRefKind string

ClusterWorkflowPlaneRefKind defines the kind for cluster-scoped workflow plane references. Only ClusterWorkflowPlane is allowed since cluster-scoped resources can only reference other cluster-scoped resources. +kubebuilder:validation:Enum=ClusterWorkflowPlane

const (
	// ClusterWorkflowPlaneRefKindClusterWorkflowPlane references a cluster-scoped ClusterWorkflowPlane
	ClusterWorkflowPlaneRefKindClusterWorkflowPlane ClusterWorkflowPlaneRefKind = "ClusterWorkflowPlane"
)

type ClusterWorkflowPlaneSpec added in v1.0.0

type ClusterWorkflowPlaneSpec struct {
	// PlaneID identifies the logical plane this CR connects to.
	// Multiple ClusterWorkflowPlane CRs can share the same planeID to connect to the same physical cluster
	// while maintaining separate configurations for multi-tenancy scenarios.
	// This field is required and must uniquely identify the physical cluster agent connection.
	// Format: lowercase alphanumeric characters, hyphens allowed, max 63 characters.
	// Examples: "shared-builder", "ci-cluster", "us-west-2"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	PlaneID string `json:"planeID"`

	// ClusterAgent specifies the configuration for cluster agent-based communication
	// The cluster agent establishes a WebSocket connection to the control plane's cluster gateway
	// This field is mandatory - all workflow planes must use cluster agent communication
	ClusterAgent ClusterAgentConfig `json:"clusterAgent"`

	// SecretStoreRef specifies the ESO ClusterSecretStore to use in the workflow plane
	// +optional
	SecretStoreRef *SecretStoreRef `json:"secretStoreRef,omitempty"`

	// ObservabilityPlaneRef specifies the ClusterObservabilityPlane for this ClusterWorkflowPlane.
	// Since this is a cluster-scoped resource, it can only reference cluster-scoped ClusterObservabilityPlane.
	// Namespace-scoped ObservabilityPlane references are NOT supported for cluster-scoped resources.
	//
	// Default behavior:
	// - If not specified, the controller defaults to a ClusterObservabilityPlane named "default"
	// - If the "default" ClusterObservabilityPlane does not exist, reconciliation fails with an error
	//
	// The kind field must be "ClusterObservabilityPlane".
	// +optional
	// +kubebuilder:validation:XValidation:rule="!has(self.kind) || self.kind == 'ClusterObservabilityPlane'",message="ClusterWorkflowPlane can only reference ClusterObservabilityPlane"
	ObservabilityPlaneRef *ClusterObservabilityPlaneRef `json:"observabilityPlaneRef,omitempty"`
}

ClusterWorkflowPlaneSpec defines the desired state of ClusterWorkflowPlane. This is a cluster-scoped version of WorkflowPlaneSpec, allowing platform admins to define workflow planes that can be referenced across namespaces.

func (*ClusterWorkflowPlaneSpec) DeepCopy added in v1.0.0

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

func (*ClusterWorkflowPlaneSpec) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowPlaneSpec) DeepCopyInto(out *ClusterWorkflowPlaneSpec)

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

type ClusterWorkflowPlaneStatus added in v1.0.0

type ClusterWorkflowPlaneStatus struct {
	// ObservedGeneration reflects the generation of the most recently observed ClusterWorkflowPlane.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the current state of the ClusterWorkflowPlane resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// AgentConnection tracks the status of cluster agent connections to this workflow plane
	// +optional
	AgentConnection *AgentConnectionStatus `json:"agentConnection,omitempty"`
}

ClusterWorkflowPlaneStatus defines the observed state of ClusterWorkflowPlane.

func (*ClusterWorkflowPlaneStatus) DeepCopy added in v1.0.0

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

func (*ClusterWorkflowPlaneStatus) DeepCopyInto added in v1.0.0

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

type ClusterWorkflowRef added in v1.0.0

type ClusterWorkflowRef struct {
	// Kind is the kind of workflow. Must be ClusterWorkflow.
	// +required
	Kind ClusterWorkflowRefKind `json:"kind"`

	// Name is the name of the ClusterWorkflow resource
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

ClusterWorkflowRef represents a reference to a ClusterWorkflow resource. Used by cluster-scoped resources (ClusterComponentType) that can only reference cluster-scoped workflows.

func (*ClusterWorkflowRef) DeepCopy added in v1.0.0

func (in *ClusterWorkflowRef) DeepCopy() *ClusterWorkflowRef

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

func (*ClusterWorkflowRef) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowRef) DeepCopyInto(out *ClusterWorkflowRef)

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

type ClusterWorkflowRefKind added in v1.0.0

type ClusterWorkflowRefKind string

ClusterWorkflowRefKind defines the kind for cluster-scoped workflow references. +kubebuilder:validation:Enum=ClusterWorkflow

const (
	// ClusterWorkflowRefKindClusterWorkflow references a cluster-scoped ClusterWorkflow
	ClusterWorkflowRefKindClusterWorkflow ClusterWorkflowRefKind = "ClusterWorkflow"
)

type ClusterWorkflowSpec added in v1.0.0

type ClusterWorkflowSpec struct {
	// WorkflowPlaneRef references the ClusterWorkflowPlane for this workflow's operations.
	// Defaults to ClusterWorkflowPlane named "default" when omitted.
	// +optional
	// +kubebuilder:default={kind: "ClusterWorkflowPlane", name: "default"}
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.workflowPlaneRef is immutable"
	WorkflowPlaneRef *ClusterWorkflowPlaneRef `json:"workflowPlaneRef,omitempty"`

	// Parameters defines the developer-facing parameters that can be configured
	// when creating a WorkflowRun instance.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// RunTemplate is the Kubernetes resource template to be rendered and applied to the cluster.
	// Template variables are substituted with context and parameter values.
	// Supported template variables:
	//   - ${metadata.workflowRunName} - WorkflowRun name (the execution instance)
	//   - ${metadata.namespaceName} - Namespace name
	//   - ${metadata.namespace} - Enforced workflow execution namespace (e.g., "workflows-<namespaceName>")
	//   - ${metadata.labels['key']} - WorkflowRun labels
	//   - ${parameters.*} - Developer-provided parameter values
	//   - ${workflowplane.secretStore} - ESO ClusterSecretStore name from the WorkflowPlane
	//   - ${externalRefs['<id>'].spec.*} - Resolved external CR specs (declared via externalRefs)
	//
	// +required
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	RunTemplate *runtime.RawExtension `json:"runTemplate"`

	// Resources are additional templates that generate Kubernetes resources dynamically.
	// +optional
	Resources []WorkflowResource `json:"resources,omitempty"`

	// ExternalRefs declares references to external CRs that are resolved at runtime.
	// +optional
	// +listType=map
	// +listMapKey=id
	ExternalRefs []ExternalRef `json:"externalRefs,omitempty"`

	// TTLAfterCompletion defines the time-to-live for WorkflowRun instances after completion.
	// +optional
	// +kubebuilder:validation:Pattern=`^(\d+d)?(\d+h)?(\d+m)?(\d+s)?$`
	TTLAfterCompletion string `json:"ttlAfterCompletion,omitempty"`
}

ClusterWorkflowSpec defines the desired state of ClusterWorkflow. ClusterWorkflow is a cluster-scoped version of Workflow that can be referenced by Components across all namespaces via ClusterComponentType.

func (*ClusterWorkflowSpec) DeepCopy added in v1.0.0

func (in *ClusterWorkflowSpec) DeepCopy() *ClusterWorkflowSpec

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

func (*ClusterWorkflowSpec) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowSpec) DeepCopyInto(out *ClusterWorkflowSpec)

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

type ClusterWorkflowStatus added in v1.0.0

type ClusterWorkflowStatus struct {
	// conditions represent the current state of the ClusterWorkflow resource.
	// Each condition has a unique type and reflects the status of a specific aspect of the resource.
	//
	// The status of each condition is one of True, False, or Unknown.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ClusterWorkflowStatus defines the observed state of ClusterWorkflow.

func (*ClusterWorkflowStatus) DeepCopy added in v1.0.0

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

func (*ClusterWorkflowStatus) DeepCopyInto added in v1.0.0

func (in *ClusterWorkflowStatus) DeepCopyInto(out *ClusterWorkflowStatus)

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

Component is the Schema for the components API.

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) GetConditions

func (p *Component) GetConditions() []metav1.Condition

func (*Component) SetConditions

func (p *Component) SetConditions(conditions []metav1.Condition)

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 ComponentOwner

type ComponentOwner struct {
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`
}

func (*ComponentOwner) DeepCopy

func (in *ComponentOwner) DeepCopy() *ComponentOwner

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

func (*ComponentOwner) DeepCopyInto

func (in *ComponentOwner) DeepCopyInto(out *ComponentOwner)

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

type ComponentProfile added in v0.5.0

type ComponentProfile struct {
	// Parameters holds the snapshot of parameter values from the Component spec
	// The schema for these values is defined in the ComponentType's parameters schema
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`

	// Traits holds the snapshot of trait instances configured on the component at release time.
	// Each entry records the kind, name, and instanceName of the trait, along with any
	// user-supplied parameters, using the composite (kind, name) key to unambiguously identify
	// the trait spec in ComponentReleaseSpec.Traits.
	// +optional
	Traits []ComponentProfileTrait `json:"traits,omitempty"`
}

ComponentProfile defines a snapshot of a component's spec

func (*ComponentProfile) DeepCopy added in v0.5.0

func (in *ComponentProfile) DeepCopy() *ComponentProfile

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

func (*ComponentProfile) DeepCopyInto added in v0.5.0

func (in *ComponentProfile) DeepCopyInto(out *ComponentProfile)

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

type ComponentProfileTrait added in v1.0.0

type ComponentProfileTrait struct {
	// Kind identifies whether this is a namespace-scoped Trait or a cluster-scoped ClusterTrait.
	// +kubebuilder:validation:Required
	Kind TraitRefKind `json:"kind"`

	// Name is the name of the Trait or ClusterTrait resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// InstanceName uniquely identifies this trait instance within the component.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	InstanceName string `json:"instanceName"`

	// Parameters contains the trait parameter values supplied by the user.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`
}

ComponentProfileTrait is a snapshot of a single trait instance configured on a component. It records the kind and name of the trait (to look up the spec in ComponentReleaseSpec.Traits), the instance name (unique within the component), and any user-supplied parameters.

func (*ComponentProfileTrait) DeepCopy added in v1.0.0

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

func (*ComponentProfileTrait) DeepCopyInto added in v1.0.0

func (in *ComponentProfileTrait) DeepCopyInto(out *ComponentProfileTrait)

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

type ComponentRelease added in v0.5.0

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

	Spec   ComponentReleaseSpec   `json:"spec,omitempty"`
	Status ComponentReleaseStatus `json:"status,omitempty"`
}

ComponentRelease is the Schema for the componentreleases API.

func (*ComponentRelease) DeepCopy added in v0.5.0

func (in *ComponentRelease) DeepCopy() *ComponentRelease

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

func (*ComponentRelease) DeepCopyInto added in v0.5.0

func (in *ComponentRelease) DeepCopyInto(out *ComponentRelease)

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

func (*ComponentRelease) DeepCopyObject added in v0.5.0

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

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

type ComponentReleaseComponentType added in v1.0.0

type ComponentReleaseComponentType struct {
	// Kind identifies whether this is a namespace-scoped ComponentType or a cluster-scoped ClusterComponentType.
	// +kubebuilder:validation:Required
	Kind ComponentTypeRefKind `json:"kind"`

	// Name is the component type reference in format: {workloadType}/{componentTypeName}
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Spec is the frozen specification of the component type at the time of this ComponentRelease.
	// +kubebuilder:validation:Required
	Spec ComponentTypeSpec `json:"spec"`
}

ComponentReleaseComponentType is the frozen snapshot of a ComponentType or ClusterComponentType resource stored on a ComponentRelease. It preserves the Kind and Name of the original resource alongside its full spec so that consumers can distinguish namespace-scoped ComponentTypes from cluster-scoped ClusterComponentTypes.

func (*ComponentReleaseComponentType) DeepCopy added in v1.0.0

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

func (*ComponentReleaseComponentType) DeepCopyInto added in v1.0.0

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

type ComponentReleaseList added in v0.5.0

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

ComponentReleaseList contains a list of ComponentRelease.

func (*ComponentReleaseList) DeepCopy added in v0.5.0

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

func (*ComponentReleaseList) DeepCopyInto added in v0.5.0

func (in *ComponentReleaseList) DeepCopyInto(out *ComponentReleaseList)

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

func (*ComponentReleaseList) DeepCopyObject added in v0.5.0

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

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

type ComponentReleaseOwner added in v0.5.0

type ComponentReleaseOwner struct {
	// ProjectName is the name of the project that owns this component
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`

	// ComponentName is the name of the component
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ComponentName string `json:"componentName"`
}

ComponentReleaseOwner identifies the component this ComponentRelease belongs to

func (*ComponentReleaseOwner) DeepCopy added in v0.5.0

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

func (*ComponentReleaseOwner) DeepCopyInto added in v0.5.0

func (in *ComponentReleaseOwner) DeepCopyInto(out *ComponentReleaseOwner)

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

type ComponentReleaseSpec added in v0.5.0

type ComponentReleaseSpec struct {
	// Owner identifies the component and project this ComponentRelease belongs to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner ComponentReleaseOwner `json:"owner"`

	// ComponentType is a frozen snapshot of the ComponentType resource at the time of component release.
	// It records the kind and name of the original resource alongside its full spec, enabling
	// the rendering pipeline to distinguish ComponentType from ClusterComponentType.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.componentType is immutable"
	ComponentType ComponentReleaseComponentType `json:"componentType"`

	// Traits holds frozen trait specifications at the time of ComponentRelease, ensuring immutability.
	// Each entry carries its kind (Trait or ClusterTrait), name, and spec, preserving the original
	// resource identity so that a Trait and ClusterTrait with the same name can coexist.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.traits is immutable"
	Traits []ComponentReleaseTrait `json:"traits,omitempty"`

	// ComponentProfile contains the immutable snapshot of parameter values and trait configs
	// specified for this component at release time
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.componentProfile is immutable"
	ComponentProfile *ComponentProfile `json:"componentProfile,omitempty"`

	// Workload is a full embedded copy of the Workload
	// This preserves the workload spec with the built image
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.workload is immutable"
	Workload WorkloadTemplateSpec `json:"workload"`
}

ComponentReleaseSpec defines the desired state of ComponentRelease.

func (*ComponentReleaseSpec) DeepCopy added in v0.5.0

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

func (*ComponentReleaseSpec) DeepCopyInto added in v0.5.0

func (in *ComponentReleaseSpec) DeepCopyInto(out *ComponentReleaseSpec)

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

type ComponentReleaseStatus added in v0.5.0

type ComponentReleaseStatus struct {
}

ComponentReleaseStatus defines the observed state of ComponentRelease.

func (*ComponentReleaseStatus) DeepCopy added in v0.5.0

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

func (*ComponentReleaseStatus) DeepCopyInto added in v0.5.0

func (in *ComponentReleaseStatus) DeepCopyInto(out *ComponentReleaseStatus)

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

type ComponentReleaseTrait added in v1.0.0

type ComponentReleaseTrait struct {
	// Kind identifies whether this is a namespace-scoped Trait or a cluster-scoped ClusterTrait.
	// +kubebuilder:validation:Required
	Kind TraitRefKind `json:"kind"`

	// Name is the name of the Trait or ClusterTrait resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Spec is the frozen specification of the trait at the time of this ComponentRelease.
	// +kubebuilder:validation:Required
	Spec TraitSpec `json:"spec"`
}

ComponentReleaseTrait is an entry in the frozen traits snapshot stored on a ComponentRelease. It preserves both the Kind and Name of the original trait resource so that a namespace-scoped Trait and a cluster-scoped ClusterTrait with the same name can coexist.

func (*ComponentReleaseTrait) DeepCopy added in v1.0.0

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

func (*ComponentReleaseTrait) DeepCopyInto added in v1.0.0

func (in *ComponentReleaseTrait) DeepCopyInto(out *ComponentReleaseTrait)

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

type ComponentSource

type ComponentSource struct {
	// GitRepository specifies the configuration for the component source to be a Git repository indicating
	// that the component should be built from the source code.
	// This field is mutually exclusive with the other source types.
	GitRepository *GitRepository `json:"gitRepository,omitempty"`

	// ContainerRegistry specifies the configuration for the component source to be a container image indicating
	// that the component should be deployed using the provided image.
	// This field is mutually exclusive with the other source types.
	ContainerRegistry *ContainerRegistry `json:"containerRegistry,omitempty"`
}

ComponentSource defines the source information of the component where the code or image is retrieved.

func (*ComponentSource) DeepCopy

func (in *ComponentSource) DeepCopy() *ComponentSource

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

func (*ComponentSource) DeepCopyInto

func (in *ComponentSource) DeepCopyInto(out *ComponentSource)

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

type ComponentSpec

type ComponentSpec struct {
	// Owner defines the ownership information for the component
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner ComponentOwner `json:"owner"`

	// ComponentType specifies the component type reference with kind and name.
	// Name is in the format: {workloadType}/{componentTypeName}
	// Example: kind=ComponentType, name="deployment/web-app"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.componentType cannot be changed after creation"
	ComponentType ComponentTypeRef `json:"componentType"`

	// AutoDeploy indicates whether the component should be deployed automatically when created
	// When not specified, defaults to false (zero value)
	// +optional
	AutoDeploy bool `json:"autoDeploy,omitempty"`

	// AutoBuild enables automatic builds when code is pushed to the repository
	// When enabled, webhook events will trigger builds automatically
	// Users must manually configure webhooks in their Git provider
	// +optional
	AutoBuild *bool `json:"autoBuild,omitempty"`

	// Parameters from ComponentType (oneOf schema based on componentType)
	// This is the merged schema of parameters + environmentConfigs from the ComponentType
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`

	// Traits to compose into this component
	// Each trait can be instantiated multiple times with different instanceNames
	// +optional
	Traits []ComponentTrait `json:"traits,omitempty"`

	// Workflow defines the workflow configuration for building the component.
	// This references a Workflow CR and provides parameter values.
	// The Workflow must be in the allowedWorkflows list of the ComponentType.
	// +optional
	Workflow *ComponentWorkflowConfig `json:"workflow,omitempty"`
}

ComponentSpec defines the desired state of 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 {
	ObservedGeneration int64              `json:"observedGeneration,omitempty"`
	Conditions         []metav1.Condition `json:"conditions,omitempty"`
	// LatestRelease keeps the information of the latest ComponentRelease created for this component
	// This is used to make sure the component's latest ComponentRelease is always
	// deployed to the first environment, if the autoDeploy flag is set to true
	// +optional
	LatestRelease *LatestRelease `json:"latestRelease,omitempty"`
}

ComponentStatus defines the observed state of 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 added in v0.4.0

type ComponentTrait struct {
	// Kind is the kind of trait (Trait or ClusterTrait)
	// +optional
	// +kubebuilder:default=Trait
	Kind TraitRefKind `json:"kind,omitempty"`

	// Name is the name of the Trait resource to use
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// InstanceName uniquely identifies this trait instance within the component
	// Allows the same trait to be used multiple times with different configurations
	// Must be unique across all traits in the component
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	InstanceName string `json:"instanceName"`

	// Parameters contains the trait parameter values
	// The schema for these values is defined in the Trait's parameters schema
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`
}

ComponentTrait represents an trait instance attached to a component

func (*ComponentTrait) DeepCopy added in v0.4.0

func (in *ComponentTrait) DeepCopy() *ComponentTrait

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

func (*ComponentTrait) DeepCopyInto added in v0.4.0

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

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

type ComponentType

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

	Spec   ComponentTypeSpec   `json:"spec,omitempty"`
	Status ComponentTypeStatus `json:"status,omitempty"`
}

ComponentType is the Schema for the componenttypes API.

func (*ComponentType) DeepCopy added in v0.4.0

func (in *ComponentType) DeepCopy() *ComponentType

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

func (*ComponentType) DeepCopyInto added in v0.4.0

func (in *ComponentType) DeepCopyInto(out *ComponentType)

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

func (*ComponentType) DeepCopyObject added in v0.4.0

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

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

type ComponentTypeList added in v0.4.0

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

ComponentTypeList contains a list of ComponentType.

func (*ComponentTypeList) DeepCopy added in v0.4.0

func (in *ComponentTypeList) DeepCopy() *ComponentTypeList

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

func (*ComponentTypeList) DeepCopyInto added in v0.4.0

func (in *ComponentTypeList) DeepCopyInto(out *ComponentTypeList)

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

func (*ComponentTypeList) DeepCopyObject added in v0.4.0

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

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

type ComponentTypeRef added in v0.16.0

type ComponentTypeRef struct {
	// Kind is the kind of component type (ComponentType or ClusterComponentType)
	// +optional
	// +kubebuilder:default=ComponentType
	Kind ComponentTypeRefKind `json:"kind,omitempty"`

	// Name is the component type reference in format: {workloadType}/{componentTypeName}
	// +required
	// +kubebuilder:validation:Pattern=`^(deployment|statefulset|cronjob|job|proxy)/[a-z0-9]([-a-z0-9]*[a-z0-9])?$`
	Name string `json:"name"`
}

ComponentTypeRef represents a reference to a ComponentType or ClusterComponentType

func (*ComponentTypeRef) DeepCopy added in v0.16.0

func (in *ComponentTypeRef) DeepCopy() *ComponentTypeRef

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

func (*ComponentTypeRef) DeepCopyInto added in v0.16.0

func (in *ComponentTypeRef) DeepCopyInto(out *ComponentTypeRef)

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

type ComponentTypeRefKind added in v0.16.0

type ComponentTypeRefKind string

ComponentTypeRefKind defines the kind of component type referenced by a ComponentTypeRef +kubebuilder:validation:Enum=ComponentType;ClusterComponentType

const (
	// ComponentTypeRefKindComponentType references a namespace-scoped ComponentType
	ComponentTypeRefKindComponentType ComponentTypeRefKind = "ComponentType"

	// ComponentTypeRefKindClusterComponentType references a cluster-scoped ClusterComponentType
	ComponentTypeRefKindClusterComponentType ComponentTypeRefKind = "ClusterComponentType"
)

type ComponentTypeSpec added in v0.4.0

type ComponentTypeSpec struct {
	// WorkloadType must be one of: deployment, statefulset, cronjob, job, proxy
	// This determines the primary workload resource type for this component type
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=deployment;statefulset;cronjob;job;proxy
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.workloadType cannot be changed after creation"
	WorkloadType string `json:"workloadType"`

	// AllowedWorkflows restricts which workflow CRs developers can use
	// for building components of this type. If empty, no workflows are allowed.
	// Each entry is a WorkflowRef whose Kind defaults to ClusterWorkflow and
	// may be either Workflow (namespace-scoped) or ClusterWorkflow (cluster-scoped).
	// +optional
	AllowedWorkflows []WorkflowRef `json:"allowedWorkflows,omitempty"`

	// Parameters defines what developers can configure when creating components of this type.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// EnvironmentConfigs defines per-environment configs developers can set via ReleaseBinding.
	// +optional
	EnvironmentConfigs *SchemaSection `json:"environmentConfigs,omitempty"`

	// Traits are pre-configured trait instances embedded in the ComponentType.
	// The PE binds trait parameters using concrete values or CEL expressions
	// referencing the ComponentType schema (e.g., "${parameters.storage.mountPath}").
	// These traits are automatically applied to all Components of this type.
	// +optional
	Traits []ComponentTypeTrait `json:"traits,omitempty"`

	// AllowedTraits restricts which Trait or ClusterTrait CRs developers can attach to Components of this type.
	// When specified, only traits listed here (matched by kind and name) may be attached beyond those already embedded in spec.traits.
	// Trait references listed here must not overlap with traits already embedded in spec.traits.
	// If empty or omitted, no additional component-level traits are allowed.
	// +optional
	AllowedTraits []TraitRef `json:"allowedTraits,omitempty"`

	// Validations are CEL-based rules evaluated during rendering.
	// All rules must evaluate to true for rendering to proceed.
	// +optional
	Validations []ValidationRule `json:"validations,omitempty"`

	// Resources are templates that generate Kubernetes resources dynamically.
	// At least one resource template is required. For non-proxy workload types,
	// one resource must have an id matching the workloadType. When workloadType
	// is "proxy", a matching resource id is not required.
	// +kubebuilder:validation:MinItems=1
	Resources []ResourceTemplate `json:"resources"`
}

ComponentTypeSpec defines the desired state of ComponentType. +kubebuilder:validation:XValidation:rule="self.workloadType == 'proxy' || self.resources.exists(r, r.id == self.workloadType)",message="resources must contain a primary resource with id matching workloadType (unless workloadType is 'proxy')"

func (*ComponentTypeSpec) DeepCopy added in v0.4.0

func (in *ComponentTypeSpec) DeepCopy() *ComponentTypeSpec

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

func (*ComponentTypeSpec) DeepCopyInto added in v0.4.0

func (in *ComponentTypeSpec) DeepCopyInto(out *ComponentTypeSpec)

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

type ComponentTypeStatus added in v0.4.0

type ComponentTypeStatus struct {
}

ComponentTypeStatus defines the observed state of ComponentType.

func (*ComponentTypeStatus) DeepCopy added in v0.4.0

func (in *ComponentTypeStatus) DeepCopy() *ComponentTypeStatus

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

func (*ComponentTypeStatus) DeepCopyInto added in v0.4.0

func (in *ComponentTypeStatus) DeepCopyInto(out *ComponentTypeStatus)

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

type ComponentTypeTrait added in v0.14.0

type ComponentTypeTrait struct {
	// Kind is the kind of trait (Trait or ClusterTrait)
	// +optional
	// +kubebuilder:default=Trait
	Kind TraitRefKind `json:"kind,omitempty"`

	// Name is the name of the Trait resource to use.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// InstanceName uniquely identifies this trait instance.
	// Must be unique across all embedded traits in the ComponentType
	// and must not collide with any component-level trait instance names.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	InstanceName string `json:"instanceName"`

	// Parameters contains trait parameter bindings.
	// Values can be concrete (locked by PE) or CEL expressions referencing
	// the ComponentType schema using ${...} syntax.
	// Example: "${parameters.storage.mountPath}" or "app-data" (locked)
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`

	// EnvironmentConfigs contains trait environment config bindings.
	// Values can be concrete (locked by PE) or CEL expressions referencing
	// the ComponentType schema using ${...} syntax.
	// Example: "${environmentConfigs.storage.size}" or "local-path" (locked)
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	EnvironmentConfigs *runtime.RawExtension `json:"environmentConfigs,omitempty"`
}

ComponentTypeTrait represents a pre-configured trait instance embedded in a ComponentType. The PE binds trait parameters using concrete values (locked) or CEL expressions referencing the ComponentType schema (wired to developer-configurable fields).

func (*ComponentTypeTrait) DeepCopy added in v0.14.0

func (in *ComponentTypeTrait) DeepCopy() *ComponentTypeTrait

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

func (*ComponentTypeTrait) DeepCopyInto added in v0.14.0

func (in *ComponentTypeTrait) DeepCopyInto(out *ComponentTypeTrait)

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

type ComponentWorkflowConfig added in v1.0.0

type ComponentWorkflowConfig struct {
	// Kind is the kind of workflow (Workflow or ClusterWorkflow).
	// +optional
	// +kubebuilder:default=ClusterWorkflow
	Kind WorkflowRefKind `json:"kind,omitempty"`

	// Name references the Workflow or ClusterWorkflow CR to use for building the component.
	// The Workflow must be in the allowedWorkflows list of the ComponentType.
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Parameters contains the developer-provided values for the flexible parameter schema
	// defined in the referenced Workflow CR.
	//
	// These values are validated against the Workflow's parameter schema.
	//
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`
}

ComponentWorkflowConfig defines the workflow configuration for a component. Unlike WorkflowRunConfig, this struct does not enforce immutability on kind and name, allowing the component's workflow reference to be changed.

func (*ComponentWorkflowConfig) DeepCopy added in v1.0.0

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

func (*ComponentWorkflowConfig) DeepCopyInto added in v1.0.0

func (in *ComponentWorkflowConfig) DeepCopyInto(out *ComponentWorkflowConfig)

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

type ConfigMapKeyRef added in v1.1.0

type ConfigMapKeyRef struct {
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// +required
	// +kubebuilder:validation:MinLength=1
	Key string `json:"key"`
}

ConfigMapKeyRef references a specific key in a Kubernetes ConfigMap.

func (*ConfigMapKeyRef) DeepCopy added in v1.1.0

func (in *ConfigMapKeyRef) DeepCopy() *ConfigMapKeyRef

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

func (*ConfigMapKeyRef) DeepCopyInto added in v1.1.0

func (in *ConfigMapKeyRef) DeepCopyInto(out *ConfigMapKeyRef)

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

type ConnectionEnvBindings added in v0.17.0

type ConnectionEnvBindings struct {
	// Address is the env var name for the protocol-appropriate connection string.
	// For HTTP/HTTPS/WS/WSS: scheme://host:port/basePath
	// For gRPC/TCP/UDP: host:port
	// +optional
	Address string `json:"address,omitempty"`

	// Host is the optional env var name for just the hostname.
	// +optional
	Host string `json:"host,omitempty"`

	// Port is the optional env var name for just the port number.
	// +optional
	Port string `json:"port,omitempty"`

	// BasePath is the optional env var name for just the base path.
	// +optional
	BasePath string `json:"basePath,omitempty"`
}

ConnectionEnvBindings defines env var names for resolved connection address components.

func (*ConnectionEnvBindings) DeepCopy added in v0.17.0

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

func (*ConnectionEnvBindings) DeepCopyInto added in v0.17.0

func (in *ConnectionEnvBindings) DeepCopyInto(out *ConnectionEnvBindings)

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

type ConnectionTarget added in v0.17.0

type ConnectionTarget struct {
	// Namespace is the control plane namespace of the target component.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Namespace string `json:"namespace"`

	// Project is the name of the project that owns the target component.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Project string `json:"project"`

	// Component is the name of the target component.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Component string `json:"component"`

	// Endpoint is the name of the endpoint on the target component.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Endpoint string `json:"endpoint"`

	// Visibility is the desired visibility level for resolving the endpoint URL.
	// +kubebuilder:validation:Required
	Visibility EndpointVisibility `json:"visibility"`

	// Environment is the resolved target environment name for this connection.
	// This matches the consumer's environment.
	// +optional
	Environment string `json:"environment,omitempty"`
}

ConnectionTarget identifies a specific endpoint on a target component to resolve.

func (*ConnectionTarget) DeepCopy added in v0.17.0

func (in *ConnectionTarget) DeepCopy() *ConnectionTarget

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

func (*ConnectionTarget) DeepCopyInto added in v0.17.0

func (in *ConnectionTarget) DeepCopyInto(out *ConnectionTarget)

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

type Container

type Container struct {
	// OCI image to run (digest or tag).
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Image string `json:"image"`

	// Container entrypoint & args.
	// +optional
	Command []string `json:"command,omitempty"`
	// +optional
	Args []string `json:"args,omitempty"`

	// Explicit environment variables.
	// +optional
	Env []EnvVar `json:"env,omitempty"`

	// File configurations.
	// +optional
	Files []FileVar `json:"files,omitempty"`
}

Container represents a single container in the workload.

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

type ContainerOverride struct {
	// Explicit environment variables.
	// +optional
	Env []EnvVar `json:"env,omitempty"`

	// File configurations.
	// +optional
	Files []FileVar `json:"files,omitempty"`
}

ContainerOverride represents a single container in the workload.

func (*ContainerOverride) DeepCopy added in v0.5.0

func (in *ContainerOverride) DeepCopy() *ContainerOverride

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

func (*ContainerOverride) DeepCopyInto added in v0.5.0

func (in *ContainerOverride) DeepCopyInto(out *ContainerOverride)

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

type ContainerRegistry

type ContainerRegistry struct {
	// Image name of the container image. Format: <registry>/<image> without the tag.
	// Example: docker.io/library/nginx
	ImageName string `json:"imageName,omitempty"`
	// Authentication information to access the container registry.
	Authentication *RegistryAuthentication `json:"authentication,omitempty"`
}

ContainerRegistry defines the container registry configuration.

func (*ContainerRegistry) DeepCopy

func (in *ContainerRegistry) DeepCopy() *ContainerRegistry

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

func (*ContainerRegistry) DeepCopyInto

func (in *ContainerRegistry) DeepCopyInto(out *ContainerRegistry)

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

type DataPlane

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

	Spec   DataPlaneSpec   `json:"spec,omitempty"`
	Status DataPlaneStatus `json:"status,omitempty"`
}

DataPlane is the Schema for the dataplanes API.

func (*DataPlane) DeepCopy

func (in *DataPlane) DeepCopy() *DataPlane

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

func (*DataPlane) DeepCopyInto

func (in *DataPlane) DeepCopyInto(out *DataPlane)

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

func (*DataPlane) DeepCopyObject

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

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

func (*DataPlane) GetConditions

func (d *DataPlane) GetConditions() []metav1.Condition

func (*DataPlane) SetConditions

func (d *DataPlane) SetConditions(conditions []metav1.Condition)

type DataPlaneList

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

DataPlaneList contains a list of DataPlane.

func (*DataPlaneList) DeepCopy

func (in *DataPlaneList) DeepCopy() *DataPlaneList

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

func (*DataPlaneList) DeepCopyInto

func (in *DataPlaneList) DeepCopyInto(out *DataPlaneList)

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

func (*DataPlaneList) DeepCopyObject

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

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

type DataPlaneRef added in v0.15.0

type DataPlaneRef struct {
	// Kind is the kind of data plane (DataPlane or ClusterDataPlane)
	// +required
	Kind DataPlaneRefKind `json:"kind"`

	// Name is the name of the data plane resource
	// +required
	Name string `json:"name"`
}

DataPlaneRef represents a reference to a DataPlane or ClusterDataPlane

func (*DataPlaneRef) DeepCopy added in v0.15.0

func (in *DataPlaneRef) DeepCopy() *DataPlaneRef

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

func (*DataPlaneRef) DeepCopyInto added in v0.15.0

func (in *DataPlaneRef) DeepCopyInto(out *DataPlaneRef)

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

type DataPlaneRefKind added in v0.15.0

type DataPlaneRefKind string

DataPlaneRefKind defines the kind of data plane referenced by a DataPlaneRef +kubebuilder:validation:Enum=DataPlane;ClusterDataPlane

const (
	// DataPlaneRefKindDataPlane references a namespace-scoped DataPlane
	DataPlaneRefKindDataPlane DataPlaneRefKind = "DataPlane"

	// DataPlaneRefKindClusterDataPlane references a cluster-scoped ClusterDataPlane
	DataPlaneRefKindClusterDataPlane DataPlaneRefKind = "ClusterDataPlane"
)

type DataPlaneSpec

type DataPlaneSpec struct {

	// PlaneID identifies the logical plane this CR connects to.
	// Multiple DataPlane CRs can share the same planeID to connect to the same physical cluster
	// while maintaining separate configurations for multi-tenancy scenarios.
	// If not specified, defaults to the CR name for backwards compatibility.
	// Format: lowercase alphanumeric characters, hyphens allowed, max 63 characters.
	// Examples: "prod-cluster", "shared-dataplane", "us-east-1"
	// +optional
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	PlaneID string `json:"planeID,omitempty"`

	// ClusterAgent specifies the configuration for cluster agent-based communication
	// The cluster agent establishes a WebSocket connection to the control plane's cluster gateway
	// This field is mandatory - all data planes must use cluster agent communication
	ClusterAgent ClusterAgentConfig `json:"clusterAgent"`

	// Gateway specifies the configuration for the API gateway in this DataPlane.
	// +optional
	Gateway GatewaySpec `json:"gateway,omitempty"`

	// SecretStoreRef specifies the ESO ClusterSecretStore to use in the data plane
	// +optional
	SecretStoreRef *SecretStoreRef `json:"secretStoreRef,omitempty"`

	// ObservabilityPlaneRef specifies the ObservabilityPlane or ClusterObservabilityPlane for this DataPlane.
	// If not specified, defaults to an ObservabilityPlane named "default" in the same namespace.
	// +optional
	ObservabilityPlaneRef *ObservabilityPlaneRef `json:"observabilityPlaneRef,omitempty"`
}

DataPlaneSpec defines the desired state of a DataPlane.

func (*DataPlaneSpec) DeepCopy

func (in *DataPlaneSpec) DeepCopy() *DataPlaneSpec

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

func (*DataPlaneSpec) DeepCopyInto

func (in *DataPlaneSpec) DeepCopyInto(out *DataPlaneSpec)

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

type DataPlaneStatus

type DataPlaneStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	ObservedGeneration int64              `json:"observedGeneration,omitempty"`
	Conditions         []metav1.Condition `json:"conditions,omitempty"`

	// AgentConnection tracks the status of cluster agent connections to this data plane
	// +optional
	AgentConnection *AgentConnectionStatus `json:"agentConnection,omitempty"`
}

DataPlaneStatus defines the observed state of DataPlane.

func (*DataPlaneStatus) DeepCopy

func (in *DataPlaneStatus) DeepCopy() *DataPlaneStatus

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

func (*DataPlaneStatus) DeepCopyInto

func (in *DataPlaneStatus) DeepCopyInto(out *DataPlaneStatus)

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

type DeploymentPipeline

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

	Spec   DeploymentPipelineSpec   `json:"spec,omitempty"`
	Status DeploymentPipelineStatus `json:"status,omitempty"`
}

DeploymentPipeline is the Schema for the deploymentpipelines API.

func (*DeploymentPipeline) DeepCopy

func (in *DeploymentPipeline) DeepCopy() *DeploymentPipeline

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

func (*DeploymentPipeline) DeepCopyInto

func (in *DeploymentPipeline) DeepCopyInto(out *DeploymentPipeline)

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

func (*DeploymentPipeline) DeepCopyObject

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

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

type DeploymentPipelineList

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

DeploymentPipelineList contains a list of DeploymentPipeline.

func (*DeploymentPipelineList) DeepCopy

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

func (*DeploymentPipelineList) DeepCopyInto

func (in *DeploymentPipelineList) DeepCopyInto(out *DeploymentPipelineList)

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

func (*DeploymentPipelineList) DeepCopyObject

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

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

type DeploymentPipelineRef added in v1.0.0

type DeploymentPipelineRef struct {
	// Kind is the kind of deployment pipeline (DeploymentPipeline)
	// +optional
	// +kubebuilder:default=DeploymentPipeline
	Kind DeploymentPipelineRefKind `json:"kind,omitempty"`

	// Name is the name of the deployment pipeline resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

DeploymentPipelineRef represents a reference to a DeploymentPipeline

func (*DeploymentPipelineRef) DeepCopy added in v1.0.0

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

func (*DeploymentPipelineRef) DeepCopyInto added in v1.0.0

func (in *DeploymentPipelineRef) DeepCopyInto(out *DeploymentPipelineRef)

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

func (*DeploymentPipelineRef) UnmarshalJSON added in v1.0.0

func (r *DeploymentPipelineRef) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler to support both legacy string format (e.g. "my-pipeline") and the current object format (e.g. {"name":"my-pipeline"}).

type DeploymentPipelineRefKind added in v1.0.0

type DeploymentPipelineRefKind string

DeploymentPipelineRefKind defines the kind of deployment pipeline referenced by a DeploymentPipelineRef +kubebuilder:validation:Enum=DeploymentPipeline

const (
	// DeploymentPipelineRefKindDeploymentPipeline references a namespace-scoped DeploymentPipeline
	DeploymentPipelineRefKindDeploymentPipeline DeploymentPipelineRefKind = "DeploymentPipeline"
)

type DeploymentPipelineSpec

type DeploymentPipelineSpec struct {

	// PromotionPaths defines the available paths for promotion between environments
	PromotionPaths []PromotionPath `json:"promotionPaths,omitempty"`
}

DeploymentPipelineSpec defines the desired state of DeploymentPipeline.

func (*DeploymentPipelineSpec) DeepCopy

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

func (*DeploymentPipelineSpec) DeepCopyInto

func (in *DeploymentPipelineSpec) DeepCopyInto(out *DeploymentPipelineSpec)

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

type DeploymentPipelineStatus

type DeploymentPipelineStatus struct {

	// ObservedGeneration represents the .metadata.generation that the condition was set based upon
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Conditions represent the latest available observations of an object's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

DeploymentPipelineStatus defines the observed state of DeploymentPipeline.

func (*DeploymentPipelineStatus) DeepCopy

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

func (*DeploymentPipelineStatus) DeepCopyInto

func (in *DeploymentPipelineStatus) DeepCopyInto(out *DeploymentPipelineStatus)

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

type EffectType added in v0.14.0

type EffectType string

EffectType defines whether to allow or deny access Used by AuthzRoleBinding and ClusterAuthzRoleBinding +kubebuilder:validation:Enum=allow;deny

const (
	EffectAllow EffectType = "allow"
	EffectDeny  EffectType = "deny"
)

type EmailConfig added in v0.9.0

type EmailConfig struct {
	// From is the sender email address
	// Required when type is "email"
	// +kubebuilder:validation:Required
	From string `json:"from"`

	// To is the list of recipient email addresses
	// Required when type is "email"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	To []string `json:"to"`

	// SMTP configuration for sending emails
	// Required when type is "email"
	// +kubebuilder:validation:Required
	SMTP SMTPConfig `json:"smtp"`

	// Template defines the email template using CEL expressions
	// +kubebuilder:validation:Required
	Template *EmailTemplate `json:"template"`
}

EmailConfig defines the configuration for email notification channels

func (*EmailConfig) DeepCopy added in v0.9.0

func (in *EmailConfig) DeepCopy() *EmailConfig

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

func (*EmailConfig) DeepCopyInto added in v0.9.0

func (in *EmailConfig) DeepCopyInto(out *EmailConfig)

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

type EmailTemplate added in v0.9.0

type EmailTemplate struct {
	// Subject is the email subject line template using CEL expressions
	// Example: "[${alert.severity}] - ${alert.name} Triggered"
	// +kubebuilder:validation:Required
	Subject string `json:"subject"`

	// Body is the email body template using CEL expressions
	// Example: "Alert: ${alert.name} triggered at ${alert.startsAt}.\nSummary: ${alert.description}"
	// +kubebuilder:validation:Required
	Body string `json:"body"`
}

EmailTemplate defines the email template with CEL expressions

func (*EmailTemplate) DeepCopy added in v0.9.0

func (in *EmailTemplate) DeepCopy() *EmailTemplate

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

func (*EmailTemplate) DeepCopyInto added in v0.9.0

func (in *EmailTemplate) DeepCopyInto(out *EmailTemplate)

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

type EndpointAccess

type EndpointAccess struct {
	// Host is the hostname or service name
	Host string `json:"host"`

	// Port is the port number
	Port int32 `json:"port"`

	// Scheme is the connection scheme (http, https, grpc, tcp)
	// +optional
	Scheme string `json:"scheme,omitempty"`

	// BasePath is the base URL path (for HTTP-based endpoints)
	// +optional
	BasePath string `json:"basePath,omitempty"`

	// URI is the computed URI for connecting to the endpoint
	// This field is automatically generated from host, port, scheme, and basePath
	// Examples: https://api.example.com:8080/v1, grpc://service:5050, tcp://localhost:9000
	// +optional
	URI string `json:"uri,omitempty"`
}

EndpointAccess contains all the information needed to connect to an endpoint

func (*EndpointAccess) DeepCopy

func (in *EndpointAccess) DeepCopy() *EndpointAccess

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

func (*EndpointAccess) DeepCopyInto

func (in *EndpointAccess) DeepCopyInto(out *EndpointAccess)

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

type EndpointGatewayURLs added in v0.17.0

type EndpointGatewayURLs struct {
	// HTTP is the HTTP gateway URL.
	// +optional
	HTTP *EndpointURL `json:"http,omitempty"`

	// HTTPS is the HTTPS gateway URL.
	// +optional
	HTTPS *EndpointURL `json:"https,omitempty"`

	// TLS is the TLS gateway URL.
	// +optional
	TLS *EndpointURL `json:"tls,omitempty"`
}

EndpointGatewayURLs holds resolved gateway URLs for an endpoint.

func (*EndpointGatewayURLs) DeepCopy added in v0.17.0

func (in *EndpointGatewayURLs) DeepCopy() *EndpointGatewayURLs

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

func (*EndpointGatewayURLs) DeepCopyInto added in v0.17.0

func (in *EndpointGatewayURLs) DeepCopyInto(out *EndpointGatewayURLs)

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

type EndpointStatus

type EndpointStatus struct {
	// Name is the endpoint identifier matching spec.endpoints
	Name string `json:"name"`

	// Type is the endpoint type (uses EndpointType from endpoint_types.go)
	Type EndpointType `json:"type"`

	// Project contains access info for project-level visibility
	// +optional
	Project *EndpointAccess `json:"project,omitempty"`

	// Organization contains access info for organization-level visibility
	// +optional
	Organization *EndpointAccess `json:"organization,omitempty"`

	// Public contains access info for public visibility
	// +optional
	Public *EndpointAccess `json:"public,omitempty"`
}

EndpointStatus represents the observed state of an endpoint. Used by ServiceBinding, WebApplicationBinding, and other binding types. TODO: chathurangas: organization endpoint = inter-project endpoint. This is not being used. Refactor later

func (*EndpointStatus) DeepCopy

func (in *EndpointStatus) DeepCopy() *EndpointStatus

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

func (*EndpointStatus) DeepCopyInto

func (in *EndpointStatus) DeepCopyInto(out *EndpointStatus)

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

type EndpointType

type EndpointType string

EndpointType defines the different API technologies supported by the endpoint

const (
	EndpointTypeHTTP      EndpointType = "HTTP"
	EndpointTypeGraphQL   EndpointType = "GraphQL"
	EndpointTypeWebsocket EndpointType = "Websocket"
	EndpointTypeGRPC      EndpointType = "gRPC"
	EndpointTypeTCP       EndpointType = "TCP"
	EndpointTypeUDP       EndpointType = "UDP"
)

func (EndpointType) String

func (e EndpointType) String() string

type EndpointURL added in v0.17.0

type EndpointURL struct {
	// Scheme is the URL scheme (e.g., http, https, tcp, udp, ws, wss, tls).
	// +optional
	Scheme string `json:"scheme,omitempty"`

	// Host is the hostname or IP address.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Host string `json:"host"`

	// Port is the port number.
	// +optional
	Port int32 `json:"port,omitempty"`

	// Path is the URL path.
	// +optional
	Path string `json:"path,omitempty"`
}

EndpointURL represents a structured URL with its components.

func (*EndpointURL) DeepCopy added in v0.17.0

func (in *EndpointURL) DeepCopy() *EndpointURL

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

func (*EndpointURL) DeepCopyInto added in v0.17.0

func (in *EndpointURL) DeepCopyInto(out *EndpointURL)

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

type EndpointURLStatus added in v0.15.0

type EndpointURLStatus struct {
	// Name is the endpoint name as defined in the Workload spec.
	Name string `json:"name"`

	// Type is the endpoint type (HTTP, gRPC, GraphQL, Websocket, TCP, UDP).
	// +optional
	Type EndpointType `json:"type,omitempty"`

	// ServiceURL is the in-cluster service URL for this endpoint.
	// +optional
	ServiceURL *EndpointURL `json:"serviceURL,omitempty"`

	// InvokeURL is the resolved public URL for this endpoint, derived from the
	// rendered HTTPRoute whose backendRef port matches the endpoint port.
	// +optional
	InvokeURL string `json:"invokeURL,omitempty"`

	// InternalURLs holds the resolved internal gateway URLs.
	// +optional
	InternalURLs *EndpointGatewayURLs `json:"internalURLs,omitempty"`

	// ExternalURLs holds the resolved external gateway URLs.
	// +optional
	ExternalURLs *EndpointGatewayURLs `json:"externalURLs,omitempty"`
}

EndpointURLStatus holds the resolved URLs for a single named workload endpoint.

func (*EndpointURLStatus) DeepCopy added in v0.15.0

func (in *EndpointURLStatus) DeepCopy() *EndpointURLStatus

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

func (*EndpointURLStatus) DeepCopyInto added in v0.15.0

func (in *EndpointURLStatus) DeepCopyInto(out *EndpointURLStatus)

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

type EndpointVisibility added in v0.15.0

type EndpointVisibility string

EndpointVisibility defines the visibility scope for an endpoint. It determines which components can access the endpoint and how that access is enforced at runtime. +kubebuilder:validation:Enum=project;namespace;internal;external

const (
	// EndpointVisibilityProject makes the endpoint accessible only within the same project and environment.
	EndpointVisibilityProject EndpointVisibility = "project"

	// EndpointVisibilityNamespace makes the endpoint accessible across all projects in the same namespace and environment.
	EndpointVisibilityNamespace EndpointVisibility = "namespace"

	// EndpointVisibilityInternal makes the endpoint accessible across all namespaces in the deployment (intranet).
	EndpointVisibilityInternal EndpointVisibility = "internal"

	// EndpointVisibilityExternal makes the endpoint accessible from outside the deployment, including public internet.
	EndpointVisibilityExternal EndpointVisibility = "external"
)

type EntitlementClaim added in v0.14.0

type EntitlementClaim struct {
	// Claim is the JWT claim name (e.g., "groups", "sub", "email")
	// +required
	Claim string `json:"claim"`

	// Value is the entitlement value to match
	// +required
	Value string `json:"value"`
}

EntitlementClaim represents a claim-value pair for subject identification Used by AuthzRoleBinding and ClusterAuthzRoleBinding

func (*EntitlementClaim) DeepCopy added in v0.14.0

func (in *EntitlementClaim) DeepCopy() *EntitlementClaim

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

func (*EntitlementClaim) DeepCopyInto added in v0.14.0

func (in *EntitlementClaim) DeepCopyInto(out *EntitlementClaim)

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

type EnvVar

type EnvVar struct {
	// The environment variable key.
	// +required
	Key string `json:"key"`

	// The literal value of the environment variable.
	// Mutually exclusive with valueFrom.
	// +optional
	Value string `json:"value,omitempty"`

	// Extract the environment variable value from another resource.
	// Mutually exclusive with value.
	// +optional
	ValueFrom *EnvVarValueFrom `json:"valueFrom,omitempty"`
}

EnvVar represents an environment variable present in the container. +kubebuilder:validation:XValidation:rule="!(has(self.value) && has(self.valueFrom))",message="value and valueFrom are mutually exclusive"

func (*EnvVar) DeepCopy

func (in *EnvVar) DeepCopy() *EnvVar

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

func (*EnvVar) DeepCopyInto

func (in *EnvVar) DeepCopyInto(out *EnvVar)

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

type EnvVarValueFrom

type EnvVarValueFrom struct {
	// Reference to a secret resource.
	// +optional
	SecretKeyRef *SecretKeyRef `json:"secretKeyRef,omitempty"`
}

EnvVarValueFrom holds references to external sources for environment variables.

func (*EnvVarValueFrom) DeepCopy

func (in *EnvVarValueFrom) DeepCopy() *EnvVarValueFrom

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

func (*EnvVarValueFrom) DeepCopyInto

func (in *EnvVarValueFrom) DeepCopyInto(out *EnvVarValueFrom)

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

type Environment

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

	Spec   EnvironmentSpec   `json:"spec,omitempty"`
	Status EnvironmentStatus `json:"status,omitempty"`
}

Environment is the Schema for the environments API.

func (*Environment) DeepCopy

func (in *Environment) DeepCopy() *Environment

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

func (*Environment) DeepCopyInto

func (in *Environment) DeepCopyInto(out *Environment)

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

func (*Environment) DeepCopyObject

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

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

func (*Environment) GetConditions

func (e *Environment) GetConditions() []metav1.Condition

func (*Environment) SetConditions

func (e *Environment) SetConditions(conditions []metav1.Condition)

type EnvironmentList

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

EnvironmentList contains a list of Environment.

func (*EnvironmentList) DeepCopy

func (in *EnvironmentList) DeepCopy() *EnvironmentList

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

func (*EnvironmentList) DeepCopyInto

func (in *EnvironmentList) DeepCopyInto(out *EnvironmentList)

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

func (*EnvironmentList) DeepCopyObject

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

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

type EnvironmentRef added in v1.0.0

type EnvironmentRef struct {
	// Kind is the kind of environment (Environment)
	// +optional
	// +kubebuilder:default=Environment
	Kind EnvironmentRefKind `json:"kind,omitempty"`

	// Name is the name of the environment resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

EnvironmentRef represents a reference to an Environment (or ClusterEnvironment in the future)

func (*EnvironmentRef) DeepCopy added in v1.0.0

func (in *EnvironmentRef) DeepCopy() *EnvironmentRef

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

func (*EnvironmentRef) DeepCopyInto added in v1.0.0

func (in *EnvironmentRef) DeepCopyInto(out *EnvironmentRef)

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

type EnvironmentRefKind added in v1.0.0

type EnvironmentRefKind string

EnvironmentRefKind defines the kind of environment referenced +kubebuilder:validation:Enum=Environment

const (
	// EnvironmentRefKindEnvironment references a namespace-scoped Environment
	EnvironmentRefKindEnvironment EnvironmentRefKind = "Environment"
)

type EnvironmentSpec

type EnvironmentSpec struct {
	// DataPlaneRef references the DataPlane or ClusterDataPlane for this environment.
	// If not specified, defaults to a DataPlane named "default" in the same namespace.
	// Immutable once set.
	DataPlaneRef *DataPlaneRef `json:"dataPlaneRef,omitempty"`
	IsProduction bool          `json:"isProduction,omitempty"`
	Gateway      GatewaySpec   `json:"gateway,omitempty"`
}

EnvironmentSpec defines the desired state of Environment. +kubebuilder:validation:XValidation:rule="!has(oldSelf.dataPlaneRef) || oldSelf.dataPlaneRef == self.dataPlaneRef",message="dataPlaneRef is immutable once set"

func (*EnvironmentSpec) DeepCopy

func (in *EnvironmentSpec) DeepCopy() *EnvironmentSpec

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

func (*EnvironmentSpec) DeepCopyInto

func (in *EnvironmentSpec) DeepCopyInto(out *EnvironmentSpec)

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

type EnvironmentStatus

type EnvironmentStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	ObservedGeneration int64              `json:"observedGeneration,omitempty"`
	Conditions         []metav1.Condition `json:"conditions,omitempty"`
}

EnvironmentStatus defines the observed state of Environment.

func (*EnvironmentStatus) DeepCopy

func (in *EnvironmentStatus) DeepCopy() *EnvironmentStatus

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

func (*EnvironmentStatus) DeepCopyInto

func (in *EnvironmentStatus) DeepCopyInto(out *EnvironmentStatus)

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

type ExternalRef added in v0.17.0

type ExternalRef struct {
	// ID uniquely identifies this external reference within the workflow.
	// The resolved CR's spec is injected into the CEL context under this name.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=2
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^[a-z][a-z0-9-]*[a-z0-9]$`
	ID string `json:"id"`

	// APIVersion is the API version of the referenced resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	APIVersion string `json:"apiVersion"`

	// Kind is the kind of the referenced resource.
	// Currently only SecretReference is supported.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=SecretReference
	Kind string `json:"kind"`

	// Name is the name of the referenced resource.
	// Supports CEL expressions (e.g., ${parameters.repository.secretRef}).
	// If the name evaluates to empty, the reference is silently skipped.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

ExternalRef declares a reference to an external CR whose spec is resolved and injected into the CEL context under the given id.

func (*ExternalRef) DeepCopy added in v0.17.0

func (in *ExternalRef) DeepCopy() *ExternalRef

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

func (*ExternalRef) DeepCopyInto added in v0.17.0

func (in *ExternalRef) DeepCopyInto(out *ExternalRef)

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

type FileVar added in v0.4.0

type FileVar struct {
	// The file key/name.
	// +kubebuilder:validation:Required
	Key string `json:"key"`

	// The mount path where the file will be mounted.
	// +kubebuilder:validation:Required
	MountPath string `json:"mountPath"`

	// The literal content of the file.
	// Mutually exclusive with valueFrom.
	// +optional
	Value string `json:"value,omitempty"`

	// Extract the environment variable value from another resource.
	// Mutually exclusive with value.
	// +optional
	ValueFrom *EnvVarValueFrom `json:"valueFrom,omitempty"`
}

FileVar represents a file configuration in a container. +kubebuilder:validation:XValidation:rule="!(has(self.value) && has(self.valueFrom))",message="value and valueFrom are mutually exclusive"

func (*FileVar) DeepCopy added in v0.4.0

func (in *FileVar) DeepCopy() *FileVar

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

func (*FileVar) DeepCopyInto added in v0.4.0

func (in *FileVar) DeepCopyInto(out *FileVar)

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

type GatewayEndpointSpec added in v0.17.0

type GatewayEndpointSpec struct {
	// Name is the name of the Gateway resource.
	Name string `json:"name"`
	// Namespace is the namespace of the Gateway resource.
	Namespace string `json:"namespace"`
	// HTTP defines the HTTP listener configuration.
	// +optional
	HTTP *GatewayListenerSpec `json:"http,omitempty"`
	// HTTPS defines the HTTPS listener configuration.
	// +optional
	HTTPS *GatewayListenerSpec `json:"https,omitempty"`
	// TLS defines the TLS listener configuration.
	// +optional
	TLS *GatewayListenerSpec `json:"tls,omitempty"`
}

GatewayEndpointSpec defines the configuration for a gateway endpoint (name, namespace, and listeners).

func (*GatewayEndpointSpec) DeepCopy added in v0.17.0

func (in *GatewayEndpointSpec) DeepCopy() *GatewayEndpointSpec

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

func (*GatewayEndpointSpec) DeepCopyInto added in v0.17.0

func (in *GatewayEndpointSpec) DeepCopyInto(out *GatewayEndpointSpec)

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

type GatewayListenerSpec added in v0.17.0

type GatewayListenerSpec struct {
	// ListenerName is the name of the listener on the Gateway resource.
	// +optional
	ListenerName string `json:"listenerName,omitempty"`
	// Port is the port number for this listener.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`
	// Host is the virtual host for this listener.
	Host string `json:"host"`
}

GatewayListenerSpec defines the configuration for a single gateway listener.

func (*GatewayListenerSpec) DeepCopy added in v0.17.0

func (in *GatewayListenerSpec) DeepCopy() *GatewayListenerSpec

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

func (*GatewayListenerSpec) DeepCopyInto added in v0.17.0

func (in *GatewayListenerSpec) DeepCopyInto(out *GatewayListenerSpec)

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

type GatewayNetworkSpec added in v0.17.0

type GatewayNetworkSpec struct {
	// External defines the externally accessible gateway endpoint.
	// +optional
	External *GatewayEndpointSpec `json:"external,omitempty"`
	// Internal defines the internally accessible gateway endpoint.
	// +optional
	Internal *GatewayEndpointSpec `json:"internal,omitempty"`
}

GatewayNetworkSpec defines external and internal gateway endpoint configurations.

func (*GatewayNetworkSpec) DeepCopy added in v0.17.0

func (in *GatewayNetworkSpec) DeepCopy() *GatewayNetworkSpec

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

func (*GatewayNetworkSpec) DeepCopyInto added in v0.17.0

func (in *GatewayNetworkSpec) DeepCopyInto(out *GatewayNetworkSpec)

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

type GatewaySpec

type GatewaySpec struct {
	// Ingress defines the ingress gateway configuration.
	// +optional
	Ingress *GatewayNetworkSpec `json:"ingress,omitempty"`
	// Egress defines the egress gateway configuration.
	// +optional
	Egress *GatewayNetworkSpec `json:"egress,omitempty"`
}

GatewaySpec defines the gateway configuration for the data plane.

func (*GatewaySpec) DeepCopy

func (in *GatewaySpec) DeepCopy() *GatewaySpec

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

func (*GatewaySpec) DeepCopyInto

func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)

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

type GitAuthentication

type GitAuthentication struct {
	// SecretRef is a reference to the secret containing Git credentials
	SecretRef string `json:"secretRef"`
}

GitAuthentication defines the authentication configuration for Git

func (*GitAuthentication) DeepCopy

func (in *GitAuthentication) DeepCopy() *GitAuthentication

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

func (*GitAuthentication) DeepCopyInto

func (in *GitAuthentication) DeepCopyInto(out *GitAuthentication)

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

type GitRepository

type GitRepository struct {
	// URL the Git repository URL
	// Examples:
	// - https://github.com/jhonb2077/customer-service
	// - https://gitlab.com/jhonb2077/customer-service
	URL string `json:"url"`

	// Authentication the authentication information to access the Git repository
	// If not provided, the Git repository should be public
	Authentication GitAuthentication `json:"authentication,omitempty"`
}

GitRepository defines the Git repository configuration

func (*GitRepository) DeepCopy

func (in *GitRepository) DeepCopy() *GitRepository

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

func (*GitRepository) DeepCopyInto

func (in *GitRepository) DeepCopyInto(out *GitRepository)

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

type HealthStatus

type HealthStatus string

HealthStatus represents the health of a resource

const (
	// HealthStatusUnknown indicates that the health of the resource is not known.
	HealthStatusUnknown HealthStatus = "Unknown"
	// HealthStatusProgressing indicates that the resource is in a transitioning state to become healthy.
	HealthStatusProgressing HealthStatus = "Progressing"
	// HealthStatusHealthy indicates that the resource is healthy and operating as expected.
	HealthStatusHealthy HealthStatus = "Healthy"
	// HealthStatusSuspended indicates that the resource is intentionally paused such as CronJob, Deployment with paused rollout, etc.
	HealthStatusSuspended HealthStatus = "Suspended"
	// HealthStatusDegraded indicates that the resource is not healthy and not operating as expected.
	HealthStatusDegraded HealthStatus = "Degraded"
)

type JSONPatchOperation added in v0.4.0

type JSONPatchOperation struct {
	// Op is the operation type
	// Standard operations: add, replace, remove (RFC 6902)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=add;replace;remove
	Op string `json:"op"`

	// Path is the JSON Pointer to the field to modify (RFC 6901)
	// Supports array filters: /spec/containers/[?(@.name=='app')]/volumeMounts/-
	// +kubebuilder:validation:Required
	Path string `json:"path"`

	// Value is the value to set (for add/replace operations)
	// Not used for remove operations
	// Can be a literal value, a structure with embedded CEL expressions,
	// or a standalone CEL expression.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Value *runtime.RawExtension `json:"value,omitempty"`
}

JSONPatchOperation defines a JSONPatch operation Supports standard operations (add, replace, remove) for map overlays

func (*JSONPatchOperation) DeepCopy added in v0.4.0

func (in *JSONPatchOperation) DeepCopy() *JSONPatchOperation

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

func (*JSONPatchOperation) DeepCopyInto added in v0.4.0

func (in *JSONPatchOperation) DeepCopyInto(out *JSONPatchOperation)

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

type LatestRelease added in v0.5.0

type LatestRelease struct {
	// Name of the ComponentRelease resource
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// ReleaseHash record the hash value of the spec of ComponentRelease.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	ReleaseHash string `json:"releaseHash,omitempty"`
}

LatestRelease has name and generated hash of the latest ComponentRelease spec

func (*LatestRelease) DeepCopy added in v0.5.0

func (in *LatestRelease) DeepCopy() *LatestRelease

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

func (*LatestRelease) DeepCopyInto added in v0.5.0

func (in *LatestRelease) DeepCopyInto(out *LatestRelease)

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

type LatestResourceRelease added in v1.1.0

type LatestResourceRelease struct {
	// Name of the ResourceRelease resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Hash is the content hash of Resource.spec + ResourceType/ClusterResourceType.spec
	// captured at release time.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Hash string `json:"hash"`
}

LatestResourceRelease identifies the most recent ResourceRelease for a Resource. Distinct from LatestRelease (component_types.go) because the hash semantics differ: here it covers Resource.spec + ResourceType/ClusterResourceType.spec.

func (*LatestResourceRelease) DeepCopy added in v1.1.0

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

func (*LatestResourceRelease) DeepCopyInto added in v1.1.0

func (in *LatestResourceRelease) DeepCopyInto(out *LatestResourceRelease)

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

type NotificationChannelConfig added in v0.9.0

type NotificationChannelConfig struct {
	// EmailConfig is embedded to allow direct access to email fields at the config level
	// +optional
	EmailConfig `json:",inline"`

	// WebhookConfig is embedded to allow direct access to webhook fields at the config level
	// +optional
	WebhookConfig `json:",inline"`
}

NotificationChannelConfig is deprecated. Use EmailConfig and WebhookConfig directly in the spec instead. This type is kept for backward compatibility but should not be used in new code.

func (*NotificationChannelConfig) DeepCopy added in v0.9.0

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

func (*NotificationChannelConfig) DeepCopyInto added in v0.9.0

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

type NotificationChannelName added in v1.0.0

type NotificationChannelName string

NotificationChannelName defines a non-empty notification channel identifier. +kubebuilder:validation:MinLength=1

type NotificationChannelType added in v0.9.0

type NotificationChannelType string

NotificationChannelType defines the type of notification channel Currently "email" and "webhook" are supported. Other channel types will be added in the future. +kubebuilder:validation:Enum=email;webhook

const (
	// NotificationChannelTypeEmail represents an email notification channel
	NotificationChannelTypeEmail NotificationChannelType = "email"
	// NotificationChannelTypeWebhook represents a webhook notification channel
	NotificationChannelTypeWebhook NotificationChannelType = "webhook"
)

type ObservabilityAlertActions added in v1.0.0

type ObservabilityAlertActions struct {
	// Notifications defines the notifications to send when the alert rule is triggered.
	// +kubebuilder:validation:Required
	Notifications ObservabilityAlertNotifications `json:"notifications"`

	// Incident defines the incident to trigger when the alert rule is triggered.
	// +optional
	Incident *ObservabilityAlertIncident `json:"incident,omitempty"`
}

ObservabilityAlertActions defines the actions to take when the alert rule is triggered.

func (*ObservabilityAlertActions) DeepCopy added in v1.0.0

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

func (*ObservabilityAlertActions) DeepCopyInto added in v1.0.0

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

type ObservabilityAlertCondition added in v0.9.0

type ObservabilityAlertCondition struct {
	// Window is the time window that is aggregated before a comparison is made.
	// +kubebuilder:validation:Required
	Window metav1.Duration `json:"window"`

	// Interval dictates how often the alert rule is evaluated.
	// +kubebuilder:validation:Required
	Interval metav1.Duration `json:"interval"`

	// Operator describes the comparison used when evaluating the threshold.
	// +kubebuilder:validation:Required
	Operator ObservabilityAlertConditionOperator `json:"operator"`

	// Threshold is the trigger value for the configured operator.
	// +kubebuilder:validation:Required
	Threshold int64 `json:"threshold"`
}

ObservabilityAlertCondition represents the evaluation window of the alert.

func (*ObservabilityAlertCondition) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertCondition) DeepCopyInto added in v0.9.0

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

type ObservabilityAlertConditionOperator added in v0.9.0

type ObservabilityAlertConditionOperator string

ObservabilityAlertConditionOperator describes how a computed signal is evaluated. +kubebuilder:validation:Enum=gt;lt;gte;lte;eq

const (
	// ObservabilityAlertConditionOperatorGt triggers when value is greater than threshold.
	ObservabilityAlertConditionOperatorGt ObservabilityAlertConditionOperator = "gt"
	// ObservabilityAlertConditionOperatorLt triggers when value is less than threshold.
	ObservabilityAlertConditionOperatorLt ObservabilityAlertConditionOperator = "lt"
	// ObservabilityAlertConditionOperatorGte triggers when value is greater than or equal to threshold.
	ObservabilityAlertConditionOperatorGte ObservabilityAlertConditionOperator = "gte"
	// ObservabilityAlertConditionOperatorLte triggers when value is less than or equal to threshold.
	ObservabilityAlertConditionOperatorLte ObservabilityAlertConditionOperator = "lte"
	// ObservabilityAlertConditionOperatorEq triggers when value equals the threshold value.
	ObservabilityAlertConditionOperatorEq ObservabilityAlertConditionOperator = "eq"
)

type ObservabilityAlertIncident added in v1.0.0

type ObservabilityAlertIncident struct {
	// Enabled toggles whether an incident should be triggered when the alert rule is triggered.
	// +optional
	// +kubebuilder:default:=false
	Enabled *bool `json:"enabled,omitempty"`

	// TriggerAiRca toggles whether an AI root cause analysis should be triggered when an incident is created.
	// To set this to true, Enabled must also be set to true.
	// +optional
	// +kubebuilder:default:=false
	TriggerAiRca *bool `json:"triggerAiRca,omitempty"`

	// TriggerAiCostAnalysis toggles whether an AI cost analysis should be triggered when an incident is created.
	// To set this to true, Enabled must also be set to true.
	// +optional
	// +kubebuilder:default:=false
	TriggerAiCostAnalysis *bool `json:"triggerAiCostAnalysis,omitempty"`
}

ObservabilityAlertIncident defines the incident to trigger when the alert rule is triggered. +kubebuilder:validation:XValidation:rule="self.triggerAiRca == true ? self.enabled == true : true",message="Incident must be enabled to trigger AI RCA" +kubebuilder:validation:XValidation:rule="self.triggerAiCostAnalysis == true ? self.enabled == true : true",message="Incident must be enabled to trigger AI cost analysis"

func (*ObservabilityAlertIncident) DeepCopy added in v1.0.0

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

func (*ObservabilityAlertIncident) DeepCopyInto added in v1.0.0

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

type ObservabilityAlertNotifications added in v1.0.0

type ObservabilityAlertNotifications struct {
	// Channels defines the channels to send notifications to.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +listType=set
	Channels []NotificationChannelName `json:"channels"`
}

ObservabilityAlertNotifications defines the notifications to send when the alert rule is triggered.

func (*ObservabilityAlertNotifications) DeepCopy added in v1.0.0

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

func (*ObservabilityAlertNotifications) DeepCopyInto added in v1.0.0

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

type ObservabilityAlertRule added in v0.9.0

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

	Spec   ObservabilityAlertRuleSpec   `json:"spec,omitempty"`
	Status ObservabilityAlertRuleStatus `json:"status,omitempty"`
}

ObservabilityAlertRule is the Schema for the observabilityalertrules API.

func (*ObservabilityAlertRule) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertRule) DeepCopyInto added in v0.9.0

func (in *ObservabilityAlertRule) DeepCopyInto(out *ObservabilityAlertRule)

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

func (*ObservabilityAlertRule) DeepCopyObject added in v0.9.0

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

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

type ObservabilityAlertRuleList added in v0.9.0

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

ObservabilityAlertRuleList contains a list of ObservabilityAlertRule.

func (*ObservabilityAlertRuleList) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertRuleList) DeepCopyInto added in v0.9.0

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

func (*ObservabilityAlertRuleList) DeepCopyObject added in v0.9.0

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

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

type ObservabilityAlertRulePhase added in v0.9.0

type ObservabilityAlertRulePhase string

ObservabilityAlertRulePhase represents the current phase of the rule.

const (
	// ObservabilityAlertRulePhasePending means the rule is being reconciled.
	ObservabilityAlertRulePhasePending ObservabilityAlertRulePhase = "Pending"
	// ObservabilityAlertRulePhaseReady means the rule is active and ready.
	ObservabilityAlertRulePhaseReady ObservabilityAlertRulePhase = "Ready"
	// ObservabilityAlertRulePhaseError means the rule encountered an error.
	ObservabilityAlertRulePhaseError ObservabilityAlertRulePhase = "Error"
)

type ObservabilityAlertRuleSpec added in v0.9.0

type ObservabilityAlertRuleSpec struct {
	// Name identifies the alert rule when defined as a Trait.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Description is a human-friendly summary of the alert rule.
	// +optional
	Description string `json:"description,omitempty"`

	// Severity describes how urgent the alert is.
	// +optional
	Severity ObservabilityAlertSeverity `json:"severity,omitempty"`

	// Enabled toggles whether this alert rule should be evaluated.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Source specifies the origin and query that drives the rule.
	// +kubebuilder:validation:Required
	Source ObservabilityAlertSource `json:"source"`

	// Condition controls how the rule should be evaluated against the source.
	// +kubebuilder:validation:Required
	Condition ObservabilityAlertCondition `json:"condition"`

	// Actions defines the actions to take when the alert rule is triggered.
	// +kubebuilder:validation:Required
	Actions ObservabilityAlertActions `json:"actions"`
}

ObservabilityAlertRuleSpec defines the desired state of ObservabilityAlertRule. +kubebuilder:validation:XValidation:rule="has(self.actions.incident) && self.actions.incident.triggerAiCostAnalysis == true ? self.source.type == 'budget' : true",message="AI cost analysis can only be triggered for budget alerts"

func (*ObservabilityAlertRuleSpec) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertRuleSpec) DeepCopyInto added in v0.9.0

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

type ObservabilityAlertRuleStatus added in v0.9.0

type ObservabilityAlertRuleStatus struct {
	// ObservedGeneration represents the .metadata.generation that the controller last handled.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Phase indicates the current lifecycle phase.
	// +optional
	Phase ObservabilityAlertRulePhase `json:"phase,omitempty"`

	// LastReconcileTime records the last time the controller reconciled this object.
	// +optional
	LastReconcileTime *metav1.Time `json:"lastReconcileTime,omitempty"`

	// LastSyncTime records when the rule was pushed to the backend observability tool.
	// +optional
	LastSyncTime *metav1.Time `json:"lastSyncTime,omitempty"`

	// BackendMonitorID is the identifier assigned by the backend observability tool.
	// +optional
	BackendMonitorID string `json:"backendMonitorId,omitempty"`

	// Conditions describe the latest observations of the rule's state.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ObservabilityAlertRuleStatus defines the observed state of ObservabilityAlertRule.

func (*ObservabilityAlertRuleStatus) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertRuleStatus) DeepCopyInto added in v0.9.0

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

type ObservabilityAlertSeverity added in v0.9.0

type ObservabilityAlertSeverity string

ObservabilityAlertSeverity describes the seriousness of an alert.

const (
	// ObservabilityAlertSeverityInfo indicates informational alerts.
	ObservabilityAlertSeverityInfo ObservabilityAlertSeverity = "info"
	// ObservabilityAlertSeverityWarning indicates warning-level alerts.
	ObservabilityAlertSeverityWarning ObservabilityAlertSeverity = "warning"
	// ObservabilityAlertSeverityCritical indicates critical alerts.
	ObservabilityAlertSeverityCritical ObservabilityAlertSeverity = "critical"
)

type ObservabilityAlertSource added in v0.9.0

type ObservabilityAlertSource struct {
	// Type specifies the telemetry source type (log, metric).
	// +kubebuilder:validation:Required
	Type ObservabilityAlertSourceType `json:"type"`

	// Query defines the query or filter to locate relevant events.
	// This is required for log-based alerting.
	// +optional
	Query string `json:"query,omitempty"`

	// Metric specifies the metric to alert on.
	// This is required for metric-based alerting.
	// +optional
	Metric string `json:"metric,omitempty"`
}

ObservabilityAlertSource describes where and how events are pulled for evaluation.

func (*ObservabilityAlertSource) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertSource) DeepCopyInto added in v0.9.0

func (in *ObservabilityAlertSource) DeepCopyInto(out *ObservabilityAlertSource)

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

type ObservabilityAlertSourceType added in v0.9.0

type ObservabilityAlertSourceType string

ObservabilityAlertSourceType identifies the origin of the telemetry data. +kubebuilder:validation:Enum=log;metric;budget

const (
	// ObservabilityAlertSourceTypeLog represents log-based alerting.
	ObservabilityAlertSourceTypeLog ObservabilityAlertSourceType = "log"
	// ObservabilityAlertSourceTypeMetric represents metric-based alerting.
	ObservabilityAlertSourceTypeMetric ObservabilityAlertSourceType = "metric"
	// ObservabilityAlertSourceTypeBudget represents budget-based alerting.
	ObservabilityAlertSourceTypeBudget ObservabilityAlertSourceType = "budget"
)

type ObservabilityAlertsNotificationChannel added in v0.9.0

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

	Spec   ObservabilityAlertsNotificationChannelSpec   `json:"spec,omitempty"`
	Status ObservabilityAlertsNotificationChannelStatus `json:"status,omitempty"`
}

ObservabilityAlertsNotificationChannel is the Schema for the observabilityalertsnotificationchannels API. It defines a channel for sending alert notifications. Currently email and webhook notifications are supported.

func (*ObservabilityAlertsNotificationChannel) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertsNotificationChannel) DeepCopyInto added in v0.9.0

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

func (*ObservabilityAlertsNotificationChannel) DeepCopyObject added in v0.9.0

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

type ObservabilityAlertsNotificationChannelList added in v0.9.0

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

ObservabilityAlertsNotificationChannelList contains a list of ObservabilityAlertsNotificationChannel.

func (*ObservabilityAlertsNotificationChannelList) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertsNotificationChannelList) DeepCopyInto added in v0.9.0

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

func (*ObservabilityAlertsNotificationChannelList) DeepCopyObject added in v0.9.0

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

type ObservabilityAlertsNotificationChannelSpec added in v0.9.0

type ObservabilityAlertsNotificationChannelSpec struct {

	// Environment is the name of the openchoreo environment this notification channel belongs to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.environment is immutable"
	Environment string `json:"environment"`

	// IsEnvDefault indicates if this is the default notification channel for the environment
	// There can be only one default notification channel for an environment
	// First notification channel created for an environment will be the default unless otherwise specified
	// +kubebuilder:default=false
	IsEnvDefault bool `json:"isEnvDefault,omitempty"`

	// Type specifies the type of notification channel
	// Currently "email" and "webhook" are supported
	// +kubebuilder:validation:Required
	Type NotificationChannelType `json:"type"`

	// EmailConfig contains the email notification channel configuration
	// Required when type is "email"
	// +optional
	EmailConfig *EmailConfig `json:"emailConfig,omitempty"`

	// WebhookConfig contains the webhook notification channel configuration
	// Required when type is "webhook"
	// +optional
	WebhookConfig *WebhookConfig `json:"webhookConfig,omitempty"`
}

ObservabilityAlertsNotificationChannelSpec defines the desired state of ObservabilityAlertsNotificationChannel. +kubebuilder:validation:XValidation:rule="self.type == 'email' ? has(self.emailConfig) : true",message="emailConfig is required when type is email" +kubebuilder:validation:XValidation:rule="self.type == 'webhook' ? has(self.webhookConfig) : true",message="webhookConfig is required when type is webhook"

func (*ObservabilityAlertsNotificationChannelSpec) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertsNotificationChannelSpec) DeepCopyInto added in v0.9.0

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

type ObservabilityAlertsNotificationChannelStatus added in v0.9.0

type ObservabilityAlertsNotificationChannelStatus struct {
}

ObservabilityAlertsNotificationChannelStatus defines the observed state of ObservabilityAlertsNotificationChannel.

func (*ObservabilityAlertsNotificationChannelStatus) DeepCopy added in v0.9.0

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

func (*ObservabilityAlertsNotificationChannelStatus) DeepCopyInto added in v0.9.0

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

type ObservabilityPlane added in v0.8.0

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

	Spec   ObservabilityPlaneSpec   `json:"spec,omitempty"`
	Status ObservabilityPlaneStatus `json:"status,omitempty"`
}

ObservabilityPlane is the Schema for the observabilityplanes API.

func (*ObservabilityPlane) DeepCopy added in v0.8.0

func (in *ObservabilityPlane) DeepCopy() *ObservabilityPlane

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

func (*ObservabilityPlane) DeepCopyInto added in v0.8.0

func (in *ObservabilityPlane) DeepCopyInto(out *ObservabilityPlane)

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

func (*ObservabilityPlane) DeepCopyObject added in v0.8.0

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

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

type ObservabilityPlaneList added in v0.8.0

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

ObservabilityPlaneList contains a list of ObservabilityPlane.

func (*ObservabilityPlaneList) DeepCopy added in v0.8.0

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

func (*ObservabilityPlaneList) DeepCopyInto added in v0.8.0

func (in *ObservabilityPlaneList) DeepCopyInto(out *ObservabilityPlaneList)

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

func (*ObservabilityPlaneList) DeepCopyObject added in v0.8.0

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

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

type ObservabilityPlaneRef added in v0.15.0

type ObservabilityPlaneRef struct {
	// Kind is the kind of observability plane (ObservabilityPlane or ClusterObservabilityPlane)
	// +required
	Kind ObservabilityPlaneRefKind `json:"kind"`

	// Name is the name of the observability plane resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	Name string `json:"name"`
}

ObservabilityPlaneRef represents a reference to an ObservabilityPlane or ClusterObservabilityPlane

func (*ObservabilityPlaneRef) DeepCopy added in v0.15.0

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

func (*ObservabilityPlaneRef) DeepCopyInto added in v0.15.0

func (in *ObservabilityPlaneRef) DeepCopyInto(out *ObservabilityPlaneRef)

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

type ObservabilityPlaneRefKind added in v0.15.0

type ObservabilityPlaneRefKind string

ObservabilityPlaneRefKind defines the kind of observability plane referenced +kubebuilder:validation:Enum=ObservabilityPlane;ClusterObservabilityPlane

const (
	// ObservabilityPlaneRefKindObservabilityPlane references a namespace-scoped ObservabilityPlane
	ObservabilityPlaneRefKindObservabilityPlane ObservabilityPlaneRefKind = "ObservabilityPlane"

	// ObservabilityPlaneRefKindClusterObservabilityPlane references a cluster-scoped ClusterObservabilityPlane
	ObservabilityPlaneRefKindClusterObservabilityPlane ObservabilityPlaneRefKind = "ClusterObservabilityPlane"
)

type ObservabilityPlaneSpec added in v0.8.0

type ObservabilityPlaneSpec struct {

	// PlaneID identifies the logical plane this CR connects to.
	// Multiple ObservabilityPlane CRs can share the same planeID to connect to the same physical cluster
	// while maintaining separate configurations for multi-tenancy scenarios.
	// If not specified, defaults to the CR name for backwards compatibility.
	// Format: lowercase alphanumeric characters, hyphens allowed, max 63 characters.
	// Examples: "shared-obs", "monitoring-cluster", "eu-central-1"
	// +optional
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	PlaneID string `json:"planeID,omitempty"`

	// ClusterAgent specifies the configuration for cluster agent-based communication
	// The cluster agent establishes a WebSocket connection to the control plane's cluster gateway
	// This field is mandatory - all observability planes must use cluster agent communication
	ClusterAgent ClusterAgentConfig `json:"clusterAgent"`

	// ObserverURL is the base URL of the Observer API in the observability plane cluster
	// +required
	ObserverURL string `json:"observerURL"`

	// RCAAgentURL is the base URL of the RCA Agent API in the observability plane cluster
	// +optional
	RCAAgentURL string `json:"rcaAgentURL,omitempty"`

	// FinOpsAgentURL is the base URL of the FinOps Agent API in the observability plane cluster
	// +optional
	FinOpsAgentURL string `json:"finOpsAgentURL,omitempty"`
}

ObservabilityPlaneSpec defines the desired state of ObservabilityPlane.

func (*ObservabilityPlaneSpec) DeepCopy added in v0.8.0

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

func (*ObservabilityPlaneSpec) DeepCopyInto added in v0.8.0

func (in *ObservabilityPlaneSpec) DeepCopyInto(out *ObservabilityPlaneSpec)

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

type ObservabilityPlaneStatus added in v0.8.0

type ObservabilityPlaneStatus struct {

	// ObservedGeneration is the generation observed by the controller
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the ObservabilityPlane's state
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// AgentConnection tracks the status of cluster agent connections to this observability plane
	// +optional
	AgentConnection *AgentConnectionStatus `json:"agentConnection,omitempty"`
}

ObservabilityPlaneStatus defines the observed state of ObservabilityPlane.

func (*ObservabilityPlaneStatus) DeepCopy added in v0.8.0

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

func (*ObservabilityPlaneStatus) DeepCopyInto added in v0.8.0

func (in *ObservabilityPlaneStatus) DeepCopyInto(out *ObservabilityPlaneStatus)

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

type PatchTarget added in v0.4.0

type PatchTarget struct {
	// Group is the API group of the resource (e.g., "apps", "batch")
	// Must be explicitly set. Use empty string "" for core API resources (v1 Service, ConfigMap, etc.)
	// +kubebuilder:validation:Required
	Group string `json:"group"`

	// Version is the API version of the resource (e.g., "v1", "v1beta1")
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Version string `json:"version"`

	// Kind is the resource type to patch (e.g., "Deployment", "StatefulSet")
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Kind string `json:"kind"`

	// Where is an optional CEL expression to filter which resources to patch
	// Example: ${resource.metadata.name.endsWith("-secret-envs")}
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	Where string `json:"where,omitempty"`
}

PatchTarget specifies which resource to modify

func (*PatchTarget) DeepCopy added in v0.4.0

func (in *PatchTarget) DeepCopy() *PatchTarget

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

func (*PatchTarget) DeepCopyInto added in v0.4.0

func (in *PatchTarget) DeepCopyInto(out *PatchTarget)

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

type PendingConnection added in v0.17.0

type PendingConnection struct {
	// Namespace is the control plane namespace of the target component.
	// +kubebuilder:validation:MinLength=1
	Namespace string `json:"namespace"`

	// Project is the name of the project that owns the target component.
	// +kubebuilder:validation:MinLength=1
	Project string `json:"project"`

	// Component is the name of the target component.
	// +kubebuilder:validation:MinLength=1
	Component string `json:"component"`

	// Endpoint is the name of the endpoint on the target component.
	// +kubebuilder:validation:MinLength=1
	Endpoint string `json:"endpoint"`

	// Reason describes why the connection could not be resolved.
	Reason string `json:"reason"`
}

PendingConnection represents a connection that could not be resolved.

func (*PendingConnection) DeepCopy added in v0.17.0

func (in *PendingConnection) DeepCopy() *PendingConnection

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

func (*PendingConnection) DeepCopyInto added in v0.17.0

func (in *PendingConnection) DeepCopyInto(out *PendingConnection)

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

type PendingResourceDependency added in v1.1.0

type PendingResourceDependency struct {
	// Namespace is the control plane namespace of the consuming ReleaseBinding.
	// +kubebuilder:validation:MinLength=1
	Namespace string `json:"namespace"`

	// Project is the name of the project that owns the target Resource.
	// +kubebuilder:validation:MinLength=1
	Project string `json:"project"`

	// ResourceName is the name of the target Resource.
	// +kubebuilder:validation:MinLength=1
	ResourceName string `json:"resourceName"`

	// Reason describes why the dependency could not be resolved (binding not found,
	// output missing, provider not ready, etc.).
	Reason string `json:"reason"`
}

PendingResourceDependency represents a resource dependency that could not be resolved. Surfaces the failure on kubectl describe so users can diagnose missing bindings, missing outputs, or unready providers without inspecting controller logs.

func (*PendingResourceDependency) DeepCopy added in v1.1.0

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

func (*PendingResourceDependency) DeepCopyInto added in v1.1.0

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

type Project

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

	Spec   ProjectSpec   `json:"spec,omitempty"`
	Status ProjectStatus `json:"status,omitempty"`
}

Project is the Schema for the projects API.

func (*Project) DeepCopy

func (in *Project) DeepCopy() *Project

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

func (*Project) DeepCopyInto

func (in *Project) DeepCopyInto(out *Project)

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

func (*Project) DeepCopyObject

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

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

func (*Project) GetConditions

func (p *Project) GetConditions() []metav1.Condition

func (*Project) SetConditions

func (p *Project) SetConditions(conditions []metav1.Condition)

type ProjectList

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

ProjectList contains a list of Project.

func (*ProjectList) DeepCopy

func (in *ProjectList) DeepCopy() *ProjectList

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

func (*ProjectList) DeepCopyInto

func (in *ProjectList) DeepCopyInto(out *ProjectList)

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

func (*ProjectList) DeepCopyObject

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

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

type ProjectSpec

type ProjectSpec struct {
	// DeploymentPipelineRef references the DeploymentPipeline that defines the environments
	// and deployment progression for components in this project.
	DeploymentPipelineRef DeploymentPipelineRef `json:"deploymentPipelineRef"`
}

ProjectSpec defines the desired state of Project.

func (*ProjectSpec) DeepCopy

func (in *ProjectSpec) DeepCopy() *ProjectSpec

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

func (*ProjectSpec) DeepCopyInto

func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)

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

type ProjectStatus

type ProjectStatus struct {
	// ObservedGeneration reflects the generation of the most recently observed Project.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the current state of the Project resource.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ProjectStatus defines the observed state of Project.

func (*ProjectStatus) DeepCopy

func (in *ProjectStatus) DeepCopy() *ProjectStatus

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

func (*ProjectStatus) DeepCopyInto

func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus)

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

type PromotionPath

type PromotionPath struct {
	// SourceEnvironmentRef is the reference to the source environment
	SourceEnvironmentRef EnvironmentRef `json:"sourceEnvironmentRef"`
	// TargetEnvironmentRefs is the list of target environments
	TargetEnvironmentRefs []TargetEnvironmentRef `json:"targetEnvironmentRefs"`
}

PromotionPath defines a path for promoting between environments

func (*PromotionPath) DeepCopy

func (in *PromotionPath) DeepCopy() *PromotionPath

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

func (*PromotionPath) DeepCopyInto

func (in *PromotionPath) DeepCopyInto(out *PromotionPath)

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

type RegistryAuthentication

type RegistryAuthentication struct {
	// Reference to the secret that contains the container registry authentication info.
	SecretRef string `json:"secretRef,omitempty"`
}

RegistryAuthentication defines the authentication configuration for container registry

func (*RegistryAuthentication) DeepCopy

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

func (*RegistryAuthentication) DeepCopyInto

func (in *RegistryAuthentication) DeepCopyInto(out *RegistryAuthentication)

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

type ReleaseBinding added in v0.5.0

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

	Spec   ReleaseBindingSpec   `json:"spec,omitempty"`
	Status ReleaseBindingStatus `json:"status,omitempty"`
}

ReleaseBinding is the Schema for the releasebindings API.

func (*ReleaseBinding) DeepCopy added in v0.5.0

func (in *ReleaseBinding) DeepCopy() *ReleaseBinding

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

func (*ReleaseBinding) DeepCopyInto added in v0.5.0

func (in *ReleaseBinding) DeepCopyInto(out *ReleaseBinding)

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

func (*ReleaseBinding) DeepCopyObject added in v0.5.0

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

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

func (*ReleaseBinding) GetConditions added in v0.5.0

func (r *ReleaseBinding) GetConditions() []metav1.Condition

GetConditions returns the conditions from the status

func (*ReleaseBinding) SetConditions added in v0.5.0

func (r *ReleaseBinding) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions in the status

type ReleaseBindingList added in v0.5.0

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

ReleaseBindingList contains a list of ReleaseBinding.

func (*ReleaseBindingList) DeepCopy added in v0.5.0

func (in *ReleaseBindingList) DeepCopy() *ReleaseBindingList

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

func (*ReleaseBindingList) DeepCopyInto added in v0.5.0

func (in *ReleaseBindingList) DeepCopyInto(out *ReleaseBindingList)

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

func (*ReleaseBindingList) DeepCopyObject added in v0.5.0

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

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

type ReleaseBindingOwner added in v0.5.0

type ReleaseBindingOwner struct {
	// ProjectName is the name of the project that owns this component
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`

	// ComponentName is the name of the component
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ComponentName string `json:"componentName"`
}

ReleaseBindingOwner identifies the component this ReleaseBinding belongs to

func (*ReleaseBindingOwner) DeepCopy added in v0.5.0

func (in *ReleaseBindingOwner) DeepCopy() *ReleaseBindingOwner

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

func (*ReleaseBindingOwner) DeepCopyInto added in v0.5.0

func (in *ReleaseBindingOwner) DeepCopyInto(out *ReleaseBindingOwner)

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

type ReleaseBindingSpec added in v0.5.0

type ReleaseBindingSpec struct {
	// Owner identifies the component and project this ReleaseBinding belongs to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner ReleaseBindingOwner `json:"owner"`

	// EnvironmentName is the name of the environment this binds the ComponentRelease to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.environment is immutable"
	Environment string `json:"environment"`

	// ReleaseName is the name of the ComponentRelease to bind
	// When ComponentSpec.AutoDeploy is enabled, this field will be handled by the controller
	// +optional
	ReleaseName string `json:"releaseName,omitempty"`

	// ComponentTypeEnvironmentConfigs for ComponentType environmentConfigs parameters
	// These values override the defaults defined in the Component for this specific environment
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	ComponentTypeEnvironmentConfigs *runtime.RawExtension `json:"componentTypeEnvironmentConfigs,omitempty"`

	// TraitEnvironmentConfigs provides environment-specific overrides for trait configurations
	// Keyed by instanceName (which must be unique across all traits in the component)
	// Structure: map[instanceName]overrideValues
	// +optional
	TraitEnvironmentConfigs map[string]runtime.RawExtension `json:"traitEnvironmentConfigs,omitempty"`

	// WorkloadOverrides provides environment-specific overrides for the entire workload spec
	// These values override the workload specification for this specific environment
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	WorkloadOverrides *WorkloadOverrideTemplateSpec `json:"workloadOverrides,omitempty"`

	// State controls the state of the Release created by this binding.
	// Active: Resources are deployed normally
	// Undeploy: Resources are removed from the data plane
	// +kubebuilder:default=Active
	// +kubebuilder:validation:Enum=Active;Undeploy
	// +optional
	State ReleaseState `json:"state,omitempty"`
}

ReleaseBindingSpec defines the desired state of ReleaseBinding.

func (*ReleaseBindingSpec) DeepCopy added in v0.5.0

func (in *ReleaseBindingSpec) DeepCopy() *ReleaseBindingSpec

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

func (*ReleaseBindingSpec) DeepCopyInto added in v0.5.0

func (in *ReleaseBindingSpec) DeepCopyInto(out *ReleaseBindingSpec)

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

type ReleaseBindingStatus added in v0.5.0

type ReleaseBindingStatus struct {
	// ObservedGeneration is the most recent generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// LastSpecUpdateTime is the timestamp of the last spec change observed by the controller.
	// Updated when the controller detects a new generation (i.e., spec was modified).
	// +optional
	LastSpecUpdateTime *metav1.Time `json:"lastSpecUpdateTime,omitempty"`

	// Conditions represent the latest available observations of the ReleaseBinding's current state.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Endpoints contains the resolved invoke URLs for each named workload endpoint,
	// keyed by endpoint name. Populated once the component is deployed and the
	// corresponding HTTPRoutes are available.
	// +optional
	Endpoints []EndpointURLStatus `json:"endpoints,omitempty"`

	// ConnectionTargets lists the connection targets derived from the workload connections.
	// Used as an index source for finding consumer ReleaseBindings when a provider's endpoints change.
	// +optional
	ConnectionTargets []ConnectionTarget `json:"connectionTargets,omitempty"`

	// ResolvedConnections contains the connections that have been successfully resolved.
	// +optional
	ResolvedConnections []ResolvedConnection `json:"resolvedConnections,omitempty"`

	// PendingConnections contains the connections that could not be resolved.
	// +optional
	PendingConnections []PendingConnection `json:"pendingConnections,omitempty"`

	// ResourceDependencyTargets lists the resource dependency targets derived from the
	// workload's dependencies.resources[]. Used as an index source for finding consumer
	// ReleaseBindings when a provider ResourceReleaseBinding's status.outputs change.
	// +optional
	ResourceDependencyTargets []ResourceDependencyTarget `json:"resourceDependencyTargets,omitempty"`

	// PendingResourceDependencies contains the resource dependencies that could not be resolved.
	// +optional
	PendingResourceDependencies []PendingResourceDependency `json:"pendingResourceDependencies,omitempty"`

	// SecretReferenceNames lists the names of SecretReferences used by this ReleaseBinding's workload.
	// Used as an index source for finding affected ReleaseBindings when a SecretReference changes.
	// +optional
	SecretReferenceNames []string `json:"secretReferenceNames,omitempty"`
}

ReleaseBindingStatus defines the observed state of ReleaseBinding.

func (*ReleaseBindingStatus) DeepCopy added in v0.5.0

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

func (*ReleaseBindingStatus) DeepCopyInto added in v0.5.0

func (in *ReleaseBindingStatus) DeepCopyInto(out *ReleaseBindingStatus)

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

type ReleaseState

type ReleaseState string

ReleaseState defines the desired state of the Release created by a binding

const (
	// ReleaseStateActive indicates the Release should be actively deployed.
	// Resources are deployed normally to the data plane.
	ReleaseStateActive ReleaseState = "Active"

	// ReleaseStateUndeploy indicates the Release should be removed from the data plane.
	// The Release resource is deleted, triggering cleanup of all data plane resources.
	ReleaseStateUndeploy ReleaseState = "Undeploy"
)

type RemoteReference added in v0.4.0

type RemoteReference struct {
	// Key is the path in the external secret store (e.g., "secret/data/github/pat")
	// +kubebuilder:validation:MinLength=1
	Key string `json:"key"`

	// Property is the specific field within the secret (e.g., "token")
	// +optional
	Property string `json:"property,omitempty"`

	// Version of the secret to fetch (provider-specific)
	// +optional
	Version string `json:"version,omitempty"`
}

RemoteReference points to a secret in an external secret store.

func (*RemoteReference) DeepCopy added in v0.4.0

func (in *RemoteReference) DeepCopy() *RemoteReference

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

func (*RemoteReference) DeepCopyInto added in v0.4.0

func (in *RemoteReference) DeepCopyInto(out *RemoteReference)

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

type RenderedManifest added in v1.1.0

type RenderedManifest struct {
	// Unique identifier for the resource
	// +kubebuilder:validation:MinLength=1
	ID string `json:"id"`

	// Object contains the complete Kubernetes resource definition
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Object *runtime.RawExtension `json:"object"`
}

RenderedManifest defines a Kubernetes resource template that can be applied to the data plane.

func (*RenderedManifest) DeepCopy added in v1.1.0

func (in *RenderedManifest) DeepCopy() *RenderedManifest

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

func (*RenderedManifest) DeepCopyInto added in v1.1.0

func (in *RenderedManifest) DeepCopyInto(out *RenderedManifest)

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

type RenderedManifestStatus added in v1.1.0

type RenderedManifestStatus struct {
	// ID corresponds to the resource ID in spec.resources
	// +kubebuilder:validation:MinLength=1
	ID string `json:"id"`

	// Group is the API group of the resource (e.g., "apps", "batch")
	// Empty string for core resources
	// +optional
	Group string `json:"group,omitempty"`

	// Version is the API version of the resource (e.g., "v1", "v1beta1")
	// +kubebuilder:validation:MinLength=1
	Version string `json:"version"`

	// Kind is the type of the resource (e.g., "Deployment", "Service")
	// +kubebuilder:validation:MinLength=1
	Kind string `json:"kind"`

	// Name is the name of the resource in the data plane
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Namespace is the namespace of the resource in the data plane
	// Empty for cluster-scoped resources
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Status captures the entire .status field of the resource applied to the data plane.
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *runtime.RawExtension `json:"status,omitempty"`

	// HealthStatus indicates the health of the resource in the data plane.
	// +optional
	HealthStatus HealthStatus `json:"healthStatus,omitempty"`

	// LastObservedTime stores the last time the status was observed
	// +optional
	LastObservedTime *metav1.Time `json:"lastObservedTime,omitempty"`
}

RenderedManifestStatus tracks a resource that was applied to the data plane.

func (*RenderedManifestStatus) DeepCopy added in v1.1.0

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

func (*RenderedManifestStatus) DeepCopyInto added in v1.1.0

func (in *RenderedManifestStatus) DeepCopyInto(out *RenderedManifestStatus)

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

type RenderedRelease added in v1.0.0

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

	Spec   RenderedReleaseSpec   `json:"spec,omitempty"`
	Status RenderedReleaseStatus `json:"status,omitempty"`
}

RenderedRelease is the Schema for the renderedreleases API.

func (*RenderedRelease) DeepCopy added in v1.0.0

func (in *RenderedRelease) DeepCopy() *RenderedRelease

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

func (*RenderedRelease) DeepCopyInto added in v1.0.0

func (in *RenderedRelease) DeepCopyInto(out *RenderedRelease)

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

func (*RenderedRelease) DeepCopyObject added in v1.0.0

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

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

func (*RenderedRelease) GetConditions added in v1.0.0

func (in *RenderedRelease) GetConditions() []metav1.Condition

GetConditions returns the conditions from the status

func (*RenderedRelease) SetConditions added in v1.0.0

func (in *RenderedRelease) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions in the status

type RenderedReleaseList added in v1.0.0

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

RenderedReleaseList contains a list of RenderedRelease.

func (*RenderedReleaseList) DeepCopy added in v1.0.0

func (in *RenderedReleaseList) DeepCopy() *RenderedReleaseList

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

func (*RenderedReleaseList) DeepCopyInto added in v1.0.0

func (in *RenderedReleaseList) DeepCopyInto(out *RenderedReleaseList)

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

func (*RenderedReleaseList) DeepCopyObject added in v1.0.0

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

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

type RenderedReleaseOwner added in v1.0.0

type RenderedReleaseOwner struct {
	// ProjectName is the name of the Project the owner belongs to.
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`
	// ComponentName is set when the RenderedRelease is owned by a Component.
	// Mutually exclusive with ResourceName.
	// +optional
	ComponentName string `json:"componentName,omitempty"`
	// ResourceName is set when the RenderedRelease is owned by a Resource.
	// Mutually exclusive with ComponentName.
	// +optional
	ResourceName string `json:"resourceName,omitempty"`
}

RenderedReleaseOwner defines the owner of a RenderedRelease. +kubebuilder:validation:XValidation:rule="has(self.componentName) != has(self.resourceName)",message="exactly one of componentName or resourceName must be set"

func (*RenderedReleaseOwner) DeepCopy added in v1.0.0

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

func (*RenderedReleaseOwner) DeepCopyInto added in v1.0.0

func (in *RenderedReleaseOwner) DeepCopyInto(out *RenderedReleaseOwner)

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

type RenderedReleaseSpec added in v1.0.0

type RenderedReleaseSpec struct {

	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner RenderedReleaseOwner `json:"owner"`
	// +kubebuilder:validation:MinLength=1
	EnvironmentName string `json:"environmentName"`

	// Scalable resource template approach (KRO-inspired)
	// Supports any Kubernetes resource type including HPA, PDB, NetworkPolicy, CRDs, etc. that can
	// be applied to the data plane.
	// +kubebuilder:validation:Optional
	Resources []RenderedManifest `json:"resources,omitempty"`

	// Interval watch interval for the release resources when stable.
	// Defaults to 5m if not specified.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +optional
	Interval *metav1.Duration `json:"interval,omitempty"`

	// ProgressingInterval watch interval for the release resources when transitioning.
	// Defaults to 10s if not specified.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +optional
	ProgressingInterval *metav1.Duration `json:"progressingInterval,omitempty"`

	// TargetPlane specifies which plane this release should be deployed to.
	// Defaults to "dataplane" if not specified.
	// +kubebuilder:validation:Enum=dataplane;observabilityplane
	// +kubebuilder:default=dataplane
	TargetPlane string `json:"targetPlane,omitempty"`
}

RenderedReleaseSpec defines the desired state of RenderedRelease.

func (*RenderedReleaseSpec) DeepCopy added in v1.0.0

func (in *RenderedReleaseSpec) DeepCopy() *RenderedReleaseSpec

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

func (*RenderedReleaseSpec) DeepCopyInto added in v1.0.0

func (in *RenderedReleaseSpec) DeepCopyInto(out *RenderedReleaseSpec)

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

type RenderedReleaseStatus added in v1.0.0

type RenderedReleaseStatus struct {
	// Resources contain the list of resources that have been successfully applied to the data plane
	// +optional
	Resources []RenderedManifestStatus `json:"resources,omitempty"`

	// Conditions represent the latest available observations of the RenderedRelease's current state.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RenderedReleaseStatus defines the observed state of RenderedRelease.

func (*RenderedReleaseStatus) DeepCopy added in v1.0.0

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

func (*RenderedReleaseStatus) DeepCopyInto added in v1.0.0

func (in *RenderedReleaseStatus) DeepCopyInto(out *RenderedReleaseStatus)

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

type ResolvedConnection added in v0.17.0

type ResolvedConnection struct {
	// Namespace is the control plane namespace of the target component.
	// +kubebuilder:validation:MinLength=1
	Namespace string `json:"namespace"`

	// Project is the name of the project that owns the target component.
	// +kubebuilder:validation:MinLength=1
	Project string `json:"project"`

	// Component is the name of the target component.
	// +kubebuilder:validation:MinLength=1
	Component string `json:"component"`

	// Endpoint is the name of the endpoint on the target component.
	// +kubebuilder:validation:MinLength=1
	Endpoint string `json:"endpoint"`

	// Visibility is the visibility level at which the endpoint was resolved.
	Visibility EndpointVisibility `json:"visibility"`

	// URL is the resolved endpoint URL.
	URL EndpointURL `json:"url"`
}

ResolvedConnection holds the resolved URL for a single connection.

func (*ResolvedConnection) DeepCopy added in v0.17.0

func (in *ResolvedConnection) DeepCopy() *ResolvedConnection

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

func (*ResolvedConnection) DeepCopyInto added in v0.17.0

func (in *ResolvedConnection) DeepCopyInto(out *ResolvedConnection)

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

type ResolvedResourceOutput added in v1.1.0

type ResolvedResourceOutput struct {
	// Name uniquely identifies this output within the binding. Matches the
	// declared output name on the referenced ResourceType.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Value is the resolved literal value when the ResourceType output is declared
	// with `value:`. Only used for non-sensitive data; the resolved value transits
	// to the control plane.
	// +optional
	Value string `json:"value,omitempty"`

	// SecretKeyRef is the resolved {name, key} reference to a DP-side Secret.
	// Used for sensitive credentials; the underlying value never leaves the data
	// plane.
	// +optional
	SecretKeyRef *SecretKeyRef `json:"secretKeyRef,omitempty"`

	// ConfigMapKeyRef is the resolved {name, key} reference to a DP-side ConfigMap.
	// +optional
	ConfigMapKeyRef *ConfigMapKeyRef `json:"configMapKeyRef,omitempty"`
}

ResolvedResourceOutput is a single resolved output value populated by the binding controller after evaluating the ResourceType output CEL against the applied DP-side objects. Exactly one of value, secretKeyRef, or configMapKeyRef must be set. +kubebuilder:validation:XValidation:rule="(has(self.value)?1:0) + (has(self.secretKeyRef)?1:0) + (has(self.configMapKeyRef)?1:0) == 1",message="exactly one of value, secretKeyRef, or configMapKeyRef must be set"

func (*ResolvedResourceOutput) DeepCopy added in v1.1.0

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

func (*ResolvedResourceOutput) DeepCopyInto added in v1.1.0

func (in *ResolvedResourceOutput) DeepCopyInto(out *ResolvedResourceOutput)

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

type Resource

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

	Spec   ResourceSpec   `json:"spec,omitempty"`
	Status ResourceStatus `json:"status,omitempty"`
}

Resource is the Schema for the resources API. Developers create Resource objects to declare a managed-infrastructure dependency (database, queue, cache, etc.) by referencing a ResourceType or ClusterResourceType.

func (*Resource) DeepCopy

func (in *Resource) DeepCopy() *Resource

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

func (*Resource) DeepCopyInto

func (in *Resource) DeepCopyInto(out *Resource)

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

func (*Resource) DeepCopyObject added in v1.1.0

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

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

func (*Resource) GetConditions added in v1.1.0

func (r *Resource) GetConditions() []metav1.Condition

func (*Resource) SetConditions added in v1.1.0

func (r *Resource) SetConditions(conditions []metav1.Condition)

type ResourceDependencyTarget added in v1.1.0

type ResourceDependencyTarget struct {
	// Namespace is the control plane namespace of the consuming ReleaseBinding.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Namespace string `json:"namespace"`

	// Project is the name of the project that owns the target Resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Project string `json:"project"`

	// ResourceName is the name of the target Resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ResourceName string `json:"resourceName"`

	// Environment is the consumer's environment, used to select the correct
	// ResourceReleaseBinding from the targets in this project.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Environment string `json:"environment"`
}

ResourceDependencyTarget identifies a project-bound Resource the workload depends on. Used as a field-index source for the reverse-watch from ResourceReleaseBinding to ReleaseBinding: when a provider's status.outputs change, every consumer ReleaseBinding whose targets include the matching (project, resourceName, environment) tuple is enqueued.

func (*ResourceDependencyTarget) DeepCopy added in v1.1.0

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

func (*ResourceDependencyTarget) DeepCopyInto added in v1.1.0

func (in *ResourceDependencyTarget) DeepCopyInto(out *ResourceDependencyTarget)

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

type ResourceList added in v1.1.0

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

ResourceList contains a list of Resource.

func (*ResourceList) DeepCopy added in v1.1.0

func (in *ResourceList) DeepCopy() *ResourceList

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

func (*ResourceList) DeepCopyInto added in v1.1.0

func (in *ResourceList) DeepCopyInto(out *ResourceList)

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

func (*ResourceList) DeepCopyObject added in v1.1.0

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

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

type ResourceOwner added in v1.1.0

type ResourceOwner struct {
	// ProjectName is the name of the Project this Resource belongs to.
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`
}

ResourceOwner identifies the project that owns a Resource.

func (*ResourceOwner) DeepCopy added in v1.1.0

func (in *ResourceOwner) DeepCopy() *ResourceOwner

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

func (*ResourceOwner) DeepCopyInto added in v1.1.0

func (in *ResourceOwner) DeepCopyInto(out *ResourceOwner)

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

type ResourceReference added in v0.9.0

type ResourceReference struct {
	// APIVersion is the API version of the resource (e.g., "v1", "apps/v1").
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	APIVersion string `json:"apiVersion"`

	// Kind is the type of the resource (e.g., "Secret", "ConfigMap").
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Kind string `json:"kind"`

	// Name is the name of the resource in the workflow plane cluster.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Namespace is the namespace of the resource in the workflow plane cluster.
	// Empty for cluster-scoped resources.
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

ResourceReference tracks a resource applied to the workflow plane cluster for cleanup purposes.

func (*ResourceReference) DeepCopy added in v0.9.0

func (in *ResourceReference) DeepCopy() *ResourceReference

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

func (*ResourceReference) DeepCopyInto added in v0.9.0

func (in *ResourceReference) DeepCopyInto(out *ResourceReference)

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

type ResourceRelease added in v1.1.0

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

	Spec   ResourceReleaseSpec   `json:"spec,omitempty"`
	Status ResourceReleaseStatus `json:"status,omitempty"`
}

ResourceRelease is the Schema for the resourcereleases API. An immutable snapshot of a Resource and its referenced (Cluster)ResourceType at a point in time. Created by the Resource controller when the hash of Resource.spec + (Cluster)ResourceType.spec changes.

func (*ResourceRelease) DeepCopy added in v1.1.0

func (in *ResourceRelease) DeepCopy() *ResourceRelease

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

func (*ResourceRelease) DeepCopyInto added in v1.1.0

func (in *ResourceRelease) DeepCopyInto(out *ResourceRelease)

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

func (*ResourceRelease) DeepCopyObject added in v1.1.0

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

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

type ResourceReleaseBinding added in v1.1.0

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

	Spec   ResourceReleaseBindingSpec   `json:"spec,omitempty"`
	Status ResourceReleaseBindingStatus `json:"status,omitempty"`
}

ResourceReleaseBinding is the Schema for the resourcereleasebindings API. Pins a ResourceRelease to an Environment and carries per-env config overrides. Authored externally; not managed by the Resource controller.

func (*ResourceReleaseBinding) DeepCopy added in v1.1.0

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

func (*ResourceReleaseBinding) DeepCopyInto added in v1.1.0

func (in *ResourceReleaseBinding) DeepCopyInto(out *ResourceReleaseBinding)

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

func (*ResourceReleaseBinding) DeepCopyObject added in v1.1.0

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

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

func (*ResourceReleaseBinding) GetConditions added in v1.1.0

func (r *ResourceReleaseBinding) GetConditions() []metav1.Condition

GetConditions returns the conditions from the status.

func (*ResourceReleaseBinding) SetConditions added in v1.1.0

func (r *ResourceReleaseBinding) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions in the status.

type ResourceReleaseBindingList added in v1.1.0

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

ResourceReleaseBindingList contains a list of ResourceReleaseBinding.

func (*ResourceReleaseBindingList) DeepCopy added in v1.1.0

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

func (*ResourceReleaseBindingList) DeepCopyInto added in v1.1.0

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

func (*ResourceReleaseBindingList) DeepCopyObject added in v1.1.0

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

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

type ResourceReleaseBindingOwner added in v1.1.0

type ResourceReleaseBindingOwner struct {
	// ProjectName is the name of the project that owns this resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`

	// ResourceName is the name of the Resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ResourceName string `json:"resourceName"`
}

ResourceReleaseBindingOwner identifies the resource this ResourceReleaseBinding belongs to. Mirrors ResourceReleaseOwner for namespace-disambiguation: a namespace can host multiple projects, so a bare resource name is ambiguous.

func (*ResourceReleaseBindingOwner) DeepCopy added in v1.1.0

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

func (*ResourceReleaseBindingOwner) DeepCopyInto added in v1.1.0

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

type ResourceReleaseBindingSpec added in v1.1.0

type ResourceReleaseBindingSpec struct {
	// Owner identifies the resource and project this ResourceReleaseBinding belongs to.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner ResourceReleaseBindingOwner `json:"owner"`

	// Environment is the name of the Environment this binding targets.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.environment is immutable"
	Environment string `json:"environment"`

	// ResourceRelease is the name of the ResourceRelease pinned by this binding.
	// The release pin is advanced manually (e.g. via `occ resource promote` or
	// `kubectl edit`). Unset before the first ResourceRelease is cut; the
	// controller leaves the binding pending until set.
	// +optional
	ResourceRelease string `json:"resourceRelease,omitempty"`

	// RetainPolicy controls whether emitted DP-side resources survive binding
	// deletion. When unset, falls back to the ResourceType's retainPolicy (which
	// itself defaults to Delete). Per-env override.
	// +optional
	RetainPolicy ResourceRetainPolicy `json:"retainPolicy,omitempty"`

	// ResourceTypeEnvironmentConfigs provides per-environment values for the schema
	// declared on the referenced ResourceType (or ClusterResourceType). Validated
	// against ResourceType.spec.environmentConfigs by the binding controller;
	// failures surface via status.conditions.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	ResourceTypeEnvironmentConfigs *runtime.RawExtension `json:"resourceTypeEnvironmentConfigs,omitempty"`
}

ResourceReleaseBindingSpec defines the desired state of ResourceReleaseBinding. Pins a ResourceRelease to an Environment and carries per-env overrides. The Resource controller never creates or modifies ResourceReleaseBindings; they are authored externally (kubectl, GitOps, API server). The resourceRelease pin is advanced manually via `occ resource promote` or kubectl edit.

func (*ResourceReleaseBindingSpec) DeepCopy added in v1.1.0

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

func (*ResourceReleaseBindingSpec) DeepCopyInto added in v1.1.0

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

type ResourceReleaseBindingStatus added in v1.1.0

type ResourceReleaseBindingStatus struct {
	// Conditions represent the latest available observations of the binding's state.
	// Includes Synced, ResourcesReady, OutputsResolved, Ready (aggregate), and
	// Finalizing during deletion. observedGeneration is set per-condition (project
	// convention).
	// +optional
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Outputs holds resolved output values for this binding's environment, populated
	// from the underlying RenderedRelease.status by the binding controller. Each
	// entry corresponds to a declared ResourceType output. Secret/ConfigMap values
	// stay on the data plane; only the {name, key} reference transits to the
	// control plane.
	// +optional
	// +listType=map
	// +listMapKey=name
	Outputs []ResolvedResourceOutput `json:"outputs,omitempty"`
}

ResourceReleaseBindingStatus defines the observed state of ResourceReleaseBinding.

func (*ResourceReleaseBindingStatus) DeepCopy added in v1.1.0

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

func (*ResourceReleaseBindingStatus) DeepCopyInto added in v1.1.0

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

type ResourceReleaseList added in v1.1.0

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

ResourceReleaseList contains a list of ResourceRelease.

func (*ResourceReleaseList) DeepCopy added in v1.1.0

func (in *ResourceReleaseList) DeepCopy() *ResourceReleaseList

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

func (*ResourceReleaseList) DeepCopyInto added in v1.1.0

func (in *ResourceReleaseList) DeepCopyInto(out *ResourceReleaseList)

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

func (*ResourceReleaseList) DeepCopyObject added in v1.1.0

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

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

type ResourceReleaseOwner added in v1.1.0

type ResourceReleaseOwner struct {
	// ProjectName is the name of the project that owns this resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`

	// ResourceName is the name of the Resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ResourceName string `json:"resourceName"`
}

ResourceReleaseOwner identifies the resource this ResourceRelease belongs to.

func (*ResourceReleaseOwner) DeepCopy added in v1.1.0

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

func (*ResourceReleaseOwner) DeepCopyInto added in v1.1.0

func (in *ResourceReleaseOwner) DeepCopyInto(out *ResourceReleaseOwner)

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

type ResourceReleaseResourceType added in v1.1.0

type ResourceReleaseResourceType struct {
	// Kind identifies whether this is a namespace-scoped ResourceType or a
	// cluster-scoped ClusterResourceType.
	// +kubebuilder:validation:Required
	Kind ResourceTypeRefKind `json:"kind"`

	// Name is the name of the ResourceType or ClusterResourceType resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Spec is the frozen specification of the (Cluster)ResourceType at the time of
	// this ResourceRelease. ClusterResourceTypeSpec currently mirrors
	// ResourceTypeSpec so both kinds are stored under the namespaced type. If
	// ClusterResourceTypeSpec gains cluster-only fields, snapshots from a
	// ClusterResourceType source will lose them; revisit this field then. Mirrors
	// the ComponentReleaseComponentType precedent.
	// +kubebuilder:validation:Required
	Spec ResourceTypeSpec `json:"spec"`
}

ResourceReleaseResourceType is the frozen snapshot of a ResourceType or ClusterResourceType resource stored on a ResourceRelease. Preserves Kind and Name of the original resource alongside its full spec so a ResourceType and a ClusterResourceType with the same name can coexist.

func (*ResourceReleaseResourceType) DeepCopy added in v1.1.0

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

func (*ResourceReleaseResourceType) DeepCopyInto added in v1.1.0

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

type ResourceReleaseSpec added in v1.1.0

type ResourceReleaseSpec struct {
	// Owner identifies the resource and project this ResourceRelease belongs to.
	// +kubebuilder:validation:Required
	Owner ResourceReleaseOwner `json:"owner"`

	// ResourceType is a frozen snapshot of the ResourceType or ClusterResourceType
	// resource at the time of the release. Records the kind and name of the
	// original resource alongside its full spec so consumers can distinguish
	// namespace-scoped ResourceTypes from cluster-scoped ClusterResourceTypes.
	// +kubebuilder:validation:Required
	ResourceType ResourceReleaseResourceType `json:"resourceType"`

	// Parameters holds the snapshot of parameter values from the Resource spec at
	// release time. The schema for these values is defined by the ResourceType's
	// parameters schema.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`
}

ResourceReleaseSpec defines the desired state of ResourceRelease. A ResourceRelease is an immutable snapshot of Resource.spec and the referenced ResourceType (or ClusterResourceType) spec at the time it was cut. Created exclusively by the Resource controller; deleted by the Resource finalizer when the parent Resource is torn down. +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ResourceRelease spec is immutable"

func (*ResourceReleaseSpec) DeepCopy added in v1.1.0

func (in *ResourceReleaseSpec) DeepCopy() *ResourceReleaseSpec

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

func (*ResourceReleaseSpec) DeepCopyInto added in v1.1.0

func (in *ResourceReleaseSpec) DeepCopyInto(out *ResourceReleaseSpec)

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

type ResourceReleaseStatus added in v1.1.0

type ResourceReleaseStatus struct {
}

ResourceReleaseStatus defines the observed state of ResourceRelease.

func (*ResourceReleaseStatus) DeepCopy added in v1.1.0

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

func (*ResourceReleaseStatus) DeepCopyInto added in v1.1.0

func (in *ResourceReleaseStatus) DeepCopyInto(out *ResourceReleaseStatus)

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

type ResourceRetainPolicy added in v1.1.0

type ResourceRetainPolicy string

ResourceRetainPolicy controls what happens to provisioned data on the data plane when its owning Resource or ResourceBinding is deleted. +kubebuilder:validation:Enum=Delete;Retain

const (
	// ResourceRetainPolicyDelete cascades deletion of the underlying provisioned data.
	ResourceRetainPolicyDelete ResourceRetainPolicy = "Delete"
	// ResourceRetainPolicyRetain keeps the underlying provisioned data after deletion.
	ResourceRetainPolicyRetain ResourceRetainPolicy = "Retain"
)

type ResourceSpec added in v1.1.0

type ResourceSpec struct {
	// Owner identifies the Project this Resource belongs to.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner ResourceOwner `json:"owner"`

	// Type references the ResourceType or ClusterResourceType template for this Resource.
	// Kind defaults to ResourceType (namespaced); ClusterResourceType is also allowed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.type cannot be changed after creation"
	Type ResourceTypeRef `json:"type"`

	// Parameters contains values for the parameter schema declared on the referenced
	// ResourceType (or ClusterResourceType). Validated against the schema by the
	// Resource controller; failures surface via status.conditions.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`
}

ResourceSpec defines the desired state of Resource.

func (*ResourceSpec) DeepCopy added in v1.1.0

func (in *ResourceSpec) DeepCopy() *ResourceSpec

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

func (*ResourceSpec) DeepCopyInto added in v1.1.0

func (in *ResourceSpec) DeepCopyInto(out *ResourceSpec)

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

type ResourceStatus

type ResourceStatus struct {
	// ObservedGeneration is the most recent generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the Resource's state.
	// +optional
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// LatestRelease is the most recent ResourceRelease for this Resource.
	// +optional
	LatestRelease *LatestResourceRelease `json:"latestRelease,omitempty"`
}

ResourceStatus defines the observed state of Resource.

func (*ResourceStatus) DeepCopy

func (in *ResourceStatus) DeepCopy() *ResourceStatus

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

func (*ResourceStatus) DeepCopyInto

func (in *ResourceStatus) DeepCopyInto(out *ResourceStatus)

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

type ResourceTemplate added in v0.4.0

type ResourceTemplate struct {
	// ID uniquely identifies this resource within the component type
	// For the primary workload resource, this must match the workloadType
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ID string `json:"id"`

	// TargetPlane specifies which plane this resource should be deployed to
	// Defaults to "dataplane" if not specified
	// +optional
	// +kubebuilder:validation:Enum=dataplane;observabilityplane
	// +kubebuilder:default=dataplane
	TargetPlane string `json:"targetPlane,omitempty"`

	// IncludeWhen is a CEL expression that determines if this resource should be created
	// If not specified, the resource is always created
	// Example: "${spec.autoscaling.enabled}"
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	IncludeWhen string `json:"includeWhen,omitempty"`

	// ForEach enables generating multiple resources from a list using CEL expression
	// Example: "${spec.configurations}" to iterate over a list
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	ForEach string `json:"forEach,omitempty"`

	// Var is the loop variable name when using forEach
	// Example: "config" will make each item available as ${config} in templates
	// +optional
	// +kubebuilder:validation:Pattern=`^[a-zA-Z_][a-zA-Z0-9_]*$`
	Var string `json:"var,omitempty"`

	// Template contains the Kubernetes resource with CEL expressions
	// CEL expressions are enclosed in ${...} and will be evaluated at runtime
	// +kubebuilder:validation:Required
	// +kubebuilder:pruning:PreserveUnknownFields
	Template *runtime.RawExtension `json:"template"`
}

ResourceTemplate defines a template for generating Kubernetes resources +kubebuilder:validation:XValidation:rule="!has(self.forEach) || has(self.var)",message="var is required when forEach is specified"

func (*ResourceTemplate) DeepCopy added in v0.4.0

func (in *ResourceTemplate) DeepCopy() *ResourceTemplate

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

func (*ResourceTemplate) DeepCopyInto added in v0.4.0

func (in *ResourceTemplate) DeepCopyInto(out *ResourceTemplate)

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

type ResourceType added in v1.1.0

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

	Spec   ResourceTypeSpec   `json:"spec,omitempty"`
	Status ResourceTypeStatus `json:"status,omitempty"`
}

ResourceType is the Schema for the resourcetypes API. PEs publish ResourceType templates in a namespace; developers reference them by name from Resource.spec.type.

func (*ResourceType) DeepCopy added in v1.1.0

func (in *ResourceType) DeepCopy() *ResourceType

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

func (*ResourceType) DeepCopyInto added in v1.1.0

func (in *ResourceType) DeepCopyInto(out *ResourceType)

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

func (*ResourceType) DeepCopyObject added in v1.1.0

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

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

type ResourceTypeList added in v1.1.0

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

ResourceTypeList contains a list of ResourceType.

func (*ResourceTypeList) DeepCopy added in v1.1.0

func (in *ResourceTypeList) DeepCopy() *ResourceTypeList

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

func (*ResourceTypeList) DeepCopyInto added in v1.1.0

func (in *ResourceTypeList) DeepCopyInto(out *ResourceTypeList)

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

func (*ResourceTypeList) DeepCopyObject added in v1.1.0

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

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

type ResourceTypeManifest added in v1.1.0

type ResourceTypeManifest struct {
	// ID uniquely identifies this entry within the ResourceType.
	// Referenced by readyWhen and outputs CEL via applied.<id>.status.*.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ID string `json:"id"`

	// IncludeWhen is an optional CEL expression that determines whether this
	// entry is rendered. Evaluated against metadata.*, parameters.*,
	// environmentConfigs.*, and dataplane.*; applied.<id>.* is NOT available
	// because the rendered objects haven't been applied yet. Must be
	// ${...}-wrapped and must evaluate to a boolean. If unset, the entry is
	// always rendered.
	// Example: "${parameters.tlsEnabled}".
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	IncludeWhen string `json:"includeWhen,omitempty"`

	// Template contains the Kubernetes resource with ${...} CEL expressions.
	// At render time the CEL context exposes metadata.*, parameters.*,
	// environmentConfigs.*, and dataplane.*. applied.<id>.status.* is NOT
	// available during rendering because the rendered objects haven't been
	// applied yet.
	// +kubebuilder:validation:Required
	// +kubebuilder:pruning:PreserveUnknownFields
	Template *runtime.RawExtension `json:"template"`

	// ReadyWhen is an optional ${...}-wrapped CEL expression that determines
	// whether this entry contributes to
	// ResourceBinding.status.conditions[ResourcesReady]. Evaluated against
	// metadata.*, parameters.*, environmentConfigs.*, dataplane.*, and
	// applied.<id>.* once the manifest has been applied. If unset, falls back
	// to RenderedRelease per-Kind health inference. Must evaluate to a boolean.
	// Example: "${applied.claim.status.conditions.exists(c, c.type == 'Ready' && c.status == 'True')}".
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	ReadyWhen string `json:"readyWhen,omitempty"`
}

ResourceTypeManifest defines a Kubernetes resource template that the ResourceType provisioner emits on the data plane.

func (*ResourceTypeManifest) DeepCopy added in v1.1.0

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

func (*ResourceTypeManifest) DeepCopyInto added in v1.1.0

func (in *ResourceTypeManifest) DeepCopyInto(out *ResourceTypeManifest)

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

type ResourceTypeOutput added in v1.1.0

type ResourceTypeOutput struct {
	// Name uniquely identifies this output within the ResourceType. Referenced by
	// Workload.spec.dependencies.resources[].envBindings and fileBindings keys.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Value is a literal or ${...} CEL expression evaluating to a string.
	// Use only for non-sensitive data (host, port, region, database name); the
	// resolved value transits to the control plane.
	// +optional
	Value string `json:"value,omitempty"`

	// SecretKeyRef references a Secret on the data plane.
	// Use for sensitive credentials (passwords, tokens, private keys).
	// Only the {name, key} reference transits to the control plane; the
	// underlying value never leaves the data plane.
	// Both name and key support ${...} CEL templating.
	// +optional
	SecretKeyRef *SecretKeyRef `json:"secretKeyRef,omitempty"`

	// ConfigMapKeyRef references a ConfigMap on the data plane.
	// Both name and key support ${...} CEL templating.
	// +optional
	ConfigMapKeyRef *ConfigMapKeyRef `json:"configMapKeyRef,omitempty"`
}

ResourceTypeOutput defines a single output of a ResourceType. Exactly one of value, secretKeyRef, or configMapKeyRef must be set. +kubebuilder:validation:XValidation:rule="(has(self.value)?1:0) + (has(self.secretKeyRef)?1:0) + (has(self.configMapKeyRef)?1:0) == 1",message="exactly one of value, secretKeyRef, or configMapKeyRef must be set"

func (*ResourceTypeOutput) DeepCopy added in v1.1.0

func (in *ResourceTypeOutput) DeepCopy() *ResourceTypeOutput

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

func (*ResourceTypeOutput) DeepCopyInto added in v1.1.0

func (in *ResourceTypeOutput) DeepCopyInto(out *ResourceTypeOutput)

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

type ResourceTypeRef added in v1.1.0

type ResourceTypeRef struct {
	// Kind is the kind of resource type (ResourceType or ClusterResourceType).
	// +optional
	// +kubebuilder:default=ResourceType
	Kind ResourceTypeRefKind `json:"kind,omitempty"`

	// Name is the name of the ResourceType or ClusterResourceType to reference.
	// Must be a valid DNS-1123 label since it identifies a Kubernetes object.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`
	Name string `json:"name"`
}

ResourceTypeRef represents a reference to a ResourceType or ClusterResourceType.

func (*ResourceTypeRef) DeepCopy added in v1.1.0

func (in *ResourceTypeRef) DeepCopy() *ResourceTypeRef

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

func (*ResourceTypeRef) DeepCopyInto added in v1.1.0

func (in *ResourceTypeRef) DeepCopyInto(out *ResourceTypeRef)

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

type ResourceTypeRefKind added in v1.1.0

type ResourceTypeRefKind string

ResourceTypeRefKind defines the kind of resource type referenced by a ResourceTypeRef. +kubebuilder:validation:Enum=ResourceType;ClusterResourceType

const (
	// ResourceTypeRefKindResourceType references a namespace-scoped ResourceType.
	ResourceTypeRefKindResourceType ResourceTypeRefKind = "ResourceType"

	// ResourceTypeRefKindClusterResourceType references a cluster-scoped ClusterResourceType.
	ResourceTypeRefKindClusterResourceType ResourceTypeRefKind = "ClusterResourceType"
)

type ResourceTypeSpec added in v1.1.0

type ResourceTypeSpec struct {
	// Parameters is the schema for Resource.spec.parameters values supplied by
	// Resource authors. Validated against this schema.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// EnvironmentConfigs defines the per-env schema.
	// Validates ResourceBinding.spec.resourceTypeEnvironmentConfigs.
	// +optional
	EnvironmentConfigs *SchemaSection `json:"environmentConfigs,omitempty"`

	// RetainPolicy is the default retention for ResourceBindings of this type.
	// Per-env override is available via ResourceBinding.spec.retainPolicy.
	// +optional
	// +kubebuilder:default=Delete
	RetainPolicy ResourceRetainPolicy `json:"retainPolicy,omitempty"`

	// Outputs declares values that workloads consume via
	// Workload.spec.dependencies.resources[].envBindings or fileBindings.
	// Each entry is identified by a unique name and picks exactly one of value,
	// secretKeyRef, or configMapKeyRef. Output value, name, and key fields support
	// ${...} CEL templating evaluated against metadata.*, parameters.*,
	// environmentConfigs.*, and applied.<id>.status.*.
	// +optional
	// +listType=map
	// +listMapKey=name
	Outputs []ResourceTypeOutput `json:"outputs,omitempty"`

	// Resources are the Kubernetes manifests the ResourceType provisioner emits
	// on the data plane. Each entry has a unique id used by readyWhen and outputs
	// CEL to reference applied.<id>.status.* fields.
	// +kubebuilder:validation:MinItems=1
	// +listType=map
	// +listMapKey=id
	Resources []ResourceTypeManifest `json:"resources"`
}

ResourceTypeSpec defines the desired state of ResourceType.

func (*ResourceTypeSpec) DeepCopy added in v1.1.0

func (in *ResourceTypeSpec) DeepCopy() *ResourceTypeSpec

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

func (*ResourceTypeSpec) DeepCopyInto added in v1.1.0

func (in *ResourceTypeSpec) DeepCopyInto(out *ResourceTypeSpec)

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

type ResourceTypeStatus added in v1.1.0

type ResourceTypeStatus struct {
}

ResourceTypeStatus defines the observed state of ResourceType.

func (*ResourceTypeStatus) DeepCopy added in v1.1.0

func (in *ResourceTypeStatus) DeepCopy() *ResourceTypeStatus

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

func (*ResourceTypeStatus) DeepCopyInto added in v1.1.0

func (in *ResourceTypeStatus) DeepCopyInto(out *ResourceTypeStatus)

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

type RoleMapping added in v1.0.0

type RoleMapping struct {
	// RoleRef references the role to bind
	RoleRef RoleRef `json:"roleRef"`

	// Scope defines the target scope within the ownership hierarchy
	// +optional
	Scope TargetScope `json:"scope,omitempty"`

	// Conditions define attribute-based restrictions on specific actions granted by the role.
	// Multiple entries whose actions match the request are combined with OR semantics —
	// at least one matching entry must pass for the action to be permitted.
	// If omitted, no attribute restrictions apply — the RBAC grant stands as-is.
	// +optional
	Conditions []AuthzCondition `json:"conditions,omitempty"`
}

RoleMapping pairs a role reference with an optional scope +kubebuilder:validation:XValidation:rule="!has(self.scope) || !has(self.scope.component) || has(self.scope.project)",message="scope.component requires scope.project" +kubebuilder:validation:XValidation:rule="!has(self.scope) || !has(self.scope.resource) || has(self.scope.project)",message="scope.resource requires scope.project" +kubebuilder:validation:XValidation:rule="!has(self.scope) || !has(self.scope.component) || !has(self.scope.resource)",message="scope.component and scope.resource are mutually exclusive"

func (*RoleMapping) DeepCopy added in v1.0.0

func (in *RoleMapping) DeepCopy() *RoleMapping

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

func (*RoleMapping) DeepCopyInto added in v1.0.0

func (in *RoleMapping) DeepCopyInto(out *RoleMapping)

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

type RoleRef added in v0.14.0

type RoleRef struct {
	// Kind is the kind of role (AuthzRole or ClusterAuthzRole)
	// For AuthzRoleBinding: AuthzRole must be in the same namespace
	// +required
	Kind RoleRefKind `json:"kind"`

	// Name is the name of the role
	// +required
	Name string `json:"name"`
}

RoleRef represents a reference to an AuthzRole or ClusterAuthzRole Used by AuthzRoleBinding and ClusterAuthzRoleBinding

func (*RoleRef) DeepCopy added in v0.14.0

func (in *RoleRef) DeepCopy() *RoleRef

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

func (*RoleRef) DeepCopyInto added in v0.14.0

func (in *RoleRef) DeepCopyInto(out *RoleRef)

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

type RoleRefKind added in v0.14.0

type RoleRefKind string

RoleRefKind defines the kind of role referenced by a RoleRef +kubebuilder:validation:Enum=AuthzRole;ClusterAuthzRole

const (
	// RoleRefKindAuthzRole references a namespaced AuthzRole
	RoleRefKindAuthzRole RoleRefKind = "AuthzRole"

	// RoleRefKindClusterAuthzRole references a cluster-scoped ClusterAuthzRole
	RoleRefKindClusterAuthzRole RoleRefKind = "ClusterAuthzRole"
)

type SMTPAuth added in v0.9.0

type SMTPAuth struct {
	// Username for SMTP authentication
	// Provided via secret reference (TODO: Support inline username)
	// +kubebuilder:validation:Required
	Username *SecretValueFrom `json:"username"`

	// Password for SMTP authentication
	// Provided via secret reference (TODO: Support inline password)
	// +kubebuilder:validation:Required
	Password *SecretValueFrom `json:"password"`
}

SMTPAuth defines SMTP authentication configuration

func (*SMTPAuth) DeepCopy added in v0.9.0

func (in *SMTPAuth) DeepCopy() *SMTPAuth

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

func (*SMTPAuth) DeepCopyInto added in v0.9.0

func (in *SMTPAuth) DeepCopyInto(out *SMTPAuth)

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

type SMTPConfig added in v0.9.0

type SMTPConfig struct {
	// Host is the SMTP server hostname
	// Required when type is "email"
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// Port is the SMTP server port
	// Required when type is "email"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`

	// Auth defines SMTP authentication credentials
	// +kubebuilder:validation:Required
	Auth *SMTPAuth `json:"auth"`

	// TLS configuration
	// +kubebuilder:validation:Required
	TLS *SMTPTLSConfig `json:"tls"`
}

SMTPConfig defines SMTP server configuration

func (*SMTPConfig) DeepCopy added in v0.9.0

func (in *SMTPConfig) DeepCopy() *SMTPConfig

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

func (*SMTPConfig) DeepCopyInto added in v0.9.0

func (in *SMTPConfig) DeepCopyInto(out *SMTPConfig)

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

type SMTPTLSConfig added in v0.9.0

type SMTPTLSConfig struct {
	// InsecureSkipVerify skips TLS certificate verification (not recommended for production)
	// +kubebuilder:default=false
	InsecureSkipVerify bool `json:"insecureSkipVerify"`
}

SMTPTLSConfig defines TLS configuration for SMTP

func (*SMTPTLSConfig) DeepCopy added in v0.9.0

func (in *SMTPTLSConfig) DeepCopy() *SMTPTLSConfig

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

func (*SMTPTLSConfig) DeepCopyInto added in v0.9.0

func (in *SMTPTLSConfig) DeepCopyInto(out *SMTPTLSConfig)

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

type Schema

type Schema struct {
	Type    string `json:"type,omitempty"`
	Content string `json:"content,omitempty"`
}

Schema defines the API definition for an endpoint.

func (*Schema) DeepCopy

func (in *Schema) DeepCopy() *Schema

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

func (*Schema) DeepCopyInto

func (in *Schema) DeepCopyInto(out *Schema)

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

type SchemaSection added in v1.0.0

type SchemaSection struct {
	// OpenAPIV3Schema defines the schema using standard OpenAPI V3 / JSON Schema format.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	OpenAPIV3Schema *runtime.RawExtension `json:"openAPIV3Schema,omitempty"`
}

SchemaSection holds a schema in openAPIV3Schema format.

func (*SchemaSection) DeepCopy added in v1.0.0

func (in *SchemaSection) DeepCopy() *SchemaSection

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

func (*SchemaSection) DeepCopyInto added in v1.0.0

func (in *SchemaSection) DeepCopyInto(out *SchemaSection)

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

func (*SchemaSection) GetRaw added in v1.0.0

func (s *SchemaSection) GetRaw() *runtime.RawExtension

GetRaw returns the raw extension for the schema.

func (*SchemaSection) IsOpenAPIV3 added in v1.0.0

func (s *SchemaSection) IsOpenAPIV3() bool

IsOpenAPIV3 returns true if OpenAPIV3Schema is set.

type SecretDataSource added in v0.4.0

type SecretDataSource struct {
	// SecretKey is the key name in the Kubernetes Secret
	// +kubebuilder:validation:MinLength=1
	SecretKey string `json:"secretKey"`

	// RemoteRef points to the external secret location
	RemoteRef RemoteReference `json:"remoteRef"`
}

SecretDataSource maps a secret key to an external secret reference.

func (*SecretDataSource) DeepCopy added in v0.4.0

func (in *SecretDataSource) DeepCopy() *SecretDataSource

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

func (*SecretDataSource) DeepCopyInto added in v0.4.0

func (in *SecretDataSource) DeepCopyInto(out *SecretDataSource)

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

type SecretKeyRef

type SecretKeyRef struct {
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// +required
	// +kubebuilder:validation:MinLength=1
	Key string `json:"key"`
}

SecretKeyRef references a specific key in a Kubernetes Secret.

func (*SecretKeyRef) DeepCopy

func (in *SecretKeyRef) DeepCopy() *SecretKeyRef

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

func (*SecretKeyRef) DeepCopyInto

func (in *SecretKeyRef) DeepCopyInto(out *SecretKeyRef)

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

type SecretKeyReference added in v0.6.0

type SecretKeyReference struct {
	// Name of the secret
	Name string `json:"name"`
	// Namespace of the secret (optional, defaults to same namespace as parent resource)
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// Key is the key within the secret
	Key string `json:"key"`
}

SecretKeyReference defines a reference to a specific key in a Kubernetes secret

func (*SecretKeyReference) DeepCopy added in v0.6.0

func (in *SecretKeyReference) DeepCopy() *SecretKeyReference

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

func (*SecretKeyReference) DeepCopyInto added in v0.6.0

func (in *SecretKeyReference) DeepCopyInto(out *SecretKeyReference)

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

type SecretMetadata added in v0.4.0

type SecretMetadata struct {
	// Annotations to add to the secret
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to add to the secret
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

SecretMetadata defines additional metadata for the generated secret.

func (*SecretMetadata) DeepCopy added in v0.4.0

func (in *SecretMetadata) DeepCopy() *SecretMetadata

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

func (*SecretMetadata) DeepCopyInto added in v0.4.0

func (in *SecretMetadata) DeepCopyInto(out *SecretMetadata)

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

type SecretReference added in v0.4.0

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

	Spec   SecretReferenceSpec   `json:"spec,omitempty"`
	Status SecretReferenceStatus `json:"status,omitempty"`
}

SecretReference is the Schema for the secretreferences API.

func (*SecretReference) DeepCopy added in v0.4.0

func (in *SecretReference) DeepCopy() *SecretReference

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

func (*SecretReference) DeepCopyInto added in v0.4.0

func (in *SecretReference) DeepCopyInto(out *SecretReference)

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

func (*SecretReference) DeepCopyObject added in v0.4.0

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

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

type SecretReferenceList added in v0.4.0

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

SecretReferenceList contains a list of SecretReference.

func (*SecretReferenceList) DeepCopy added in v0.4.0

func (in *SecretReferenceList) DeepCopy() *SecretReferenceList

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

func (*SecretReferenceList) DeepCopyInto added in v0.4.0

func (in *SecretReferenceList) DeepCopyInto(out *SecretReferenceList)

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

func (*SecretReferenceList) DeepCopyObject added in v0.4.0

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

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

type SecretReferenceSpec added in v0.4.0

type SecretReferenceSpec struct {

	// TargetPlane identifies the plane to whose external secret store the
	// secret value was pushed for this SecretReference. When unset, the
	// secret value may live in any external secret store reachable through
	// the references in spec.data.
	// +optional
	TargetPlane *TargetPlaneRef `json:"targetPlane,omitempty"`

	// Template defines the structure of the resulting Kubernetes Secret
	Template SecretTemplate `json:"template"`

	// Data contains the mapping of secret keys to external secret references
	// +kubebuilder:validation:MinItems=1
	Data []SecretDataSource `json:"data"`

	// RefreshInterval specifies how often to reconcile/refresh the secret
	// +optional
	// +kubebuilder:default="1h"
	RefreshInterval *metav1.Duration `json:"refreshInterval,omitempty"`
}

SecretReferenceSpec defines the desired state of SecretReference.

func (*SecretReferenceSpec) DeepCopy added in v0.4.0

func (in *SecretReferenceSpec) DeepCopy() *SecretReferenceSpec

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

func (*SecretReferenceSpec) DeepCopyInto added in v0.4.0

func (in *SecretReferenceSpec) DeepCopyInto(out *SecretReferenceSpec)

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

type SecretReferenceStatus added in v0.4.0

type SecretReferenceStatus struct {

	// Conditions represent the latest available observations
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// LastRefreshTime indicates when the secret reference was last processed
	// +optional
	LastRefreshTime *metav1.Time `json:"lastRefreshTime,omitempty"`

	// SecretStores tracks which secret stores are using this reference
	// +optional
	SecretStores []SecretStoreReference `json:"secretStores,omitempty"`
}

SecretReferenceStatus defines the observed state of SecretReference.

func (*SecretReferenceStatus) DeepCopy added in v0.4.0

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

func (*SecretReferenceStatus) DeepCopyInto added in v0.4.0

func (in *SecretReferenceStatus) DeepCopyInto(out *SecretReferenceStatus)

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

type SecretStoreRef added in v0.4.0

type SecretStoreRef struct {
	// Name of the ClusterSecretStore resource in the data plane cluster
	Name string `json:"name"`
}

SecretStoreRef defines a reference to an External Secrets Operator ClusterSecretStore

func (*SecretStoreRef) DeepCopy added in v0.4.0

func (in *SecretStoreRef) DeepCopy() *SecretStoreRef

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

func (*SecretStoreRef) DeepCopyInto added in v0.4.0

func (in *SecretStoreRef) DeepCopyInto(out *SecretStoreRef)

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

type SecretStoreReference added in v0.4.0

type SecretStoreReference struct {
	// Name of the secret store
	Name string `json:"name"`

	// Namespace where the ExternalSecret was created
	Namespace string `json:"namespace"`

	// Kind of resource (ExternalSecret, ClusterExternalSecret)
	Kind string `json:"kind"`
}

SecretStoreReference tracks where this SecretReference is being used.

func (*SecretStoreReference) DeepCopy added in v0.4.0

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

func (*SecretStoreReference) DeepCopyInto added in v0.4.0

func (in *SecretStoreReference) DeepCopyInto(out *SecretStoreReference)

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

type SecretTemplate added in v0.4.0

type SecretTemplate struct {
	// Type of the Kubernetes Secret (Opaque, kubernetes.io/dockerconfigjson, etc.)
	// +kubebuilder:validation:Enum=Opaque;kubernetes.io/dockerconfigjson;kubernetes.io/dockercfg;kubernetes.io/basic-auth;kubernetes.io/ssh-auth;kubernetes.io/tls;bootstrap.kubernetes.io/token
	// +kubebuilder:default="Opaque"
	// +optional
	Type corev1.SecretType `json:"type,omitempty"`

	// Metadata to add to the generated secret
	// +optional
	Metadata *SecretMetadata `json:"metadata,omitempty"`
}

SecretTemplate defines the structure of the resulting Kubernetes Secret.

func (*SecretTemplate) DeepCopy added in v0.4.0

func (in *SecretTemplate) DeepCopy() *SecretTemplate

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

func (*SecretTemplate) DeepCopyInto added in v0.4.0

func (in *SecretTemplate) DeepCopyInto(out *SecretTemplate)

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

type SecretValueFrom added in v0.9.0

type SecretValueFrom struct {
	// SecretKeyRef references a specific key in a Kubernetes secret
	// +optional
	SecretKeyRef *SecretKeyRef `json:"secretKeyRef,omitempty"`
}

SecretValueFrom defines how to obtain a secret value

func (*SecretValueFrom) DeepCopy added in v0.9.0

func (in *SecretValueFrom) DeepCopy() *SecretValueFrom

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

func (*SecretValueFrom) DeepCopyInto added in v0.9.0

func (in *SecretValueFrom) DeepCopyInto(out *SecretValueFrom)

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

type TargetEnvironmentRef

type TargetEnvironmentRef struct {
	// Kind is the kind of environment (Environment)
	// +optional
	// +kubebuilder:default=Environment
	Kind EnvironmentRefKind `json:"kind,omitempty"`
	// Name is the name of the target environment resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

TargetEnvironmentRef defines a reference to a target environment

func (*TargetEnvironmentRef) DeepCopy

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

func (*TargetEnvironmentRef) DeepCopyInto

func (in *TargetEnvironmentRef) DeepCopyInto(out *TargetEnvironmentRef)

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

type TargetPlaneRef added in v1.1.0

type TargetPlaneRef struct {
	// Kind of the target plane resource.
	// +kubebuilder:validation:Enum=WorkflowPlane;ClusterWorkflowPlane;DataPlane;ClusterDataPlane
	Kind string `json:"kind"`

	// Name of the target plane resource.
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

TargetPlaneRef identifies the plane whose external secret store holds the secret value referenced by this SecretReference.

func (*TargetPlaneRef) DeepCopy added in v1.1.0

func (in *TargetPlaneRef) DeepCopy() *TargetPlaneRef

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

func (*TargetPlaneRef) DeepCopyInto added in v1.1.0

func (in *TargetPlaneRef) DeepCopyInto(out *TargetPlaneRef)

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

type TargetScope added in v1.0.0

type TargetScope struct {
	// Project scopes to a specific project (optional)
	// +optional
	Project string `json:"project,omitempty"`

	// Component scopes to a specific component (optional)
	// +optional
	Component string `json:"component,omitempty"`

	// Resource scopes to a specific resource (optional)
	// +optional
	Resource string `json:"resource,omitempty"`
}

TargetScope defines which resources this binding applies to within the ownership hierarchy All fields are optional - omitted fields mean "all" at that level. Component and Resource are sibling sub-scopes under Project; a binding must not set both.

func (*TargetScope) DeepCopy added in v1.0.0

func (in *TargetScope) DeepCopy() *TargetScope

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

func (*TargetScope) DeepCopyInto added in v1.0.0

func (in *TargetScope) DeepCopyInto(out *TargetScope)

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

type Trait added in v0.4.0

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

	Spec   TraitSpec   `json:"spec,omitempty"`
	Status TraitStatus `json:"status,omitempty"`
}

Trait is the Schema for the traits API.

func (*Trait) DeepCopy added in v0.4.0

func (in *Trait) DeepCopy() *Trait

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

func (*Trait) DeepCopyInto added in v0.4.0

func (in *Trait) DeepCopyInto(out *Trait)

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

func (*Trait) DeepCopyObject added in v0.4.0

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

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

type TraitCreate added in v0.4.0

type TraitCreate struct {
	// TargetPlane specifies which plane this resource should be deployed to
	// Defaults to "dataplane" if not specified
	// +optional
	// +kubebuilder:validation:Enum=dataplane;observabilityplane
	// +kubebuilder:default=dataplane
	TargetPlane string `json:"targetPlane,omitempty"`

	// IncludeWhen is a CEL expression that determines if this resource should be created
	// If not specified, the resource is always created
	// Example: "${parameters.enableMetrics}"
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	IncludeWhen string `json:"includeWhen,omitempty"`

	// ForEach enables generating multiple resources from a list using CEL expression
	// Example: "${parameters.volumes}" to iterate over a list
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	ForEach string `json:"forEach,omitempty"`

	// Var is the loop variable name when using forEach
	// Example: "volume" will make each item available as ${volume} in templates
	// +optional
	// +kubebuilder:validation:Pattern=`^[a-zA-Z_][a-zA-Z0-9_]*$`
	Var string `json:"var,omitempty"`

	// Template contains the Kubernetes resource with CEL expressions
	// CEL expressions are enclosed in ${...} and will be evaluated at runtime
	// +kubebuilder:validation:Required
	// +kubebuilder:pruning:PreserveUnknownFields
	Template *runtime.RawExtension `json:"template"`
}

TraitCreate defines a resource template to be created by the trait +kubebuilder:validation:XValidation:rule="!has(self.forEach) || has(self.var)",message="var is required when forEach is specified"

func (*TraitCreate) DeepCopy added in v0.4.0

func (in *TraitCreate) DeepCopy() *TraitCreate

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

func (*TraitCreate) DeepCopyInto added in v0.4.0

func (in *TraitCreate) DeepCopyInto(out *TraitCreate)

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

type TraitList added in v0.4.0

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

TraitList contains a list of Trait.

func (*TraitList) DeepCopy added in v0.4.0

func (in *TraitList) DeepCopy() *TraitList

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

func (*TraitList) DeepCopyInto added in v0.4.0

func (in *TraitList) DeepCopyInto(out *TraitList)

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

func (*TraitList) DeepCopyObject added in v0.4.0

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

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

type TraitPatch added in v0.4.0

type TraitPatch struct {
	// ForEach repeats this patch for every item in a CEL-evaluated list
	// Requires 'var' to be set to name the binding used in operations
	// Example: forEach: ${spec.mounts}
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	ForEach string `json:"forEach,omitempty"`

	// Var names the binding for forEach iterations
	// Required when forEach is specified
	// Example: var: mount
	// +optional
	// +kubebuilder:validation:Pattern=`^[a-zA-Z_][a-zA-Z0-9_]*$`
	Var string `json:"var,omitempty"`

	// Target specifies which resource to patch
	// +kubebuilder:validation:Required
	Target PatchTarget `json:"target"`

	// TargetPlane specifies which plane's resources this patch targets
	// Defaults to "dataplane" if not specified
	// +optional
	// +kubebuilder:validation:Enum=dataplane;observabilityplane
	// +kubebuilder:default=dataplane
	TargetPlane string `json:"targetPlane,omitempty"`

	// Operations is the list of JSONPatch operations to apply to the target resource
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Operations []JSONPatchOperation `json:"operations"`
}

TraitPatch defines a modification to an existing resource +kubebuilder:validation:XValidation:rule="!has(self.forEach) || has(self.var)",message="var is required when forEach is specified"

func (*TraitPatch) DeepCopy added in v0.4.0

func (in *TraitPatch) DeepCopy() *TraitPatch

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

func (*TraitPatch) DeepCopyInto added in v0.4.0

func (in *TraitPatch) DeepCopyInto(out *TraitPatch)

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

type TraitRef added in v0.16.0

type TraitRef struct {
	// Kind is the kind of trait (Trait or ClusterTrait)
	// +optional
	// +kubebuilder:default=Trait
	Kind TraitRefKind `json:"kind,omitempty"`

	// Name is the name of the trait resource
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

TraitRef represents a reference to a Trait or ClusterTrait

func (*TraitRef) DeepCopy added in v0.16.0

func (in *TraitRef) DeepCopy() *TraitRef

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

func (*TraitRef) DeepCopyInto added in v0.16.0

func (in *TraitRef) DeepCopyInto(out *TraitRef)

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

type TraitRefKind added in v0.16.0

type TraitRefKind string

TraitRefKind defines the kind of trait referenced by a TraitRef +kubebuilder:validation:Enum=Trait;ClusterTrait

const (
	// TraitRefKindTrait references a namespace-scoped Trait
	TraitRefKindTrait TraitRefKind = "Trait"

	// TraitRefKindClusterTrait references a cluster-scoped ClusterTrait
	TraitRefKindClusterTrait TraitRefKind = "ClusterTrait"
)

type TraitSpec added in v0.4.0

type TraitSpec struct {
	// Parameters defines developer-facing configuration options for this trait.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// EnvironmentConfigs defines per-environment configurations for this trait via ReleaseBinding.
	// +optional
	EnvironmentConfigs *SchemaSection `json:"environmentConfigs,omitempty"`

	// Validations are CEL-based rules evaluated during rendering.
	// All rules must evaluate to true for rendering to proceed.
	// +optional
	Validations []ValidationRule `json:"validations,omitempty"`

	// Creates defines new Kubernetes resources to create when this trait is applied
	// +optional
	Creates []TraitCreate `json:"creates,omitempty"`

	// Patches defines modifications to existing resources generated by the ComponentType
	// +optional
	Patches []TraitPatch `json:"patches,omitempty"`
}

TraitSpec defines the desired state of Trait.

func (*TraitSpec) DeepCopy added in v0.4.0

func (in *TraitSpec) DeepCopy() *TraitSpec

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

func (*TraitSpec) DeepCopyInto added in v0.4.0

func (in *TraitSpec) DeepCopyInto(out *TraitSpec)

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

type TraitStatus added in v0.4.0

type TraitStatus struct {
}

TraitStatus defines the observed state of Trait.

func (*TraitStatus) DeepCopy added in v0.4.0

func (in *TraitStatus) DeepCopy() *TraitStatus

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

func (*TraitStatus) DeepCopyInto added in v0.4.0

func (in *TraitStatus) DeepCopyInto(out *TraitStatus)

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

type ValidationRule added in v0.15.0

type ValidationRule struct {
	// Rule is a CEL expression wrapped in ${...} that must evaluate to true.
	// Uses the same syntax as includeWhen and where fields.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	Rule string `json:"rule"`

	// Message is the error message shown when the rule evaluates to false.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Message string `json:"message"`
}

ValidationRule defines a CEL-based validation rule evaluated during rendering.

func (*ValidationRule) DeepCopy added in v0.15.0

func (in *ValidationRule) DeepCopy() *ValidationRule

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

func (*ValidationRule) DeepCopyInto added in v0.15.0

func (in *ValidationRule) DeepCopyInto(out *ValidationRule)

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

type ValueFrom added in v0.4.0

type ValueFrom struct {
	// SecretKeyRef is a reference to a secret containing the value
	// +optional
	SecretKeyRef *SecretKeyReference `json:"secretKeyRef,omitempty"`
	// Value is the inline value (optional fallback)
	// +optional
	Value string `json:"value,omitempty"`
}

ValueFrom defines a common pattern for referencing secrets or providing inline values

func (*ValueFrom) DeepCopy added in v0.4.0

func (in *ValueFrom) DeepCopy() *ValueFrom

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

func (*ValueFrom) DeepCopyInto added in v0.4.0

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

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

type WebhookConfig added in v0.12.0

type WebhookConfig struct {
	// URL is the webhook endpoint URL where alerts will be sent
	// Required when type is "webhook"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Format=uri
	URL string `json:"url"`

	// Headers are optional HTTP headers to include in the webhook request
	// Headers can be provided inline or via secret references
	// +optional
	Headers map[string]WebhookHeaderValue `json:"headers,omitempty"`

	// PayloadTemplate is an optional JSON payload template using CEL expressions
	// If not provided, the raw alertDetails object will be sent as JSON
	// CEL expressions use ${...} syntax and have access to alert fields:
	// - ${alertName}, ${alertDescription}, ${alertSeverity}, ${alertValue}, etc.
	// Example for Slack: {"text": "Alert: ${alertName}", "blocks": [...]}
	// +optional
	PayloadTemplate string `json:"payloadTemplate,omitempty"`
}

WebhookConfig defines the configuration for webhook notification channels

func (*WebhookConfig) DeepCopy added in v0.12.0

func (in *WebhookConfig) DeepCopy() *WebhookConfig

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

func (*WebhookConfig) DeepCopyInto added in v0.12.0

func (in *WebhookConfig) DeepCopyInto(out *WebhookConfig)

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

type WebhookHeaderValue added in v0.12.0

type WebhookHeaderValue struct {
	// Value is the inline header value
	// Mutually exclusive with valueFrom
	// +optional
	Value *string `json:"value,omitempty"`

	// ValueFrom references a secret containing the header value
	// Mutually exclusive with value
	// +optional
	ValueFrom *SecretValueFrom `json:"valueFrom,omitempty"`
}

WebhookHeaderValue defines a header value that can be provided inline or via secret reference +kubebuilder:validation:XValidation:rule="has(self.value) != has(self.valueFrom)",message="exactly one of value or valueFrom must be set"

func (*WebhookHeaderValue) DeepCopy added in v0.12.0

func (in *WebhookHeaderValue) DeepCopy() *WebhookHeaderValue

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

func (*WebhookHeaderValue) DeepCopyInto added in v0.12.0

func (in *WebhookHeaderValue) DeepCopyInto(out *WebhookHeaderValue)

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

type Workflow added in v0.4.0

type Workflow struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of Workflow
	// +required
	Spec WorkflowSpec `json:"spec"`

	// status defines the observed state of Workflow
	// +optional
	Status WorkflowStatus `json:"status,omitempty,omitzero"`
}

Workflow is the Schema for the workflows API Workflow provides a template definition for workflow execution with schema and resource templates.

func (*Workflow) DeepCopy added in v0.4.0

func (in *Workflow) DeepCopy() *Workflow

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

func (*Workflow) DeepCopyInto added in v0.4.0

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

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

func (*Workflow) DeepCopyObject added in v0.4.0

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

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

type WorkflowList added in v0.4.0

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

WorkflowList contains a list of Workflow

func (*WorkflowList) DeepCopy added in v0.4.0

func (in *WorkflowList) DeepCopy() *WorkflowList

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

func (*WorkflowList) DeepCopyInto added in v0.4.0

func (in *WorkflowList) DeepCopyInto(out *WorkflowList)

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

func (*WorkflowList) DeepCopyObject added in v0.4.0

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

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

type WorkflowPlane added in v1.0.0

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

	Spec   WorkflowPlaneSpec   `json:"spec,omitempty"`
	Status WorkflowPlaneStatus `json:"status,omitempty"`
}

WorkflowPlane is the Schema for the workflowplanes API.

func (*WorkflowPlane) DeepCopy added in v1.0.0

func (in *WorkflowPlane) DeepCopy() *WorkflowPlane

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

func (*WorkflowPlane) DeepCopyInto added in v1.0.0

func (in *WorkflowPlane) DeepCopyInto(out *WorkflowPlane)

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

func (*WorkflowPlane) DeepCopyObject added in v1.0.0

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

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

type WorkflowPlaneList added in v1.0.0

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

WorkflowPlaneList contains a list of WorkflowPlane.

func (*WorkflowPlaneList) DeepCopy added in v1.0.0

func (in *WorkflowPlaneList) DeepCopy() *WorkflowPlaneList

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

func (*WorkflowPlaneList) DeepCopyInto added in v1.0.0

func (in *WorkflowPlaneList) DeepCopyInto(out *WorkflowPlaneList)

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

func (*WorkflowPlaneList) DeepCopyObject added in v1.0.0

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

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

type WorkflowPlaneRef added in v1.0.0

type WorkflowPlaneRef struct {
	// Kind is the kind of workflow plane (WorkflowPlane or ClusterWorkflowPlane)
	// +required
	Kind WorkflowPlaneRefKind `json:"kind"`

	// Name is the name of the workflow plane resource
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

WorkflowPlaneRef represents a reference to a WorkflowPlane or ClusterWorkflowPlane

func (*WorkflowPlaneRef) DeepCopy added in v1.0.0

func (in *WorkflowPlaneRef) DeepCopy() *WorkflowPlaneRef

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

func (*WorkflowPlaneRef) DeepCopyInto added in v1.0.0

func (in *WorkflowPlaneRef) DeepCopyInto(out *WorkflowPlaneRef)

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

type WorkflowPlaneRefKind added in v1.0.0

type WorkflowPlaneRefKind string

WorkflowPlaneRefKind defines the kind of workflow plane referenced by a WorkflowPlaneRef +kubebuilder:validation:Enum=WorkflowPlane;ClusterWorkflowPlane

const (
	// WorkflowPlaneRefKindWorkflowPlane references a namespace-scoped WorkflowPlane
	WorkflowPlaneRefKindWorkflowPlane WorkflowPlaneRefKind = "WorkflowPlane"

	// WorkflowPlaneRefKindClusterWorkflowPlane references a cluster-scoped ClusterWorkflowPlane
	WorkflowPlaneRefKindClusterWorkflowPlane WorkflowPlaneRefKind = "ClusterWorkflowPlane"
)

type WorkflowPlaneSpec added in v1.0.0

type WorkflowPlaneSpec struct {

	// PlaneID identifies the logical plane this CR connects to.
	// Multiple WorkflowPlane CRs can share the same planeID to connect to the same physical cluster
	// while maintaining separate configurations for multi-tenancy scenarios.
	// If not specified, defaults to the CR name for backwards compatibility.
	// Format: lowercase alphanumeric characters, hyphens allowed, max 63 characters.
	// Examples: "shared-builder", "ci-cluster", "us-west-2"
	// +optional
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	PlaneID string `json:"planeID,omitempty"`

	// ClusterAgent specifies the configuration for cluster agent-based communication
	// The cluster agent establishes a WebSocket connection to the control plane's cluster gateway
	// This field is mandatory - all workflow planes must use cluster agent communication
	ClusterAgent ClusterAgentConfig `json:"clusterAgent"`

	// SecretStoreRef specifies the ESO ClusterSecretStore to use in the data plane
	// +optional
	SecretStoreRef *SecretStoreRef `json:"secretStoreRef,omitempty"`

	// ObservabilityPlaneRef specifies the ObservabilityPlane or ClusterObservabilityPlane for this WorkflowPlane.
	// If not specified, defaults to an ObservabilityPlane named "default" in the same namespace.
	// +optional
	ObservabilityPlaneRef *ObservabilityPlaneRef `json:"observabilityPlaneRef,omitempty"`
}

WorkflowPlaneSpec defines the desired state of WorkflowPlane.

func (*WorkflowPlaneSpec) DeepCopy added in v1.0.0

func (in *WorkflowPlaneSpec) DeepCopy() *WorkflowPlaneSpec

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

func (*WorkflowPlaneSpec) DeepCopyInto added in v1.0.0

func (in *WorkflowPlaneSpec) DeepCopyInto(out *WorkflowPlaneSpec)

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

type WorkflowPlaneStatus added in v1.0.0

type WorkflowPlaneStatus struct {

	// ObservedGeneration is the generation observed by the controller
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the WorkflowPlane's state
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// AgentConnection tracks the status of cluster agent connections to this workflow plane
	// +optional
	AgentConnection *AgentConnectionStatus `json:"agentConnection,omitempty"`
}

WorkflowPlaneStatus defines the observed state of WorkflowPlane.

func (*WorkflowPlaneStatus) DeepCopy added in v1.0.0

func (in *WorkflowPlaneStatus) DeepCopy() *WorkflowPlaneStatus

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

func (*WorkflowPlaneStatus) DeepCopyInto added in v1.0.0

func (in *WorkflowPlaneStatus) DeepCopyInto(out *WorkflowPlaneStatus)

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

type WorkflowRef added in v0.17.0

type WorkflowRef struct {
	// Kind is the kind of workflow (Workflow or ClusterWorkflow).
	// +optional
	// +kubebuilder:default=ClusterWorkflow
	Kind WorkflowRefKind `json:"kind,omitempty"`

	// Name is the name of the workflow resource
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
}

WorkflowRef represents a reference to a Workflow resource.

func (*WorkflowRef) DeepCopy added in v0.17.0

func (in *WorkflowRef) DeepCopy() *WorkflowRef

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

func (*WorkflowRef) DeepCopyInto added in v0.17.0

func (in *WorkflowRef) DeepCopyInto(out *WorkflowRef)

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

type WorkflowRefKind added in v0.17.0

type WorkflowRefKind string

WorkflowRefKind defines the kind for workflow references. +kubebuilder:validation:Enum=Workflow;ClusterWorkflow

const (
	// WorkflowRefKindWorkflow references a namespace-scoped Workflow
	WorkflowRefKindWorkflow WorkflowRefKind = "Workflow"

	// WorkflowRefKindClusterWorkflow references a cluster-scoped ClusterWorkflow
	WorkflowRefKindClusterWorkflow WorkflowRefKind = "ClusterWorkflow"
)

type WorkflowResource added in v0.11.0

type WorkflowResource struct {
	// ID uniquely identifies this resource within the workflow.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ID string `json:"id"`

	// IncludeWhen is a CEL expression that determines whether this resource should be rendered.
	// If the expression evaluates to false, the resource is skipped.
	// If empty, the resource is always included.
	// Example: ${parameters.enableMetrics}
	// +optional
	// +kubebuilder:validation:Pattern=`^\$\{[\s\S]+\}\s*$`
	IncludeWhen string `json:"includeWhen,omitempty"`

	// Template contains the Kubernetes resource with CEL expressions.
	// CEL expressions are enclosed in ${...} and will be evaluated at runtime.
	// +kubebuilder:validation:Required
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	Template *runtime.RawExtension `json:"template"`
}

WorkflowResource defines a template for generating Kubernetes resources to be deployed alongside the workflow run.

func (*WorkflowResource) DeepCopy added in v0.11.0

func (in *WorkflowResource) DeepCopy() *WorkflowResource

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

func (*WorkflowResource) DeepCopyInto added in v0.11.0

func (in *WorkflowResource) DeepCopyInto(out *WorkflowResource)

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

type WorkflowRun added in v0.4.0

type WorkflowRun struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of WorkflowRun
	// +required
	Spec WorkflowRunSpec `json:"spec"`

	// status defines the observed state of WorkflowRun
	// +optional
	Status WorkflowRunStatus `json:"status,omitempty,omitzero"`
}

WorkflowRun is the Schema for the workflowruns API WorkflowRun represents a runtime execution instance of a Workflow.

func (*WorkflowRun) DeepCopy added in v0.4.0

func (in *WorkflowRun) DeepCopy() *WorkflowRun

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

func (*WorkflowRun) DeepCopyInto added in v0.4.0

func (in *WorkflowRun) DeepCopyInto(out *WorkflowRun)

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

func (*WorkflowRun) DeepCopyObject added in v0.4.0

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

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

func (*WorkflowRun) GetConditions added in v0.4.0

func (w *WorkflowRun) GetConditions() []metav1.Condition

GetConditions returns the conditions from the workflowrun status

func (*WorkflowRun) SetConditions added in v0.4.0

func (w *WorkflowRun) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions in the workflowrun status

type WorkflowRunConfig added in v0.11.0

type WorkflowRunConfig struct {
	// Kind is the kind of workflow (Workflow or ClusterWorkflow).
	// +optional
	// +kubebuilder:default=ClusterWorkflow
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="kind is immutable"
	Kind WorkflowRefKind `json:"kind,omitempty"`

	// Name references the Workflow or ClusterWorkflow CR to use for this execution.
	// The Workflow CR contains the schema definition and resource template.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="name is immutable"
	Name string `json:"name"`

	// Parameters contains the developer-provided values for the flexible parameter schema
	// defined in the referenced Workflow CR.
	//
	// These values are validated against the Workflow's parameter schema.
	//
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	Parameters *runtime.RawExtension `json:"parameters,omitempty"`
}

WorkflowRunConfig defines the workflow configuration for execution.

func (*WorkflowRunConfig) DeepCopy added in v0.11.0

func (in *WorkflowRunConfig) DeepCopy() *WorkflowRunConfig

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

func (*WorkflowRunConfig) DeepCopyInto added in v0.11.0

func (in *WorkflowRunConfig) DeepCopyInto(out *WorkflowRunConfig)

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

type WorkflowRunList added in v0.4.0

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

WorkflowRunList contains a list of WorkflowRun

func (*WorkflowRunList) DeepCopy added in v0.4.0

func (in *WorkflowRunList) DeepCopy() *WorkflowRunList

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

func (*WorkflowRunList) DeepCopyInto added in v0.4.0

func (in *WorkflowRunList) DeepCopyInto(out *WorkflowRunList)

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

func (*WorkflowRunList) DeepCopyObject added in v0.4.0

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

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

type WorkflowRunSpec added in v0.4.0

type WorkflowRunSpec struct {
	// Workflow configuration referencing the Workflow CR and providing schema values.
	// +required
	Workflow WorkflowRunConfig `json:"workflow"`

	// TTLAfterCompletion defines the time-to-live for this workflow run after completion.
	// This value is copied from the Workflow template.
	// Once the workflow completes, the run will be automatically deleted after this duration.
	// Format: duration string supporting days, hours, minutes, seconds without spaces (e.g., "90d", "10d1h30m", "1h30m")
	// Examples: "90d", "10d", "1h30m", "30m", "1d12h30m15s"
	// +optional
	// +kubebuilder:validation:Pattern=`^(\d+d)?(\d+h)?(\d+m)?(\d+s)?$`
	TTLAfterCompletion string `json:"ttlAfterCompletion,omitempty"`
}

WorkflowRunSpec defines the desired state of WorkflowRun. WorkflowRun represents a runtime execution instance of a Workflow.

func (*WorkflowRunSpec) DeepCopy added in v0.4.0

func (in *WorkflowRunSpec) DeepCopy() *WorkflowRunSpec

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

func (*WorkflowRunSpec) DeepCopyInto added in v0.4.0

func (in *WorkflowRunSpec) DeepCopyInto(out *WorkflowRunSpec)

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

type WorkflowRunStatus added in v0.4.0

type WorkflowRunStatus struct {
	// Conditions represent the current state of the WorkflowRun resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// RunReference contains a reference to the workflow run resource that was applied to the cluster.
	// This tracks the actual workflow execution instance (e.g., Argo Workflow) in the target cluster.
	// +optional
	RunReference *ResourceReference `json:"runReference,omitempty"`

	// Resources contains references to additional resources applied to the cluster.
	// These are tracked for cleanup when the WorkflowRun is deleted.
	// +optional
	Resources *[]ResourceReference `json:"resources,omitempty"`

	// Tasks contains the list of workflow tasks with their execution status.
	// This provides a vendor-neutral view of the workflow steps regardless of the underlying
	// workflow engine (e.g., Argo Workflows, Tekton).
	// Tasks are ordered by their execution sequence.
	// +optional
	Tasks []WorkflowTask `json:"tasks,omitempty"`

	// StartedAt is the timestamp when this workflow run started execution.
	// +optional
	StartedAt *metav1.Time `json:"startedAt,omitempty"`

	// CompletedAt is the timestamp when this workflow run finished execution (succeeded or failed).
	// This is used together with TTLAfterCompletion to determine when to delete the workflow run.
	// +optional
	CompletedAt *metav1.Time `json:"completedAt,omitempty"`
}

WorkflowRunStatus defines the observed state of WorkflowRun.

func (*WorkflowRunStatus) DeepCopy added in v0.4.0

func (in *WorkflowRunStatus) DeepCopy() *WorkflowRunStatus

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

func (*WorkflowRunStatus) DeepCopyInto added in v0.4.0

func (in *WorkflowRunStatus) DeepCopyInto(out *WorkflowRunStatus)

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

type WorkflowSpec added in v0.4.0

type WorkflowSpec struct {
	// WorkflowPlaneRef references the WorkflowPlane or ClusterWorkflowPlane for this workflow's operations.
	// Defaults to ClusterWorkflowPlane named "default" when omitted.
	// +optional
	// +kubebuilder:default={kind: "ClusterWorkflowPlane", name: "default"}
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.workflowPlaneRef is immutable"
	WorkflowPlaneRef *WorkflowPlaneRef `json:"workflowPlaneRef,omitempty"`

	// Parameters defines the developer-facing parameters that can be configured
	// when creating a WorkflowRun instance.
	// +optional
	Parameters *SchemaSection `json:"parameters,omitempty"`

	// RunTemplate is the Kubernetes resource template to be rendered and applied to the cluster.
	// Template variables are substituted with context and parameter values.
	// Supported template variables:
	//   - ${metadata.workflowRunName} - WorkflowRun name (the execution instance)
	//   - ${metadata.namespaceName} - Namespace name
	//   - ${metadata.namespace} - Enforced workflow execution namespace (e.g., "workflows-<namespaceName>")
	//   - ${metadata.labels['key']} - WorkflowRun labels
	//   - ${parameters.*} - Developer-provided parameter values
	//   - ${workflowplane.secretStore} - ESO ClusterSecretStore name from the WorkflowPlane
	//   - ${externalRefs['<id>'].spec.*} - Resolved external CR specs (declared via externalRefs)
	//
	// Note: PE-controlled parameters should be hardcoded directly in the template.
	//
	// +required
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	RunTemplate *runtime.RawExtension `json:"runTemplate"`

	// Resources are additional templates that generate Kubernetes resources dynamically
	// to be deployed alongside the workflow run (e.g., secrets, configmaps).
	// Template variables are substituted with context and parameter values using CEL expressions.
	// +optional
	Resources []WorkflowResource `json:"resources,omitempty"`

	// ExternalRefs declares references to external CRs that are resolved at runtime
	// and injected into the CEL context under their id.
	// If a reference's name evaluates to empty, it is silently skipped.
	// +optional
	// +listType=map
	// +listMapKey=id
	ExternalRefs []ExternalRef `json:"externalRefs,omitempty"`

	// TTLAfterCompletion defines the time-to-live for WorkflowRun instances after completion.
	// Once a WorkflowRun completes, it will be automatically deleted after this duration.
	// Format: duration string supporting days, hours, minutes, seconds without spaces (e.g., "90d", "10d1h30m", "1h30m")
	// Examples: "90d", "10d", "1h30m", "30m", "1d12h30m15s"
	// If empty, workflow runs are not automatically deleted.
	// +optional
	// +kubebuilder:validation:Pattern=`^(\d+d)?(\d+h)?(\d+m)?(\d+s)?$`
	TTLAfterCompletion string `json:"ttlAfterCompletion,omitempty"`
}

WorkflowSpec defines the desired state of Workflow. Workflow provides a schema-driven template for workflow execution with developer-facing schemas and CEL-based resource rendering. PE-controlled parameters should be hardcoded directly in the template.

func (*WorkflowSpec) DeepCopy added in v0.4.0

func (in *WorkflowSpec) DeepCopy() *WorkflowSpec

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

func (*WorkflowSpec) DeepCopyInto added in v0.4.0

func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec)

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

type WorkflowStatus added in v0.4.0

type WorkflowStatus struct {

	// conditions represent the current state of the Workflow resource.
	// Each condition has a unique type and reflects the status of a specific aspect of the resource.
	//
	// Standard condition types include:
	// - "Available": the resource is fully functional
	// - "Progressing": the resource is being created or updated
	// - "Degraded": the resource failed to reach or maintain its desired state
	//
	// The status of each condition is one of True, False, or Unknown.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

WorkflowStatus defines the observed state of Workflow.

func (*WorkflowStatus) DeepCopy added in v0.4.0

func (in *WorkflowStatus) DeepCopy() *WorkflowStatus

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

func (*WorkflowStatus) DeepCopyInto added in v0.4.0

func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus)

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

type WorkflowTask added in v0.13.0

type WorkflowTask struct {
	// Name is the name of the task/step.
	// For Argo Workflows, this corresponds to the node's displayName (or parsed node name from the
	// node name pattern "workflow-name[N].step-name"), not the templateName, since workflows now use
	// ClusterWorkflowTemplates with templateRef instead of inline templates.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Phase represents the current execution phase of the task.
	// +kubebuilder:validation:Enum=Pending;Running;Succeeded;Failed;Skipped;Error
	// +optional
	Phase string `json:"phase,omitempty"`

	// StartedAt is the timestamp when the task started execution.
	// +optional
	StartedAt *metav1.Time `json:"startedAt,omitempty"`

	// CompletedAt is the timestamp when the task finished execution.
	// +optional
	CompletedAt *metav1.Time `json:"completedAt,omitempty"`

	// Message provides additional details about the task status.
	// This is typically populated when the task fails or errors.
	// +optional
	Message string `json:"message,omitempty"`
}

WorkflowTask represents a single task/step in a workflow execution. This provides a vendor-neutral abstraction over workflow engine-specific steps (e.g., Argo Workflow nodes, Tekton TaskRuns).

func (*WorkflowTask) DeepCopy added in v0.13.0

func (in *WorkflowTask) DeepCopy() *WorkflowTask

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

func (*WorkflowTask) DeepCopyInto added in v0.13.0

func (in *WorkflowTask) DeepCopyInto(out *WorkflowTask)

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

type Workload

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

	Spec   WorkloadSpec   `json:"spec,omitempty"`
	Status WorkloadStatus `json:"status,omitempty"`
}

Workload is the Schema for the workloads API.

func (*Workload) DeepCopy

func (in *Workload) DeepCopy() *Workload

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

func (*Workload) DeepCopyInto

func (in *Workload) DeepCopyInto(out *Workload)

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

func (*Workload) DeepCopyObject

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

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

type WorkloadConnection

type WorkloadConnection struct {
	// Project is the target component's project name.
	// If empty, defaults to the same project as the consumer.
	// Required when namespace is specified.
	// +optional
	Project string `json:"project,omitempty"`

	// Component is the target component name.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Component string `json:"component"`

	// Name is the target endpoint name on the target component.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Visibility is the visibility level at which this connection consumes the endpoint.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=project;namespace
	Visibility EndpointVisibility `json:"visibility"`

	// EnvBindings maps semantic URL components to environment variable names.
	// +kubebuilder:validation:Required
	EnvBindings ConnectionEnvBindings `json:"envBindings"`
}

WorkloadConnection represents a connection to another component's endpoint.

func (*WorkloadConnection) DeepCopy

func (in *WorkloadConnection) DeepCopy() *WorkloadConnection

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

func (*WorkloadConnection) DeepCopyInto

func (in *WorkloadConnection) DeepCopyInto(out *WorkloadConnection)

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

type WorkloadDependencies added in v1.0.0

type WorkloadDependencies struct {
	// Endpoints define how this workload consumes endpoints from other components.
	// +optional
	// +kubebuilder:validation:MaxItems=50
	Endpoints []WorkloadConnection `json:"endpoints,omitempty"`

	// Resources define how this workload consumes outputs from project-bound Resources.
	// Each entry references a Resource by name and binds named outputs of the resolved
	// ResourceReleaseBinding to container env vars (envBindings) and file mounts (fileBindings).
	// +optional
	// +listType=map
	// +listMapKey=ref
	// +kubebuilder:validation:MaxItems=50
	Resources []WorkloadResourceDependency `json:"resources,omitempty"`
}

WorkloadDependencies defines the dependencies of a workload on other components' endpoints and on project-bound Resources.

func (*WorkloadDependencies) DeepCopy added in v1.0.0

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

func (*WorkloadDependencies) DeepCopyInto added in v1.0.0

func (in *WorkloadDependencies) DeepCopyInto(out *WorkloadDependencies)

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

type WorkloadEndpoint

type WorkloadEndpoint struct {
	// Visibility is an array of additional endpoint visibilities beyond the implicit project visibility.
	// Every endpoint always gets project visibility. This array adds extra scopes.
	// +optional
	// +listType=set
	Visibility []EndpointVisibility `json:"visibility,omitempty"`

	// Type indicates the protocol/technology of the endpoint.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=HTTP;gRPC;GraphQL;Websocket;TCP;UDP
	Type EndpointType `json:"type"`

	// Port exposed by the endpoint. If targetPort is not set, platform defaults to port for both.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`

	// TargetPort maps to the container listening port. Optional — defaults to port.
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	TargetPort int32 `json:"targetPort,omitempty"`

	// DisplayName is an optional human-readable name for the endpoint.
	// +optional
	DisplayName string `json:"displayName,omitempty"`

	// BasePath is the base path of the API exposed via the endpoint.
	// +optional
	BasePath string `json:"basePath,omitempty"`

	// Schema for the endpoint API definition.
	// +optional
	Schema *Schema `json:"schema,omitempty"`
}

WorkloadEndpoint represents a simple network endpoint for basic exposure.

func (*WorkloadEndpoint) DeepCopy

func (in *WorkloadEndpoint) DeepCopy() *WorkloadEndpoint

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

func (*WorkloadEndpoint) DeepCopyInto

func (in *WorkloadEndpoint) DeepCopyInto(out *WorkloadEndpoint)

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

type WorkloadList

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

WorkloadList contains a list of Workload.

func (*WorkloadList) DeepCopy

func (in *WorkloadList) DeepCopy() *WorkloadList

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

func (*WorkloadList) DeepCopyInto

func (in *WorkloadList) DeepCopyInto(out *WorkloadList)

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

func (*WorkloadList) DeepCopyObject

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

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

type WorkloadOverrideTemplateSpec added in v0.5.0

type WorkloadOverrideTemplateSpec struct {
	// Container override for env and file configurations.
	// +optional
	Container *ContainerOverride `json:"container,omitempty"`
}

WorkloadOverrideTemplateSpec defines overrides for workload configuration.

func (*WorkloadOverrideTemplateSpec) DeepCopy added in v0.5.0

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

func (*WorkloadOverrideTemplateSpec) DeepCopyInto added in v0.5.0

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

type WorkloadOwner

type WorkloadOwner struct {
	// +kubebuilder:validation:MinLength=1
	ProjectName string `json:"projectName"`
	// +kubebuilder:validation:MinLength=1
	ComponentName string `json:"componentName"`
}

func (*WorkloadOwner) DeepCopy

func (in *WorkloadOwner) DeepCopy() *WorkloadOwner

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

func (*WorkloadOwner) DeepCopyInto

func (in *WorkloadOwner) DeepCopyInto(out *WorkloadOwner)

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

type WorkloadResourceDependency added in v1.1.0

type WorkloadResourceDependency struct {
	// Ref is the name of the Resource to consume. The Resource must live in the same project as
	// the consuming Component (cross-project consumption is deferred to a later release).
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Ref string `json:"ref"`

	// EnvBindings maps a ResourceType output name to a container environment variable name.
	// The output's source kind (value, secretKeyRef, configMapKeyRef) determines whether the
	// resulting env var is a literal or a valueFrom reference.
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	// +kubebuilder:validation:XValidation:rule="self.all(k, k.size() > 0 && self[k].size() > 0)",message="envBindings keys (output names) and values (env var names) cannot be empty"
	EnvBindings map[string]string `json:"envBindings,omitempty"`

	// FileBindings maps a ResourceType output name to a container mount path. The referenced
	// output's source kind must be secretKeyRef or configMapKeyRef; value-kind outputs cannot
	// be mounted as files because there is no DP-side object to mount.
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	// +kubebuilder:validation:XValidation:rule="self.all(k, k.size() > 0 && self[k].size() > 0)",message="fileBindings keys (output names) and values (mount paths) cannot be empty"
	FileBindings map[string]string `json:"fileBindings,omitempty"`
}

WorkloadResourceDependency represents a dependency on a project-bound Resource. Output names declared on the referenced ResourceType are wired into the consuming container as env vars (envBindings) and file mounts (fileBindings). Outputs not listed in either map are ignored.

func (*WorkloadResourceDependency) DeepCopy added in v1.1.0

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

func (*WorkloadResourceDependency) DeepCopyInto added in v1.1.0

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

type WorkloadSpec

type WorkloadSpec struct {
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.owner is immutable"
	Owner WorkloadOwner `json:"owner"`

	// Inline *all* the template fields so they appear at top level.
	WorkloadTemplateSpec `json:",inline"`
}

func (*WorkloadSpec) DeepCopy

func (in *WorkloadSpec) DeepCopy() *WorkloadSpec

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

func (*WorkloadSpec) DeepCopyInto

func (in *WorkloadSpec) DeepCopyInto(out *WorkloadSpec)

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

type WorkloadStatus

type WorkloadStatus struct {
}

WorkloadStatus defines the observed state of 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 WorkloadTemplateSpec

type WorkloadTemplateSpec struct {
	// Container defines the container specification for this workload.
	// +kubebuilder:validation:Required
	Container Container `json:"container"`

	// Endpoints define simple network endpoints for basic port exposure.
	// The key is the endpoint name, and the value is the endpoint specification.
	// +optional
	Endpoints map[string]WorkloadEndpoint `json:"endpoints,omitempty"`

	// Dependencies define the dependencies of this workload on other components.
	// +optional
	Dependencies *WorkloadDependencies `json:"dependencies,omitempty"`
}

WorkloadTemplateSpec defines the desired state of Workload.

func (*WorkloadTemplateSpec) DeepCopy

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

func (*WorkloadTemplateSpec) DeepCopyInto

func (in *WorkloadTemplateSpec) DeepCopyInto(out *WorkloadTemplateSpec)

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

func (*WorkloadTemplateSpec) GetDependencyEndpoints added in v1.0.0

func (w *WorkloadTemplateSpec) GetDependencyEndpoints() []WorkloadConnection

GetDependencyEndpoints returns the endpoint connections from dependencies, or nil if none.

func (*WorkloadTemplateSpec) GetDependencyResources added in v1.1.0

func (w *WorkloadTemplateSpec) GetDependencyResources() []WorkloadResourceDependency

GetDependencyResources returns the resource dependencies, or nil if none.

type WorkloadType

type WorkloadType string

WorkloadType defines how the workload is deployed.

const (
	WorkloadTypeService        WorkloadType = "Service"
	WorkloadTypeManualTask     WorkloadType = "ManualTask"
	WorkloadTypeScheduledTask  WorkloadType = "ScheduledTask"
	WorkloadTypeWebApplication WorkloadType = "WebApplication"
)

Jump to

Keyboard shortcuts

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