@@ -17,10 +17,13 @@ limitations under the License.
1717package args
1818
1919import (
20+ "time"
21+
2022 "github.com/kubernetes-sigs/kubebuilder/pkg/admission"
2123 "github.com/kubernetes-sigs/kubebuilder/pkg/controller"
2224 "k8s.io/client-go/kubernetes"
2325 "k8s.io/client-go/rest"
26+ "k8s.io/client-go/informers"
2427)
2528
2629// InjectArgs are the common arguments for initializing controllers and admission hooks
@@ -31,6 +34,9 @@ type InjectArgs struct {
3134 // KubernetesClientSet is a clientset to talk to Kuberntes apis
3235 KubernetesClientSet * kubernetes.Clientset
3336
37+ // KubernetesInformers contains a Kubernetes informers factory
38+ KubernetesInformers informers.SharedInformerFactory
39+
3440 // ControllerManager is the controller manager
3541 ControllerManager * controller.ControllerManager
3642
@@ -40,9 +46,11 @@ type InjectArgs struct {
4046
4147// CreateInjectArgs returns new arguments for initializing objects
4248func CreateInjectArgs (config * rest.Config ) InjectArgs {
49+ cs := kubernetes .NewForConfigOrDie (config )
4350 return InjectArgs {
4451 Config : config ,
45- KubernetesClientSet : kubernetes .NewForConfigOrDie (config ),
52+ KubernetesClientSet : cs ,
53+ KubernetesInformers : informers .NewSharedInformerFactory (cs , 2 * time .Minute ),
4654 ControllerManager : & controller.ControllerManager {},
4755 AdmissionHandler : & admission.AdmissionManager {},
4856 }
0 commit comments