predicates

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

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 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