diff --git a/ray-operator/controllers/ray/rayjob_controller.go b/ray-operator/controllers/ray/rayjob_controller.go index 17dab71e345..f8b332466c7 100644 --- a/ray-operator/controllers/ray/rayjob_controller.go +++ b/ray-operator/controllers/ray/rayjob_controller.go @@ -117,7 +117,6 @@ func (r *RayJobReconciler) Reconcile(ctx context.Context, request ctrl.Request) rayDashboardClient, err := r.dashboardClientFunc(rayClusterInstance, rayJobInstance.Status.DashboardURL) if err != nil { - logger.Error(err, "Failed to get dashboard client for RayJob") return ctrl.Result{RequeueAfter: RayJobDefaultRequeueDuration}, err } if err := rayDashboardClient.StopJob(ctx, rayJobInstance.Status.JobId); err != nil { @@ -263,7 +262,6 @@ func (r *RayJobReconciler) Reconcile(ctx context.Context, request ctrl.Request) // Check the current status of ray jobs rayDashboardClient, err := r.dashboardClientFunc(rayClusterInstance, rayJobInstance.Status.DashboardURL) if err != nil { - logger.Error(err, "Failed to get dashboard client for RayJob") return ctrl.Result{RequeueAfter: RayJobDefaultRequeueDuration}, err } diff --git a/ray-operator/controllers/ray/utils/util.go b/ray-operator/controllers/ray/utils/util.go index f814c8eab22..64f7717af0e 100644 --- a/ray-operator/controllers/ray/utils/util.go +++ b/ray-operator/controllers/ray/utils/util.go @@ -765,10 +765,13 @@ func GetRayDashboardClientFunc(mgr manager.Manager, useKubernetesProxy bool) fun if headSvcName == "" { headSvcName, err = GenerateHeadServiceName(RayClusterCRD, rayCluster.Spec, rayCluster.Name) if err != nil { + err = fmt.Errorf("failed to construct Ray dashboard client: %w", err) return nil, err } } return &RayDashboardClient{ + // Use `mgr.GetHTTPClient()` instead of `http.Client{}` so that the client has proper authentication + // configured to communicate with the Kubernetes API server. client: mgr.GetHTTPClient(), dashboardURL: fmt.Sprintf("%s/api/v1/namespaces/%s/services/%s:dashboard/proxy", mgr.GetConfig().Host, rayCluster.Namespace, headSvcName), }, nil