Help us shape the future of Go! Take the 2026 Go Developer Survey

v1alpha1

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2026 License: Apache-2.0 Imports: 6 Imported by: 5

Documentation

Overview

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

Index

Constants

View Source
const (
	// RolloutReady means the rollout is ready to serve requests.
	RolloutReady = "Ready"
	// RolloutReleasesUpdated means the available releases were updated.
	RolloutReleasesUpdated = "ReleasesUpdated"
	// RolloutGatesPassing means all gates are passing.
	RolloutGatesPassing = "GatesPassing"
	// RolloutBakeTimeRetrying means the bake time is being retried after a failure.
	RolloutBakeTimeRetrying = "BakeTimeRetrying"
	// RolloutInvalidBakeTimeConfiguration means the bake time configuration is invalid.
	RolloutInvalidBakeTimeConfiguration = "InvalidBakeTimeConfiguration"
)
View Source
const (
	BakeStatusDeploying  = "Deploying"
	BakeStatusInProgress = "InProgress"
	BakeStatusSucceeded  = "Succeeded"
	BakeStatusFailed     = "Failed"
	BakeStatusCancelled  = "Cancelled"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "kuberik.com", 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 ClusterRolloutSchedule added in v0.7.0

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

	Spec   ClusterRolloutScheduleSpec   `json:"spec,omitempty"`
	Status ClusterRolloutScheduleStatus `json:"status,omitempty"`
}

ClusterRolloutSchedule is the Schema for the clusterrolloutschedules API.

func (*ClusterRolloutSchedule) DeepCopy added in v0.7.0

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

func (*ClusterRolloutSchedule) DeepCopyInto added in v0.7.0

func (in *ClusterRolloutSchedule) DeepCopyInto(out *ClusterRolloutSchedule)

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

func (*ClusterRolloutSchedule) DeepCopyObject added in v0.7.0

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

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

type ClusterRolloutScheduleList added in v0.7.0

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

ClusterRolloutScheduleList contains a list of ClusterRolloutSchedule.

func (*ClusterRolloutScheduleList) DeepCopy added in v0.7.0

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

func (*ClusterRolloutScheduleList) DeepCopyInto added in v0.7.0

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

func (*ClusterRolloutScheduleList) DeepCopyObject added in v0.7.0

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

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

type ClusterRolloutScheduleSpec added in v0.7.0

