Skip to content

Commit 2f0aafd

Browse files
author
Per Goncalves da Silva
committed
fix2
Signed-off-by: Per Goncalves da Silva <[email protected]>
1 parent 8efffa2 commit 2f0aafd

File tree

6 files changed

+54
-8
lines changed

6 files changed

+54
-8
lines changed

staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
238238
Namespace: csv.Namespace,
239239
Labels: csv.Labels,
240240
Annotations: csv.Annotations,
241+
UID: csv.UID,
241242
},
242243
Spec: v1alpha1.ClusterServiceVersionSpec{
243244
CustomResourceDefinitions: csv.Spec.CustomResourceDefinitions,
@@ -745,10 +746,15 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
745746
// Namespace sync for resolving subscriptions
746747
namespaceInformer := informers.NewSharedInformerFactory(op.opClient.KubernetesInterface(), resyncPeriod()).Core().V1().Namespaces()
747748
op.lister.CoreV1().RegisterNamespaceLister(namespaceInformer.Lister())
748-
op.nsResolveQueue = workqueue.NewTypedRateLimitingQueueWithConfig[any](workqueue.DefaultTypedControllerRateLimiter[any](),
749+
op.nsResolveQueue = workqueue.NewTypedRateLimitingQueueWithConfig[any](
750+
workqueue.NewTypedItemExponentialFailureRateLimiter[any](1*time.Second, 30*time.Second),
749751
workqueue.TypedRateLimitingQueueConfig[any]{
750752
Name: "resolve",
751753
})
754+
//op.nsResolveQueue = workqueue.NewTypedRateLimitingQueueWithConfig[any](workqueue.DefaultTypedControllerRateLimiter[any](),
755+
// workqueue.TypedRateLimitingQueueConfig[any]{
756+
// Name: "resolve",
757+
// })
752758
namespaceQueueInformer, err := queueinformer.NewQueueInformer(
753759
ctx,
754760
queueinformer.WithLogger(op.logger),
@@ -1313,6 +1319,9 @@ func (o *Operator) syncResolvingNamespace(obj interface{}) error {
13131319
// from users/admins. Resyncing the namespace again is unlikely to resolve
13141320
// not-satisfiable error
13151321
if _, ok := err.(solver.NotSatisfiable); ok {
1322+
if err := o.ResyncInformers(); err != nil {
1323+
logger.WithError(err).Infof("error resyncing informers")
1324+
}
13161325
logger.WithError(err).Debug("resolution failed")
13171326
_, updateErr := o.updateSubscriptionStatuses(
13181327
o.setSubsCond(subs, v1alpha1.SubscriptionCondition{
@@ -1325,7 +1334,7 @@ func (o *Operator) syncResolvingNamespace(obj interface{}) error {
13251334
logger.WithError(updateErr).Debug("failed to update subs conditions")
13261335
return updateErr
13271336
}
1328-
return nil
1337+
return err
13291338
}
13301339

13311340
_, updateErr := o.updateSubscriptionStatuses(
@@ -1736,7 +1745,8 @@ func (o *Operator) setSubsCond(subs []*v1alpha1.Subscription, cond v1alpha1.Subs
17361745

17371746
for _, sub := range subs {
17381747
subCond := sub.Status.GetCondition(cond.Type)
1739-
if subCond.Equals(cond) {
1748+
1749+
if subCond.Type == cond.Type && subCond.Status == cond.Status && subCond.Reason == cond.Reason {
17401750
continue
17411751
}
17421752
sub.Status.LastUpdated = lastUpdated

staging/operator-lifecycle-manager/pkg/controller/registry/resolver/step_resolver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func NewOperatorStepResolver(lister operatorlister.OperatorLister, client versio
9191
}
9292

9393
func (r *OperatorStepResolver) ResolveSteps(namespace string) ([]*v1alpha1.Step, []v1alpha1.BundleLookup, []*v1alpha1.Subscription, error) {
94-
subs, err := r.listSubscriptions(namespace)
94+
subs, err := r.subLister.Subscriptions(namespace).List(labels.Everything())
9595
if err != nil {
9696
return nil, nil, nil, err
9797
}

staging/operator-lifecycle-manager/pkg/lib/queueinformer/queueinformer_operator.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ type Operator interface {
5454
// RunInformers starts the Operator's underlying Informers.
5555
RunInformers(ctx context.Context)
5656

57+
ResyncInformers() error
58+
5759
// Run starts the Operator and its underlying Informers.
5860
Run(ctx context.Context)
5961
}
@@ -197,6 +199,17 @@ func (o *operator) Run(ctx context.Context) {
197199
})
198200
}
199201

202+
func (o *operator) ResyncInformers() error {
203+
o.mu.Lock()
204+
defer o.mu.Unlock()
205+
for _, informer := range o.informers {
206+
if err := informer.GetStore().Resync(); err != nil {
207+
return err
208+
}
209+
}
210+
return nil
211+
}
212+
200213
func (o *operator) start(ctx context.Context) error {
201214
defer close(o.ready)
202215

vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go

Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/step_resolver.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/queueinformer/queueinformer_operator.go

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)