Skip to content

Commit d76b75b

Browse files
Merge pull request #2264 from benluddy/c-r-cache-copied-csv-selector
Don't cache copied CSVs in the controller-runtime-based controllers.
2 parents 9f5f938 + e641e76 commit d76b75b

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

Diff for: cmd/olm/manager.go

+29-2
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,58 @@ package main
22

33
import (
44
"context"
5-
"k8s.io/apimachinery/pkg/labels"
65

76
corev1 "k8s.io/api/core/v1"
7+
"k8s.io/apimachinery/pkg/labels"
8+
"k8s.io/apimachinery/pkg/runtime"
9+
"k8s.io/apimachinery/pkg/selection"
810
ctrl "sigs.k8s.io/controller-runtime"
911
"sigs.k8s.io/controller-runtime/pkg/cache"
1012
"sigs.k8s.io/controller-runtime/pkg/log/zap"
1113

14+
operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
1215
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/install"
1316
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators"
1417
"github.com/operator-framework/operator-lifecycle-manager/pkg/feature"
1518
)
1619

20+
var (
21+
copiedLabelDoesNotExist labels.Selector
22+
)
23+
24+
func init() {
25+
requirement, err := labels.NewRequirement(operatorsv1alpha1.CopiedLabelKey, selection.DoesNotExist, nil)
26+
if err != nil {
27+
panic(err)
28+
}
29+
copiedLabelDoesNotExist = labels.NewSelector().Add(*requirement)
30+
}
31+
1732
func Manager(ctx context.Context, debug bool) (ctrl.Manager, error) {
1833
ctrl.SetLogger(zap.New(zap.UseDevMode(debug)))
1934
setupLog := ctrl.Log.WithName("setup").V(1)
2035

21-
// Setup a Manager
36+
scheme := runtime.NewScheme()
37+
if err := operators.AddToScheme(scheme); err != nil {
38+
// ctrl.NewManager needs the Scheme to be populated
39+
// up-front so that the NewCache implementation we
40+
// provide can configure custom cache behavior on
41+
// non-core types.
42+
return nil, err
43+
}
44+
2245
setupLog.Info("configuring manager")
2346
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
47+
Scheme: scheme,
2448
MetricsBindAddress: "0", // TODO(njhale): Enable metrics on non-conflicting port (not 8080)
2549
NewCache: cache.BuilderWithOptions(cache.Options{
2650
SelectorsByObject: cache.SelectorsByObject{
2751
&corev1.Secret{}: {
2852
Label: labels.SelectorFromValidatedSet(map[string]string{install.OLMManagedLabelKey: install.OLMManagedLabelValue}),
2953
},
54+
&operatorsv1alpha1.ClusterServiceVersion{}: {
55+
Label: copiedLabelDoesNotExist,
56+
},
3057
},
3158
}),
3259
})

0 commit comments

Comments
 (0)