(n ClusterPolicyController, spec nodev1.RuntimeClass)
| 5113 | } |
| 5114 | |
| 5115 | func 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 | |
| 5162 | func transformKataRuntimeClasses(n ClusterPolicyController) (gpuv1.State, error) { |
| 5163 | ctx := n.ctx |
nothing calls this directly
no test coverage detected