Documentation
¶
Overview ¶
Package predicates implements predicate utilities.
Index ¶
- func All(scheme *runtime.Scheme, logger logr.Logger, predicates ...predicate.Funcs) predicate.Funcs
- func Any(scheme *runtime.Scheme, logger logr.Logger, predicates ...predicate.Funcs) predicate.Funcs
- func ClusterControlPlaneInitialized(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterCreateInfraProvisioned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcsdeprecated
- func ClusterCreateNotPaused(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterHasTopology(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterPausedTransitions(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterPausedTransitionsOrInfrastructureProvisioned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterTopologyVersionChanged(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterUnpaused(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterUnpausedAndInfrastructureProvisioned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcsdeprecated
- func ClusterUpdateInfraProvisioned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ClusterUpdateUnpaused(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ResourceHasFilterLabel(scheme *runtime.Scheme, logger logr.Logger, labelValue string) predicate.Funcs
- func ResourceIsChanged(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ResourceIsNotExternallyManaged(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ResourceIsTopologyOwned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ResourceNotPaused(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
- func ResourceNotPausedAndHasFilterLabel(scheme *runtime.Scheme, logger logr.Logger, labelValue string) predicate.Funcs
- func TypedAll[T client.Object](scheme *runtime.Scheme, logger logr.Logger, ...) predicate.TypedFuncs[T]
- func TypedResourceIsChanged[T client.Object](scheme *runtime.Scheme, logger logr.Logger) predicate.TypedFuncs[T]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClusterControlPlaneInitialized ¶ added in v1.1.4
ClusterControlPlaneInitialized returns a Predicate that returns true on Update events when ControlPlaneInitializedCondition on a Cluster changes to true. Example use:
err := controller.Watch( source.Kind(cache, &clusterv1.Cluster{}), handler.EnqueueRequestsFromMapFunc(clusterToMachines) predicates.ClusterControlPlaneInitialized(mgr.GetScheme(), r.Log), )
func ClusterCreateInfraProvisioned
deprecated
added in
v1.11.0
ClusterCreateInfraProvisioned returns a predicate that returns true for a create event when the Cluster infrastructure is provisioned. It also returns true if the resource provided is not a Cluster to allow for use with controller-runtime NewControllerManagedBy.
Deprecated: This predicate is deprecated and will be removed in a future version. On creation of a cluster the status will always be empty. Because of that the predicate would never return true for InfrastructureReady.
func ClusterCreateNotPaused ¶
ClusterCreateNotPaused returns a predicate that returns true for a create event when a cluster has Spec.Paused set as false it also returns true if the resource provided is not a Cluster to allow for use with controller-runtime NewControllerManagedBy.
func ClusterHasTopology ¶ added in v0.99.99
ClusterHasTopology returns a Predicate that returns true when cluster.Spec.Topology is NOT nil and false otherwise.
func ClusterPausedTransitions ¶ added in v1.9.0
ClusterPausedTransitions returns a predicate that returns true for an update event when a cluster has Spec.Paused changed.
func ClusterPausedTransitionsOrInfrastructureProvisioned ¶ added in v1.11.0
func ClusterPausedTransitionsOrInfrastructureProvisioned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
ClusterPausedTransitionsOrInfrastructureProvisioned returns a Predicate that returns true on Cluster Update events where either Cluster.Spec.Paused transitions or Cluster.Status.Initialization.InfrastructureProvisioned transitions to true. This implements a common requirement for some cluster-api and provider controllers (such as Machine Infrastructure controllers) to resume reconciliation when the Cluster gets paused or unpaused and when the infrastructure becomes ready. Example use:
err := controller.Watch( source.Kind(cache, &clusterv1.Cluster{}), handler.EnqueueRequestsFromMapFunc(clusterToMachines) predicates.ClusterPausedTransitionsOrInfrastructureProvisioned(mgr.GetScheme(), r.Log), )
func ClusterTopologyVersionChanged ¶ added in v1.10.0
ClusterTopologyVersionChanged returns a Predicate that returns true when cluster.Spec.Topology.Version was changed.
func ClusterUnpaused ¶
ClusterUnpaused returns a Predicate that returns true on Cluster creation events where Cluster.Spec.Paused is false and Update events when Cluster.Spec.Paused transitions to false. This implements a common requirement for many cluster-api and provider controllers (such as Cluster Infrastructure controllers) to resume reconciliation when the Cluster is unpaused. Example use:
err := controller.Watch( source.Kind(cache, &clusterv1.Cluster{}), handler.EnqueueRequestsFromMapFunc(clusterToMachines) predicates.ClusterUnpaused(mgr.GetScheme(), r.Log), )
func ClusterUnpausedAndInfrastructureProvisioned
deprecated
added in
v1.11.0
func ClusterUnpausedAndInfrastructureProvisioned(scheme *runtime.Scheme, logger logr.Logger) predicate.Funcs
ClusterUnpausedAndInfrastructureProvisioned returns a Predicate that returns true on Cluster creation events where both Cluster.Spec.Paused is false and Cluster.Status.Initialization.InfrastructureProvisioned is true and Update events when either Cluster.Spec.Paused transitions to false or Cluster.Status.Initialization.InfrastructureProvisioned transitions to true. This implements a common requirement for some cluster-api and provider controllers (such as Machine Infrastructure controllers) to resume reconciliation when the Cluster is unpaused and when the infrastructure becomes ready. Example use:
err := controller.Watch( source.Kind(cache, &clusterv1.Cluster{}), handler.EnqueueRequestsFromMapFunc(clusterToMachines) predicates.ClusterUnpausedAndInfrastructureProvisioned(mgr.GetScheme(), r.Log), )
Deprecated: This predicate is deprecated and will be removed in a future version, use ClusterPausedTransitionsOrInfrastructureProvisioned instead.
func ClusterUpdateInfraProvisioned ¶ added in v1.11.0
ClusterUpdateInfraProvisioned returns a predicate that returns true for an update event when a cluster has Status.Initialization.InfrastructureProvisioned changed from false to true it also returns true if the resource provided is not a Cluster to allow for use with controller-runtime NewControllerManagedBy.
func ClusterUpdateUnpaused ¶
ClusterUpdateUnpaused returns a predicate that returns true for an update event when a cluster has Spec.Paused changed from true to false it also returns true if the resource provided is not a Cluster to allow for use with controller-runtime NewControllerManagedBy.
func ResourceHasFilterLabel ¶ added in v0.4.0
func ResourceHasFilterLabel(scheme *runtime.Scheme, 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 ResourceIsChanged ¶ added in v1.9.2
ResourceIsChanged returns a predicate that returns true only if the resource has changed. This predicate allows to drop resync events on additionally watched objects.
func ResourceIsNotExternallyManaged ¶ added in v0.4.0
ResourceIsNotExternallyManaged returns a predicate that returns true only if the resource does not contain the externally managed annotation. This implements a requirement for InfraCluster providers to be able to ignore externally managed cluster infrastructure.
func ResourceIsTopologyOwned ¶ added in v0.4.3
ResourceIsTopologyOwned returns a predicate that returns true only if the resource has the `topology.cluster.x-k8s.io/owned` label.
func ResourceNotPaused ¶
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(mgr.GetScheme(), r.Log)). Build(r) return err }
func ResourceNotPausedAndHasFilterLabel ¶ added in v0.4.0
func ResourceNotPausedAndHasFilterLabel(scheme *runtime.Scheme, logger logr.Logger, labelValue string) predicate.Funcs
ResourceNotPausedAndHasFilterLabel returns a predicate that returns true only if the ResourceNotPaused and ResourceHasFilterLabel predicates return true.
func TypedAll ¶ added in v1.9.2
func TypedAll[T client.Object](scheme *runtime.Scheme, logger logr.Logger, predicates ...predicate.TypedFuncs[T]) predicate.TypedFuncs[T]
TypedAll returns a predicate that returns true only if all given predicates return true.
func TypedResourceIsChanged ¶ added in v1.9.2
func TypedResourceIsChanged[T client.Object](scheme *runtime.Scheme, logger logr.Logger) predicate.TypedFuncs[T]
TypedResourceIsChanged returns a predicate that returns true only if the resource has changed. This predicate allows to drop resync events on additionally watched objects.
Types ¶
This section is empty.