type ClusterRolloutScheduleSpec struct {
	// RolloutSelector is a label selector to match Rollouts across namespaces.
	// +required
	RolloutSelector *metav1.LabelSelector `json:"rolloutSelector"`

	// NamespaceSelector is a label selector to match namespaces.
	// If empty, applies to all namespaces.
	// +optional
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`

	// Rules is a list of schedule rules.
	// The schedule is active if ANY rule matches the current time/date.
	// +required
	// +kubebuilder:validation:MinItems=1
	Rules []ScheduleRule `json:"rules"`

	// Timezone is the IANA timezone for the schedule (e.g., "America/New_York").
	// Defaults to "UTC" if not specified.
	// +kubebuilder:default="UTC"
	// +optional
	Timezone string `json:"timezone,omitempty"`

	// Action defines what to do when the schedule is active.
	// - "Allow": Gate passes when active, blocks when inactive
	// - "Deny": Gate blocks when active, passes when inactive
	// +kubebuilder:default="Deny"
	// +optional
	Action RolloutScheduleAction `json:"action,omitempty"`
}

ClusterRolloutScheduleSpec defines the desired state of ClusterRolloutSchedule.

func (*ClusterRolloutScheduleSpec) DeepCopy added in v0.7.0

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

func (*ClusterRolloutScheduleSpec) DeepCopyInto added in v0.7.0

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

type ClusterRolloutScheduleStatus added in v0.7.0

type ClusterRolloutScheduleStatus struct {
	// Active indicates if the schedule is currently active (any rule matches).
	// +optional
	Active bool `json:"active,omitempty"`

	// ActiveRules is a list of rule names that are currently active.
	// +optional
	ActiveRules []string `json:"activeRules,omitempty"`

	// NextTransition is the timestamp when the active state will next change.
	// +optional
	NextTransition *metav1.Time `json:"nextTransition,omitempty"`

	// ManagedGates is a list of RolloutGate names being managed by this schedule.
	// Format: "namespace/name"
	// +optional
	ManagedGates []string `json:"managedGates,omitempty"`

	// MatchingRollouts is the count of rollouts currently matched by the selectors.
	// +optional
	MatchingRollouts int `json:"matchingRollouts,omitempty"`

	// Conditions represents the current state of the schedule.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ClusterRolloutScheduleStatus defines the observed state of ClusterRolloutSchedule.

func (*ClusterRolloutScheduleStatus) DeepCopy added in v0.7.0

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

func (*ClusterRolloutScheduleStatus) DeepCopyInto added in v0.7.0

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

type DateRange added in v0.7.0

type DateRange struct {
	// Start date in YYYY-MM-DD format
	// +kubebuilder:validation:Pattern=`^\d{4}-\d{2}-\d{2}$`
	// +required
	Start string `json:"start"`

	// End date in YYYY-MM-DD format
	// +kubebuilder:validation:Pattern=`^\d{4}-\d{2}-\d{2}$`
	// +required
	End string `json:"end"`
}

DateRange represents a date range.

func (*DateRange) DeepCopy added in v0.7.0

func (in *DateRange) DeepCopy() *DateRange

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

func (*DateRange) DeepCopyInto added in v0.7.0

func (in *DateRange) DeepCopyInto(out *DateRange)

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

type DayOfWeek added in v0.7.0

type DayOfWeek string

DayOfWeek represents a day of the week. +kubebuilder:validation:Enum=Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday

const (
	Monday    DayOfWeek = "Monday"
	Tuesday   DayOfWeek = "Tuesday"
	Wednesday DayOfWeek = "Wednesday"
	Thursday  DayOfWeek = "Thursday"
	Friday    DayOfWeek = "Friday"
	Saturday  DayOfWeek = "Saturday"
	Sunday    DayOfWeek = "Sunday"
)

type DeploymentHistoryEntry

type DeploymentHistoryEntry struct {
	// ID is a unique auto-incrementing identifier for this history entry.
	// +optional
	ID *int64 `json:"id,omitempty"`

	// Version is the version information that was deployed.
	// +kubebuilder:validation:Required
	// +required
	Version VersionInfo `json:"version"`

	// Timestamp is the time when the deployment occurred.
	// +kubebuilder:validation:Required
	// +required
	Timestamp metav1.Time `json:"timestamp"`

	// Message provides a descriptive message about this deployment entry
	// This field contains human-readable information about the deployment context.
	// For automatic deployments, it includes information about gate bypass and failed bake unblock.
	// For manual deployments (when wantedVersion is specified), it can contain a custom message
	// provided via the "rollout.kuberik.com/deployment-message" annotation, or defaults to "Manual deployment".
	// +optional
	Message *string `json:"message,omitempty"`

	// TriggeredBy indicates what triggered this deployment.
	// Kind can be "User" for manual deployments triggered by a user, or "System" for automatic deployments.
	// Name contains the name of the user or system that triggered the deployment.
	// For user-triggered deployments, this is extracted from the "rollout.kuberik.com/deploy-user" annotation.
	// For system-triggered deployments, this is typically "rollout-controller".
	// +optional
	TriggeredBy *TriggeredByInfo `json:"triggeredBy,omitempty"`

	// BakeStatus tracks the bake state for this deployment (e.g., None, InProgress, Succeeded, Failed, Cancelled)
	// The bake process ensures that the deployment is stable and healthy before marking as successful.
	// +optional
	BakeStatus *string `json:"bakeStatus,omitempty"`

	// BakeStatusMessage provides details about the bake state for this deployment
	// This field contains human-readable information about why the bake status is what it is.
	// +optional
	BakeStatusMessage *string `json:"bakeStatusMessage,omitempty"`

	// BakeStartTime is the time when the bake period started for this deployment
	// This is when the rollout controller began monitoring the deployment for stability.
	// +optional
	BakeStartTime *metav1.Time `json:"bakeStartTime,omitempty"`

	// BakeEndTime is the time when the bake period ended for this deployment
	// This is when the bake process completed (either successfully or with failure).
	// +optional
	BakeEndTime *metav1.Time `json:"bakeEndTime,omitempty"`

	// FailedHealthChecks contains all health checks that failed during bake.
	// This field is populated when bake fails due to health check errors.
	// +optional
	FailedHealthChecks []FailedHealthCheck `json:"failedHealthChecks,omitempty"`
}

DeploymentHistoryEntry represents a single entry in the deployment history.

func (*DeploymentHistoryEntry) DeepCopy

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

func (*DeploymentHistoryEntry) DeepCopyInto

func (in *DeploymentHistoryEntry) DeepCopyInto(out *DeploymentHistoryEntry)

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

type FailedHealthCheck

type FailedHealthCheck struct {
	// Name is the name of the health check.
	// +kubebuilder:validation:Required
	// +required
	Name string `json:"name"`

	// Namespace is the namespace of the health check.
	// +kubebuilder:validation:Required
	// +required
	Namespace string `json:"namespace"`

	// Message is the error message from the health check.
	// +optional
	Message *string `json:"message,omitempty"`
}

FailedHealthCheck represents a health check that failed during bake.

func (*FailedHealthCheck) DeepCopy

func (in *FailedHealthCheck) DeepCopy() *FailedHealthCheck

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

func (*FailedHealthCheck) DeepCopyInto

func (in *FailedHealthCheck) DeepCopyInto(out *FailedHealthCheck)

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

type HealthCheck

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

	Spec   HealthCheckSpec   `json:"spec,omitempty"`
	Status HealthCheckStatus `json:"status,omitempty"`
}

HealthCheck is the Schema for the healthchecks API.

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

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

func (*HealthCheck) DeepCopyObject

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

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

type HealthCheckList

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

HealthCheckList contains a list of HealthCheck.

func (*HealthCheckList) DeepCopy

func (in *HealthCheckList) DeepCopy() *HealthCheckList

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

func (*HealthCheckList) DeepCopyInto

func (in *HealthCheckList) DeepCopyInto(out *HealthCheckList)

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

func (*HealthCheckList) DeepCopyObject

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

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

type HealthCheckSelectorConfig

type HealthCheckSelectorConfig struct {
	// Selector specifies the label selector for matching HealthChecks
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty"`

	// NamespaceSelector specifies the namespace selector for matching HealthChecks
	// If not specified, only HealthChecks in the same namespace as the Rollout will be considered
	// +optional
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

HealthCheckSelectorConfig defines how to select HealthChecks for a rollout.

func (*HealthCheckSelectorConfig) DeepCopy

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

func (*HealthCheckSelectorConfig) DeepCopyInto

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

func (*HealthCheckSelectorConfig) GetNamespaceSelector

func (hcsc *HealthCheckSelectorConfig) GetNamespaceSelector() *metav1.LabelSelector

GetNamespaceSelector returns the namespace selector.

func (*HealthCheckSelectorConfig) GetSelector

func (hcsc *HealthCheckSelectorConfig) GetSelector() *metav1.LabelSelector

GetSelector returns the label selector for HealthChecks.

func (*HealthCheckSelectorConfig) IsValid

func (hcsc *HealthCheckSelectorConfig) IsValid() bool

IsValid checks if the HealthCheckSelectorConfig is properly configured.

type HealthCheckSpec

type HealthCheckSpec struct {
	// Class specifies the type of health check (e.g., 'kustomization')
	// +optional
	Class *string `json:"class,omitempty"`
}

HealthCheckSpec defines the desired state of HealthCheck.

func (*HealthCheckSpec) DeepCopy

func (in *HealthCheckSpec) DeepCopy() *HealthCheckSpec

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

func (*HealthCheckSpec) DeepCopyInto

func (in *HealthCheckSpec) DeepCopyInto(out *HealthCheckSpec)

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

type HealthCheckStatus

type HealthCheckStatus struct {
	// Status indicates the health state of the check (e.g., 'Healthy', 'Unhealthy', 'Pending')
	// +optional
	Status HealthStatus `json:"status,omitempty"`

	// LastErrorTime is the timestamp of the most recent error state
	// +optional
	LastErrorTime *metav1.Time `json:"lastErrorTime,omitempty"`

	// Message provides additional details about the health status
	// +optional
	Message *string `json:"message,omitempty"`

	// LastChangeTime is the timestamp when the health status last changed
	// +optional
	LastChangeTime *metav1.Time `json:"lastChangeTime,omitempty"`
}

HealthCheckStatus defines the observed state of HealthCheck.

func (*HealthCheckStatus) DeepCopy

func (in *HealthCheckStatus) DeepCopy() *HealthCheckStatus

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

func (*HealthCheckStatus) DeepCopyInto

func (in *HealthCheckStatus) DeepCopyInto(out *HealthCheckStatus)

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

type HealthStatus

type HealthStatus string
const (
	HealthStatusHealthy   HealthStatus = "Healthy"
	HealthStatusUnhealthy HealthStatus = "Unhealthy"
	HealthStatusPending   HealthStatus = "Pending"
)

type Repository

type Repository struct {
	// The URL of the repository
	// +kubebuilder:validation:Required
	// +required
	URL string `json:"url,omitempty"`

	// The secret name containing the authentication credentials
	// +optional
	Auth *corev1.LocalObjectReference `json:"secretRef,omitempty"`
}

func (*Repository) DeepCopy

func (in *Repository) DeepCopy() *Repository

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

func (*Repository) DeepCopyInto

func (in *Repository) DeepCopyInto(out *Repository)

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

type Rollout

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

	Spec   RolloutSpec   `json:"spec,omitempty"`
	Status RolloutStatus `json:"status,omitempty"`
}

