Skip to content

Commit ecac3be

Browse files
committed
refactor(openshift): use a label selector to filter copied csvs
Signed-off-by: Nick Hale <[email protected]>
1 parent 54b66ca commit ecac3be

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

pkg/controller/operators/openshift/helpers.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88

99
semver "github.com/blang/semver/v4"
1010
configv1 "github.com/openshift/api/config/v1"
11+
"k8s.io/apimachinery/pkg/labels"
12+
"k8s.io/apimachinery/pkg/selection"
1113
utilerrors "k8s.io/apimachinery/pkg/util/errors"
1214
"sigs.k8s.io/controller-runtime/pkg/client"
1315
"sigs.k8s.io/controller-runtime/pkg/predicate"
@@ -230,17 +232,33 @@ func maxOpenShiftVersion(csv *operatorsv1alpha1.ClusterServiceVersion) (*semver.
230232
return max, nil
231233
}
232234

235+
func notCopiedSelector() (labels.Selector, error) {
236+
requirement, err := labels.NewRequirement(operatorsv1alpha1.CopiedLabelKey, selection.DoesNotExist, nil)
237+
if err != nil {
238+
return nil, err
239+
}
240+
241+
selector := labels.NewSelector()
242+
selector.Add(*requirement)
243+
244+
return selector, nil
245+
}
246+
233247
func olmOperatorRelatedObjects(ctx context.Context, cli client.Client, namespace string) ([]configv1.ObjectReference, error) {
248+
selector, err := notCopiedSelector()
249+
if err != nil {
250+
return nil, err
251+
}
252+
234253
csvList := &operatorsv1alpha1.ClusterServiceVersionList{}
235-
if err := cli.List(ctx, csvList, client.InNamespace(namespace)); err != nil {
254+
if err := cli.List(ctx, csvList, client.InNamespace(namespace), client.MatchingLabelsSelector{Selector: selector}); err != nil {
236255
return nil, err
237256
}
238257

239-
// TODO: Is there a better way to filter (server-side maybe)?
240258
var refs []configv1.ObjectReference
241259
for _, csv := range csvList.Items {
242260
if csv.IsCopied() {
243-
// Filter out copied CSVs
261+
// Filter out copied CSVs that the label selector missed
244262
continue
245263
}
246264

0 commit comments

Comments
 (0)