Update JobSet dependency and implement support for SuccessPolicy - #423
Merged
Merged
Conversation
Updates the JobSet dependency and e2e test manifests to the latest release. The v1alpha2 API used by AppWrapper is unchanged across v0.8.0 -> v0.12.0, so no source changes are required. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… status Previously, AppWrapper only inferred component success or failure from raw pod-phase counts. This misses JobSets using a non-"All" SuccessPolicy (e.g. Operator: Any), where JobSet's own controller marks the JobSet Completed even though pods in unused replicated jobs never reach the Succeeded phase - causing AppWrapper to never observe success and drift toward Resetting instead. getComponentStatus now inspects a JobSet's own Completed/Failed status conditions, and a component-level succeeded signal is treated as authoritative alongside the existing pod-count check. Addresses kubernetes-sigs/kueue#12389 (comment) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sigs.k8s.io/jobsetto v0.12.0 (dependency and e2e test manifests). The v1alpha2 API used by AppWrapper is unchanged across v0.8.0 -> v0.12.0, so no source changes were required beyond the version bump.Completed/Failedstatus conditions, soSuccessPolicy/FailurePolicyoutcomes are honored even when they don't align with a simple pod-phase count.Motivation
AppWrapper previously inferred a wrapped JobSet's success or failure purely from counting pod phases. This works for the default
SuccessPolicy(Operator: All), but breaks for a JobSet usingOperator: Any: JobSet's own controller can mark the JobSetCompletedonce any one replicated job succeeds, while pods belonging to other, unused replicated jobs never reach theSucceededphase. AppWrapper's pod-count check then never fires, and the AppWrapper drifts towardResettinginstead ofSucceeded.Addresses kubernetes-sigs/kueue#12389 (comment)
Changes
go.mod/go.sum:sigs.k8s.io/jobsetv0.8.0 -> v0.12.0 (viago get+go mod tidy).hack/e2e-util.sh: pin JobSet e2e test version/image to v0.12.0.internal/controller/appwrapper/appwrapper_controller.go:succeededfield tocomponentStatusSummary.getComponentStatusnow has a dedicated case forjobset.x-k8s.io/v1alpha2:JobSetthat inspects the JobSet'sstatus.conditionsforCompleted/Failed(statusTrue) and incrementssummary.succeeded/summary.failedaccordingly.Runningphase now also treatscompStatus.succeeded > 0as an authoritative success signal, in addition to the existing pod-count check.internal/controller/appwrapper/*_test.go,suite_test.go):sigs.k8s.io/jobsetmodule cache) in the envtest environment.jobSet()fixture and asetJobSetConditionhelper to simulate the JobSet controller settingCompleted/Failedconditions.SuccessPolicy(with no pods ever created) drives the AppWrapper toSucceeded, and a JobSet reportingFaileddrives the AppWrapper toFailed.Test plan
make test— all specs pass (14 appwrapper controller specs including the 2 new JobSet cases, 20 webhook specs, 2 config specs).go vet ./...— clean.go build ./...— clean.