Skip to content

Commit d9ba5c7

Browse files
sync kuberay helm charts for v1.6.0-rc.0
Signed-off-by: Future-Outlier <eric901201@gmail.com>
1 parent 5171151 commit d9ba5c7

34 files changed

+16657
-98
lines changed

helm-chart/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ helm-lint: ## Run Helm chart lint test.
6363
.PHONY: helm-docs
6464
helm-docs: helm-docs-plugin ## Generates markdown documentation for Helm charts from requirements and values files.
6565
$(HELM_DOCS) --chart-search-root=$(WORKDIR) --chart-to-generate=$(KUBERAY_OPERATOR_CHART_PATH) --sort-values-order=file
66+
$(HELM_DOCS) --chart-search-root=$(WORKDIR) --chart-to-generate=$(RAY_CLUSTER_CHART_PATH) --sort-values-order=file
67+
$(HELM_DOCS) --chart-search-root=$(WORKDIR) --chart-to-generate=$(KUBERAY_APISERVER_CHART_PATH) --sort-values-order=file
6668

6769
##@ Dependencies
6870

helm-chart/bin/helm-v3.17.3

87 MB
Binary file not shown.

helm-chart/kuberay-apiserver/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 1.4.2
18+
version: 1.6.0-rc.0

helm-chart/kuberay-apiserver/README.md

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1-
# KubeRay API Server
1+
# KubeRay APIServer
22

