Skip to content
15 changes: 0 additions & 15 deletions chart/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,12 @@
The RayService controller manages the Ray cluster and Serve proxy.
Serve is pre-initialized with host 0.0.0.0 on port 8000.

{{- if .Values.nebariapp.enabled }}
Comment thread
pmeier marked this conversation as resolved.

NebariApp is ENABLED. The nebari-operator will configure:
{{- if ne (toString (dig "serve" "enabled" true .Values.nebariapp)) "false" }}
- HTTPRoute for Ray Serve: {{ .Values.nebariapp.hostname }}
{{- end }}
{{- if .Values.nebariapp.dashboard.enabled }}
- HTTPRoute for Ray Dashboard: {{ .Values.nebariapp.dashboard.hostname }}
{{- end }}
{{- if .Values.nebariapp.auth.enabled }}
- OIDC authentication via {{ .Values.nebariapp.auth.provider }}
{{- end }}

{{- else }}

To access locally:

kubectl port-forward svc/{{ include "nebari-rayserve.serve-service-name" . }} 8000:8000 -n {{ .Release.Namespace }}
kubectl port-forward svc/{{ include "nebari-rayserve.head-service-name" . }} 8265:8265 -n {{ .Release.Namespace }}

{{- end }}

=== Deploying Models ===

Expand Down
111 changes: 20 additions & 91 deletions chart/templates/nebariapp.yaml
Original file line number Diff line number Diff line change
@@ -1,96 +1,25 @@
{{- if and .Values.nebariapp.enabled (ne (toString (dig "serve" "enabled" true .Values.nebariapp)) "false") }}
{{- if .Values.nebariapp.hostname }}
{{- if .Values.nebariapp.serve.enabled -}}
# NebariApp for Ray Serve endpoint
apiVersion: reconcilers.nebari.dev/v1
kind: NebariApp
metadata:
name: {{ include "nebari-rayserve.fullname" . }}
labels:
{{- include "nebari-rayserve.labels" . | nindent 4 }}
spec:
hostname: {{ .Values.nebariapp.hostname }}
service:
name: {{ .Values.nebariapp.service.name | default (include "nebari-rayserve.serve-service-name" .) }}
port: {{ .Values.nebariapp.service.servePort }}
routing:
routes:
- pathPrefix: /
pathType: PathPrefix
Comment thread
pmeier marked this conversation as resolved.
{{- if .Values.nebariapp.auth.enabled }}
auth:
enabled: true
provider: {{ .Values.nebariapp.auth.provider }}
provisionClient: {{ .Values.nebariapp.auth.provisionClient }}
redirectURI: {{ .Values.nebariapp.auth.redirectURI }}
scopes:
{{- toYaml .Values.nebariapp.auth.scopes | nindent 6 }}

{{- end }}
gateway: {{ .Values.nebariapp.gateway }}
{{- end }}
{{ include "nebari-app.nebariApp" (dict
"metadata" (dict
"name" (include "nebari-rayserve.fullname" .)
"namespace" .Release.Namespace
"labels" (include "nebari-rayserve.labels" . | fromYaml)
)
"spec" (omit .Values.nebariapp.serve "enabled")
"tplCtx" .
) -}}
{{- end }}
---
{{- if and .Values.nebariapp.enabled .Values.nebariapp.dashboard.enabled }}
{{- if .Values.nebariapp.dashboard.enabled -}}
# NebariApp for Ray Dashboard
apiVersion: reconcilers.nebari.dev/v1
kind: NebariApp
metadata:
name: {{ include "nebari-rayserve.fullname" . }}-dashboard
labels:
{{- include "nebari-rayserve.labels" . | nindent 4 }}
spec:
hostname: {{ required "nebariapp.dashboard.hostname is required when dashboard is enabled" .Values.nebariapp.dashboard.hostname }}
service:
name: {{ .Values.nebariapp.service.name | default (include "nebari-rayserve.head-service-name" .) }}
port: {{ .Values.nebariapp.service.dashboardPort }}
routing:
routes:
- pathPrefix: /
pathType: PathPrefix
{{- if .Values.nebariapp.auth.enabled }}
auth:
enabled: true
provider: {{ .Values.nebariapp.auth.provider }}
provisionClient: {{ .Values.nebariapp.auth.provisionClient }}
redirectURI: {{ .Values.nebariapp.auth.redirectURI }}
scopes:
{{- toYaml .Values.nebariapp.auth.scopes | nindent 6 }}

