Skip to content

Releases: danielgafni/dagster-ray

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 29 May 09:01
v0.4.5
133f465

🐛 Bug Fixes

📖 Docs

  • add IPRally to happy users in README (#351 by @jrosti)

🛠️ Other Improvements

❤️ New Contributors

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 27 Mar 08:17
59c90d5

✨ Features

  • add create_cluster_if_needed constructor argument to PipesRayJobClient (#324 by @ashutosh1807)
  • add submit_job_params argument to PipesKubeRayJobClient.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

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 18 Mar 17:31
1cefc00

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

🐛 Bug Fixes

  • use serviceName FQDN instead of serviceIP for cross-cluster connectivity (#319 by @pythonmonty)

📖 Docs

❤️ New Contributors

Release v0.4.2

Choose a tag to compare

@danielgafni danielgafni released this 20 Feb 12:17
be83679

Added

  • RayResource now has new lifecycle hook methods for customizing startup messages (and potentially doing something else):
    • on_create
    • on_ready
    • on_connect
    • on_cleanup

Fixes

  • fixed duplicated startup log message for LocalRay
  • fixed the top-level env_vars Dagster config field not taking effect for KubeRayInteractiveJob

Full Changelog: v0.4.1...v0.4.2

Release v0.4.1

Choose a tag to compare

@danielgafni danielgafni released this 25 Jan 21:51
bd73eaf

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 RayCluster cleanup sensor no longer attempts to cleanup clusters with .metadata.ownerReferences field set.

  • Fixed race condition with cluster sharing: previously multiple steps running in parallel could create different RayCluster instances at the same time (that were supposed to be shared). dagster-ray now uses Kubernetes Lease-based leader election to coordinate shared cluster creation, which guarantees that only one of the running steps creates the shared RayCluster.

  • runtimeEnvYAML now has all strings fully quoted which fixes passing values such as 1e-5 as runtime_env values. Thanks @JosefNagelschmidt!

  • ray_address is now optional for RunLauncherConfig. Thanks @cornettew!

  • Prevent the RayCluster cleanup sensor from targeting clusters with .metadata.ownerReferences set.

  • address config value can now be omitted for ray_executor, making it use Ray's default cluster address resolution. Thanks @cornettew!

New Contributors

Full Changelog: v0.4.0...v0.4.1

Release v0.4.0

Choose a tag to compare

@danielgafni danielgafni released this 10 Oct 15:26
f2fe537

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_sharing parameter that controls cluster sharing behavior.
  • dagster_ray.kuberay.sensors.cleanup_expired_kuberay_clusters sensor that cleans up expired clusters (both shared and non-shared). Learn more in docs.
  • dagster-ray entry now appears in the Dagster libraries list in the web UI.

Changed

  • [:bomb: breaking] - removed cleanup_kuberay_clusters_op and other associated definitions in favor of dagster_ray.kuberay.sensors.cleanup_expired_kuberay_clusters sensor that is more flexible.

Full Changelog: v0.3.1...v0.4.0

Release v0.3.1

Choose a tag to compare

@danielgafni danielgafni released this 02 Oct 12:01
573d1c8

Added

  • A new failure_tolerance_timeout configuration parameter for KubeRayInteractiveJob and KubeRayCluster. It can be set to a positive value to give the cluster some time to transition out of failed state (which can be transient in some scenarios) before raising an error.

Fixes

  • ensure both .head.serviceIP and .head.serviceName are set on the RayCluster while waiting for cluster readiness

Full Changelog: v0.3.0...v0.3.1

Release v0.3.0

Choose a tag to compare

@danielgafni danielgafni released this 19 Sep 16:26
872934c

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

Choose a tag to compare

@danielgafni danielgafni released this 18 Sep 15:47
9a10991

Fixes

  • Fixed broken wheel on PyPI

Full Changelog: v0.2.0...v0.2.1

Release v0.2.0

Choose a tag to compare

@danielgafni danielgafni released this 18 Sep 11:38
f747208

Changed

  • KubeRayInteractiveJob.deletion_strategy now defaults to DeleteCluster for both successful and failed executions. This is a reasonable default for the use case.
  • KubeRayInteractiveJob.ttl_seconds_after_finished now defaults to 600 seconds.
  • KubeRayCluster.lifecycle.cleanup now defaults to always
  • [:bomb: breaking] RayJob and RayCluster clients and resources Kubernetes init parameters have been renamed to kube_config and kube_context.

Added

  • new enable_legacy_debugger configuration parameter to subclasses of RayResource
  • new on_exception option for lifecycle.cleanup policy. It's triggered during resource setup/cleanup (including KeyboardInterrupt), but not by user @op/@asset code.
  • KubeRayInteractiveJob now respects lifecycle.cleanup. It defaults to on_exception. Users are advised to rely on built-in RayJob cleanup mechanisms, such as ttlSecondsAfterFinished and deletionStrategy.

Fixes

  • removed ignore_reinit_error from RayResource init 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.