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

Function Service

controllers/object_controls.go:4884–4937  ·  view source on GitHub ↗

Service creates Service object

(n ClusterPolicyController)

Source from the content-addressed store, hash-verified

4882
4883// Service creates Service object
4884func Service(n ClusterPolicyController) (gpuv1.State, error) {
4885 ctx := n.ctx
4886 state := n.idx
4887 obj := n.resources[state].Service.DeepCopy()
4888
4889 obj.Namespace = n.operatorNamespace
4890
4891 logger := n.logger.WithValues("Service", obj.Name, "Namespace", obj.Namespace)
4892
4893 // Check if state is disabled and cleanup resource if exists
4894 if !n.isStateEnabled(n.stateNames[n.idx]) {
4895 err := n.client.Delete(ctx, obj)
4896 if err != nil && !apierrors.IsNotFound(err) {
4897 logger.Info("Couldn't delete", "Error", err)
4898 return gpuv1.NotReady, err
4899 }
4900 return gpuv1.Disabled, nil
4901 }
4902
4903 if err := controllerutil.SetControllerReference(n.singleton, obj, n.scheme); err != nil {
4904 return gpuv1.NotReady, err
4905 }
4906
4907 err := preprocessService(obj, n)
4908 if err != nil {
4909 logger.Info("Couldn't preprocess Service", "Error", err)
4910 return gpuv1.NotReady, err
4911 }
4912
4913 found := &corev1.Service{}
4914 err = n.client.Get(ctx, types.NamespacedName{Namespace: obj.Namespace, Name: obj.Name}, found)
4915 if err != nil && apierrors.IsNotFound(err) {
4916 logger.Info("Not found, creating...")
4917 err = n.client.Create(ctx, obj)
4918 if err != nil {
4919 logger.Info("Couldn't create", "Error", err)
4920 return gpuv1.NotReady, err
4921 }
4922 return gpuv1.Ready, nil
4923 } else if err != nil {
4924 return gpuv1.NotReady, err
4925 }
4926
4927 logger.Info("Found Resource, updating...")
4928 obj.ResourceVersion = found.ResourceVersion
4929 obj.Spec.ClusterIP = found.Spec.ClusterIP
4930
4931 err = n.client.Update(ctx, obj)
4932 if err != nil {
4933 logger.Info("Couldn't update", "Error", err)
4934 return gpuv1.NotReady, err
4935 }
4936 return gpuv1.Ready, nil
4937}
4938
4939func crdExists(n ClusterPolicyController, name string) (bool, error) {
4940 crd := &apiextensionsv1.CustomResourceDefinition{}

Callers 1

TestServiceFunction · 0.85

Calls 7

preprocessServiceFunction · 0.85
isStateEnabledMethod · 0.80
DeleteMethod · 0.65
GetMethod · 0.65
CreateMethod · 0.65
UpdateMethod · 0.65
DeepCopyMethod · 0.45

Tested by 1

TestServiceFunction · 0.68