status

package
v0.0.0-...-4250f4c Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2025 License: Apache-2.0 Imports: 27 Imported by: 62

Documentation

Overview

Inspired by https://github.com/knative/pkg/tree/97c7258e3a98b81459936bc7a29dc6a9540fa357/apis, but we chose to diverge due to the unacceptably large dependency closure of knative/pkg.

Inspired by https://github.com/knative/pkg/tree/97c7258e3a98b81459936bc7a29dc6a9540fa357/apis, but we chose to diverge due to the unacceptably large dependency closure of knative/pkg.

+k8s:deepcopy-gen=package,register +kubebuilder:object:generate=false

Index

Constants

View Source
const (
	// ConditionReady specifies that the resource is ready.
	// For long-running resources.
	ConditionReady = "Ready"
	// ConditionSucceeded specifies that the resource has finished.
	// For resource which run to completion.
	ConditionSucceeded = "Succeeded"
)
View Source
const (
	MetricLabelNamespace       = "namespace"
	MetricLabelName            = "name"
	MetricLabelConditionStatus = "status"
)
View Source
const (
	MetricSubsystem      = "status_condition"
	TerminationSubsystem = "termination"
)

Variables

View Source
var ConditionCount = conditionCountMetric("", pmetrics.LabelGroup, pmetrics.LabelKind)

Cardinality is limited to # objects * # conditions

View Source
var ConditionCurrentStatusSeconds = conditionCurrentStatusSecondsMetric("", pmetrics.LabelGroup, pmetrics.LabelKind)

Cardinality is limited to # objects * # conditions NOTE: This metric is based on a requeue so it won't show the current status seconds with extremely high accuracy. This metric is useful for aggregations. If you need a high accuracy metric, use operator_status_condition_last_transition_time_seconds

View Source
var ConditionDuration = conditionDurationMetric("", nil, pmetrics.LabelGroup, pmetrics.LabelKind)

Cardinality is limited to # objects * # conditions * # objectives

View Source
var ConditionTransitionsTotal = conditionTransitionsTotalMetric("", pmetrics.LabelGroup, pmetrics.LabelKind)

Cardinality is limited to # objects * # conditions

View Source
var TerminationCurrentTimeSeconds = terminationCurrentTimeSecondsMetric("", pmetrics.LabelGroup, pmetrics.LabelKind)
View Source
var TerminationDuration = terminationDurationMetric("", nil, pmetrics.LabelGroup, pmetrics.LabelKind)

Functions

func EmitDeprecatedMetrics

func EmitDeprecatedMetrics(o *Option)

func WitMaxConcurrentReconciles

func WitMaxConcurrentReconciles(m int) func(*Option)

func WithFields

func WithFields(fields map[string]string) func(*Option)

func WithGaugeFields

func WithGaugeFields(fields map[string]string) func(*Option)

func WithGaugeLabels

func WithGaugeLabels(labels ...string) func(*Option)

func WithHistogramBuckets

func WithHistogramBuckets(buckets []float64) func(*Option)

func WithLabels

func WithLabels(labels ...string) func(*Option)

Types

type Condition

type Condition metav1.Condition

Condition aliases the upstream type and adds additional helper methods

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

func (*Condition) GetStatus

func (c *Condition) GetStatus() metav1.ConditionStatus

func (*Condition) IsFalse

func (c *Condition) IsFalse() bool

func (*Condition) IsTrue

func (c *Condition) IsTrue() bool

func (*Condition) IsUnknown

func (c *Condition) IsUnknown() bool

type ConditionSet

type ConditionSet struct {
	ConditionTypes
	// contains filtered or unexported fields
}

ConditionSet provides methods for evaluating Conditions. +k8s:deepcopy-gen=false

func (ConditionSet) Clear

func (c ConditionSet) Clear(t string) error

Clear removes the independent condition that matches the ConditionType Not implemented for dependent conditions

func (ConditionSet) Get

func (c ConditionSet) Get(t string) *Condition

Get finds and returns the Condition that matches the ConditionType previously set on Conditions.

func (ConditionSet) IsDependentCondition

func (c ConditionSet) IsDependentCondition(t string) bool

func (ConditionSet) IsTrue

func (c ConditionSet) IsTrue(conditionTypes ...string) bool

IsTrue returns true if all condition types are true.

func (ConditionSet) List

func (c ConditionSet) List() []Condition

func (ConditionSet) Root

func (c ConditionSet) Root() *Condition

Root returns the root Condition, typically "Ready" or "Succeeded"

func (ConditionSet) Set

func (c ConditionSet) Set(condition Condition) (modified bool)

Set sets or updates the Condition on Conditions for Condition.Type. If there is an update, Conditions are stored back sorted.

func (ConditionSet) SetFalse

func (c ConditionSet) SetFalse(conditionType string, reason, message string) (modified bool)

SetFalse sets the status of conditionType and the root condition to False.

func (ConditionSet) SetTrue

func (c ConditionSet) SetTrue(conditionType string) (modified bool)

SetTrue sets the status of conditionType to true with the reason, and then marks the root condition to true if all other dependents are also true.

func (ConditionSet) SetTrueWithReason