Rollout is the Schema for the rollouts API.

func (*Rollout) DeepCopy

func (in *Rollout) DeepCopy() *Rollout

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

func (*Rollout) DeepCopyInto

func (in *Rollout) DeepCopyInto(out *Rollout)

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

func (*Rollout) DeepCopyObject

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

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

type RolloutGate

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

	Spec   RolloutGateSpec   `json:"spec,omitempty"`
	Status RolloutGateStatus `json:"status,omitempty"`
}

RolloutGate is the Schema for the rolloutgates API.

func (*RolloutGate) DeepCopy

func (in *RolloutGate) DeepCopy() *RolloutGate

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

func (*RolloutGate) DeepCopyInto

func (in *RolloutGate) DeepCopyInto(out *RolloutGate)

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

func (*RolloutGate) DeepCopyObject

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

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

type RolloutGateList

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

RolloutGateList contains a list of RolloutGate.

func (*RolloutGateList) DeepCopy

func (in *RolloutGateList) DeepCopy() *RolloutGateList

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

func (*RolloutGateList) DeepCopyInto

func (in *RolloutGateList) DeepCopyInto(out *RolloutGateList)

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

func (*RolloutGateList) DeepCopyObject

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

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

type RolloutGateSpec

type RolloutGateSpec struct {
	// +required
	RolloutRef *corev1.LocalObjectReference `json:"rolloutRef"`

	// Passing is true if the RolloutGate is passing.
	// +required
	// +default=true
	Passing *bool `json:"passing,omitempty"`

	// AllowedVersions is a list of versions that Rollout can be updated to.
	// +optional
	AllowedVersions *[]string `json:"allowedVersions,omitempty"`
}

