I tried it, and when starting RayJob or RayService through kuberay, not setting the rayVersion field has no impact on the program running.
So, what is the role of this rayVersion field?
I tried it, and when starting RayJob or RayService through kuberay, not setting the rayVersion field has no impact on the program running.
So, what is the role of this rayVersion field?
The rayVersion field in a RayCluster, RayJob, or RayService Kubernetes custom resource specifies the version of Ray to use for the cluster. Its main role is to fill default values for certain config fields and ensure that the Ray container images specified in your resource spec match the intended Ray version. If you use a nightly or development Ray image, it’s acceptable to set rayVersion to the latest release version. However, in many cases, omitting this field does not prevent the cluster from running, especially if the image tags in your pod specs are set explicitly and are compatible with your workloads. The field is not always strictly required, but it helps with version consistency and may be used by some tools or controllers for validation or defaulting purposes.
According to the documentation, the rayVersion field is used to fill default values for certain config fields, and the Ray container images in the spec should match the rayVersion to avoid version mismatches. If you omit it, and your images are set correctly, your cluster may still work, but you lose this layer of version management and potential validation. For RayJob with submissionMode: "K8sJobMode", omitting rayVersion may cause failures, but for standard RayCluster or RayService, it is often optional as long as your images are correct. Would you like more detail on specific scenarios where rayVersion is required or how it interacts with other fields?
Sources:
Hint: Mention @RunLLM in the post for followups.