Files
capsule/pkg/runtime/predicates/reconcile_requested.go
T
Oliver BählerandGitHub 34262c5536 fix: improve rules api (#1961)
* fix(controller): decode old object for delete requests

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* fix: preserve ca-bundles injected from external providers

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* fix: improve rules api

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

---------

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
2026-06-10 00:18:40 +02:00

40 lines
1.1 KiB
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package predicates
import (
"sigs.k8s.io/controller-runtime/pkg/event"
"github.com/projectcapsule/capsule/pkg/api/meta"
)
// Only Trigger a Reconcile when the requested annotation has changed value or was added.
type ReconcileRequestedPredicate struct{}
func (ReconcileRequestedPredicate) Create(e event.CreateEvent) bool { return false }
func (ReconcileRequestedPredicate) Delete(e event.DeleteEvent) bool { return false }
func (ReconcileRequestedPredicate) Generic(e event.GenericEvent) bool { return false }
func (ReconcileRequestedPredicate) Update(e event.UpdateEvent) bool {
if e.ObjectOld == nil || e.ObjectNew == nil {
return false
}
oldValue, oldPresent := e.ObjectOld.GetAnnotations()[meta.ReconcileAnnotation]
newValue, newPresent := e.ObjectNew.GetAnnotations()[meta.ReconcileAnnotation]
oldPresent = oldPresent && oldValue != ""
newPresent = newPresent && newValue != ""
if !newPresent {
return false
}
if !oldPresent {
return true
}
return oldValue != newValue
}