Skip to content
KEP Brain

KEP-5547keps/sig-apps/5547-integrate-workload-with-job

Integrate Workload APIs with Job Controller

implementablebetasig-appslatest v1.38
This KEP integrates the Workload-aware Scheduling (WAS) APIs (Workload and PodGroup) into the batch/v1 Job by adding a user-facing spec.scheduling field, allowing users to express explicit scheduling intent such as gang scheduling[^1], topology co-location, and disruption policies. The feature has gone through two alpha releases: - v1alpha1 (v1.36) intenti… Full summary

This KEP integrates the Workload-aware Scheduling (WAS) APIs (Workload and PodGroup) into the batch/v1 Job by adding a user-facing spec.scheduling field, allowing users to express explicit scheduling intent such as gang scheduling[^1], topology co-location, and disruption policies. The feature has gone through two alpha releases: - v1alpha1 (v1.36) intentionally bypassed a user-facing API: the controller inferred a hardcoded Gang policy from the Job's type (parallel Jobs with indexed completion mode), with minCount fixed to parallelism. - v1alpha2 (v1.37) replaced that automatic, controller-inferred model with an explicit, user-driven design that separates scheduling policy from workload structure. It introduced the spec.scheduling field on the Job API, built on the reusable scheduling building blocks and the shared workloadbuilder translation library defined in [KEP-6089], keeping the Job integration consistent with the rest of the ecosystem rather than reinventing bespoke logic. The Job controller acts as a translator, compiling spec.scheduling into the underlying Workload/PodGroup objects. When spec.scheduling is omitted, it defaults to Basic scheduling, so the scheduling outcome of existing Jobs is preserved. For v1.38 the integration is promoted to Beta and the WorkloadWithJob feature gate is enabled by default. Because the spec.scheduling field is embedded in the GA batch/v1 API, its building blocks graduate straight into scheduling.k8s.io/v1 (with Go type aliases left in v1alpha3) as described in [KEP-6089]. The Beta revision also resolves the design questions the v1alpha2 left open and the controller exposes metrics for the Workload/PodGroup lifecycle. Default enablement is conditional on the GenericWorkload gate ([KEP-4671]) being enabled by default in the same release, since WorkloadWithJob depends on it.

Facts

Authors
@helayoty
PRR approvers
@wojtek-talpha@wojtek-tbeta
Tracking issue
#5547(opens GitHub in a new tab) openreopenedmilestone v1.38sig/appssig/schedulingstage/betatracked/yeslead-opted-inwg/workload-aware-scheduling
Milestones
alpha v1.36beta v1.38
Participating SIGs
sig-scheduling
Feature gates
WorkloadWithJob
Created / last updated
2026-01-29 / none
Loading decisions and status history

Keyboard shortcuts

Everywhere

?
Show or hide this list
/
Focus the question box on Ask, otherwise the page search
Ctrl Kor⌘ K
Focus the KEP search in the top bar
t
Switch the theme (system, light, dark)
Esc
Close a dialog, a search list or a menu

Go to a page

Press g, then the letter

g h
Home
g a
Ask
g e
Explore
g u
Audit
g m
Memory
g b
About

Ask

Enter
Send the question
Shift Enter
New line in the question
Esc
Cancel the running question

Search lists

KEP search and Explore search

↓or↑
Move through the results
HomeorEnd
First or last result (Explore)
Enter
Open the highlighted result, or KEP-n when the query is a number

KEP page

o
Open the KEP on GitHub
y
Open kep.yaml on GitHub
a
Ask about this KEP
←or→
Previous or next tab, when a tab is focused

Findings table

With a finding row focused (Tab into the table or click a row)

jork
Next or previous finding
EnterorSpace
Expand or collapse the finding
o
Open the finding's KEP page
d
Draft the fix as an issue text (nothing is posted)
]or[
Next or previous page of findings

Shortcuts pause while you type in a field. Press ? or Esc to close.