kubeflow / kubeflow/trainer

KEP-3562: [OptimizationJob] Integrate Kueue using `suspend` and `managedBy` fields for queue management

Open
#3,800 11 comments 0 reactions 1 assignee Claimed by @modichika View on GitHub
area/hpo kind/feature kind/plan-kep
Dominant language
Go
Stars
2.2k
Forks
1.1k
Avg merge
3d 22h
Merged PRs (30d)
39

Description

### What you would like to be added?

Context:
Kubeflow Trainer integrates natively with [Kueue](https://kueue.sigs.k8s.io/) for job queuing, quota management, and fair sharing across teams.

Problem:
Without explicit `suspend` and `managedBy` fields on `OptimizationJob`, Kueue cannot gate or queue the top-level optimization parent job or coordinate cluster capacity before spawning trial pods.

Future Goals:

- Add `spec.suspend` and `spec.managedBy` fields to OptimizationJobSpec.

- Update controller reconciliation to respect Kueue's gating controls.

- Ensure trial allocation honors tenant resource quotas.

Relates to KEP-3562 Master Tracking [Issue](https://github.com/kubeflow/trainer/issues/3562).

### Why is this needed?

Proper Kueue integration prevents `OptimizationJob` from over-provisioning cluster resources and ensures fair queue scheduling across multi-tenant clusters.

### Love this feature?

Give it a 👍 We prioritize the features with most 👍

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.