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

Function transformRuntimeClassLegacy

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

Source from the content-addressed store, hash-verified

5066}
5067
5068func transformRuntimeClassLegacy(n ClusterPolicyController, spec nodev1.RuntimeClass) (gpuv1.State, error) {
5069 ctx := n.ctx
5070 obj := &nodev1beta1.RuntimeClass{}
5071
5072 obj.Name = spec.Name
5073 obj.Handler = spec.Handler
5074
5075 // apply runtime class name as per ClusterPolicy
5076 if obj.Name == "FILLED_BY_OPERATOR" {
5077 runtimeClassName := getRuntimeClassName(&n.singleton.Spec)
5078 obj.Name = runtimeClassName
5079 obj.Handler = runtimeClassName
5080 }
5081
5082 obj.Labels = spec.Labels
5083
5084 logger := n.logger.WithValues("RuntimeClass", obj.Name)
5085
5086 if err := controllerutil.SetControllerReference(n.singleton, obj, n.scheme); err != nil {
5087 return gpuv1.NotReady, err
5088 }
5089
5090 found := &nodev1beta1.RuntimeClass{}
5091 err := n.client.Get(ctx, types.NamespacedName{Namespace: "", Name: obj.Name}, found)
5092 if err != nil && apierrors.IsNotFound(err) {
5093 logger.Info("Not found, creating...")
5094 err = n.client.Create(ctx, obj)
5095 if err != nil {
5096 logger.Info("Couldn't create", "Error", err)
5097 return gpuv1.NotReady, err
5098 }
5099 return gpuv1.Ready, nil
5100 } else if err != nil {
5101 return gpuv1.NotReady, err
5102 }
5103
5104 logger.Info("Found Resource, updating...")
5105 obj.ResourceVersion = found.ResourceVersion
5106
5107 err = n.client.Update(ctx, obj)
5108 if err != nil {
5109 logger.Info("Couldn't update", "Error", err)
5110 return gpuv1.NotReady, err
5111 }
5112 return gpuv1.Ready, nil
5113}
5114
5115func transformRuntimeClass(n ClusterPolicyController, spec nodev1.RuntimeClass) (gpuv1.State, error) {
5116 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