@@ -49,13 +49,13 @@ var defaultNodeSelector = deployments.GPUPluginDaemonSet().Spec.Template.Spec.No
4949// +kubebuilder:rbac:groups=deviceplugin.intel.com,resources=gpudeviceplugins/finalizers,verbs=update 
5050
5151// SetupReconciler creates a new reconciler for GpuDevicePlugin objects. 
52- func  SetupReconciler (mgr  ctrl.Manager , namespace   string ,  withWebhook   bool ) error  {
53- 	c  :=  & controller {scheme : mgr .GetScheme (), ns :  namespace }
52+ func  SetupReconciler (mgr  ctrl.Manager , args  controllers. ControllerOptions ) error  {
53+ 	c  :=  & controller {scheme : mgr .GetScheme (), args :  args }
5454	if  err  :=  controllers .SetupWithManager (mgr , c , devicepluginv1 .GroupVersion .String (), "GpuDevicePlugin" , ownerKey ); err  !=  nil  {
5555		return  err 
5656	}
5757
58- 	if  withWebhook  {
58+ 	if  args . WithWebhook  {
5959		return  (& devicepluginv1.GpuDevicePlugin {}).SetupWebhookWithManager (mgr )
6060	}
6161
@@ -64,7 +64,7 @@ func SetupReconciler(mgr ctrl.Manager, namespace string, withWebhook bool) error
6464
6565type  controller  struct  {
6666	scheme  * runtime.Scheme 
67- 	ns       string 
67+ 	args    controllers. ControllerOptions 
6868}
6969
7070func  (c  * controller ) CreateEmptyObject () client.Object  {
@@ -80,7 +80,7 @@ func (c *controller) NewSharedServiceAccount() *v1.ServiceAccount {
8080	return  & v1.ServiceAccount {
8181		ObjectMeta : metav1.ObjectMeta {
8282			Name :      serviceAccountName ,
83- 			Namespace : c .ns ,
83+ 			Namespace : c .args . Namespace ,
8484		},
8585	}
8686}
@@ -89,13 +89,13 @@ func (c *controller) NewSharedClusterRoleBinding() *rbacv1.ClusterRoleBinding {
8989	return  & rbacv1.ClusterRoleBinding {
9090		ObjectMeta : metav1.ObjectMeta {
9191			Name :      roleBindingName ,
92- 			Namespace : c .ns ,
92+ 			Namespace : c .args . Namespace ,
9393		},
9494		Subjects : []rbacv1.Subject {
9595			{
9696				Kind :      "ServiceAccount" ,
9797				Name :      serviceAccountName ,
98- 				Namespace : c .ns ,
98+ 				Namespace : c .args . Namespace ,
9999			},
100100		},
101101		RoleRef : rbacv1.RoleRef {
@@ -140,10 +140,16 @@ func (c *controller) NewDaemonSet(rawObj client.Object) *apps.DaemonSet {
140140		daemonSet .Spec .Template .Spec .Tolerations  =  devicePlugin .Spec .Tolerations 
141141	}
142142
143- 	daemonSet .ObjectMeta .Namespace  =  c .ns 
143+ 	daemonSet .ObjectMeta .Namespace  =  c .args . Namespace 
144144	daemonSet .Spec .Template .Spec .Containers [0 ].Args  =  getPodArgs (devicePlugin )
145145	daemonSet .Spec .Template .Spec .Containers [0 ].Image  =  devicePlugin .Spec .Image 
146146
147+ 	if  len (c .args .ImagePullSecretName ) >  0  {
148+ 		daemonSet .Spec .Template .Spec .ImagePullSecrets  =  []v1.LocalObjectReference {
149+ 			{Name : c .args .ImagePullSecretName },
150+ 		}
151+ 	}
152+ 
147153	if  devicePlugin .Spec .InitImage  ==  ""  {
148154		daemonSet .Spec .Template .Spec .InitContainers  =  nil 
149155		daemonSet .Spec .Template .Spec .Volumes  =  removeVolume (daemonSet .Spec .Template .Spec .Volumes , "nfd-features" )
0 commit comments