RolloutGateSpec defines the desired state of RolloutGate.

func (*RolloutGateSpec) DeepCopy

func (in *RolloutGateSpec) DeepCopy() *RolloutGateSpec

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

func (*RolloutGateSpec) DeepCopyInto

func (in *RolloutGateSpec) DeepCopyInto(out *RolloutGateSpec)

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

type RolloutGateStatus

type RolloutGateStatus struct {
}

RolloutGateStatus defines the observed state of RolloutGate.

func (*RolloutGateStatus) DeepCopy

func (in *RolloutGateStatus) DeepCopy() *RolloutGateStatus

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

func (*RolloutGateStatus) DeepCopyInto

func (in *RolloutGateStatus) DeepCopyInto(out *RolloutGateStatus)

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

type RolloutGateStatusSummary

type RolloutGateStatusSummary struct {
	// Name is the name of the gate.
	// +kubebuilder:validation:Required
	// +required
	Name string `json:"name"`

	// Passing is true if the gate is passing, false if it is blocking.
	// +optional
	Passing *bool `json:"passing,omitempty"`

	// AllowedVersions is a list of versions that are allowed by the gate.
	// +optional
	AllowedVersions []string `json:"allowedVersions"`

	// Message is a message describing the status of the gate.
	// +optional
	Message string `json:"message,omitempty"`

	// BypassGates indicates whether this gate was bypassed for the current deployment.
	// +kubebuilder:validation:Optional
	// +optional
	BypassGates bool `json:"bypassGates,omitempty"`
}

