Feature Request: Add maxApplication Support for Queues (similar to YuniKorn)
What is the problem you're trying to solve
We’d love to see a maxApplication feature in Volcano Scheduler queues, basically the same idea as what’s available in YuniKorn.
In YuniKorn, the maxApplication parameter on a queue defines the maximum number of running applications permitted concurrently in that queue. This helps prevent queue saturation, protects the system from resource starvation, and ensures fair usage across workloads. In large, multi-tenant environments, the ability to cap the number of applications per queue is critical for stability and enforceable fairness.
Feature Proposal:
- Add a maxApplication (or suitably named) setting to Volcano Scheduler queue configurations.
- When the maximum is reached in a queue, new application submissions to that queue should be rejected, queued, or otherwise blocked until running applications fall below the limit.
- Support for hierarchical queue structures, if already present in Volcano.
- Optionally, expose metrics/events when the quota is hit for observability.
Describe the solution you'd like
There are two possible ways this feature could be integrated:
- Extend the existing capacity plugin: Enhance the current capacity plugin to enforce the maxApplication limit per queue alongside other quota and resource constraints.
- Develop a new plugin: Introduce a new plugin dedicated to managing the maximum number of applications per queue. This keeps the logic modular and allows easy enablement or disablement as needed.
Additional context
No response
what situation or case to use this feature?
Good, looks like the quota of job, I think it's worth. I think we can intergrate with capacity plugin since quota logic is in this plugin.
@vzhou-p do you plan offer a pr for this feature?
@vzhou-p do you plan offer a pr for this feature?@vzhou-p 你计划为这个功能提供 pull request 吗?
Yes, I'll post a PR later this week.是的,我会在本周稍后提交一个 PR。
LGTM