fix(resourcequotas): Update namespace-specific hard quota calculation logic (#1088)

Signed-off-by: Lukas Boettcher <1340215+lukasboettcher@users.noreply.github.com>
This commit is contained in:
lukasboettcher
2024-05-23 08:08:51 +02:00
committed by GitHub
parent 915e493b4a
commit b16bcda8fb

View File

@@ -130,7 +130,15 @@ func (r *Manager) syncResourceQuotas(ctx context.Context, tenant *capsulev1beta2
list.Items[item].Spec.Hard = map[corev1.ResourceName]resource.Quantity{}
}
list.Items[item].Spec.Hard[name] = resourceQuota.Hard[name]
// Effectively this subtracts the usage from all other namespaces in the tenant from the desired tenant hard quota.
// Thus we can determine, how much is left in this resourcequota (item) for the current resource (name).
// We use this remaining quota at the tenant level, to update the hard quota for the current namespace.
newHard := hardQuota // start off with desired tenant wide hard quota
newHard.Sub(quantity) // subtract tenant wide usage
newHard.Add(list.Items[item].Status.Used[name]) // add back usage in current ns
list.Items[item].Spec.Hard[name] = newHard
for k := range list.Items[item].Spec.Hard {
if !toKeep.Has(k) {