@@ -5,31 +5,37 @@ import (
5
5
"crypto/tls"
6
6
"crypto/x509"
7
7
"fmt"
8
- "google.golang.org/grpc/credentials"
9
- "k8s.io/klog/v2"
10
8
"math"
11
9
"net"
12
- eventce "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/event"
13
- leasece "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/lease"
14
10
"os"
15
11
"time"
16
12
13
+ "google.golang.org/grpc/credentials"
14
+
17
15
"github.com/openshift/library-go/pkg/controller/controllercmd"
18
16
"github.com/spf13/cobra"
19
17
"github.com/spf13/pflag"
20
18
"google.golang.org/grpc"
21
19
"google.golang.org/grpc/keepalive"
20
+
21
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22
22
kubeinformers "k8s.io/client-go/informers"
23
23
"k8s.io/client-go/kubernetes"
24
-
25
24
certutil "k8s.io/client-go/util/cert"
25
+ "k8s.io/klog/v2"
26
+ "k8s.io/utils/clock"
27
+
26
28
addonv1alpha1client "open-cluster-management.io/api/client/addon/clientset/versioned"
27
29
addoninformers "open-cluster-management.io/api/client/addon/informers/externalversions"
28
30
clusterv1client "open-cluster-management.io/api/client/cluster/clientset/versioned"
29
31
clusterv1informers "open-cluster-management.io/api/client/cluster/informers/externalversions"
32
+ clusterv1 "open-cluster-management.io/api/cluster/v1"
33
+
30
34
addonce "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/addon"
31
35
"open-cluster-management.io/sdk-go/pkg/cloudevents/clients/cluster"
32
36
"open-cluster-management.io/sdk-go/pkg/cloudevents/clients/csr"
37
+ eventce "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/event"
38
+ leasece "open-cluster-management.io/sdk-go/pkg/cloudevents/clients/lease"
33
39
grpcserver "open-cluster-management.io/sdk-go/pkg/cloudevents/server/grpc"
34
40
35
41
commonoptions "open-cluster-management.io/ocm/pkg/common/options"
@@ -42,7 +48,7 @@ func NewGRPCServer() *cobra.Command {
42
48
opts := commonoptions .NewOptions ()
43
49
grpcServerOpts := NewGRPCServerOptions ()
44
50
cmdConfig := opts .
45
- NewControllerCommandConfig ("grpc-server" , version .Get (), grpcServerOpts .Run )
51
+ NewControllerCommandConfig ("grpc-server" , version .Get (), grpcServerOpts .Run , clock. RealClock {} )
46
52
cmd := cmdConfig .NewCommandWithContext (context .TODO ())
47
53
cmd .Use = "grpc-server"
48
54
cmd .Short = "Start the gRPC Server"
@@ -188,7 +194,19 @@ func (o *GRPCServerOptions) Run(ctx context.Context, controllerContext *controll
188
194
}
189
195
addonInformers := addoninformers .NewSharedInformerFactory (addonClient , 10 * time .Minute )
190
196
clusterInformers := clusterv1informers .NewSharedInformerFactory (clusterClient , 30 * time .Minute )
191
- kubeInformers := kubeinformers .NewSharedInformerFactory (kubeClient , 30 * time .Minute )
197
+ kubeInformers := kubeinformers .NewSharedInformerFactoryWithOptions (kubeClient , 30 * time .Minute ,
198
+ kubeinformers .WithTweakListOptions (func (listOptions * metav1.ListOptions ) {
199
+ selector := & metav1.LabelSelector {
200
+ MatchExpressions : []metav1.LabelSelectorRequirement {
201
+ {
202
+ Key : clusterv1 .ClusterNameLabelKey ,
203
+ Operator : metav1 .LabelSelectorOpExists ,
204
+ },
205
+ },
206
+ }
207
+ listOptions .LabelSelector = metav1 .FormatLabelSelector (selector )
208
+ }))
209
+
192
210
grpcEventServer .RegisterService (
193
211
cluster .ManagedClusterEventDataType ,
194
212
services .NewClusterService (clusterClient , clusterInformers .Cluster ().V1 ().ManagedClusters ()))
@@ -207,6 +225,7 @@ func (o *GRPCServerOptions) Run(ctx context.Context, controllerContext *controll
207
225
leasece .LeaseEventDataType ,
208
226
services .NewLeaseService (kubeClient , kubeInformers .Coordination ().V1 ().Leases ()),
209
227
)
228
+
210
229
go clusterInformers .Start (ctx .Done ())
211
230
go kubeInformers .Start (ctx .Done ())
212
231
go addonInformers .Start (ctx .Done ())
0 commit comments