Documentation
¶
Index ¶
- Constants
- func CalculateAvailableReleasesToKeep(releases []rolloutv1alpha1.VersionInfo, ...) []rolloutv1alpha1.VersionInfo
- type Clock
- type ClusterRolloutScheduleReconciler
- type HealthCheckReconciler
- type KustomizationHealthReconciler
- type KustomizationReference
- type RealClock
- type RolloutDependencyReconciler
- type RolloutReconciler
- type RolloutScheduleReconciler
Constants ¶
const ( LabelScheduleName = "gate.kuberik.com/schedule-name" LabelScheduleNamespace = "gate.kuberik.com/schedule-namespace" LabelScheduleKind = "gate.kuberik.com/schedule-kind" LabelRolloutName = "gate.kuberik.com/rollout-name" )
Label keys for schedule-managed gates
const (
LabelDependencyName = "gate.kuberik.com/dependency-name"
)
Label keys for dependency-managed gates.
Variables ¶
This section is empty.
Functions ¶
func CalculateAvailableReleasesToKeep ¶ added in v0.6.0
func CalculateAvailableReleasesToKeep( releases []rolloutv1alpha1.VersionInfo, history []rolloutv1alpha1.DeploymentHistoryEntry, cutoffTime time.Time, minReleases int, ) []rolloutv1alpha1.VersionInfo
CalculateAvailableReleasesToKeep determines which available releases should be retained based on multiple criteria. It returns a slice of VersionInfo that should be kept. releases: the current list of available releases (sorted oldest to newest) history: the current deployment history cutoffTime: releases older than this may be removed (unless kept by other criteria) minReleases: keep at least this many newest releases
Types ¶
type ClusterRolloutScheduleReconciler ¶ added in v0.7.0
type ClusterRolloutScheduleReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
Clock Clock
}
ClusterRolloutScheduleReconciler reconciles a ClusterRolloutSchedule object
func (*ClusterRolloutScheduleReconciler) Reconcile ¶ added in v0.7.0
func (r *ClusterRolloutScheduleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*ClusterRolloutScheduleReconciler) SetupWithManager ¶ added in v0.7.0
func (r *ClusterRolloutScheduleReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type HealthCheckReconciler ¶
HealthCheckReconciler reconciles a HealthCheck object
func (*HealthCheckReconciler) Reconcile ¶
func (r *HealthCheckReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state. This controller handles generic HealthCheck logic and delegates specific health checking to specialized controllers based on the class. It also watches Rollout resources to reset health checks when deployments happen.
func (*HealthCheckReconciler) ResetHealthCheckStatus ¶
func (r *HealthCheckReconciler) ResetHealthCheckStatus(ctx context.Context, healthCheck *rolloutv1alpha1.HealthCheck) error
ResetHealthCheckStatus resets the HealthCheck status to Pending This should be called when a new deployment is detected
func (*HealthCheckReconciler) SetupWithManager ¶
func (r *HealthCheckReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type KustomizationHealthReconciler ¶
KustomizationHealthReconciler reconciles a KustomizationHealth object
func (*KustomizationHealthReconciler) Reconcile ¶
func (r *KustomizationHealthReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*KustomizationHealthReconciler) SetupWithManager ¶
func (r *KustomizationHealthReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type KustomizationReference ¶
KustomizationReference represents a reference to a kustomization
type RolloutDependencyReconciler ¶ added in v0.9.0
type RolloutDependencyReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
}
RolloutDependencyReconciler reconciles a RolloutDependency object.
It translates an inter-service version dependency into the gate vocabulary the Rollout controller already understands: for each RolloutDependency it maintains one RolloutGate whose allowedVersions list holds exactly those consumer releases whose contract requirement is satisfied by what the provider Rollout has deployed. Rollout admission itself is untouched — it keeps evaluating gates the same way it does for schedules and manual approvals.
func (*RolloutDependencyReconciler) Reconcile ¶ added in v0.9.0
func (r *RolloutDependencyReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile evaluates a RolloutDependency and syncs the RolloutGate it manages.
func (*RolloutDependencyReconciler) SetupWithManager ¶ added in v0.9.0
func (r *RolloutDependencyReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
Dependencies are re-evaluated whenever either side moves: the provider, because it may have just deployed a newer contract version, and the consumer, because it may have just discovered new releases to admit or block.
type RolloutReconciler ¶
type RolloutReconciler struct {
client.Client
Scheme *runtime.Scheme
Clock Clock
Recorder record.EventRecorder
}
RolloutReconciler reconciles a Rollout object
func (*RolloutReconciler) Reconcile ¶
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*RolloutReconciler) SetupWithManager ¶
func (r *RolloutReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type RolloutScheduleReconciler ¶ added in v0.7.0
type RolloutScheduleReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
Clock Clock
}
RolloutScheduleReconciler reconciles a RolloutSchedule object
func (*RolloutScheduleReconciler) Reconcile ¶ added in v0.7.0
func (r *RolloutScheduleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*RolloutScheduleReconciler) SetupWithManager ¶ added in v0.7.0
func (r *RolloutScheduleReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.