Skip to content

Commit 35b75fe

Browse files
committed
Adds predicates to filter Nova reconciliation triggers
When a RabbitMQ notification pod restarts, the operator controller is reconciling lot of times (~40+) due to status-only updates from owned resources without any actual change in Nova CR spec The issues occured because Nova is watching all resources without predicates. this change adds inbuilt GenerationChangedPredicate to child CRs (Nova services only) to only reconcile on spec changes, not status-only updates. Related: #OSPRH-26922
1 parent d9362aa commit 35b75fe

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

internal/controller/nova_controller.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2341,12 +2341,18 @@ func (r *NovaReconciler) SetupWithManager(mgr ctrl.Manager) error {
23412341
Owns(&mariadbv1.MariaDBDatabase{}).
23422342
Owns(&mariadbv1.MariaDBAccount{}).
23432343
Owns(&keystonev1.KeystoneService{}).
2344-
Owns(&novav1.NovaAPI{}).
2345-
Owns(&novav1.NovaScheduler{}).
2346-
Owns(&novav1.NovaCell{}).
2347-
Owns(&novav1.NovaMetadata{}).
2344+
Owns(&novav1.NovaAPI{},
2345+
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
2346+
Owns(&novav1.NovaScheduler{},
2347+
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
2348+
Owns(&novav1.NovaCell{},
2349+
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
2350+
Owns(&novav1.NovaConductor{},
2351+
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
2352+
Owns(&novav1.NovaMetadata{},
2353+
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
23482354
Owns(&rabbitmqv1.TransportURL{},
2349-
builder.WithPredicates(predicate.ResourceVersionChangedPredicate{})).
2355+
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
23502356
Owns(&batchv1.Job{}).
23512357
Owns(&corev1.ServiceAccount{}).
23522358
Owns(&rbacv1.Role{}).

0 commit comments

Comments
 (0)