@@ -2,31 +2,58 @@ package main
2
2
3
3
import (
4
4
"context"
5
- "k8s.io/apimachinery/pkg/labels"
6
5
7
6
corev1 "k8s.io/api/core/v1"
7
+ "k8s.io/apimachinery/pkg/labels"
8
+ "k8s.io/apimachinery/pkg/runtime"
9
+ "k8s.io/apimachinery/pkg/selection"
8
10
ctrl "sigs.k8s.io/controller-runtime"
9
11
"sigs.k8s.io/controller-runtime/pkg/cache"
10
12
"sigs.k8s.io/controller-runtime/pkg/log/zap"
11
13
14
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
12
15
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/install"
13
16
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators"
14
17
"github.com/operator-framework/operator-lifecycle-manager/pkg/feature"
15
18
)
16
19
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
+
17
32
func Manager (ctx context.Context , debug bool ) (ctrl.Manager , error ) {
18
33
ctrl .SetLogger (zap .New (zap .UseDevMode (debug )))
19
34
setupLog := ctrl .Log .WithName ("setup" ).V (1 )
20
35
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
+
22
45
setupLog .Info ("configuring manager" )
23
46
mgr , err := ctrl .NewManager (ctrl .GetConfigOrDie (), ctrl.Options {
47
+ Scheme : scheme ,
24
48
MetricsBindAddress : "0" , // TODO(njhale): Enable metrics on non-conflicting port (not 8080)
25
49
NewCache : cache .BuilderWithOptions (cache.Options {
26
50
SelectorsByObject : cache.SelectorsByObject {
27
51
& corev1.Secret {}: {
28
52
Label : labels .SelectorFromValidatedSet (map [string ]string {install .OLMManagedLabelKey : install .OLMManagedLabelValue }),
29
53
},
54
+ & operatorsv1alpha1.ClusterServiceVersion {}: {
55
+ Label : copiedLabelDoesNotExist ,
56
+ },
30
57
},
31
58
}),
32
59
})
0 commit comments