Skip to content

Commit 777d61c

Browse files
committed
fix(webhooks): use a single gc queue
1 parent 9ffa1fd commit 777d61c

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

pkg/controller/operators/olm/operator.go

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -702,13 +702,14 @@ func (a *Operator) syncObject(obj interface{}) (syncError error) {
702702
a.requeueOwnerCSVs(metaObj)
703703
} else {
704704
switch metaObj.(type) {
705-
case *rbacv1.ClusterRole, *rbacv1.ClusterRoleBinding:
705+
case *rbacv1.ClusterRole, *rbacv1.ClusterRoleBinding, *admissionregistrationv1.MutatingWebhookConfiguration, *admissionregistrationv1.ValidatingWebhookConfiguration:
706706
resourceEvent := kubestate.NewResourceEvent(
707707
kubestate.ResourceUpdated,
708708
metaObj,
709709
)
710-
syncError = a.objGCQueueSet.RequeueEvent(ns, resourceEvent)
711-
logger.Debugf("syncObject - requeued update event for %v, res=%v", resourceEvent, syncError)
710+
if syncError = a.objGCQueueSet.RequeueEvent("", resourceEvent); syncError != nil {
711+
logger.WithError(syncError).Warnf("failed to requeue gc event: %v", resourceEvent)
712+
}
712713
return
713714
}
714715
}
@@ -950,36 +951,42 @@ func (a *Operator) handleClusterServiceVersionDeletion(obj interface{}) {
950951
logger.WithError(err).Warn("cannot list cluster role bindings")
951952
}
952953
for _, crb := range crbs {
953-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, crb))
954-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", crb, syncError)
954+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, crb)); err != nil {
955+
logger.WithError(err).Warnf("failed to requeue gc event: %v", crb)
956+
}
955957
}
956958

957959
crs, err := a.lister.RbacV1().ClusterRoleLister().List(ownerSelector)
958960
if err != nil {
959961
logger.WithError(err).Warn("cannot list cluster roles")
960962
}
961963
for _, cr := range crs {
962-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, cr))
963-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", cr, syncError)
964+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, cr)); err != nil {
965+
logger.WithError(err).Warnf("failed to requeue gc event: %v", cr)
966+
}
964967
}
965968

966969
webhookSelector := labels.SelectorFromSet(ownerutil.OwnerLabel(clusterServiceVersion, v1alpha1.ClusterServiceVersionKind)).String()
967970
mWebhooks, err := a.opClient.KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().List(context.TODO(), metav1.ListOptions{LabelSelector: webhookSelector})
968971
if err != nil {
969972
logger.WithError(err).Warn("cannot list MutatingWebhookConfigurations")
970973
}
971-
for _, webhook := range mWebhooks.Items {
972-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, &webhook))
973-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", webhook, syncError)
974+
for i := 0; i < len(mWebhooks.Items); i++ {
975+
webhook := mWebhooks.Items[i]
976+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, &webhook)); err != nil {
977+
logger.WithError(err).Warnf("failed to requeue gc event: %v", webhook)
978+
}
974979
}
975980

976981
vWebhooks, err := a.opClient.KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().List(context.TODO(), metav1.ListOptions{LabelSelector: webhookSelector})
977982
if err != nil {
978983
logger.WithError(err).Warn("cannot list ValidatingWebhookConfigurations")
979984
}
980-
for _, webhook := range vWebhooks.Items {
981-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, &webhook))
982-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", webhook, syncError)
985+
for i := 0; i < len(vWebhooks.Items); i++ {
986+
webhook := vWebhooks.Items[i]
987+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, &webhook)); err != nil {
988+
logger.WithError(err).Warnf("failed to requeue gc event: %v", webhook)
989+
}
983990
}
984991
}
985992

0 commit comments

Comments
 (0)