Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions docs/reference/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,12 +260,68 @@ _Appears in:_
| `template` _[PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#podtemplatespec-v1-core)_ | Template is the exact pod template used in K8s deployments, statefulsets, etc. | | |
| `headService` _[Service](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#service-v1-core)_ | HeadService is the Kubernetes service of the head pod. | | |
| `enableIngress` _boolean_ | EnableIngress indicates whether operator should create ingress object for head service or not. | | |
| `ingressConfig` _[HeadIngressSpec](#headingressspec)_ | IngressConfig specifies optional ingress configuration for the head service dashboard. | | |
| `resources` _object (keys:string, values:string)_ | Resources specifies the resource quantities for the head group.<br />These values override the resources passed to `rayStartParams` for the group, but<br />have no effect on the resources set at the K8s Pod container level. | | |
| `labels` _object (keys:string, values:string)_ | Labels specifies the Ray node labels for the head group.<br />These labels will also be added to the Pods of this head group and override the `--labels`<br />argument passed to `rayStartParams`. | | |
| `rayStartParams` _object (keys:string, values:string)_ | RayStartParams are the params of the start command: node-manager-port, object-store-memory, ... | | |
| `serviceType` _[ServiceType](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#servicetype-v1-core)_ | ServiceType is Kubernetes service type of the head service. it will be used by the workers to connect to the head pod | | |


#### HeadIngressSpec



HeadIngressSpec defines the host, path, and TLS configuration for the ingress generated for the head group.



_Appears in:_
- [HeadGroupSpec](#headgroupspec)

| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `host` _string_ | Host sets rules[0].host on the generated ingress. | | |
| `path` _string_ | Path sets rules[0].http.paths[0].path on the generated ingress. | | |
| `pathType` _[IngressPathType](#ingresspathtype)_ | PathType sets rules[0].http.paths[0].pathType on the generated ingress. | | Enum: [Exact Prefix ImplementationSpecific] <br /> |
| `tls` _[IngressTLSConfig](#ingresstlsconfig) array_ | TLS sets spec.tls entries on the generated ingress. | | |


#### IngressPathType

_Underlying type:_ _string_



_Validation:_
- Enum: [Exact Prefix ImplementationSpecific]

_Appears in:_
- [HeadIngressSpec](#headingressspec)

| Field | Description |
| --- | --- |
| `Exact` | |
| `Prefix` | |
| `ImplementationSpecific` | |


#### IngressTLSConfig



IngressTLSConfig defines a TLS entry for the generated ingress.



_Appears in:_
- [HeadIngressSpec](#headingressspec)

| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `hosts` _string array_ | Hosts is a list of hosts included in the TLS certificate. | | |
| `secretName` _string_ | SecretName is the name of the secret used to terminate TLS. | | |




#### JobSubmissionMode
Expand Down
24 changes: 24 additions & 0 deletions helm-chart/kuberay-operator/crds/ray.io_rayclusters.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions helm-chart/kuberay-operator/crds/ray.io_raycronjobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,30 @@ spec:
type: object
type: object
type: object
ingressConfig:
properties:
host:
type: string
path:
type: string
pathType:
enum:
- Exact
- Prefix
- ImplementationSpecific
type: string
tls:
items:
properties:
hosts:
items:
type: string
type: array
secretName:
type: string
type: object
type: array
type: object
labels:
additionalProperties:
type: string
Expand Down
24 changes: 24 additions & 0 deletions helm-chart/kuberay-operator/crds/ray.io_rayjobs.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions helm-chart/kuberay-operator/crds/ray.io_rayservices.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 38 additions & 0 deletions ray-operator/apis/ray/v1/raycluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ type HeadGroupSpec struct {
// EnableIngress indicates whether operator should create ingress object for head service or not.
// +optional
EnableIngress *bool `json:"enableIngress,omitempty"`
// IngressConfig specifies optional ingress configuration for the head service dashboard.
// +optional
IngressConfig *HeadIngressSpec `json:"ingressConfig,omitempty"`
// Resources specifies the resource quantities for the head group.
// These values override the resources passed to `rayStartParams` for the group, but
// have no effect on the resources set at the K8s Pod container level.
Expand All @@ -153,6 +156,41 @@ type HeadGroupSpec struct {
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
}

// +kubebuilder:validation:Enum=Exact;Prefix;ImplementationSpecific
type IngressPathType string

const (
IngressPathTypeExact IngressPathType = "Exact"
IngressPathTypePrefix IngressPathType = "Prefix"
IngressPathTypeImplementationSpecific IngressPathType = "ImplementationSpecific"
)

// HeadIngressSpec defines the host, path, and TLS configuration for the ingress generated for the head group.
type HeadIngressSpec struct {
// Host sets rules[0].host on the generated ingress.
// +optional
Host *string `json:"host,omitempty"`
// Path sets rules[0].http.paths[0].path on the generated ingress.
// +optional
Path *string `json:"path,omitempty"`
// PathType sets rules[0].http.paths[0].pathType on the generated ingress.
// +optional
PathType *IngressPathType `json:"pathType,omitempty"`
// TLS sets spec.tls entries on the generated ingress.
// +optional
TLS []IngressTLSConfig `json:"tls,omitempty"`
}

// IngressTLSConfig defines a TLS entry for the generated ingress.
type IngressTLSConfig struct {
// Hosts is a list of hosts included in the TLS certificate.
// +optional
Hosts []string `json:"hosts,omitempty"`
// SecretName is the name of the secret used to terminate TLS.
// +optional
SecretName string `json:"secretName,omitempty"`
}

// WorkerGroupSpec are the specs for the worker pods
type WorkerGroupSpec struct {
// Suspend indicates whether a worker group should be suspended.
Expand Down
62 changes: 62 additions & 0 deletions ray-operator/apis/ray/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions ray-operator/config/crd/bases/ray.io_rayclusters.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions ray-operator/config/crd/bases/ray.io_raycronjobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,30 @@ spec:
type: object
type: object
type: object
ingressConfig:
properties:
host:
type: string
path:
type: string
pathType:
enum:
- Exact
- Prefix
- ImplementationSpecific
type: string
tls:
items:
properties:
hosts:
items:
type: string
type: array
secretName:
type: string
type: object
type: array
type: object
labels:
additionalProperties:
type: string
Expand Down
Loading
Loading