Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group. +kubebuilder:object:generate=true +groupName=openchoreo.dev
Index ¶
- Constants
- Variables
- type AgentConnectionStatus
- type AuthzCondition
- type AuthzRole
- type AuthzRoleBinding
- type AuthzRoleBindingList
- type AuthzRoleBindingSpec
- type AuthzRoleList
- type AuthzRoleSpec
- type ClusterAgentConfig
- type ClusterAuthzRole
- type ClusterAuthzRoleBinding
- type ClusterAuthzRoleBindingList
- type ClusterAuthzRoleBindingSpec
- type ClusterAuthzRoleList
- type ClusterAuthzRoleSpec
- type ClusterComponentType
- type ClusterComponentTypeList
- type ClusterComponentTypeSpec
- type ClusterComponentTypeStatus
- type ClusterComponentTypeTrait
- type ClusterDataPlane
- func (in *ClusterDataPlane) DeepCopy() *ClusterDataPlane
- func (in *ClusterDataPlane) DeepCopyInto(out *ClusterDataPlane)
- func (in *ClusterDataPlane) DeepCopyObject() runtime.Object
- func (c *ClusterDataPlane) GetConditions() []metav1.Condition
- func (c *ClusterDataPlane) SetConditions(conditions []metav1.Condition)
- type ClusterDataPlaneList
- type ClusterDataPlaneSpec
- type ClusterDataPlaneStatus
- type ClusterObservabilityPlane
- func (in *ClusterObservabilityPlane) DeepCopy() *ClusterObservabilityPlane
- func (in *ClusterObservabilityPlane) DeepCopyInto(out *ClusterObservabilityPlane)
- func (in *ClusterObservabilityPlane) DeepCopyObject() runtime.Object
- func (c *ClusterObservabilityPlane) GetConditions() []metav1.Condition
- func (c *ClusterObservabilityPlane) SetConditions(conditions []metav1.Condition)
- type ClusterObservabilityPlaneList
- type ClusterObservabilityPlaneRef
- type ClusterObservabilityPlaneRefKind
- type ClusterObservabilityPlaneSpec
- type ClusterObservabilityPlaneStatus
- type ClusterResourceType
- type ClusterResourceTypeList
- type ClusterResourceTypeSpec
- type ClusterResourceTypeStatus
- type ClusterRoleMapping
- type ClusterTargetScope
- type ClusterTrait
- type ClusterTraitList
- type ClusterTraitRef
- type ClusterTraitRefKind
- type ClusterTraitSpec
- type ClusterTraitStatus
- type ClusterWorkflow
- type ClusterWorkflowList
- type ClusterWorkflowPlane
- func (in *ClusterWorkflowPlane) DeepCopy() *ClusterWorkflowPlane
- func (in *ClusterWorkflowPlane) DeepCopyInto(out *ClusterWorkflowPlane)
- func (in *ClusterWorkflowPlane) DeepCopyObject() runtime.Object
- func (c *ClusterWorkflowPlane) GetConditions() []metav1.Condition
- func (c *ClusterWorkflowPlane) SetConditions(conditions []metav1.Condition)
- type ClusterWorkflowPlaneList
- type ClusterWorkflowPlaneRef
- type ClusterWorkflowPlaneRefKind
- type ClusterWorkflowPlaneSpec
- type ClusterWorkflowPlaneStatus
- type ClusterWorkflowRef
- type ClusterWorkflowRefKind
- type ClusterWorkflowSpec
- type ClusterWorkflowStatus
- type Component
- type ComponentList
- type ComponentOwner
- type ComponentProfile
- type ComponentProfileTrait
- type ComponentRelease
- type ComponentReleaseComponentType
- type ComponentReleaseList
- type ComponentReleaseOwner
- type ComponentReleaseSpec
- type ComponentReleaseStatus
- type ComponentReleaseTrait
- type ComponentSource
- type ComponentSpec
- type ComponentStatus
- type ComponentTrait
- type ComponentType
- type ComponentTypeList
- type ComponentTypeRef
- type ComponentTypeRefKind
- type ComponentTypeSpec
- type ComponentTypeStatus
- type ComponentTypeTrait
- type ComponentWorkflowConfig
- type ConfigMapKeyRef
- type ConnectionEnvBindings
- type ConnectionTarget
- type Container
- type ContainerOverride
- type ContainerRegistry
- type DataPlane
- type DataPlaneList
- type DataPlaneRef
- type DataPlaneRefKind
- type DataPlaneSpec
- type DataPlaneStatus
- type DeploymentPipeline
- type DeploymentPipelineList
- type DeploymentPipelineRef
- type DeploymentPipelineRefKind
- type DeploymentPipelineSpec
- type DeploymentPipelineStatus
- type EffectType
- type EmailConfig
- type EmailTemplate
- type EndpointAccess
- type EndpointGatewayURLs
- type EndpointStatus
- type EndpointType
- type EndpointURL
- type EndpointURLStatus
- type EndpointVisibility
- type EntitlementClaim
- type EnvVar
- type EnvVarValueFrom
- type Environment
- type EnvironmentList
- type EnvironmentRef
- type EnvironmentRefKind
- type EnvironmentSpec
- type EnvironmentStatus
- type ExternalRef
- type FileVar
- type GatewayEndpointSpec
- type GatewayListenerSpec
- type GatewayNetworkSpec
- type GatewaySpec
- type GitAuthentication
- type GitRepository
- type HealthStatus
- type JSONPatchOperation
- type LatestRelease
- type LatestResourceRelease
- type NotificationChannelConfig
- type NotificationChannelName
- type NotificationChannelType
- type ObservabilityAlertActions
- type ObservabilityAlertCondition
- type ObservabilityAlertConditionOperator
- type ObservabilityAlertIncident
- type ObservabilityAlertNotifications
- type ObservabilityAlertRule
- type ObservabilityAlertRuleList
- type ObservabilityAlertRulePhase
- type ObservabilityAlertRuleSpec
- type ObservabilityAlertRuleStatus
- type ObservabilityAlertSeverity
- type ObservabilityAlertSource
- type ObservabilityAlertSourceType
- type ObservabilityAlertsNotificationChannel
- type ObservabilityAlertsNotificationChannelList
- func (in *ObservabilityAlertsNotificationChannelList) DeepCopy() *ObservabilityAlertsNotificationChannelList
- func (in *ObservabilityAlertsNotificationChannelList) DeepCopyInto(out *ObservabilityAlertsNotificationChannelList)
- func (in *ObservabilityAlertsNotificationChannelList) DeepCopyObject() runtime.Object
- type ObservabilityAlertsNotificationChannelSpec
- type ObservabilityAlertsNotificationChannelStatus
- type ObservabilityPlane
- type ObservabilityPlaneList
- type ObservabilityPlaneRef
- type ObservabilityPlaneRefKind
- type ObservabilityPlaneSpec
- type ObservabilityPlaneStatus
- type PatchTarget
- type PendingConnection
- type PendingResourceDependency
- type Project
- type ProjectList
- type ProjectSpec
- type ProjectStatus
- type PromotionPath
- type RegistryAuthentication
- type ReleaseBinding
- func (in *ReleaseBinding) DeepCopy() *ReleaseBinding
- func (in *ReleaseBinding) DeepCopyInto(out *ReleaseBinding)
- func (in *ReleaseBinding) DeepCopyObject() runtime.Object
- func (r *ReleaseBinding) GetConditions() []metav1.Condition
- func (r *ReleaseBinding) SetConditions(conditions []metav1.Condition)
- type ReleaseBindingList
- type ReleaseBindingOwner
- type ReleaseBindingSpec
- type ReleaseBindingStatus
- type ReleaseState
- type RemoteReference
- type RenderedManifest
- type RenderedManifestStatus
- type RenderedRelease
- func (in *RenderedRelease) DeepCopy() *RenderedRelease
- func (in *RenderedRelease) DeepCopyInto(out *RenderedRelease)
- func (in *RenderedRelease) DeepCopyObject() runtime.Object
- func (in *RenderedRelease) GetConditions() []metav1.Condition
- func (in *RenderedRelease) SetConditions(conditions []metav1.Condition)
- type RenderedReleaseList
- type RenderedReleaseOwner
- type RenderedReleaseSpec
- type RenderedReleaseStatus
- type ResolvedConnection
- type ResolvedResourceOutput
- type Resource
- type ResourceDependencyTarget
- type ResourceList
- type ResourceOwner
- type ResourceReference
- type ResourceRelease
- type ResourceReleaseBinding
- func (in *ResourceReleaseBinding) DeepCopy() *ResourceReleaseBinding
- func (in *ResourceReleaseBinding) DeepCopyInto(out *ResourceReleaseBinding)
- func (in *ResourceReleaseBinding) DeepCopyObject() runtime.Object
- func (r *ResourceReleaseBinding) GetConditions() []metav1.Condition
- func (r *ResourceReleaseBinding) SetConditions(conditions []metav1.Condition)
- type ResourceReleaseBindingList
- type ResourceReleaseBindingOwner
- type ResourceReleaseBindingSpec
- type ResourceReleaseBindingStatus
- type ResourceReleaseList
- type ResourceReleaseOwner
- type ResourceReleaseResourceType
- type ResourceReleaseSpec
- type ResourceReleaseStatus
- type ResourceRetainPolicy
- type ResourceSpec
- type ResourceStatus
- type ResourceTemplate
- type ResourceType
- type ResourceTypeList
- type ResourceTypeManifest
- type ResourceTypeOutput
- type ResourceTypeRef
- type ResourceTypeRefKind
- type ResourceTypeSpec
- type ResourceTypeStatus
- type RoleMapping
- type RoleRef
- type RoleRefKind
- type SMTPAuth
- type SMTPConfig
- type SMTPTLSConfig
- type Schema
- type SchemaSection
- type SecretDataSource
- type SecretKeyRef
- type SecretKeyReference
- type SecretMetadata
- type SecretReference
- type SecretReferenceList
- type SecretReferenceSpec
- type SecretReferenceStatus
- type SecretStoreRef
- type SecretStoreReference
- type SecretTemplate
- type SecretValueFrom
- type TargetEnvironmentRef
- type TargetPlaneRef
- type TargetScope
- type Trait
- type TraitCreate
- type TraitList
- type TraitPatch
- type TraitRef
- type TraitRefKind
- type TraitSpec
- type TraitStatus
- type ValidationRule
- type ValueFrom
- type WebhookConfig
- type WebhookHeaderValue
- type Workflow
- type WorkflowList
- type WorkflowPlane
- type WorkflowPlaneList
- type WorkflowPlaneRef
- type WorkflowPlaneRefKind
- type WorkflowPlaneSpec
- type WorkflowPlaneStatus
- type WorkflowRef
- type WorkflowRefKind
- type WorkflowResource
- type WorkflowRun
- type WorkflowRunConfig
- type WorkflowRunList
- type WorkflowRunSpec
- type WorkflowRunStatus
- type WorkflowSpec
- type WorkflowStatus
- type WorkflowTask
- type Workload
- type WorkloadConnection
- type WorkloadDependencies
- type WorkloadEndpoint
- type WorkloadList
- type WorkloadOverrideTemplateSpec
- type WorkloadOwner
- type WorkloadResourceDependency
- type WorkloadSpec
- type WorkloadStatus
- type WorkloadTemplateSpec
- type WorkloadType
Constants ¶
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 ¶
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
func (in *AgentConnectionStatus) DeepCopy() *AgentConnectionStatus
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthzRole.
func (*AuthzRole) DeepCopyInto ¶ added in v0.14.0
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
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
func (in *AuthzRoleBindingList) DeepCopy() *AuthzRoleBindingList
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
func (in *AuthzRoleBindingSpec) DeepCopy() *AuthzRoleBindingSpec
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
func (in *ClusterAuthzRoleBinding) DeepCopy() *ClusterAuthzRoleBinding
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
func (in *ClusterAuthzRoleBindingList) DeepCopy() *ClusterAuthzRoleBindingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAuthzRoleBindingList.
func (*ClusterAuthzRoleBindingList) DeepCopyInto ¶ added in v1.0.0
func (in *ClusterAuthzRoleBindingList) DeepCopyInto(out *ClusterAuthzRoleBindingList)
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
func (in *ClusterAuthzRoleBindingSpec) DeepCopy() *ClusterAuthzRoleBindingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAuthzRoleBindingSpec.
func (*ClusterAuthzRoleBindingSpec) DeepCopyInto ¶ added in v1.0.0
func (in *ClusterAuthzRoleBindingSpec) DeepCopyInto(out *ClusterAuthzRoleBindingSpec)
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
func (in *ClusterAuthzRoleList) DeepCopy() *ClusterAuthzRoleList
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
func (in *ClusterAuthzRoleSpec) DeepCopy() *ClusterAuthzRoleSpec
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
func (in *ClusterComponentType) DeepCopy() *ClusterComponentType
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
func (in *ClusterComponentTypeList) DeepCopy() *ClusterComponentTypeList
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
func (in *ClusterComponentTypeSpec) DeepCopy() *ClusterComponentTypeSpec
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
func (in *ClusterComponentTypeStatus) DeepCopy() *ClusterComponentTypeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentTypeStatus.
func (*ClusterComponentTypeStatus) DeepCopyInto ¶ added in v0.16.0
func (in *ClusterComponentTypeStatus) DeepCopyInto(out *ClusterComponentTypeStatus)
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
func (in *ClusterComponentTypeTrait) DeepCopy() *ClusterComponentTypeTrait
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentTypeTrait.
func (*ClusterComponentTypeTrait) DeepCopyInto ¶ added in v0.16.0
func (in *ClusterComponentTypeTrait) DeepCopyInto(out *ClusterComponentTypeTrait)
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
func (in *ClusterDataPlaneList) DeepCopy() *ClusterDataPlaneList
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
func (in *ClusterDataPlaneSpec) DeepCopy() *ClusterDataPlaneSpec
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
func (in *ClusterDataPlaneStatus) DeepCopy() *ClusterDataPlaneStatus
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
func (in *ClusterObservabilityPlane) DeepCopy() *ClusterObservabilityPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObservabilityPlane.
func (*ClusterObservabilityPlane) DeepCopyInto ¶ added in v0.14.0
func (in *ClusterObservabilityPlane) DeepCopyInto(out *ClusterObservabilityPlane)
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
func (in *ClusterObservabilityPlaneList) DeepCopy() *ClusterObservabilityPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObservabilityPlaneList.
func (*ClusterObservabilityPlaneList) DeepCopyInto ¶ added in v0.14.0
func (in *ClusterObservabilityPlaneList) DeepCopyInto(out *ClusterObservabilityPlaneList)
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
func (in *ClusterObservabilityPlaneRef) DeepCopy() *ClusterObservabilityPlaneRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObservabilityPlaneRef.
func (*ClusterObservabilityPlaneRef) DeepCopyInto ¶ added in v0.15.0
func (in *ClusterObservabilityPlaneRef) DeepCopyInto(out *ClusterObservabilityPlaneRef)
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
func (in *ClusterObservabilityPlaneSpec) DeepCopy() *ClusterObservabilityPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObservabilityPlaneSpec.
func (*ClusterObservabilityPlaneSpec) DeepCopyInto ¶ added in v0.14.0
func (in *ClusterObservabilityPlaneSpec) DeepCopyInto(out *ClusterObservabilityPlaneSpec)
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
func (in *ClusterObservabilityPlaneStatus) DeepCopy() *ClusterObservabilityPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObservabilityPlaneStatus.
func (*ClusterObservabilityPlaneStatus) DeepCopyInto ¶ added in v0.14.0
func (in *ClusterObservabilityPlaneStatus) DeepCopyInto(out *ClusterObservabilityPlaneStatus)
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
func (in *ClusterResourceTypeList) DeepCopy() *ClusterResourceTypeList
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
func (in *ClusterResourceTypeSpec) DeepCopy() *ClusterResourceTypeSpec
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
func (in *ClusterResourceTypeStatus) DeepCopy() *ClusterResourceTypeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceTypeStatus.
func (*ClusterResourceTypeStatus) DeepCopyInto ¶ added in v1.1.0
func (in *ClusterResourceTypeStatus) DeepCopyInto(out *ClusterResourceTypeStatus)
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
func (in *ClusterWorkflowPlane) DeepCopy() *ClusterWorkflowPlane
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
func (in *ClusterWorkflowPlaneList) DeepCopy() *ClusterWorkflowPlaneList
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
func (in *ClusterWorkflowPlaneRef) DeepCopy() *ClusterWorkflowPlaneRef
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
func (in *ClusterWorkflowPlaneSpec) DeepCopy() *ClusterWorkflowPlaneSpec
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
func (in *ClusterWorkflowPlaneStatus) DeepCopy() *ClusterWorkflowPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterWorkflowPlaneStatus.
func (*ClusterWorkflowPlaneStatus) DeepCopyInto ¶ added in v1.0.0
func (in *ClusterWorkflowPlaneStatus) DeepCopyInto(out *ClusterWorkflowPlaneStatus)
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
func (in *ClusterWorkflowStatus) DeepCopy() *ClusterWorkflowStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Component.
func (*Component) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Component) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Component) GetConditions ¶
func (*Component) SetConditions ¶
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
func (in *ComponentProfileTrait) DeepCopy() *ComponentProfileTrait
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
func (in *ComponentReleaseComponentType) DeepCopy() *ComponentReleaseComponentType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentReleaseComponentType.
func (*ComponentReleaseComponentType) DeepCopyInto ¶ added in v1.0.0
func (in *ComponentReleaseComponentType) DeepCopyInto(out *ComponentReleaseComponentType)
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
func (in *ComponentReleaseList) DeepCopy() *ComponentReleaseList
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
func (in *ComponentReleaseOwner) DeepCopy() *ComponentReleaseOwner
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
func (in *ComponentReleaseSpec) DeepCopy() *ComponentReleaseSpec
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
func (in *ComponentReleaseStatus) DeepCopy() *ComponentReleaseStatus
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
func (in *ComponentReleaseTrait) DeepCopy() *ComponentReleaseTrait
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
func (in *ComponentWorkflowConfig) DeepCopy() *ComponentWorkflowConfig
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
func (in *ConnectionEnvBindings) DeepCopy() *ConnectionEnvBindings
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.
func (*Container) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataPlane.
func (*DataPlane) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataPlane) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DataPlane) GetConditions ¶
func (*DataPlane) SetConditions ¶
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 ¶
func (in *DeploymentPipelineList) DeepCopy() *DeploymentPipelineList
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
func (in *DeploymentPipelineRef) DeepCopy() *DeploymentPipelineRef
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 ¶
func (in *DeploymentPipelineSpec) DeepCopy() *DeploymentPipelineSpec
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 ¶
func (in *DeploymentPipelineStatus) DeepCopy() *DeploymentPipelineStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileVar.
func (*FileVar) DeepCopyInto ¶ added in v0.4.0
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
func (in *LatestResourceRelease) DeepCopy() *LatestResourceRelease
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
func (in *NotificationChannelConfig) DeepCopy() *NotificationChannelConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationChannelConfig.
func (*NotificationChannelConfig) DeepCopyInto ¶ added in v0.9.0
func (in *NotificationChannelConfig) DeepCopyInto(out *NotificationChannelConfig)
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
func (in *ObservabilityAlertActions) DeepCopy() *ObservabilityAlertActions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertActions.
func (*ObservabilityAlertActions) DeepCopyInto ¶ added in v1.0.0
func (in *ObservabilityAlertActions) DeepCopyInto(out *ObservabilityAlertActions)
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
func (in *ObservabilityAlertCondition) DeepCopy() *ObservabilityAlertCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertCondition.
func (*ObservabilityAlertCondition) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertCondition) DeepCopyInto(out *ObservabilityAlertCondition)
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
func (in *ObservabilityAlertIncident) DeepCopy() *ObservabilityAlertIncident
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertIncident.
func (*ObservabilityAlertIncident) DeepCopyInto ¶ added in v1.0.0
func (in *ObservabilityAlertIncident) DeepCopyInto(out *ObservabilityAlertIncident)
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
func (in *ObservabilityAlertNotifications) DeepCopy() *ObservabilityAlertNotifications
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertNotifications.
func (*ObservabilityAlertNotifications) DeepCopyInto ¶ added in v1.0.0
func (in *ObservabilityAlertNotifications) DeepCopyInto(out *ObservabilityAlertNotifications)
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
func (in *ObservabilityAlertRule) DeepCopy() *ObservabilityAlertRule
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
func (in *ObservabilityAlertRuleList) DeepCopy() *ObservabilityAlertRuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertRuleList.
func (*ObservabilityAlertRuleList) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertRuleList) DeepCopyInto(out *ObservabilityAlertRuleList)
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
func (in *ObservabilityAlertRuleSpec) DeepCopy() *ObservabilityAlertRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertRuleSpec.
func (*ObservabilityAlertRuleSpec) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertRuleSpec) DeepCopyInto(out *ObservabilityAlertRuleSpec)
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
func (in *ObservabilityAlertRuleStatus) DeepCopy() *ObservabilityAlertRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertRuleStatus.
func (*ObservabilityAlertRuleStatus) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertRuleStatus) DeepCopyInto(out *ObservabilityAlertRuleStatus)
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
func (in *ObservabilityAlertSource) DeepCopy() *ObservabilityAlertSource
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
func (in *ObservabilityAlertsNotificationChannel) DeepCopy() *ObservabilityAlertsNotificationChannel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertsNotificationChannel.
func (*ObservabilityAlertsNotificationChannel) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertsNotificationChannel) DeepCopyInto(out *ObservabilityAlertsNotificationChannel)
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
func (in *ObservabilityAlertsNotificationChannel) DeepCopyObject() runtime.Object
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
func (in *ObservabilityAlertsNotificationChannelList) DeepCopy() *ObservabilityAlertsNotificationChannelList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertsNotificationChannelList.
func (*ObservabilityAlertsNotificationChannelList) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertsNotificationChannelList) DeepCopyInto(out *ObservabilityAlertsNotificationChannelList)
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
func (in *ObservabilityAlertsNotificationChannelList) DeepCopyObject() runtime.Object
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
func (in *ObservabilityAlertsNotificationChannelSpec) DeepCopy() *ObservabilityAlertsNotificationChannelSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertsNotificationChannelSpec.
func (*ObservabilityAlertsNotificationChannelSpec) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertsNotificationChannelSpec) DeepCopyInto(out *ObservabilityAlertsNotificationChannelSpec)
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
func (in *ObservabilityAlertsNotificationChannelStatus) DeepCopy() *ObservabilityAlertsNotificationChannelStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityAlertsNotificationChannelStatus.
func (*ObservabilityAlertsNotificationChannelStatus) DeepCopyInto ¶ added in v0.9.0
func (in *ObservabilityAlertsNotificationChannelStatus) DeepCopyInto(out *ObservabilityAlertsNotificationChannelStatus)
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
func (in *ObservabilityPlaneList) DeepCopy() *ObservabilityPlaneList
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
func (in *ObservabilityPlaneRef) DeepCopy() *ObservabilityPlaneRef
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
func (in *ObservabilityPlaneSpec) DeepCopy() *ObservabilityPlaneSpec
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
func (in *ObservabilityPlaneStatus) DeepCopy() *ObservabilityPlaneStatus
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
func (in *PendingResourceDependency) DeepCopy() *PendingResourceDependency
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PendingResourceDependency.
func (*PendingResourceDependency) DeepCopyInto ¶ added in v1.1.0
func (in *PendingResourceDependency) DeepCopyInto(out *PendingResourceDependency)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Project.
func (*Project) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Project) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Project) GetConditions ¶
func (*Project) SetConditions ¶
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 ¶
func (in *RegistryAuthentication) DeepCopy() *RegistryAuthentication
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
func (in *ReleaseBindingStatus) DeepCopy() *ReleaseBindingStatus
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
func (in *RenderedManifestStatus) DeepCopy() *RenderedManifestStatus
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
func (in *RenderedReleaseOwner) DeepCopy() *RenderedReleaseOwner
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
func (in *RenderedReleaseStatus) DeepCopy() *RenderedReleaseStatus
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
func (in *ResolvedResourceOutput) DeepCopy() *ResolvedResourceOutput
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (*Resource) DeepCopyInto ¶
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
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Resource) GetConditions ¶ added in v1.1.0
func (*Resource) SetConditions ¶ added in v1.1.0
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
func (in *ResourceDependencyTarget) DeepCopy() *ResourceDependencyTarget
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
func (in *ResourceReleaseBinding) DeepCopy() *ResourceReleaseBinding
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
func (in *ResourceReleaseBindingList) DeepCopy() *ResourceReleaseBindingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReleaseBindingList.
func (*ResourceReleaseBindingList) DeepCopyInto ¶ added in v1.1.0
func (in *ResourceReleaseBindingList) DeepCopyInto(out *ResourceReleaseBindingList)
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
func (in *ResourceReleaseBindingOwner) DeepCopy() *ResourceReleaseBindingOwner
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReleaseBindingOwner.
func (*ResourceReleaseBindingOwner) DeepCopyInto ¶ added in v1.1.0
func (in *ResourceReleaseBindingOwner) DeepCopyInto(out *ResourceReleaseBindingOwner)
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
func (in *ResourceReleaseBindingSpec) DeepCopy() *ResourceReleaseBindingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReleaseBindingSpec.
func (*ResourceReleaseBindingSpec) DeepCopyInto ¶ added in v1.1.0
func (in *ResourceReleaseBindingSpec) DeepCopyInto(out *ResourceReleaseBindingSpec)
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
func (in *ResourceReleaseBindingStatus) DeepCopy() *ResourceReleaseBindingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReleaseBindingStatus.
func (*ResourceReleaseBindingStatus) DeepCopyInto ¶ added in v1.1.0
func (in *ResourceReleaseBindingStatus) DeepCopyInto(out *ResourceReleaseBindingStatus)
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
func (in *ResourceReleaseOwner) DeepCopy() *ResourceReleaseOwner
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
func (in *ResourceReleaseResourceType) DeepCopy() *ResourceReleaseResourceType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReleaseResourceType.
func (*ResourceReleaseResourceType) DeepCopyInto ¶ added in v1.1.0
func (in *ResourceReleaseResourceType) DeepCopyInto(out *ResourceReleaseResourceType)
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
func (in *ResourceReleaseStatus) DeepCopy() *ResourceReleaseStatus
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
func (in *ResourceTypeManifest) DeepCopy() *ResourceTypeManifest
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.
func (*RoleRef) DeepCopyInto ¶ added in v0.14.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SMTPAuth.
func (*SMTPAuth) DeepCopyInto ¶ added in v0.9.0
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Schema.
func (*Schema) DeepCopyInto ¶
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
func (in *SecretReferenceStatus) DeepCopy() *SecretReferenceStatus
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
func (in *SecretStoreReference) DeepCopy() *SecretStoreReference
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 ¶
func (in *TargetEnvironmentRef) DeepCopy() *TargetEnvironmentRef
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Trait.
func (*Trait) DeepCopyInto ¶ added in v0.4.0
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
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TraitList.
func (*TraitList) DeepCopyInto ¶ added in v0.4.0
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
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TraitRef.
func (*TraitRef) DeepCopyInto ¶ added in v0.16.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TraitSpec.
func (*TraitSpec) DeepCopyInto ¶ added in v0.4.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueFrom.
func (*ValueFrom) DeepCopyInto ¶ added in v0.4.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workflow.
func (*Workflow) DeepCopyInto ¶ added in v0.4.0
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
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workload.
func (*Workload) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Workload) DeepCopyObject ¶
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
func (in *WorkloadDependencies) DeepCopy() *WorkloadDependencies
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
func (in *WorkloadOverrideTemplateSpec) DeepCopy() *WorkloadOverrideTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadOverrideTemplateSpec.
func (*WorkloadOverrideTemplateSpec) DeepCopyInto ¶ added in v0.5.0
func (in *WorkloadOverrideTemplateSpec) DeepCopyInto(out *WorkloadOverrideTemplateSpec)
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
func (in *WorkloadResourceDependency) DeepCopy() *WorkloadResourceDependency
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadResourceDependency.
func (*WorkloadResourceDependency) DeepCopyInto ¶ added in v1.1.0
func (in *WorkloadResourceDependency) DeepCopyInto(out *WorkloadResourceDependency)
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 ¶
func (in *WorkloadTemplateSpec) DeepCopy() *WorkloadTemplateSpec
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" )
Source Files
¶
- authzrole_types.go
- authzrolebinding_types.go
- clusterauthzrole_types.go
- clusterauthzrolebinding_types.go
- clustercomponenttype_types.go
- clusterdataplane_types.go
- clusterobservabilityplane_types.go
- clusterresourcetype_types.go
- clustertrait_types.go
- clusterworkflow_types.go
- clusterworkflowplane_types.go
- component_types.go
- componentrelease_types.go
- componenttype_types.go
- dataplane_types.go
- deploymentpipeline_types.go
- environment_types.go
- groupversion_info.go
- observabilityalertrule_types.go
- observabilityalertsnotificationchannel_types.go
- observabilityplane_types.go
- project_types.go
- releasebinding_types.go
- renderedrelease_types.go
- resource_types.go
- resourcerelease_types.go
- resourcereleasebinding_types.go
- resourcetype_types.go
- secretreference_types.go
- trait_types.go
- types.go
- workflow_types.go
- workflowplane_types.go
- workflowrun_types.go
- workload_types.go
- zz_generated.deepcopy.go