Documentation
¶
Index ¶
- func IsEmptyLabelSelector(selector *metav1.LabelSelector) bool
- func LabelSelectorsEqual(a, b *metav1.LabelSelector) bool
- func SchedulesOverlap(a, b *lightsoutv1alpha1.LightsOutSchedule) bool
- func SetupWebhookWithManager(mgr ctrl.Manager) error
- func ValidateRateLimit(rateLimit *lightsoutv1alpha1.RateLimitConfig, fieldPath string) field.ErrorList
- func ValidateScheduleCore(core *lightsoutv1alpha1.LightsOutScheduleCore) error
- func ValidateScheduleSpec(schedule *lightsoutv1alpha1.LightsOutSchedule) error
- type LightsOutNamespaceScheduleDefaulter
- type LightsOutNamespaceScheduleValidator
- func (v *LightsOutNamespaceScheduleValidator) ValidateCreate(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutNamespaceSchedule) (admission.Warnings, error)
- func (v *LightsOutNamespaceScheduleValidator) ValidateDelete(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutNamespaceSchedule) (admission.Warnings, error)
- func (v *LightsOutNamespaceScheduleValidator) ValidateUpdate(ctx context.Context, ...) (admission.Warnings, error)
- type LightsOutScheduleDefaulter
- type LightsOutScheduleValidator
- func (v *LightsOutScheduleValidator) ValidateCreate(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutSchedule) (admission.Warnings, error)
- func (v *LightsOutScheduleValidator) ValidateDelete(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutSchedule) (admission.Warnings, error)
- func (v *LightsOutScheduleValidator) ValidateUpdate(ctx context.Context, ...) (admission.Warnings, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsEmptyLabelSelector ¶
func IsEmptyLabelSelector(selector *metav1.LabelSelector) bool
IsEmptyLabelSelector checks if a selector matches everything (empty selector)
func LabelSelectorsEqual ¶
func LabelSelectorsEqual(a, b *metav1.LabelSelector) bool
LabelSelectorsEqual checks if two metav1.LabelSelector are identical
func SchedulesOverlap ¶
func SchedulesOverlap(a, b *lightsoutv1alpha1.LightsOutSchedule) bool
SchedulesOverlap checks if two schedules have overlapping namespace targets
func SetupWebhookWithManager ¶
SetupWebhookWithManager sets up the webhook with the manager
func ValidateRateLimit ¶
func ValidateRateLimit(rateLimit *lightsoutv1alpha1.RateLimitConfig, fieldPath string) field.ErrorList
ValidateRateLimit validates a RateLimitConfig
func ValidateScheduleCore ¶ added in v0.14.0
func ValidateScheduleCore(core *lightsoutv1alpha1.LightsOutScheduleCore) error
ValidateScheduleCore validates the fields shared between LightsOutSchedule and LightsOutNamespaceSchedule (cron expressions, timezone, rate limits, ArgoCD config). It does NOT check namespace-selection fields, which are global-schedule-only concerns.
func ValidateScheduleSpec ¶
func ValidateScheduleSpec(schedule *lightsoutv1alpha1.LightsOutSchedule) error
ValidateScheduleSpec validates the LightsOutSchedule spec (global, cluster-scoped). It calls ValidateScheduleCore for shared fields and additionally enforces that at least one namespace-selection field (namespaceSelector or namespaces) is set.
Types ¶
type LightsOutNamespaceScheduleDefaulter ¶ added in v0.14.0
type LightsOutNamespaceScheduleDefaulter struct{}
LightsOutNamespaceScheduleDefaulter handles defaulting
func (*LightsOutNamespaceScheduleDefaulter) Default ¶ added in v0.14.0
func (d *LightsOutNamespaceScheduleDefaulter) Default(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutNamespaceSchedule) error
Default implements admission.Defaulter
type LightsOutNamespaceScheduleValidator ¶ added in v0.14.0
LightsOutNamespaceScheduleValidator handles validation
func (*LightsOutNamespaceScheduleValidator) ValidateCreate ¶ added in v0.14.0
func (v *LightsOutNamespaceScheduleValidator) ValidateCreate(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutNamespaceSchedule) (admission.Warnings, error)
ValidateCreate implements admission.Validator
func (*LightsOutNamespaceScheduleValidator) ValidateDelete ¶ added in v0.14.0
func (v *LightsOutNamespaceScheduleValidator) ValidateDelete(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutNamespaceSchedule) (admission.Warnings, error)
ValidateDelete implements admission.Validator
func (*LightsOutNamespaceScheduleValidator) ValidateUpdate ¶ added in v0.14.0
func (v *LightsOutNamespaceScheduleValidator) ValidateUpdate(ctx context.Context, oldSchedule, schedule *lightsoutv1alpha1.LightsOutNamespaceSchedule) (admission.Warnings, error)
ValidateUpdate implements admission.Validator
type LightsOutScheduleDefaulter ¶
type LightsOutScheduleDefaulter struct{}
LightsOutScheduleDefaulter handles defaulting for LightsOutSchedule
func (*LightsOutScheduleDefaulter) Default ¶
func (d *LightsOutScheduleDefaulter) Default(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutSchedule) error
Default implements admission.Defaulter
type LightsOutScheduleValidator ¶
LightsOutScheduleValidator handles validation with access to the API server
func (*LightsOutScheduleValidator) ValidateCreate ¶
func (v *LightsOutScheduleValidator) ValidateCreate(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutSchedule) (admission.Warnings, error)
ValidateCreate implements admission.Validator
func (*LightsOutScheduleValidator) ValidateDelete ¶
func (v *LightsOutScheduleValidator) ValidateDelete(ctx context.Context, schedule *lightsoutv1alpha1.LightsOutSchedule) (admission.Warnings, error)
ValidateDelete implements admission.Validator
func (*LightsOutScheduleValidator) ValidateUpdate ¶
func (v *LightsOutScheduleValidator) ValidateUpdate(ctx context.Context, oldSchedule, schedule *lightsoutv1alpha1.LightsOutSchedule) (admission.Warnings, error)
ValidateUpdate implements admission.Validator