Documentation
¶
Overview ¶
Package integration provides an unstructured resource primitive for Kubernetes integration objects that depend on external assignments and require operational status tracking and suspension support.
Index ¶
- type Builder
- func (b *Builder) Build() (*Resource, error)
- func (b *Builder) MarkClusterScoped() *Builder
- func (b *Builder) WithCustomGraceStatus(handler func(*uns.Unstructured) (concepts.GraceStatusWithReason, error)) *Builder
- func (b *Builder) WithCustomOperationalStatus(...) *Builder
- func (b *Builder) WithCustomSuspendDeletionDecision(handler func(*uns.Unstructured) bool) *Builder
- func (b *Builder) WithCustomSuspendMutation(handler func(*unstruct.Mutator) error) *Builder
- func (b *Builder) WithCustomSuspendStatus(handler func(*uns.Unstructured) (concepts.SuspensionStatusWithReason, error)) *Builder
- func (b *Builder) WithDataExtractor(extractor func(uns.Unstructured) error) *Builder
- func (b *Builder) WithGuard(guard func(uns.Unstructured) (concepts.GuardStatusWithReason, error)) *Builder
- func (b *Builder) WithMutation(m unstruct.Mutation) *Builder
- type Resource
- func (r *Resource) ConvergingStatus(op concepts.ConvergingOperation) (concepts.OperationalStatusWithReason, error)
- func (r *Resource) DeleteOnSuspend() bool
- func (r *Resource) ExtractData() error
- func (r *Resource) GraceStatus() (concepts.GraceStatusWithReason, error)
- func (r *Resource) GuardStatus() (concepts.GuardStatusWithReason, error)
- func (r *Resource) Identity() string
- func (r *Resource) Mutate(current client.Object) error
- func (r *Resource) Object() (client.Object, error)
- func (r *Resource) PreviewObject() (*uns.Unstructured, error)
- func (r *Resource) Suspend() error
- func (r *Resource) SuspensionStatus() (concepts.SuspensionStatusWithReason, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder is a configuration helper for creating and customizing an unstructured integration Resource.
It provides a fluent API for registering mutations, status handlers, and data extractors. The operational status handler is required; all other handlers default to safe no-ops when omitted.
func NewBuilder ¶
func NewBuilder(obj *uns.Unstructured) *Builder
NewBuilder initializes a new Builder with the provided unstructured object.
The object serves as the desired base state. The operational status handler must be set via WithCustomOperationalStatus before Build(). All other handlers are optional.
func (*Builder) Build ¶
Build validates the configuration and returns the initialized Resource.
It returns an error if the operational status handler has not been set.
func (*Builder) MarkClusterScoped ¶
MarkClusterScoped marks the resource as cluster-scoped.
func (*Builder) WithCustomGraceStatus ¶
func (b *Builder) WithCustomGraceStatus( handler func(*uns.Unstructured) (concepts.GraceStatusWithReason, error), ) *Builder
WithCustomGraceStatus overrides the default grace status handler. The default reports Healthy.
func (*Builder) WithCustomOperationalStatus ¶
func (b *Builder) WithCustomOperationalStatus( handler func(concepts.ConvergingOperation, *uns.Unstructured) (concepts.OperationalStatusWithReason, error), ) *Builder
WithCustomOperationalStatus sets the handler that reports the resource's operational status. This handler is required.
func (*Builder) WithCustomSuspendDeletionDecision ¶
func (b *Builder) WithCustomSuspendDeletionDecision( handler func(*uns.Unstructured) bool, ) *Builder
WithCustomSuspendDeletionDecision overrides the default delete-on-suspend decision. The default returns false (keep the resource).
func (*Builder) WithCustomSuspendMutation ¶
WithCustomSuspendMutation overrides the default suspension mutation handler. The default is a no-op.
func (*Builder) WithCustomSuspendStatus ¶
func (b *Builder) WithCustomSuspendStatus( handler func(*uns.Unstructured) (concepts.SuspensionStatusWithReason, error), ) *Builder
WithCustomSuspendStatus overrides the default suspension status handler. The default reports Suspended immediately.
func (*Builder) WithDataExtractor ¶
func (b *Builder) WithDataExtractor(extractor func(uns.Unstructured) error) *Builder
WithDataExtractor registers a function to read values from the object after it has been successfully reconciled.
func (*Builder) WithGuard ¶ added in v0.4.0
func (b *Builder) WithGuard(guard func(uns.Unstructured) (concepts.GuardStatusWithReason, error)) *Builder
WithGuard registers a guard precondition that is evaluated before the object is applied during reconciliation. If the guard returns Blocked, the object and all resources registered after it are skipped until the guard clears. Passing nil clears any previously registered guard.
type Resource ¶
type Resource struct {
// contains filtered or unexported fields
}
Resource is a high-level abstraction for managing an unstructured Kubernetes integration object within a controller's reconciliation loop.
It implements the following interfaces:
- component.Resource: for basic identity and mutation behaviour.
- concepts.Operational: for operational status tracking.
- concepts.Graceful: for health assessment during grace periods.
- concepts.Suspendable: for graceful deactivation.
- concepts.Guardable: for conditional reconciliation based on a guard precondition.
- concepts.DataExtractable: for exporting values after successful reconciliation.
The operational status handler is required. All other handlers default to safe no-ops when omitted.
func (*Resource) ConvergingStatus ¶
func (r *Resource) ConvergingStatus(op concepts.ConvergingOperation) (concepts.OperationalStatusWithReason, error)
ConvergingStatus reports the resource's operational status.
func (*Resource) DeleteOnSuspend ¶
DeleteOnSuspend determines whether the resource should be deleted from the cluster when the parent component is suspended.
func (*Resource) ExtractData ¶
ExtractData executes all registered data extractor functions against a deep copy of the reconciled object.
func (*Resource) GraceStatus ¶
func (r *Resource) GraceStatus() (concepts.GraceStatusWithReason, error)
GraceStatus provides a health assessment of the resource when it has not yet reached full readiness after the grace period expires.
func (*Resource) GuardStatus ¶ added in v0.4.0
func (r *Resource) GuardStatus() (concepts.GuardStatusWithReason, error)
GuardStatus evaluates the resource's guard precondition. If no guard was registered, the resource is unconditionally unblocked.
func (*Resource) Identity ¶
Identity returns a unique identifier for the resource derived from its GVK, namespace, and name.
func (*Resource) Mutate ¶
Mutate transforms the current state of the unstructured object into the desired state by applying all registered feature mutations and any active suspension mutation.
func (*Resource) Object ¶
Object returns a deep copy of the underlying unstructured Kubernetes object.
func (*Resource) PreviewObject ¶ added in v0.6.0
func (r *Resource) PreviewObject() (*uns.Unstructured, error)
PreviewObject returns the object as it would appear after feature mutations have been applied, without modifying the resource's internal state.
Suspension mutations are not applied; the preview reflects content state only.
func (*Resource) Suspend ¶
Suspend triggers the deactivation of the resource by registering a mutation that will be executed during the next Mutate call.
func (*Resource) SuspensionStatus ¶
func (r *Resource) SuspensionStatus() (concepts.SuspensionStatusWithReason, error)
SuspensionStatus monitors the progress of the suspension process.