Skip to content

Releases: kubeflow/spark-operator

v2.5.0

19 Mar 15:24
b3cca21

Choose a tag to compare

🚀 Spark on Kubernetes Operator v2.5.0

We're excited to announce the release of Spark on Kubernetes Operator v2.5.0! This release introduces
alpha feature gates, namespace label-based watching, Python API generation, SparkConnect webhook validation,
and several important bug fixes including an OOM prevention fix.


✨ New Features

  • Feature gate mechanism — Alpha feature gates are now supported, enabling experimental features to be
    toggled safely (#2794)
  • LoadSparkDefaults feature gate (Alpha) — Adds --load-spark-defaults to spark-submit for
    Spark 4.0+ (#2798)
  • PartialRestart feature gate (Alpha) — Skips reconcile for webhook-patched executor fields,
    reducing unnecessary restarts (#2786)
  • Watch namespaces by labels — Operator can now watch namespaces based on label selectors
    (#2808)
  • Configurable timestamp precision for ScheduledSparkApplication names
    (#2827)
  • Python API generation for Spark Operator CRDs
    (#2828)

🐛 Bug Fixes

  • OOM prevention — Add label selector to ConfigMap cache to prevent OOM via informer flooding
    (#2881)
  • Fix duplicate webhook patch and add missing ScheduledSparkApplication patches
    (#2875)
  • Fix: correct schedule parse error logging in ScheduledSparkApplication controller
    (#2841)
  • Fix: handle nil Executor.Instances in GetExecutorRequestResource
    (#2834)
  • Fix: correct filename typo in metrics package
    (#2830)
  • Fix: propagate batch scheduler initialization errors to trigger retries
    (#2783)
  • Reset SparkApplication status when transitioning from SUCCEEDING/FAILINGPENDING_RERUN
    (#2773)
  • Server-side apply CRDs by forcing conflicts
    (#2800)
  • Fix SparkConnect nil executor template panic
    (#2814)

⛵ Helm Chart

  • Add hostUsers (user namespace) option
    (#2721)
  • Expose metrics-labels flag via Helm chart
    (#2817)
  • Add toleration, affinity, and nodeSelector support for upgrade hook
    (#2780)

⚡ SparkConnect

  • Add webhook validation for SparkConnect CRD
    (#2877)
  • Set appProtocol on SparkConnect server service ports
    (#2823)
  • Add permissions for `sparkconnects...
Read more

v2.5.0-rc.0

03 Mar 02:45
c431d4d

Choose a tag to compare

v2.5.0-rc.0 Pre-release
Pre-release
Official Release v2.5.0-rc.0

v2.4.0

17 Nov 03:35
1199997

Choose a tag to compare

If you want to upgrade to v2.4.0, remember to set hook.upgradeCrd=true when running helm upgrade. This will create a Helm pre-install/pre-upgrade Job to run kubectl apply --server-side to update CRDs.

Announcements

  • We are going to deprecate Kustomize manifests after three months, see #2702. We suggest using Helm to manage spark-operator releases. Plase leave comments in the PR if you are still using Kustomize manifests.

Highlights

  • SparkApplication now can be suspended/resumed by setting .spec.suspend to true/false and will have an integration with Kueue, see kubernetes-sigs/kueue#7268.
  • SparkConnect server service can be customized by .spec.server.service.

Features

  • fix(chart): add revisionHistoryLimit option (#2625 by @t3mi)
  • Suspend/Resume feature on SparkApplication (#2387 by @everpeace)
  • Set ControllerReference on driver pod and non-Controller OwnerReference on executor pod at submission time (#2670 by @everpeace)
  • added SparkApp name validator to accept valid DNS-1035 format (#2711 by @aryankumar04)
  • No propagate Kueue labels to driver and executor pods (#2714 by @everpeace)
  • feat: add support for customizing connect service (#2709 by @ChenYi015)

Bug Fixes

  • Grant get/patch permissions for SparkConnect CRD to hook ClusterRole (#2605 by @ChenYi015)
  • Grant create events permissions to Controller (#2616 by @Rockawear)
  • fix(connect): propagate executor memory setting to spark options (#2656 by @mrjoe7)
  • [fix] add miss cli params. Add leader election params in chart (#2657 by @aagumin)
  • fix: webhook encoder configuration (#2664 by @pvbouwel)
  • bugfix: hook.upgradeCrd use cases (#2663 by @pvbouwel)
  • Correct entrypoint.sh for Openshift (#2645 by @Reamer)
  • Fix driver host configuration to handle IPv6 addresses (#2703 by @tiagotxm)
  • Add permissions for sparkconnects/finalizers (#2727 by @ChenYi015)
  • Remove redundant name and namespace context in logs (#2723 by @ChenYi015)
  • Logging info when resources associated with SparkApplication still exist (#2725 by @ChenYi015)

Unit Tests

Refactor

Dependencies

Misc

Read more

v2.4.0-rc.1

15 Nov 04:41
47a2f96

Choose a tag to compare

v2.4.0-rc.1 Pre-release
Pre-release
Official Release v2.4.0-rc.1

v2.4.0-rc.0

10 Nov 12:05
95be8e0

Choose a tag to compare

v2.4.0-rc.0 Pre-release
Pre-release
Official Release v2.4.0-rc.0

v2.3.0

22 Jul 05:53
85f6962

Choose a tag to compare

Highlights

  • Support Spark v4.
  • Add support for Spark Connect by adding a new CRD called SparkConnect. One example can be found here.
  • Upgrade CRDs automatically when running helm upgrade by setting hook.upgradeCrd=true. This will create a Helm pre-install/pre-upgrade Job to run kubectl apply --server-side to update CRDs.
  • Configure logging format by setting {controller,webhook}.logEncoder to json or console.

Features

Bug Fixes

Dependencies

Misc

Full Changelog

v2.3.0-rc.0

21 Jul 09:35
9a1bef1

Choose a tag to compare

v2.3.0-rc.0 Pre-release
Pre-release
Official Release v2.3.0-rc.0

v2.2.1

27 Jun 01:04
c2a5e60

Choose a tag to compare

Features

Misc

Dependencies

Full Changelog

v2.2.0

29 May 07:24
53dc38e

Choose a tag to compare

Features

Bug Fixes

Misc

v2.2.0-rc.1

29 May 06:25
7bdd35f

Choose a tag to compare

v2.2.0-rc.1 Pre-release
Pre-release
Spark Operator Official Release v2.2.0-rc.1