func (c ConditionSet) SetTrueWithReason(conditionType string, reason, message string) (modified bool)

SetTrueWithReason sets the status of conditionType to true with the reason, and then marks the root condition to true if all other dependents are also true.

func (ConditionSet) SetUnknown

func (c ConditionSet) SetUnknown(conditionType string) (modified bool)

SetUnknown sets the status of conditionType to Unknown and also sets the root condition to Unknown if no other dependent condition is in an error state.

func (ConditionSet) SetUnknownWithReason

func (c ConditionSet) SetUnknownWithReason(conditionType string, reason, message string) (modified bool)

SetUnknownWithReason sets the status of conditionType to Unknown with the reason, and also sets the root condition to Unknown if no other dependent condition is in an error state.

type ConditionType

type ConditionType string

ConditionType is a upper-camel-cased condition type.

type ConditionTypes

type ConditionTypes struct {
	// contains filtered or unexported fields
}

ConditionTypes is an abstract collection of the possible ConditionType values that a particular resource might expose. It also holds the "root condition" for that resource, which we define to be one of Ready or Succeeded depending on whether it is a Living or Batch process respectively.

func NewReadyConditions

func NewReadyConditions(d ...string) ConditionTypes

NewReadyConditions returns a ConditionTypes to hold the conditions for the resource. ConditionReady is used as the root condition. The set of condition types provided are those of the terminal subconditions.

func NewSucceededConditions

func NewSucceededConditions(d ...string) ConditionTypes

NewSucceededConditions returns a ConditionTypes to hold the conditions for the batch resource. ConditionSucceeded is used as the root condition. The set of condition types provided are those of the terminal subconditions.

func (ConditionTypes) For

func (r ConditionTypes) For(object Object) ConditionSet

For creates a ConditionSet from an object using the original ConditionTypes as a reference. Status must be a pointer to a struct.

type Controller

type Controller[T Object] struct {
	ConditionDuration             pmetrics.ObservationMetric
	ConditionCount                pmetrics.GaugeMetric
	ConditionCurrentStatusSeconds pmetrics.GaugeMetric
	ConditionTransitionsTotal     pmetrics.CounterMetric
	TerminationCurrentTimeSeconds pmetrics.GaugeMetric
	TerminationDuration           pmetrics.ObservationMetric
	// contains filtered or unexported fields
}

func NewController

func NewController[T Object](client client.Client, eventRecorder record.EventRecorder, opts ...option.Function[Option]) *Controller[T]

func (*Controller[T]) Reconcile

func (c *Controller[T]) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error)

func (*Controller[T]) Register

func (c *Controller[T]) Register(_ context.Context, m manager.Manager) error

type GenericObjectController

type GenericObjectController[T client.Object] struct {
	*Controller[*UnstructuredAdapter[T]]
}

func NewGenericObjectController

func NewGenericObjectController[T client.Object](client client.Client, eventRecorder record.EventRecorder, opts ...option.Function[Option]) *GenericObjectController[T]

func (*GenericObjectController[T]) Reconcile

func (*GenericObjectController[T]) Register

type Object

type Object interface {
	client.Object
	GetConditions() []Condition
	SetConditions([]Condition)
	StatusConditions() ConditionSet
}

type Option

type Option struct {
	// Current list of deprecated metrics
	// - operator_status_condition_transitions_total
	// - operator_status_condition_transition_seconds
	// - operator_status_condition_current_status_seconds
	// - operator_status_condition_count
	// - operator_termination_current_time_seconds
	// - operator_termination_duration_seconds
	EmitDeprecatedMetrics   bool
	MetricLabels            []string
	GaugeMetricLabels       []string
	MetricFields            map[string]string
	GaugeMetricFields       map[string]string
	HistogramBuckets        []float64
	MaxConcurrentReconciles int
}

type UnstructuredAdapter

type UnstructuredAdapter[T client.Object] struct {
	unstructured.Unstructured
}

UnstructuredAdapter is an adapter for the status.Object interface. unstructuredAdapter makes the assumption that status conditions are found on status.conditions path.

func NewUnstructuredAdapter

func NewUnstructuredAdapter[T client.Object](obj client.Object) *UnstructuredAdapter[T]

func (*UnstructuredAdapter[T]) GetConditions

func (u *UnstructuredAdapter[T]) GetConditions() []Condition

func (*UnstructuredAdapter[T]) GetObjectKind

func (u *UnstructuredAdapter[T]) GetObjectKind() schema.ObjectKind

func (*UnstructuredAdapter[T]) GroupVersionKind

func (u *UnstructuredAdapter[T]) GroupVersionKind() schema.GroupVersionKind

func (*UnstructuredAdapter[T]) SetConditions

func (u *UnstructuredAdapter[T]) SetConditions(conditions []Condition)

func (*UnstructuredAdapter[T]) SetGroupVersionKind

func (u *UnstructuredAdapter[T]) SetGroupVersionKind(gvk schema.GroupVersionKind)

func (*UnstructuredAdapter[T]) StatusConditions

func (u *UnstructuredAdapter[T]) StatusConditions() ConditionSet

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL