# ═══════════════════════════════════════════════════════════════════════════ # Traefik Ingress — Ray Dashboard # ═══════════════════════════════════════════════════════════════════════════ # The Ray head service lives in ray-system namespace. Both the Ingress and # service are in the same namespace so a standard Ingress works. # # URL: https://researchstack.info/server/ray → raycluster-head-svc:8265 # Uses stripPrefix middleware so the dashboard doesn't need to know about # the /server/ray prefix. # ═══════════════════════════════════════════════════════════════════════════ apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: strip-server-ray namespace: ray-system spec: stripPrefix: prefixes: - /server/ray --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: ray-dashboard namespace: ray-system spec: entryPoints: - web routes: - match: Host(`researchstack.info`) && PathPrefix(`/server/ray`) kind: Rule middlewares: - name: strip-server-ray namespace: ray-system services: - name: raycluster-head-svc port: 8265