Apache Spark™ K8s Operator is a subproject of Apache Spark and aims to extend K8s resource manager to manage Apache Spark applications via Operator Pattern. This release includes Apache Spark K8s Operator 0.8.0 (App Version) with Helm chart 1.6.0 (Chart Version).
Notable Features
- Support K8s v1.33, v1.34, and v1.35
- Support Apache Spark 3.5, 4.0, 4.1
- Support
SparkAppandSparkClusterCRDssparkapplications.spark.apache.org(v1)sparkclusters.spark.apache.org(v1)
- Support
HPAforSparkCluster - Support
Artifact Hub - Provide various examples
Docker Image
docker pull apache/spark-kubernetes-operator:0.8.0
Install Helm Chart
$ helm repo add spark https://apache.github.io/spark-kubernetes-operator
$ helm repo update
$ helm install spark spark-kubernetes-operator/spark-kubernetes-operator
$ helm list
Full Changelog:
Resolved Issues
- [SPARK-55000] Release Spark Kubernetes Operator 0.8.0
- [SPARK-54896] Improve Helm templates to use Spark Operator HA feature easily
- [SPARK-55002] Bump version to 0.8.0-SNAPSHOT in
mainbranch - [SPARK-55067] Update Spark 3 examples and tests to use 3.5.8
- [SPARK-55069] Upgrade
kubernetes-clientto 7.5.1 and update CRDs - [SPARK-55078] Upgrade
Gradleto 9.3.0 - [SPARK-55079] Log
Java Version - [SPARK-55080] Improve
MANIFEST.MFto includeImplementation-(Title|Version) - [SPARK-55081] Log
Version - [SPARK-55082] Upgrade
Dropwizardmetrics to 4.2.37 - [SPARK-55083] Upgrade
checkstyleto 13.0.0 - [SPARK-55084] Update docs to recommend K8s 1.33+
- [SPARK-55085] Support
NetworkPolicyforSparkApplication - [SPARK-55094] Enable
spark.authenticateby default - [SPARK-55095] Enable
spark.io.encryption.enabledby default - [SPARK-55099] Support
NetworkPolicyforSparkCluster - [SPARK-55100] Enhance Spark Resource Security
- [SPARK-55102] Upgrade
com.gradleup.shadowto 8.3.9 - [SPARK-55165] Upgrade
kubernetes-clientto 7.5.2 - [SPARK-55190] Improve
ClusterInitStepto use Server-Side Apply APIs - [SPARK-55192] Improve HTTP response security
- [SPARK-55268] Fix
ConfigOption.getValuenot to invokeresolveValuetwice - [SPARK-55269] Fix a wrong comment of
testHandleSentinelResourceReconciliation - [SPARK-55270] Disallow all HTTP methods except
GETandHEAD - [SPARK-55274] Set
-XX:+AlwaysPreTouchby default - [SPARK-55288] Upgrade Netty to
4.2.9.Final - [SPARK-55292] Add discover latency metric to track operator processing delay
- [SPARK-55298] Fix "Argument list too long" error in
assertGeneratedCRDMatchesHelmCharttask - [SPARK-55310] Upgrade
Gradleto 9.3.1 - [SPARK-55329] Upgrade
Apache DataFusion Cometto 0.13.0 - [SPARK-55343] Simplify
HealthProbeclass - [SPARK-55344] Support
spark.kubernetes.operator.metrics.path - [SPARK-55352] Use K8s Garbage Collection to delete executor pods
- [SPARK-55371] Increase
Gradleretry setting to stablize CIs - [SPARK-55374] Remove
vendorrequirement from Java toolchain - [SPARK-55380] Upgrade
Icebergexample to use Spark 4.0.2 - [SPARK-55417] Add
create_spark_jira.pyscript - [SPARK-55419] Upgrade Netty to
4.2.10.Final - [SPARK-55421] Increase
livenessProbe.failureThresholdto 3 - [SPARK-55422] Fix the default value of
readinessProbe.failureThresholdto 1 - [SPARK-55425] Set
strategy.max-parrallelto 20 for all GitHub Action jobs - [SPARK-55468] Log
Built-in Spark Version - [SPARK-55470] Add a
Checkstylerule to enforce symbolic placeholder for logging - [SPARK-55486] Fix
StatusRecorder.patchAndStatusWithVersionLockednot to log errors - [SPARK-55499] Update
pi-with-eventlogto generate multiple log files - [SPARK-55512] Update
README.mdwith YuniKorn 1.8.0 - [SPARK-55527] Remove
labelerGitHub Actions job - [SPARK-55537] Check
spark.dynamicAllocation.enabledbefore overriding deleteOnTermination - [SPARK-55543] Change
SentinelManager.getSentinelResourcestopackage private - [SPARK-55545] Improve
create_spark_jira.pyto support-pto set the parent JIRA ID - [SPARK-55546] Enable
GitHub Issuesfeature - [SPARK-55550] Add
Apache Celebornexample - [SPARK-55563] Add
JWSFilter-enabled Spark History Server example - [SPARK-55566] Add
SparkClusterReconcilerTest - [SPARK-55567] Remove
HttpServletRequestusage - [SPARK-55592] Revise subtask creating message
- [SPARK-55598] Update
rsync-deploymentstag to 8.0.3 - [SPARK-55602] Update
setup-javato v5 - [SPARK-55611] Add
RunningWithPartialCapacitystate forSparkApplicationCRD - [SPARK-55623] Add granular restart control with consecutive failure tracking
- [SPARK-55633] Improve
create_spark_jira.pyto support TYPE parameter-t - [SPARK-55634] Use
Mermaidfor(Application|Cluster) State Transition - [SPARK-55641] Add connection timeout to JIRA client to prevent hanging and enable retries
- [SPARK-55644] Add
instanceConfigSparkApplicationexample - [SPARK-55651] Improve
create_spark_jira.pyto support the version parameter - [SPARK-55660] Add
On-Demand PVCexample - [SPARK-55676] Upgrade Hadoop to 3.4.3
- [SPARK-55680] Remove
spark.kubernetes.driver.pod.excludedFeatureStepsconfig from examples - [SPARK-55698] Upgrade
operator-sdkto 5.2.3 - [SPARK-55733] Upgrade PMD to 7.21.0 to support Java 26
- [SPARK-55734] Upgrade
Dropwizardmetrics to 4.2.38 - [SPARK-55735] Upgrade
checkstyleto 13.2.0 andspotbugs-pluginto 6.4.8 - [SPARK-55737] Add Java 26-ea to GitHub Action
- [SPARK-55738] Fix
ResourceRetainPolicyjavadoc location - [SPARK-55750] Retry creating secondary resources on
408/500/502/503/504error codes and network timeouts - [SPARK-55758] Use
ubuntu-slimfor GitHub Actionslicense-checkjob - [SPARK-55804] Expose informer cache sync timeout as operator config
- [SPARK-55807] Use Java 25 Compact Object Headers
- [SPARK-55808] Use
-XX:+UseCompactObjectHeadersfor Java 25+ GitHub Actionsbuild-testjobs - [SPARK-55840] Upgrade
Gradleto 9.4.0 - [SPARK-55845] Add
.claudeto.gitignore - [SPARK-55847] Upgrade
kubernetes-clientto 7.6.0 and update CRDs - [SPARK-55900] Simplify
SparkAppStatusUtilsby adjustingimportstatements - [SPARK-55906] Remove unused
SparkAppStatusUtils.hasReachedState - [SPARK-55911] Improve
ModelUtilsto supportisClientModemethod - [SPARK-55912] Add
sinceJavadoc tag for all publicspark-operator-apiclasses - [SPARK-55937] Upgrade
kubernetes-clientto 7.6.1 - [SPARK-55942] Update GitHub Actions YAML file in
branch-0.8