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
1 change: 1 addition & 0 deletions docs/reference/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `workersToDelete` _string array_ | WorkersToDelete workers to be deleted | | |
| `scaleGate` _string array_ | ScaleGate contains a list of scaling gates blocking this worker group from<br />scaling up. When Kueue encounters a quota-exceeded error for this worker<br />group, it appends "kueue.k8s.io/quota-exceeded" to ScaleGate. The Autoscaler<br />initiates fallback behavior whenever ScaleGate is non-empty. KubeRay defines<br />this field but does not read or write it, and preserves its value across<br />reconciles. | | |


#### SubmitterConfig
Expand Down
4 changes: 4 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.

4 changes: 4 additions & 0 deletions helm-chart/kuberay-operator/crds/ray.io_raycronjobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5457,6 +5457,10 @@ spec:
type: object
scaleStrategy:
properties:
scaleGate:
items:
type: string
type: array
workersToDelete:
items:
type: string
Expand Down
4 changes: 4 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.

4 changes: 4 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.

8 changes: 8 additions & 0 deletions ray-operator/apis/ray/v1/raycluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,14 @@ type WorkerGroupSpec struct {
type ScaleStrategy struct {
// WorkersToDelete workers to be deleted
WorkersToDelete []string `json:"workersToDelete,omitempty"`
// ScaleGate contains a list of scaling gates blocking this worker group from
// scaling up. When Kueue encounters a quota-exceeded error for this worker
// group, it appends "kueue.k8s.io/quota-exceeded" to ScaleGate. The Autoscaler
// initiates fallback behavior whenever ScaleGate is non-empty. KubeRay defines
// this field but does not read or write it, and preserves its value across
// reconciles.
// +optional
ScaleGate []string `json:"scaleGate,omitempty"`
}

// AutoscalerOptions specifies optional configuration for the Ray autoscaler.
Expand Down
5 changes: 5 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.

4 changes: 4 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.

4 changes: 4 additions & 0 deletions ray-operator/config/crd/bases/ray.io_raycronjobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5457,6 +5457,10 @@ spec:
type: object
scaleStrategy:
properties:
scaleGate:
items:
type: string
type: array
workersToDelete:
items:
type: string
Expand Down
4 changes: 4 additions & 0 deletions ray-operator/config/crd/bases/ray.io_rayjobs.yaml

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

4 changes: 4 additions & 0 deletions ray-operator/config/crd/bases/ray.io_rayservices.yaml

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

3 changes: 3 additions & 0 deletions ray-operator/controllers/ray/utils/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,9 @@ func GenerateHashWithoutReplicasAndWorkersToDelete(rayClusterSpec rayv1.RayClust
updatedRayClusterSpec.WorkerGroupSpecs[i].MaxReplicas = nil
updatedRayClusterSpec.WorkerGroupSpecs[i].MinReplicas = nil
updatedRayClusterSpec.WorkerGroupSpecs[i].ScaleStrategy.WorkersToDelete = nil
// External controllers like Kueue may set ScaleGate to signal quota exhaustion,
// which should not trigger a new RayCluster preparation.
updatedRayClusterSpec.WorkerGroupSpecs[i].ScaleStrategy.ScaleGate = nil
updatedRayClusterSpec.WorkerGroupSpecs[i].Template.Spec.Tolerations = nil
updatedRayClusterSpec.WorkerGroupSpecs[i].Template.Spec.SchedulingGates = nil
}
Expand Down
17 changes: 17 additions & 0 deletions ray-operator/pkg/client/applyconfiguration/ray/v1/scalestrategy.go

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

Loading