Skip to content

Commit

Permalink
operators/catalog: don't watch copied CSVs
Browse files Browse the repository at this point in the history
As far as I can tell, we never do anything with them.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
  • Loading branch information
stevekuznetsov committed Aug 2, 2023
1 parent 97071af commit 8d1fb74
Show file tree
Hide file tree
Showing 6 changed files with 573 additions and 122 deletions.
4 changes: 3 additions & 1 deletion pkg/controller/operators/catalog/operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,9 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
// Fields are pruned from local copies of the objects managed
// by this informer in order to reduce cached size.
prunedCSVInformer := cache.NewSharedIndexInformer(
pruning.NewListerWatcher(op.client, metav1.NamespaceAll, func(*metav1.ListOptions) {}, pruning.PrunerFunc(func(csv *v1alpha1.ClusterServiceVersion) {
pruning.NewListerWatcher(op.client, metav1.NamespaceAll, func(options *metav1.ListOptions) {
options.LabelSelector = fmt.Sprintf("!%s", v1alpha1.CopiedLabelKey)
}, pruning.PrunerFunc(func(csv *v1alpha1.ClusterServiceVersion) {
*csv = v1alpha1.ClusterServiceVersion{
TypeMeta: csv.TypeMeta,
ObjectMeta: metav1.ObjectMeta{
Expand Down
14 changes: 8 additions & 6 deletions pkg/controller/operators/olm/operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ func newOperatorWithConfig(ctx context.Context, config *operatorConfig) (*Operat
if err := k8sscheme.AddToScheme(scheme); err != nil {
return nil, err
}
if err := metav1.AddMetaToScheme(scheme); err != nil {
return nil, err
}

op := &Operator{
Operator: queueOperator,
Expand Down Expand Up @@ -208,8 +211,7 @@ func newOperatorWithConfig(ctx context.Context, config *operatorConfig) (*Operat
return nil, err
}

// A separate informer solely for CSV copies. Fields
// are pruned from local copies of the objects managed
// A separate informer solely for CSV copies. Object metadata requests are used
// by this informer in order to reduce cached size.
gvr := v1alpha1.SchemeGroupVersion.WithResource("clusterserviceversions")
copiedCSVInformer := metadatainformer.NewFilteredMetadataInformer(
Expand All @@ -221,18 +223,18 @@ func newOperatorWithConfig(ctx context.Context, config *operatorConfig) (*Operat
func(options *metav1.ListOptions) {
options.LabelSelector = v1alpha1.CopiedLabelKey
},
)
op.copiedCSVLister = metadatalister.New(copiedCSVInformer.Informer().GetIndexer(), gvr)
).Informer()
op.copiedCSVLister = metadatalister.New(copiedCSVInformer.GetIndexer(), gvr)

// Register separate queue for gcing copied csvs
copiedCSVGCQueue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), fmt.Sprintf("%s/csv-gc", namespace))
op.copiedCSVGCQueueSet.Set(namespace, copiedCSVGCQueue)
copiedCSVGCQueueInformer, err := queueinformer.NewQueueInformer(
ctx,
queueinformer.WithInformer(copiedCSVInformer.Informer()),
queueinformer.WithInformer(copiedCSVInformer),
queueinformer.WithLogger(op.logger),
queueinformer.WithQueue(copiedCSVGCQueue),
queueinformer.WithIndexer(copiedCSVInformer.Informer().GetIndexer()),
queueinformer.WithIndexer(copiedCSVInformer.GetIndexer()),
queueinformer.WithSyncer(queueinformer.LegacySyncHandler(op.syncGcCsv).ToSyncer()),
)
if err != nil {
Expand Down

0 comments on commit 8d1fb74

Please sign in to comment.