Releases: danielgafni/dagster-ray
Release list
v0.4.5
🐛 Bug Fixes
- preserve useful characters when truncating K8s label values (#356 by @peterroelants)
📖 Docs
🛠️ Other Improvements
- update dependency astral-sh/uv to v0.11.16 (#352 by @renovate[bot])
- update ghcr.io/astral-sh/uv docker tag to v0.11.8 (#357 by @renovate[bot])
- update softprops/action-gh-release action to v2.6.2 (#358 by @renovate[bot])
- update ghcr.io/astral-sh/uv docker tag to v0.11.6 (#353 by @renovate[bot])
- switch to devenv (#350 by @danielgafni)
- change default branch to
main(by @danielgafni)
❤️ New Contributors
- @peterroelants made their first contribution in #356
- @jrosti made their first contribution in #351
v0.4.4
✨ Features
- add
create_cluster_if_neededconstructor argument toPipesRayJobClient(#324 by @ashutosh1807) - add
submit_job_paramsargument toPipesKubeRayJobClient.run(#322 by @ashutosh1807)
🐛 Bug Fixes
- add _force_create_local_cluster workaround for broken create_cluster_if_needed (#346 by @ashutosh1807)
- ignore more k8s errors during RayCluster startup (#344 by @danielgafni)
🛠️ Other Improvements
- add a section for other improvements to changelog
- improve Pipes imports and docs references (#343 by @danielgafni)
- upgrade zensical to 0.0.28 (#342 by @danielgafni)
- add minimal Claude Code config (#341 by @danielgafni)
v0.4.3
This release is focused on improving support for authentication and cross-cluster KubeRay workloads.
Note
If you or your company are using dagster-ray in production, please consider adding yourself to the list here :)
✨ Features
- support
resolve_hostnamehook inPipesKubeRayJobClient(#340 by @danielgafni) - add resolve_hostname hook to
KubeRayResource(#335 by @danielgafni) - support authOptions in RayClusterSpec (#314 by @danielgafni)
- add support for custom Ray dashboard address with authentication (#315 by @JosefNagelschmidt)
- add missing fields to RayJobSpec (#321 by @danielgafni)
🐛 Bug Fixes
- use serviceName FQDN instead of serviceIP for cross-cluster connectivity (#319 by @pythonmonty)
📖 Docs
- add kaiko to the list of users (#338 by @pythonmonty)
- add Sanas to the list of users (#339 by @ashutosh1807)
- add cross-cluster & authentication docs (#336 by @danielgafni)
- update Pipes docs with better Ray API references (#329 by @danielgafni)
- switch to Zensical (#327 by @danielgafni)
❤️ New Contributors
- @pythonmonty made their first contribution in #319
- @ashutosh1807 made their first contribution in #339
Release v0.4.2
Added
RayResourcenow has new lifecycle hook methods for customizing startup messages (and potentially doing something else):on_createon_readyon_connecton_cleanup
Fixes
- fixed duplicated startup log message for
LocalRay - fixed the top-level
env_varsDagster config field not taking effect forKubeRayInteractiveJob
Full Changelog: v0.4.1...v0.4.2
Release v0.4.1
This release includes a few quality of life fixes. It's also tested against the latest versions of the code dependencies: Dagster 1.12, Ray 2.53, and KubeRay 1.5.
Added
RayCluster's head pod logs are now displayed on startup timeout or failure
Fixes
-
the
RayClustercleanup sensor no longer attempts to cleanup clusters with.metadata.ownerReferencesfield set. -
Fixed race condition with cluster sharing: previously multiple steps running in parallel could create different
RayClusterinstances at the same time (that were supposed to be shared).dagster-raynow uses Kubernetes Lease-based leader election to coordinate shared cluster creation, which guarantees that only one of the running steps creates the sharedRayCluster. -
runtimeEnvYAMLnow has all strings fully quoted which fixes passing values such as1e-5asruntime_envvalues. Thanks @JosefNagelschmidt! -
ray_addressis now optional forRunLauncherConfig. Thanks @cornettew! -
Prevent the
RayClustercleanup sensor from targeting clusters with.metadata.ownerReferencesset. -
addressconfig value can now be omitted forray_executor, making it use Ray's default cluster address resolution. Thanks @cornettew!
New Contributors
- @cornettew made their first contribution in #292
- @JosefNagelschmidt made their first contribution in #297
Full Changelog: v0.4.0...v0.4.1
Release v0.4.0
This release introduces a new feature that is very useful in dev environments: Cluster Sharing. Cluster sharing allows reusing existing RayCluster resources created by previous Dagster steps. It's implemented for KubeRayCluster Dagster resource. This feature enables faster iteration speed and reduced infrastructure costs (at the expense of job isolation). Therefore KubeRayCluster is now recommended over KubeRayInteractiveJob for use in dev environments.
Learn more in Cluster Sharing docs.
Added
KubeRayCluster.cluster_sharingparameter that controls cluster sharing behavior.dagster_ray.kuberay.sensors.cleanup_expired_kuberay_clusterssensor that cleans up expired clusters (both shared and non-shared). Learn more in docs.dagster-rayentry now appears in the Dagster libraries list in the web UI.
Changed
- [:bomb: breaking] - removed
cleanup_kuberay_clusters_opand other associated definitions in favor ofdagster_ray.kuberay.sensors.cleanup_expired_kuberay_clusterssensor that is more flexible.
Full Changelog: v0.3.1...v0.4.0
Release v0.3.1
Added
- A new
failure_tolerance_timeoutconfiguration parameter forKubeRayInteractiveJobandKubeRayCluster. It can be set to a positive value to give the cluster some time to transition out offailedstate (which can be transient in some scenarios) before raising an error.
Fixes
- ensure both
.head.serviceIPand.head.serviceNameare set on theRayClusterwhile waiting for cluster readiness
Full Changelog: v0.3.0...v0.3.1
Release v0.3.0
This release includes massive docs improvements and drops support for Python 3.9
Changes
- [:bomb: breaking] dropped Python 3.9 support (EOL October 2025)
- [internal] most of the general, backend-agnostic code has been moved to
dagster_ray.core(top-level imports still work)
Full Changelog: v0.2.1...v0.3.0
Release v0.2.1
Release v0.2.0
Changed
KubeRayInteractiveJob.deletion_strategynow defaults toDeleteClusterfor both successful and failed executions. This is a reasonable default for the use case.KubeRayInteractiveJob.ttl_seconds_after_finishednow defaults to600seconds.KubeRayCluster.lifecycle.cleanupnow defaults toalways- [:bomb: breaking]
RayJobandRayClusterclients and resources Kubernetes init parameters have been renamed tokube_configandkube_context.
Added
- new
enable_legacy_debuggerconfiguration parameter to subclasses ofRayResource - new
on_exceptionoption forlifecycle.cleanuppolicy. It's triggered during resource setup/cleanup (includingKeyboardInterrupt), but not by user@op/@assetcode. KubeRayInteractiveJobnow respectslifecycle.cleanup. It defaults toon_exception. Users are advised to rely on built-inRayJobcleanup mechanisms, such asttlSecondsAfterFinishedanddeletionStrategy.
Fixes
- removed
ignore_reinit_errorfromRayResourceinit options: it's potentially dangerous, for example in case the user has accidentally connected to another Ray cluster (including local ray) before initializing the resource.