RolloutGateStatusSummary summarizes the status of a gate relevant to this rollout.

func (*RolloutGateStatusSummary) DeepCopy

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

func (*RolloutGateStatusSummary) DeepCopyInto

func (in *RolloutGateStatusSummary) DeepCopyInto(out *RolloutGateStatusSummary)

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

type RolloutList

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

RolloutList contains a list of Rollout.

func (*RolloutList) DeepCopy

func (in *RolloutList) DeepCopy() *RolloutList

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

func (*RolloutList) DeepCopyInto

func (in *RolloutList) DeepCopyInto(out *RolloutList)

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

func (*RolloutList) DeepCopyObject

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

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

type RolloutSchedule added in v0.7.0

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

	Spec   RolloutScheduleSpec   `json:"spec,omitempty"`
	Status RolloutScheduleStatus `json:"status,omitempty"`
}

RolloutSchedule is the Schema for the rolloutschedules API.

func (*RolloutSchedule) DeepCopy added in v0.7.0

func (in *RolloutSchedule) DeepCopy() *RolloutSchedule

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

func (*RolloutSchedule) DeepCopyInto added in v0.7.0

func (in *RolloutSchedule) DeepCopyInto(out *RolloutSchedule)

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

func (*RolloutSchedule) DeepCopyObject added in v0.7.0

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

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

type RolloutScheduleAction added in v0.7.0

type RolloutScheduleAction string

RolloutScheduleAction defines the action to take when the schedule is active. +kubebuilder:validation:Enum=Allow;Deny

const (
	// RolloutScheduleActionAllow allows rollouts when the schedule is active.
	// When inactive, rollouts are blocked.
	RolloutScheduleActionAllow RolloutScheduleAction = "Allow"

	// RolloutScheduleActionDeny blocks rollouts when the schedule is active.
	// When inactive, rollouts are allowed.
	RolloutScheduleActionDeny RolloutScheduleAction = "Deny"
)

type RolloutScheduleList added in v0.7.0

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

RolloutScheduleList contains a list of RolloutSchedule.

func (*RolloutScheduleList) DeepCopy added in v0.7.0

func (in *RolloutScheduleList) DeepCopy() *RolloutScheduleList

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

