diff --git a/pkg/reconciler/knativeeventing/knativeeventing.go b/pkg/reconciler/knativeeventing/knativeeventing.go index fdabbdde..e856014e 100644 --- a/pkg/reconciler/knativeeventing/knativeeventing.go +++ b/pkg/reconciler/knativeeventing/knativeeventing.go @@ -71,8 +71,16 @@ func (r *Reconciler) Reconcile(ctx context.Context, key string) error { if apierrs.IsNotFound(err) { // The resource was deleted r.eventings.Delete(key) + var RBAC = mf.Any(mf.ByKind("Role"), mf.ByKind("ClusterRole"), mf.ByKind("RoleBinding"), mf.ByKind("ClusterRoleBinding")) + if r.eventings.Len() == 0 { - r.config.Filter(mf.NoCRDs).Delete() + if err := r.config.Filter(mf.NoCRDs, mf.None(RBAC)).Delete(); err != nil { + return err + } + // Delete Roles last, as they may be useful for human operators to clean up. + if err := r.config.Filter(RBAC).Delete(); err != nil { + return err + } } return nil