Skip to content

[SPARK-59918][K8S] Support deployment pods allocator in ExecutorResizePlugin - #59180

Closed
dongjoon-hyun wants to merge 1 commit into
apache:masterfrom
dongjoon-hyun:dongjoon/executor-resize-plugin-deployment-0e6321
Closed

dongjoon-hyun wants to merge 1 commit into
apache:masterfrom
dongjoon-hyun:dongjoon/executor-resize-plugin-deployment-0e6321

Conversation

@dongjoon-hyun

@dongjoon-hyun dongjoon-hyun commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

What changes were proposed in this pull request?

This PR aims to support ExecutorResizePlugin with the deployment pods allocator for Apache Spark 4.4.0 in addition to the default direct pods allocator.

Why are the changes needed?

SPARK-56670 restricted ExecutorResizePlugin to the direct pods allocator because the higher-level controller's pod template is the source of truth for the other allocators with different mechanism.

However, after SPARK-59914, Spark becomes capable of support Deployment because we never updates its pod template, and the ReplicaSet controller neither reverts in-place pod resizes nor rolls out a new revision for them.

Does this PR introduce any user-facing change?

Yes. In Apache Spark 4.2.0, ExecutorResizePlugin logs a warning and does not start with the deployment pods allocator. After this PR, it works with the deployment pods allocator.

How was this patch tested?

Pass the CIs with the updated test case.

I also verified manually on K8s v1.37.0 that the executor pods of the Deployment are resized in place up to spark.kubernetes.executor.resizeMaxMemory without restarts, while the Deployment keeps its pod template and a single ReplicaSet.

Was this patch authored or co-authored using generative AI tooling?

Generated-by: Claude Opus 5.5

@dongjoon-hyun

Copy link
Copy Markdown
Member Author

cc @peter-toth

@dongjoon-hyun

Copy link
Copy Markdown
Member Author

Thank you so much, @HyukjinKwon !

dongjoon-hyun added a commit that referenced this pull request Oct 1, 2026
…sizePlugin`

### What changes were proposed in this pull request?

This PR aims to support `ExecutorResizePlugin` with the `deployment` pods allocator for Apache Spark 4.4.0 in addition to the default `direct` pods allocator.

### Why are the changes needed?

[SPARK-56670](#55615) restricted `ExecutorResizePlugin` to the `direct` pods allocator because the higher-level controller's pod template is the source of truth for the other allocators with different mechanism.

However, after SPARK-59914, Spark becomes capable of support `Deployment` because we never updates its pod template, and the `ReplicaSet` controller neither reverts in-place pod resizes nor rolls out a new revision for them.
- #59175

### Does this PR introduce _any_ user-facing change?

Yes. In Apache Spark 4.2.0, `ExecutorResizePlugin` logs a warning and does not start with the `deployment` pods allocator. After this PR, it works with the `deployment` pods allocator.

### How was this patch tested?

Pass the CIs with the updated test case.

I also verified manually on K8s v1.37.0 that the executor pods of the `Deployment` are resized in place up to `spark.kubernetes.executor.resizeMaxMemory` without restarts, while the `Deployment` keeps its pod template and a single `ReplicaSet`.

### Was this patch authored or co-authored using generative AI tooling?

Generated-by: Claude Opus 5.5

Closes #59180 from dongjoon-hyun/dongjoon/executor-resize-plugin-deployment-0e6321.

Authored-by: Dongjoon Hyun <dongjoon@apache.org>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
(cherry picked from commit 913175e)
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
@dongjoon-hyun

Copy link
Copy Markdown
Member Author

Merge Summary:

Posted by merge_spark_pr.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants