@@ -17,10 +17,13 @@ limitations under the License.
17
17
package args
18
18
19
19
import (
20
+ "time"
21
+
20
22
"github.com/kubernetes-sigs/kubebuilder/pkg/admission"
21
23
"github.com/kubernetes-sigs/kubebuilder/pkg/controller"
22
24
"k8s.io/client-go/kubernetes"
23
25
"k8s.io/client-go/rest"
26
+ "k8s.io/client-go/informers"
24
27
)
25
28
26
29
// InjectArgs are the common arguments for initializing controllers and admission hooks
@@ -31,6 +34,9 @@ type InjectArgs struct {
31
34
// KubernetesClientSet is a clientset to talk to Kuberntes apis
32
35
KubernetesClientSet * kubernetes.Clientset
33
36
37
+ // KubernetesInformers contains a Kubernetes informers factory
38
+ KubernetesInformers informers.SharedInformerFactory
39
+
34
40
// ControllerManager is the controller manager
35
41
ControllerManager * controller.ControllerManager
36
42
@@ -40,9 +46,11 @@ type InjectArgs struct {
40
46
41
47
// CreateInjectArgs returns new arguments for initializing objects
42
48
func CreateInjectArgs (config * rest.Config ) InjectArgs {
49
+ cs := kubernetes .NewForConfigOrDie (config )
43
50
return InjectArgs {
44
51
Config : config ,
45
- KubernetesClientSet : kubernetes .NewForConfigOrDie (config ),
52
+ KubernetesClientSet : cs ,
53
+ KubernetesInformers : informers .NewSharedInformerFactory (cs , 2 * time .Minute ),
46
54
ControllerManager : & controller.ControllerManager {},
47
55
AdmissionHandler : & admission.AdmissionManager {},
48
56
}
0 commit comments