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

Function transformRuntimeClass

controllers/object_controls.go:5115–5160  ·  view source on GitHub ↗
(n ClusterPolicyController, spec nodev1.RuntimeClass)

Source from the content-addressed store, hash-verified

5113}
5114
5115func transformRuntimeClass(n ClusterPolicyController, spec nodev1.RuntimeClass) (gpuv1.State, error) {
5116 ctx := n.ctx
5117 obj := &nodev1.RuntimeClass{}
5118
5119 obj.Name = spec.Name
5120 obj.Handler = spec.Handler
5121
5122 // apply runtime class name as per ClusterPolicy
5123 if obj.Name == "FILLED_BY_OPERATOR" {
5124 runtimeClassName := getRuntimeClassName(&n.singleton.Spec)
5125 obj.Name = runtimeClassName
5126 obj.Handler = runtimeClassName
5127 }
5128
5129 obj.Labels = spec.Labels
5130
5131 logger := n.logger.WithValues("RuntimeClass", obj.Name)
5132
5133 if err := controllerutil.SetControllerReference(n.singleton, obj, n.scheme); err != nil {
5134 return gpuv1.NotReady, err
5135 }
5136
5137 found := &nodev1.RuntimeClass{}
5138 err := n.client.Get(ctx, types.NamespacedName{Namespace: "", Name: obj.Name}, found)
5139 if err != nil && apierrors.IsNotFound(err) {
5140 logger.Info("Not found, creating...")
5141 err = n.client.Create(ctx, obj)
5142 if err != nil {
5143 logger.Info("Couldn't create", "Error", err)
5144 return gpuv1.NotReady, err
5145 }
5146 return gpuv1.Ready, nil
5147 } else if err != nil {
5148 return gpuv1.NotReady, err
5149 }
5150
5151 logger.Info("Found Resource, updating...")
5152 obj.ResourceVersion = found.ResourceVersion
5153
5154 err = n.client.Update(ctx, obj)
5155 if err != nil {
5156 logger.Info("Couldn't update", "Error", err)
5157 return gpuv1.NotReady, err
5158 }
5159 return gpuv1.Ready, nil
5160}
5161
5162func transformKataRuntimeClasses(n ClusterPolicyController) (gpuv1.State, error) {
5163 ctx := n.ctx

Callers

nothing calls this directly

Calls 4

getRuntimeClassNameFunction · 0.85
GetMethod · 0.65
CreateMethod · 0.65
UpdateMethod · 0.65

Tested by

no test coverage detected