@@ -29,7 +29,6 @@ import (
2929 "k8s.io/apimachinery/pkg/util/uuid"
3030 kubeapiserver "k8s.io/apiserver/pkg/server"
3131 "k8s.io/apiserver/pkg/server/healthz"
32- kubeinformers "k8s.io/client-go/informers"
3332 kubeclientset "k8s.io/client-go/kubernetes"
3433 clientgokubescheme "k8s.io/client-go/kubernetes/scheme"
3534 v1core "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -45,7 +44,6 @@ import (
4544 "github.com/kubeflow/mpi-operator/cmd/mpi-operator/app/options"
4645 mpijobclientset "github.com/kubeflow/mpi-operator/pkg/client/clientset/versioned"
4746 kubeflowscheme "github.com/kubeflow/mpi-operator/pkg/client/clientset/versioned/scheme"
48- informers "github.com/kubeflow/mpi-operator/pkg/client/informers/externalversions"
4947 controllersv1 "github.com/kubeflow/mpi-operator/pkg/controller"
5048 "github.com/kubeflow/mpi-operator/pkg/version"
5149)
@@ -82,13 +80,6 @@ func Run(opt *options.ServerOption) error {
8280 version .PrintVersionAndExit (apiVersion )
8381 }
8482
85- namespace := opt .Namespace
86- if namespace == corev1 .NamespaceAll {
87- klog .Info ("Using cluster scoped operator" )
88- } else {
89- klog .Infof ("Scoping operator to namespace %s" , namespace )
90- }
91-
9283 // To help debugging, immediately log version.
9384 klog .Infof ("%+v" , version .Info (apiVersion ))
9485
@@ -118,9 +109,23 @@ func Run(opt *options.ServerOption) error {
118109 if err != nil {
119110 return err
120111 }
121- if ! checkCRDExists (mpiJobClientSet , namespace ) {
122- klog .Info ("CRD doesn't exist. Exiting" )
123- os .Exit (1 )
112+
113+ namespaces , err := opt .Namespaces (opt .Namespace , kubeClient )
114+ if err != nil {
115+ return err
116+ }
117+
118+ if namespaces [0 ] == corev1 .NamespaceAll {
119+ klog .Info ("Using cluster scoped operator" )
120+ } else {
121+ klog .Infof ("Scoping operator to namespace %s" , namespaces )
122+ }
123+
124+ for _ , namespace := range namespaces {
125+ if ! checkCRDExists (mpiJobClientSet , namespace ) {
126+ klog .Info ("CRD doesn't exist. Exiting" )
127+ os .Exit (1 )
128+ }
124129 }
125130
126131 // Add mpi-job-controller types to the default Kubernetes Scheme so Events
@@ -132,14 +137,8 @@ func Run(opt *options.ServerOption) error {
132137
133138 // Set leader election start function.
134139 run := func (ctx context.Context ) {
135- var kubeInformerFactoryOpts []kubeinformers.SharedInformerOption
136- var kubeflowInformerFactoryOpts []informers.SharedInformerOption
137- if namespace != metav1 .NamespaceAll {
138- kubeInformerFactoryOpts = append (kubeInformerFactoryOpts , kubeinformers .WithNamespace (namespace ))
139- kubeflowInformerFactoryOpts = append (kubeflowInformerFactoryOpts , informers .WithNamespace (namespace ))
140- }
141- kubeInformerFactory := kubeinformers .NewSharedInformerFactoryWithOptions (kubeClient , 0 , kubeInformerFactoryOpts ... )
142- kubeflowInformerFactory := informers .NewSharedInformerFactoryWithOptions (mpiJobClientSet , 0 , kubeflowInformerFactoryOpts ... )
140+ kubeInformerFactory := opt .KubeInformer (namespaces , kubeClient )
141+ mpiJobInformerFactory := opt .MpiJobInformer (namespaces , mpiJobClientSet )
143142
144143 controller , err := controllersv1 .NewMPIJobController (
145144 kubeClient ,
@@ -152,14 +151,15 @@ func Run(opt *options.ServerOption) error {
152151 kubeInformerFactory .Batch ().V1 ().Jobs (),
153152 kubeInformerFactory .Core ().V1 ().Pods (),
154153 kubeInformerFactory .Scheduling ().V1 ().PriorityClasses (),
155- kubeflowInformerFactory .Kubeflow ().V2beta1 ().MPIJobs (),
156- namespace , opt .GangSchedulingName )
154+ mpiJobInformerFactory .Kubeflow ().V2beta1 ().MPIJobs (),
155+ opt .VolcanoInformer , opt .SchedulerPluginsInformer ,
156+ namespaces , opt .GangSchedulingName )
157157 if err != nil {
158158 klog .Fatalf ("Failed to setup the controller" )
159159 }
160160
161161 go kubeInformerFactory .Start (ctx .Done ())
162- go kubeflowInformerFactory .Start (ctx .Done ())
162+ go mpiJobInformerFactory .Start (ctx .Done ())
163163 if controller .PodGroupCtrl != nil {
164164 controller .PodGroupCtrl .StartInformerFactory (ctx .Done ())
165165 }
0 commit comments