{{- end }}
{{- with .Values.nebariapp.dashboard.landingPage }}
landingPage:
enabled: {{ .enabled | default false }}
{{- with .displayName }}
displayName: {{ . | quote }}
{{- end }}
{{- with .description }}
description: {{ . | quote }}
{{- end }}
{{- with .icon }}
icon: {{ . | quote }}
{{- end }}
{{- with .category }}
category: {{ . | quote }}
{{- end }}
{{- if kindIs "float64" .priority }}
priority: {{ .priority }}
{{- end }}
{{- with .externalUrl }}
externalUrl: {{ . | quote }}
{{- end }}
{{- with .healthCheck }}
healthCheck:
enabled: {{ .enabled | default false }}
{{- with .path }}
path: {{ . | quote }}
{{- end }}
{{- if .intervalSeconds }}
intervalSeconds: {{ .intervalSeconds }}
{{- end }}
{{- if .timeoutSeconds }}
timeoutSeconds: {{ .timeoutSeconds }}
{{- end }}
{{- end }}
{{- end }}
gateway: {{ .Values.nebariapp.gateway }}
{{ include "nebari-app.nebariApp" (dict
"metadata" (dict
"name" (printf "%s-dashboard" (include "nebari-rayserve.fullname" .))
"namespace" .Release.Namespace
"labels" (include "nebari-rayserve.labels" . | fromYaml)
)
"spec" (omit .Values.nebariapp.dashboard "enabled")
"tplCtx" .
) -}}
{{- end }}
43 changes: 21 additions & 22 deletions chart/values.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
# =============================================================================
# Nebari Integration
# =============================================================================
# Creates a NebariApp CRD that configures routing, TLS, and auth via nebari-operator.
# Set enabled: true when deploying on a Nebari cluster.
# Creates NebariApp CRs that configure routing, TLS, and auth via nebari-operator.
nebariapp:
Comment thread
pmeier marked this conversation as resolved.
enabled: false
Comment thread
pmeier marked this conversation as resolved.
# hostname: rayserve.nebari.example.com # Required when serve.enabled is true
Comment thread
pmeier marked this conversation as resolved.
serve:
enabled: false # Set to true and provide nebariapp.hostname to expose the serve endpoint externally
enabled: false
hostname: '{{ fail "nebariapps.serve.hostname is required if nebariapps.serve.enabled is true" }}'
service:
name: '{{ include "nebari-rayserve.serve-service-name" . | toJson }}'
port: 8000
gateway: public
routing:
routes:
- pathPrefix: /
pathType: PathPrefix
dashboard:
enabled: true
# hostname: ray-dashboard.nebari.example.com # Separate hostname for dashboard
enabled: false
hostname: '{{ fail "nebariapps.dashboard.hostname is required if nebariapps.dashboard.enabled is true" }}'
service:
name: '{{ include "nebari-rayserve.head-service-name" . | toJson }}'
port: 8265
landingPage:
enabled: false
displayName: "Ray Dashboard"
Expand All @@ -23,21 +32,11 @@ nebariapp:
path: /api/component_activities
intervalSeconds: 30
timeoutSeconds: 5
service:
name: "" # Defaults to <release>-<chart>-serve-svc (serve) or -head-svc (dashboard)
servePort: 8000
dashboardPort: 8265
Comment thread
pmeier marked this conversation as resolved.
auth:
enabled: false
provider: keycloak
provisionClient: true
redirectURI: /oauth2/callback
scopes:
- openid
- profile
- email
Comment thread
pmeier marked this conversation as resolved.

gateway: public
Comment thread
pmeier marked this conversation as resolved.
gateway: public
routing:
routes:
- pathPrefix: /
pathType: PathPrefix

# =============================================================================
# KubeRay Operator
Expand Down
Loading