Skip to content

[Feat][kubectl-plugin] Config file for creating RayClusters #3142

Closed
@MortalHappiness

Description

@MortalHappiness

As we support more use-cases for cluster creation, it won’t scale to add CLI flags for every possible permutation of RayClusters. We should consider supporting config files (in YAML) to capture high-level parameters for cluster creation. The challenge here is designing config files that are significantly simpler than writing RayCluster YAML directly without sacrificing too much utility. One consideration would be to use a similar format as the existing values.yaml for the Ray Cluster helm chart.

Possible Config

context: CURRENT_CONTEXT
namespace: [none]

labels: {}
annotations: [}

ray-version: CURRENT_VERSION
image: rayproject/ray:CURRENT_VERSION

head-cpu: 2
head-memory: 4Gi
head-gpu: 0
head-ray-start-params: {}

worker-groups:
- name: worker
  worker-replicas: 1
  worker-cpu: 2
  worker-memory: 4Gi
  worker-gpu: 0
  worker-ray-start-params: {}

dry-run: false
wait: false
timeout: 5m

gke:
  # GCS bucket volume mount
  gcsfuse:
    bucket0name: my-bucket
    # optional mount options
    mount-options: implicit-dirs,uid=1000,gid=100
    # optional mount path that defaults to /mnt/gcs-data
    # the bucket will be mounted at /mnt/gcs-data on both head and worker nodes
    mount-path: /mnt/gcs-data
    # optional resource configs for gcsfuse sidecar container
    resources:
      cpus: 250m
      memory: 256Mi
      ephemeral-storage: 5Gi

eks: {}

Example command

kubectl ray create cluster (NAME) --cluster-config <path-to-config>

Discussion

Isn't this somewhat redundant with helm install raycluster? After all, helm template can achieve a similar outcome.

Metadata

Metadata

Assignees

Labels

1.4.0P0Critical issue that should be fixed ASAPclikubectl plugin

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions