MCPcopy Create free account
hub / github.com/NVIDIA/gpu-operator / ClusterRole

Function ClusterRole

controllers/object_controls.go:463–510  ·  view source on GitHub ↗

ClusterRole creates ClusterRole resource

(n ClusterPolicyController)

Source from the content-addressed store, hash-verified

461
462// ClusterRole creates ClusterRole resource
463func ClusterRole(n ClusterPolicyController) (gpuv1.State, error) {
464 ctx := n.ctx
465 state := n.idx
466 obj := n.resources[state].ClusterRole.DeepCopy()
467 obj.Namespace = n.operatorNamespace
468
469 logger := n.logger.WithValues("ClusterRole", obj.Name, "Namespace", obj.Namespace)
470
471 // Check if state is disabled and cleanup resource if exists
472 if !n.isStateEnabled(n.stateNames[n.idx]) {
473 err := n.client.Delete(ctx, obj)
474 if err != nil && !apierrors.IsNotFound(err) {
475 logger.Info("Couldn't delete", "Error", err)
476 return gpuv1.NotReady, err
477 }
478 return gpuv1.Disabled, nil
479 }
480
481 if !isRBACEnabled(obj.Name, &n.singleton.Spec) {
482 err := n.client.Delete(ctx, obj)
483 if err != nil && !apierrors.IsNotFound(err) {
484 logger.Error(err, "Couldn't delete")
485 return gpuv1.NotReady, err
486 }
487 return gpuv1.Disabled, nil
488 }
489
490 if err := controllerutil.SetControllerReference(n.singleton, obj, n.scheme); err != nil {
491 return gpuv1.NotReady, err
492 }
493
494 if err := n.client.Create(ctx, obj); err != nil {
495 if apierrors.IsAlreadyExists(err) {
496 logger.Info("Found Resource, updating...")
497 err = n.client.Update(ctx, obj)
498 if err != nil {
499 logger.Info("Couldn't update", "Error", err)
500 return gpuv1.NotReady, err
501 }
502 return gpuv1.Ready, nil
503 }
504
505 logger.Info("Couldn't create", "Error", err)
506 return gpuv1.NotReady, err
507 }
508
509 return gpuv1.Ready, nil
510}
511
512// ClusterRoleBinding creates ClusterRoleBinding resource
513func ClusterRoleBinding(n ClusterPolicyController) (gpuv1.State, error) {

Callers

nothing calls this directly

Calls 7

isRBACEnabledFunction · 0.85
isStateEnabledMethod · 0.80
ErrorMethod · 0.80
DeleteMethod · 0.65
CreateMethod · 0.65
UpdateMethod · 0.65
DeepCopyMethod · 0.45

Tested by

no test coverage detected