@@ -317,11 +317,12 @@ func (svc *serviceAccountsService) GetRoleBindings(
317317func (svc * serviceAccountsService ) CreateRoleBinding (
318318 ctx context.Context ,
319319 username string ,
320- namespace string ,
320+ roleBindingNamespace string ,
321321 ldapGroundBindingName string ,
322322 roleRef rbacv1.RoleRef ,
323323) (* rbacv1.RoleBinding , error ) {
324324 name := GenBindingName (username , roleRef .Name , ldapGroundBindingName )
325+ saNamespace := svc .namespace
325326 binding := & rbacv1.RoleBinding {
326327 ObjectMeta : metav1.ObjectMeta {
327328 Name : name ,
@@ -333,51 +334,74 @@ func (svc *serviceAccountsService) CreateRoleBinding(
333334 {
334335 Kind : "ServiceAccount" ,
335336 Name : username ,
336- Namespace : namespace ,
337+ Namespace : saNamespace ,
337338 },
338339 },
339340 RoleRef : roleRef ,
340341 }
341342
342343 binding , err := svc .clientset .RbacV1 ().
343- RoleBindings (namespace ).
344+ RoleBindings (roleBindingNamespace ).
344345 Create (ctx , binding , metav1.CreateOptions {})
345346 if err != nil {
346347 svc .logger .Error ("Failed to create role binding" , "error" , err )
347348 return nil , err
348349 }
349350
350- svc .logger .Info ("Created role binding" , "name" , binding .Name , "namespace" , namespace )
351+ svc .logger .Info (
352+ "Created role binding" ,
353+ "name" ,
354+ binding .Name ,
355+ "roleBindingNamespace" ,
356+ roleBindingNamespace ,
357+ "saNamespace" ,
358+ saNamespace ,
359+ )
351360 return binding , nil
352361}
353362
354363// UpdateRoleBinding updates an existing role binding for the service account.
355364func (svc * serviceAccountsService ) UpdateRoleBinding (
356365 ctx context.Context ,
357366 username string ,
358- namespace string ,
367+ roleBindingNamespace string ,
359368 roleRef rbacv1.RoleRef ,
360369 ldapGroundBindingName string ,
361370) (* rbacv1.RoleBinding , error ) {
362371 name := GenBindingName (username , roleRef .Name , ldapGroundBindingName )
363372 binding , err := svc .clientset .RbacV1 ().
364- RoleBindings (namespace ).
373+ RoleBindings (roleBindingNamespace ).
365374 Get (ctx , name , metav1.GetOptions {})
366375 if err != nil {
367376 svc .logger .Error ("Failed to get role binding" , "error" , err )
368377 return nil , err
369378 }
370379
371380 binding .RoleRef = roleRef
381+ binding .Subjects = []rbacv1.Subject {
382+ {
383+ Kind : "ServiceAccount" ,
384+ Name : username ,
385+ Namespace : svc .namespace ,
386+ },
387+ }
372388 binding , err = svc .clientset .RbacV1 ().
373- RoleBindings (namespace ).
389+ RoleBindings (roleBindingNamespace ).
374390 Update (ctx , binding , metav1.UpdateOptions {})
375391 if err != nil {
376392 svc .logger .Error ("Failed to update role binding" , "error" , err )
377393 return nil , err
378394 }
379395
380- svc .logger .Info ("Updated role binding" , "name" , binding .Name , "namespace" , namespace )
396+ svc .logger .Info (
397+ "Updated role binding" ,
398+ "name" ,
399+ binding .Name ,
400+ "roleBindingNamespace" ,
401+ roleBindingNamespace ,
402+ "saNamespace" ,
403+ svc .namespace ,
404+ )
381405 return binding , nil
382406}
383407
0 commit comments