Repository navigation
[SPARK-60042] Support Kueue admission check podSetUpdates - #951
dongjoon-hyun wants to merge 2 commits into
Conversation
|
All tests passed. Could you review this PR when you have some time, @peter-toth ? |
There was a problem hiding this comment.
Thanks for the PR, @dongjoon-hyun!
This merges the podSetUpdates of the admission checks into the resolved flavors and applies them to the pod templates of both resources. Traced against Kueue v0.20.0, it matches getPodSetsInfoFromStatus and PodSetInfo.Merge in which update is used, in what order, and what counts as a conflict. Not checking the state of each check is safe. Kueue drops Admitted as soon as a check leaves Ready, and its webhook keeps podSetUpdates immutable while a check is Ready. I found nothing blocking.
Minor
- 1.
KueuePodSetFlavorname: the record now also carries the admission-check updates, so a name like Kueue'sPodSetInfowould fit better. inline
| * @param annotations The merged `annotations` of the podSetUpdates. | ||
| */ | ||
| public record KueuePodSetFlavor(Map<String, String> nodeSelector, List<Toleration> tolerations) { | ||
| public record KueuePodSetFlavor( |
There was a problem hiding this comment.
Finding 1. The record now also holds the labels, annotations, nodeSelector and tolerations of the admission checks, so Flavor no longer describes what's in it. Kueue keeps the same merged shape in podset.PodSetInfo. Renaming it to KueuePodSetInfo would say what it holds. The Kueue integration isn't released yet, so a rename is cheap now. A follow-up PR is fine too.
There was a problem hiding this comment.
Thank you, @peter-toth. I renamed it to KueuePodSetInfo in this PR, along with the members which hold or produce it, e.g. setKueuePodSetInfos and resolvePodSetInfos.
|
Merged to main |
What changes were proposed in this pull request?
This PR aims to support Kueue admission check
podSetUpdateslike the Kueue built-in integrations. Thelabels,annotations,nodeSelectorandtolerationswhich the admission checks report instatus.admissionChecks[].podSetUpdatesof aWorkloadare merged with the flavors and applied to the pods ofSparkApplicationandSparkCluster. A conflicting value fails the resource withSchedulingFailure, like a node label conflict of the flavors.Why are the changes needed?
Previously, the operator applied only the flavors. So, the pods admitted through a ProvisioningRequest admission check lacked its annotations and node selector, and were not bound to the provisioned capacity.
Does this PR introduce any user-facing change?
No for the released versions, because the Kueue integration is not released yet in 1.0.0 (2026-07-23).
How was this patch tested?
Pass the CIs with the newly added test cases.
Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Opus 5.5