func (*RolloutScheduleList) DeepCopyInto added in v0.7.0

func (in *RolloutScheduleList) DeepCopyInto(out *RolloutScheduleList)

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

func (*RolloutScheduleList) DeepCopyObject added in v0.7.0

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

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

type RolloutScheduleSpec added in v0.7.0

type RolloutScheduleSpec struct {
	// RolloutSelector is a label selector to match Rollouts in the same namespace.
	// +required
	RolloutSelector *metav1.LabelSelector `json:"rolloutSelector"`

	// Rules is a list of schedule rules.
	// The schedule is active if ANY rule matches the current time/date.
	// +required
	// +kubebuilder:validation:MinItems=1
	Rules []ScheduleRule `json:"rules"`

	// Timezone is the IANA timezone for the schedule (e.g., "America/New_York").
	// Defaults to "UTC" if not specified.
	// +kubebuilder:default="UTC"
	// +optional
	Timezone string `json:"timezone,omitempty"`

	// Action defines what to do when the schedule is active.
	// - "Allow": Gate passes when active, blocks when inactive
	// - "Deny": Gate blocks when active, passes when inactive
	// +kubebuilder:default="Deny"
	// +optional
	Action RolloutScheduleAction `json:"action,omitempty"`
}

RolloutScheduleSpec defines the desired state of RolloutSchedule.

func (*RolloutScheduleSpec) DeepCopy added in v0.7.0

func (in *RolloutScheduleSpec) DeepCopy() *RolloutScheduleSpec

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

func (*RolloutScheduleSpec) DeepCopyInto added in v0.7.0

func (in *RolloutScheduleSpec) DeepCopyInto(out *RolloutScheduleSpec)

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

type RolloutScheduleStatus added in v0.7.0

type RolloutScheduleStatus struct {
	// Active indicates if the schedule is currently active (any rule matches).
	// +optional
	Active bool `json:"active,omitempty"`

	// ActiveRules is a list of rule names that are currently active.
	// +optional
	ActiveRules []string `json:"activeRules,omitempty"`

	// NextTransition is the timestamp when the active state will next change.
	// +optional
	NextTransition *metav1.Time `json:"nextTransition,omitempty"`

	// ManagedGates is a list of RolloutGate names being managed by this schedule.
	// +optional
	ManagedGates []string `json:"managedGates,omitempty"`

	// MatchingRollouts is the count of rollouts currently matched by the selector.
	// +optional
	MatchingRollouts int `json:"matchingRollouts,omitempty"`

	// Conditions represents the current state of the schedule.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RolloutScheduleStatus defines the observed state of RolloutSchedule.

func (*RolloutScheduleStatus) DeepCopy added in v0.7.0

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

func (*RolloutScheduleStatus) DeepCopyInto added in v0.7.0

func (in *RolloutScheduleStatus) DeepCopyInto(out *RolloutScheduleStatus)

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

type RolloutSpec

type RolloutSpec struct {
	// ReleasesImagePolicy specifies the ImagePolicy that provides available releases
	// +kubebuilder:validation:Required
	// +required
	ReleasesImagePolicy corev1.LocalObjectReference `json:"releasesImagePolicy,omitempty"`

	// WantedVersion specifies a specific version to deploy, overriding the automatic version selection
	// +optional
	WantedVersion *string `json:"wantedVersion,omitempty"`

	// VersionHistoryLimit defines the maximum number of entries to keep in the deployment history
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=10
	// +optional
	VersionHistoryLimit *int32 `json:"versionHistoryLimit,omitempty"`

	// AvailableReleasesRetentionDays defines how many days of available releases to keep based on creation timestamp
	// When history is full, releases older than this retention period may be removed.
	// Defaults to 7 days if not specified.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=7
	// +optional
	AvailableReleasesRetentionDays *int32 `json:"availableReleasesRetentionDays,omitempty"`

	// AvailableReleasesMinCount defines the minimum number of available releases to always keep
	// When history is full, at least this many releases will be retained regardless of other criteria.
	// Defaults to 30 if not specified.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=30
	// +optional
	AvailableReleasesMinCount *int32 `json:"availableReleasesMinCount,omitempty"`

	// BakeTime specifies how long to wait after bake starts before marking as successful
	// If no errors happen within the bake time, the rollout is baked successfully.
	// If not specified, no bake time is enforced.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +optional
	BakeTime *metav1.Duration `json:"bakeTime,omitempty"`

	// DeployTimeout specifies the maximum time to wait for bake to start before marking as failed
	// If bake doesn't start within deployTimeout (i.e., health checks don't become healthy),
	// the rollout should be marked as failed.
	// If not specified, the rollout will wait indefinitely for bake to start.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +optional
	DeployTimeout *metav1.Duration `json:"deployTimeout,omitempty"`

	// HealthCheckSelector specifies how to select HealthChecks for this rollout
	// +optional
	HealthCheckSelector *HealthCheckSelectorConfig `json:"healthCheckSelector,omitempty"`
}

RolloutSpec defines the desired state of Rollout.

func (*RolloutSpec) DeepCopy

func (in *RolloutSpec) DeepCopy() *RolloutSpec

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

func (*RolloutSpec) DeepCopyInto

func (in *RolloutSpec) DeepCopyInto(out *RolloutSpec)

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

func (*RolloutSpec) ValidateHealthCheckSelector

func (rs *RolloutSpec) ValidateHealthCheckSelector() error

ValidateHealthCheckSelector validates the health check selector configuration. Returns an error if the configuration is invalid.

type RolloutStatus

type RolloutStatus struct {
	// Conditions represents the current state of the rollout process.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// History tracks the deployment history of this Rollout.
	// Each entry contains the version deployed and the timestamp of the deployment.
	// +optional
	History []DeploymentHistoryEntry `json:"history,omitempty"`

	// AvailableReleases is a list of all releases available in the releases repository.
	// +optional
	AvailableReleases []VersionInfo `json:"availableReleases,omitempty"`

	// ReleaseCandidates is a list of releases that are candidates for the next deployment.
	// These are filtered from AvailableReleases based on deployment history and version ordering.
	// +optional
	ReleaseCandidates []VersionInfo `json:"releaseCandidates,omitempty"`

	// GatedReleaseCandidates is a list of release candidates that have passed through all gates.
	// This shows which versions are actually available for deployment after gate evaluation.
	// +optional
	GatedReleaseCandidates []VersionInfo `json:"gatedReleaseCandidates,omitempty"`

	// Gates summarizes the status of each gate relevant to this rollout.
	// +optional
	Gates []RolloutGateStatusSummary `json:"gates,omitempty"`

	// ArtifactType is the media/artifact type of the image extracted from the manifest.
	// This includes OCI artifact types, container image types, and other media types.
	// This field is set once for the entire rollout based on the latest available release.
	// +optional
	ArtifactType *string `json:"artifactType,omitempty"`

	// Source is the source information extracted from OCI annotations.
	// This typically contains the repository URL or source code location.
	// This field is set once for the entire rollout based on the latest available release.
	// +optional
	Source *string `json:"source,omitempty"`

	// Title is the title of the image extracted from OCI annotations.
	// This field is set once for the entire rollout based on the latest available release.
	// +optional
	Title *string `json:"title,omitempty"`

	// Description is the description of the image extracted from OCI annotations.
	// This field is set once for the entire rollout based on the latest available release.
	// +optional
	Description *string `json:"description,omitempty"`
}

RolloutStatus defines the observed state of Rollout.

func (*RolloutStatus) DeepCopy

func (in *RolloutStatus) DeepCopy() *RolloutStatus

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

func (*RolloutStatus) DeepCopyInto

func (in *RolloutStatus) DeepCopyInto(out *RolloutStatus)

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

type ScheduleRule added in v0.7.0

type ScheduleRule struct {
	// Name is an optional identifier for this rule
	// +optional
	Name string `json:"name,omitempty"`

	// TimeRange restricts the rule to specific times of day
	// +optional
	TimeRange *TimeRange `json:"timeRange,omitempty"`

	// DaysOfWeek restricts the rule to specific days of the week
	// +optional
	DaysOfWeek []DayOfWeek `json:"daysOfWeek,omitempty"`

	// DateRange restricts the rule to specific date range
	// +optional
	DateRange *DateRange `json:"dateRange,omitempty"`
}

ScheduleRule defines a time-based rule. The schedule is active if the current time/date matches this rule.

func (*ScheduleRule) DeepCopy added in v0.7.0

func (in *ScheduleRule) DeepCopy() *ScheduleRule

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

func (*ScheduleRule) DeepCopyInto added in v0.7.0

func (in *ScheduleRule) DeepCopyInto(out *ScheduleRule)

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

type TimeRange added in v0.7.0

type TimeRange struct {
	// Start time in HH:MM format (24-hour)
	// +kubebuilder:validation:Pattern=`^([01]\d|2[0-3]):[0-5]\d$`
	// +required
	Start string `json:"start"`

	// End time in HH:MM format (24-hour)
	// +kubebuilder:validation:Pattern=`^([01]\d|2[0-3]):[0-5]\d$`
	// +required
	End string `json:"end"`
}

TimeRange represents a time range within a day.

func (*TimeRange) DeepCopy added in v0.7.0

func (in *TimeRange) DeepCopy() *TimeRange

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

func (*TimeRange) DeepCopyInto added in v0.7.0

func (in *TimeRange) DeepCopyInto(out *TimeRange)

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

type TriggeredByInfo added in v0.6.0

type TriggeredByInfo struct {
	// Kind indicates the type of trigger: "User" for manual deployments triggered by a user,
	// or "System" for automatic deployments triggered by the rollout controller.
	// +kubebuilder:validation:Enum=User;System
	// +kubebuilder:validation:Required
	// +required
	Kind string `json:"kind"`

	// Name contains the name of the user or system that triggered the deployment.
	// For user-triggered deployments, this is extracted from the "rollout.kuberik.com/deploy-user" annotation.
	// For system-triggered deployments, this is typically "rollout-controller".
	// +kubebuilder:validation:Required
	// +required
	Name string `json:"name"`
}

TriggeredByInfo indicates what triggered a deployment.

func (*TriggeredByInfo) DeepCopy added in v0.6.0

func (in *TriggeredByInfo) DeepCopy() *TriggeredByInfo

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

func (*TriggeredByInfo) DeepCopyInto added in v0.6.0

func (in *TriggeredByInfo) DeepCopyInto(out *TriggeredByInfo)

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

type VersionInfo

type VersionInfo struct {
	// Tag is the image tag (e.g., "v1.2.3", "latest").
	// +kubebuilder:validation:Required
	// +required
	Tag string `json:"tag"`

	// Digest is the image digest if available from the ImagePolicy.
	// +optional
	Digest *string `json:"digest,omitempty"`

	// Version is the semantic version extracted from OCI annotations if available.
	// +optional
	Version *string `json:"version,omitempty"`

	// Revision is the revision information extracted from OCI annotations if available.
	// +optional
	Revision *string `json:"revision,omitempty"`

	// Created is the creation timestamp extracted from OCI annotations if available.
	// +optional
	Created *metav1.Time `json:"created,omitempty"`
}

VersionInfo represents detailed information about a version.

func (*VersionInfo) DeepCopy

func (in *VersionInfo) DeepCopy() *VersionInfo

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

func (*VersionInfo) DeepCopyInto

func (in *VersionInfo) DeepCopyInto(out *VersionInfo)

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

Jump to

Keyboard shortcuts

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