You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* add default quota to AW
* add default quota
* resolve merge
* Added support to query existing QuotaSubTrees. MCAD checks that there is a label associated with every quota-sub-tree for the AppWrapper; if there is none, then it adds it with 'default' value. This way, AppWrappers submitted without labels can be dispatched using the quota management library. Added tests for this, and fixed 'quota_service' sub tree to have a 'default' node. This code assumes the quota administrator created a leaf node name 'default' that can be used to schedule AppWrappers without quota labels.
* Fixed bug that manifested when running MCAD without quota management. The code would think there is no quota (even without quota management) because the new code wasn't inside the proper scope.
* Renamed the function 'GetTreeNames' to 'GetValidQuotaLabels'
* Default quota labels code fixed. Code preserves the existing labels and updates the Kubernetes object correctly. New tests added to check for AppWrappers with no labels at all and with existing labels but no quota labels.
* relax testing scenario
---------
Co-authored-by: Pedro D. Bello-Maldonado <[email protected]>
klog.V(4).Infof("[ScheduleNext] HOL available resourse successful check for %s at %s activeQ=%t Unsched=%t &qj=%p Version=%s Status=%+v due to quota limits", qj.Name, time.Now().Sub(HOLStartTime), qjm.qjqueue.IfExistActiveQ(qj), qjm.qjqueue.IfExistUnschedulableQ(qj), qj, qj.ResourceVersion, qj.Status)
1266
1266
ifqjm.serverOption.QuotaEnabled {
1267
1267
ifqjm.quotaManager!=nil {
1268
+
// Quota tree design:
1269
+
// - All AppWrappers without quota submission will consume quota from the 'default' node.
1270
+
// - All quota trees in the system should have a 'default' node so AppWrappers without
1271
+
// quota specification can be dispatched
1272
+
// - If the AppWrapper doesn't have a quota label, then one is added for every tree with the 'default' value
1273
+
// - Depending on how the 'default' node is configured, AppWrappers that don't specify quota could be
1274
+
// preemptable by default (e.g., 'default' node with 'cpu: 0m' and 'memory: 0Mi' quota and 'hardLimit: false'
1275
+
// such node borrows quota from other nodes already in the system)
0 commit comments