predicates

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package predicates implements predicate utilities.

Package predicates implements predicate utilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func All

func All(logger logr.Logger, predicates ...predicate.Funcs) predicate.Funcs

All returns a predicate that returns true only if all given predicates return true.

func Any

func Any(logger logr.Logger, predicates ...predicate.Funcs) predicate.Funcs

Any returns a predicate that returns true only if any given predicate returns true.

func CronJobNotSuspend

func CronJobNotSuspend(logger logr.Logger) predicate.Funcs

func MinerSetCreateNotPaused

func MinerSetCreateNotPaused(logger logr.Logger) predicate.Funcs

MinerSetCreateNotPaused returns a predicate that returns true for a create event when a minerset has Spec.Paused set as false it also returns true if the resource provided is not a MinerSet to allow for use with controller-runtime NewControllerManagedBy.

func MinerSetUnpaused

func MinerSetUnpaused(logger logr.Logger) predicate.Funcs

MinerSetUnpaused returns a Predicate that returns true on MinerSet creation events where MinerSet.Spec.Paused is false and Update events when MinerSet.Spec.Paused transitions to false. This implements a common requirement for many minerset-api and provider controllers (such as MinerSet Infrastructure controllers) to resume reconciliation when the MinerSet is unpaused. Example use:

err := controller.Watch(
    &source.Kind{Type: &v1beta1.MinerSet{}},
    &handler.EnqueueRequestsFromMapFunc{
        ToRequests: minersetToMiners,
    },
    predicates.MinerSetUnpaused(r.Log),
)

func MinerSetUpdateUnpaused

func MinerSetUpdateUnpaused(logger logr.Logger) predicate.Funcs

MinerSetUpdateUnpaused returns a predicate that returns true for an update event when a minerset has Spec.Paused changed from true to false it also returns true if the resource provided is not a MinerSet to allow for use with controller-runtime NewControllerManagedBy.

func ResourceHasFilterLabel

func ResourceHasFilterLabel(logger logr.Logger, labelValue string) predicate.Funcs

ResourceHasFilterLabel returns a predicate that returns true only if the provided resource contains a label with the WatchLabel key and the configured label value exactly.

func ResourceNotPaused

func ResourceNotPaused(logger logr.Logger) predicate.Funcs

ResourceNotPaused returns a Predicate that returns true only if the provided resource does not contain the paused annotation. This implements a common requirement for all cluster-api and provider controllers skip reconciliation when the paused annotation is present for a resource. Example use:

func (r *MyReconciler) SetupWithManager(mgr ctrl.Manager, options controller.Options) error {
	controller, err := ctrl.NewControllerManagedBy(mgr).
		For(&v1.MyType{}).
		WithOptions(options).
		WithEventFilter(util.ResourceNotPaused(r.Log)).
		Build(r)
	return err
}

func ResourceNotPausedAndHasFilterLabel

func ResourceNotPausedAndHasFilterLabel(logger logr.Logger, labelValue string) predicate.Funcs

ResourceNotPausedAndHasFilterLabel returns a predicate that returns true only if the ResourceNotPaused and ResourceHasFilterLabel predicates return true.

Types

This section is empty.

Jump to

Keyboard shortcuts

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