3-
This document provides instructions to install the KubeRay API Server with a Helm chart.
3+
![Version: 1.6.0-rc.0](https://img.shields.io/badge/Version-1.6.0--rc.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
4+
5+
A Helm chart for kuberay-apiserver
6+
7+
## Introduction
8+
9+
This document provides instructions to install the KubeRay APIServer with a Helm chart.
10+
KubeRay APIServer V2 is enabled by default, for more information,
11+
please refer to the [KubeRay APIServer V2 documentation].
412

513
## Helm
614

@@ -11,7 +19,7 @@ v3.9.4.
1119
helm version
1220
```
1321

14-
## Install KubeRay API Server
22+
## Install KubeRay APIServer
1523

1624
### Without security proxy
1725

@@ -32,7 +40,7 @@ helm install kuberay-apiserver kuberay/kuberay-apiserver --version 1.4.2 --set s
3240
# Step2: Navigate to `helm-chart/kuberay-apiserver`
3341
cd helm-chart/kuberay-apiserver
3442

35-
# Step3: Install the KubeRay apiserver
43+
# Step3: Install the KubeRay APIServer
3644
helm install kuberay-apiserver . --set security=null
3745
```
3846

@@ -55,7 +63,7 @@ helm install kuberay-apiserver kuberay/kuberay-apiserver --version 1.4.2
5563
# Step2: Navigate to `helm-chart/kuberay-apiserver`
5664
cd helm-chart/kuberay-apiserver
5765

58-
# Step3: Install the KubeRay apiserver
66+
# Step3: Install the KubeRay APIServer
5967
helm install kuberay-apiserver .
6068
```
6169

@@ -70,8 +78,8 @@ To list the `kuberay-apiserver` release:
7078

7179
```sh
7280
helm ls
73-
# NAME NAMESPACE REVISION UPDATED STATUS CHART
74-
# kuberay-apiserver default 1 2022-12-02 02:13:37.514445313 +0000 UTC deployed kuberay-apiserver-1.1.0
81+
# NAME NAMESPACE REVISION UPDATED STATUS CHART
82+
# kuberay-apiserver default 1 2025-08-08 17:07:51.472353906 +0000 UTC deployed kuberay-apiserver-1.4.2
7583
```
7684

7785
## Uninstall the Chart
@@ -80,9 +88,49 @@ helm ls
8088
# Uninstall the `kuberay-apiserver` release
8189
helm uninstall kuberay-apiserver
8290

83-
# The API Server Pod should be removed.
91+
# The APIServer Pod should be removed.
8492
kubectl get pods
8593
# No resources found in default namespace.
8694
```
8795

88-
[existing CI tests]: https://github.com/ray-project/kuberay/blob/master/.github/workflows/helm-lint.yaml
96+
[existing CI tests]: https://github.com/ray-project/kuberay/blob/master/.github/workflows/helm.yaml
97+
[KubeRay APIServer V2 documentation]: https://github.com/ray-project/kuberay/blob/master/apiserversdk/README.md
98+
99+
## Values
100+
101+
| Key | Type | Default | Description |
102+
|-----|------|---------|-------------|
103+
| replicaCount | int | `1` | |
104+
| name | string | `"kuberay-apiserver"` | |
105+
| image.repository | string | `"quay.io/kuberay/apiserver"` | Image repository. |
106+
| image.tag | string | `"v1.6.0-rc.0"` | Image tag. |
107+
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. |
108+
| cors | string | `nil` | |
109+
| labels | object | `{}` | Extra labels. |
110+
| annotations | object | `{}` | Extra annotations. |
111+
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created. |
112+
| serviceAccount.name | string | `"kuberay-apiserver"` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
113+
| containerPort[0].name | string | `"http"` | |
114+
| containerPort[0].containerPort | int | `8888` | |
115+
| containerPort[0].protocol | string | `"TCP"` | |
116+
| containerPort[1].name | string | `"grpc"` | |
117+
| containerPort[1].containerPort | int | `8887` | |
118+
| containerPort[1].protocol | string | `"TCP"` | |
119+
| resources | object | `{"limits":{"cpu":"500m","memory":"500Mi"},"requests":{"cpu":"300m","memory":"300Mi"}}` | Resource requests and limits for containers. |
120+
| sidecarContainers | list | `[]` | Sidecar containers to run along with the main container. |
121+
| nodeSelector | object | `{}` | Node selector for pods. |
122+
| affinity | object | `{}` | Affinity for pods. |
123+
| tolerations | list | `[]` | Tolerations for pods. |
124+
| service.type | string | `"ClusterIP"` | Service type. |
125+
| service.ports | list | `[{"name":"http","port":8888,"protocol":"TCP","targetPort":8888},{"name":"rpc","port":8887,"protocol":"TCP","targetPort":8887}]` | Service port. |
126+
| ingress.enabled | bool | `false` | |
127+
| ingress.annotations | object | `{}` | |
128+
| ingress.className | string | `""` | |
129+
| ingress.tls | list | `[]` | |
130+
| route.enabled | bool | `false` | |
131+
| route.annotations | object | `{}` | |
132+
| rbacEnable | bool | `true` | Install Default RBAC roles and bindings |
133+
| singleNamespaceInstall | bool | `false` | The chart can be installed by users with permissions to a single namespace only |
134+
| enableAPIServerV2 | bool | `true` | If set to true, APIServer v2 would be served on the same port as the APIServer v1. |
135+
| security.proxy | object | `{"pullPolicy":"IfNotPresent","repository":"quay.io/kuberay/security-proxy","tag":"nightly"}` | security proxy image. |
136+
| security.env | object | `{"ENABLE_GRPC":"true","GRPC_LOCAL_PORT":8987,"HTTP_LOCAL_PORT":8988,"SECURITY_PREFIX":"/","SECURITY_TOKEN":"12345"}` | security proxy environment variables. |
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# KubeRay APIServer
2+
3+
{{ template "chart.deprecationWarning" . }}
4+
5+
{{ template "chart.badgesSection" . }}
6+
7+
{{ template "chart.description" . }}
8+
9+
{{ template "chart.homepageLine" . }}
10+
11+
## Introduction
12+
13+
This document provides instructions to install the KubeRay APIServer with a Helm chart.
14+
KubeRay APIServer V2 is enabled by default, for more information,
15+
please refer to the [KubeRay APIServer V2 documentation].
16+
17+
18+
## Helm
19+
20+
Make sure the version of Helm is v3+. Currently, [existing CI tests] are based on Helm v3.4.1 and
21+
v3.9.4.
22+
23+
```sh
24+
helm version
25+
```
26+
27+
## Install KubeRay APIServer
28+
29+
### Without security proxy
30+
31+
- Install a stable version via Helm repository
32+
33+
```sh
34+
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
35+
helm repo update
36+
# Install KubeRay APIServer without security proxy
37+
helm install kuberay-apiserver kuberay/kuberay-apiserver --version 1.4.2 --set security=null
38+
```
39+
40+
- Install the nightly version
41+
42+
```sh
43+
# Step1: Clone KubeRay repository
44+
45+
# Step2: Navigate to `helm-chart/kuberay-apiserver`
46+
cd helm-chart/kuberay-apiserver
47+
48+
# Step3: Install the KubeRay APIServer
49+
helm install kuberay-apiserver . --set security=null
50+
```
51+
52+
### With security proxy
53+
54+
- Install a stable version via Helm repository
55+
56+
```sh
57+
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
58+
helm repo update
59+
# Install KubeRay APIServer
60+
helm install kuberay-apiserver kuberay/kuberay-apiserver --version 1.4.2
61+
```
62+
63+
- Install the nightly version
64+
65+
```sh
66+
# Step1: Clone KubeRay repository
67+
68+
# Step2: Navigate to `helm-chart/kuberay-apiserver`
69+
cd helm-chart/kuberay-apiserver
70+
71+
# Step3: Install the KubeRay APIServer
72+
helm install kuberay-apiserver .
73+
```
74+
75+
> [!IMPORTANT]
76+
> If you receive an "Unauthorized" error when making a request, please add an
77+
> authorization header to the request: `-H 'Authorization: 12345'` or install the
78+
> APIServer without a security proxy.
79+
80+
## List the chart
81+
82+
To list the `kuberay-apiserver` release:
83+
84+
```sh
85+
helm ls
86+
# NAME NAMESPACE REVISION UPDATED STATUS CHART
87+
# kuberay-apiserver default 1 2025-08-08 17:07:51.472353906 +0000 UTC deployed kuberay-apiserver-1.4.2
88+
```
89+
90+
## Uninstall the Chart
91+
92+
```sh
93+
# Uninstall the `kuberay-apiserver` release
94+
helm uninstall kuberay-apiserver
95+
96+
# The APIServer Pod should be removed.
97+
kubectl get pods
98+
# No resources found in default namespace.
99+
```
100+
101+
[existing CI tests]: https://github.com/ray-project/kuberay/blob/master/.github/workflows/helm.yaml
102+
[KubeRay APIServer V2 documentation]: https://github.com/ray-project/kuberay/blob/master/apiserversdk/README.md
103+
104+
{{ template "chart.valuesSection" . }}

helm-chart/kuberay-apiserver/templates/ingress.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{{- if .Values.ingress.enabled -}}
22
{{- $fullName := include "kuberay-apiserver.fullname" . -}}
3+
{{- $svcName := printf "%s-service" $fullName -}}
34
{{- $svcPort := .Values.service.port -}}
45
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
56
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
@@ -50,11 +51,11 @@ spec:
5051
backend:
5152
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
5253
service:
53-
name: {{ $fullName }}
54+
name: {{ $svcName }}
5455
port:
5556
number: {{ $svcPort }}
5657
{{- else }}
57-
serviceName: {{ $fullName }}
58+
serviceName: {{ $svcName }}
5859
servicePort: {{ $svcPort }}
5960
{{- end }}
6061
{{- end }}

helm-chart/kuberay-apiserver/templates/route.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ spec:
1414
subdomain: api-server-kuberay
1515
to:
1616
kind: Service
17-
name: {{ .Values.name }}-service
17+
name: {{ include "kuberay-apiserver.fullname" . }}-service
1818
weight: 100
1919
port:
2020
targetPort: http

helm-chart/kuberay-apiserver/templates/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v1
22
kind: Service
33
metadata:
4-
name: {{ .Values.name }}-service
4+
name: {{ include "kuberay-apiserver.fullname" . }}-service
55
namespace: {{ .Release.Namespace }}
66
labels:
77
app.kubernetes.io/component: kuberay-apiserver

helm-chart/kuberay-apiserver/tests/ingress_test.yaml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,93 @@ tests:
5757
kind: Ingress
5858
name: kuberay-apiserver
5959
namespace: kuberay-system
60+
61+
- it: Should have ingress backend service name matching the service name
62+
capabilities:
63+
majorVersion: 1
64+
minorVersion: 19
65+
set:
66+
ingress:
67+
enabled: true
68+
hosts:
69+
- host: example.com
70+
paths:
71+
- path: /
72+
pathType: Prefix
73+
service:
74+
port: 8888
75+
asserts:
76+
- equal:
77+
path: spec.rules[0].http.paths[0].backend.service.name
78+
value: kuberay-apiserver-service
79+
80+
- it: Should have ingress backend service name matching the service name when fullnameOverride is set
81+
capabilities:
82+
majorVersion: 1
83+
minorVersion: 19
84+
set:
85+
fullnameOverride: test-name
86+
ingress:
87+
enabled: true
88+
hosts:
89+
- host: example.com
90+
paths:
91+
- path: /
92+
pathType: Prefix
93+
service:
94+
port: 8888
95+
asserts:
96+
- equal:
97+
path: spec.rules[0].http.paths[0].backend.service.name
98+
value: test-name-service
99+
100+
- it: Should have ingress backend service name matching the service name when nameOverride is set
101+
capabilities:
102+
majorVersion: 1
103+
minorVersion: 19
104+
set:
105+
nameOverride: custom-api
106+
ingress:
107+
enabled: true
108+
hosts:
109+
- host: example.com
110+
paths:
111+
- path: /
112+
pathType: Prefix
113+
service:
114+
port: 8888
115+
asserts:
116+
- equal:
117+
path: spec.rules[0].http.paths[0].backend.service.name
118+
value: kuberay-apiserver-custom-api-service
119+
120+
- it: Should have correct service name in all backend references with multiple hosts and paths
121+
capabilities:
122+
majorVersion: 1
123+
minorVersion: 19
124+
set:
125+
ingress:
126+
enabled: true
127+
hosts:
128+
- host: example.com
129+
paths:
130+
- path: /api
131+
pathType: Prefix
132+
- path: /health
133+
pathType: Exact
134+
- host: api.example.com
135+
paths:
136+
- path: /
137+
pathType: Prefix
138+
service:
139+
port: 8888
140+
asserts:
141+
- equal:
142+
path: spec.rules[0].http.paths[0].backend.service.name
143+
value: kuberay-apiserver-service
144+
- equal:
145+
path: spec.rules[0].http.paths[1].backend.service.name
146+
value: kuberay-apiserver-service
147+
- equal:
148+
path: spec.rules[1].http.paths[0].backend.service.name
149+
value: kuberay-apiserver-service

helm-chart/kuberay-apiserver/tests/route_test.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,32 @@ tests:
4141
- equal:
4242
path: metadata.annotations.key2
4343
value: value2
44+
45+
- it: Should have route backend service name matching the service name
46+
set:
47+
route:
48+
enabled: true
49+
asserts:
50+
- equal:
51+
path: spec.to.name
52+
value: kuberay-apiserver-service
53+
54+
- it: Should have route backend service name matching the service name when fullnameOverride is set
55+
set:
56+
fullnameOverride: test-name
57+
route:
58+
enabled: true
59+
asserts:
60+
- equal:
61+
path: spec.to.name
62+
value: test-name-service
63+
64+
- it: Should have route backend service name matching the service name when nameOverride is set
65+
set:
66+
nameOverride: custom-api
67+
route:
68+
enabled: true
69+
asserts:
70+
- equal:
71+
path: spec.to.name
72+
value: kuberay-apiserver-custom-api-service

0 commit comments

Comments
 (0)