$ oc create clusterquota for-user \ --project-annotation-selector openshift.io/requester=<user-name> \ --hard pods=10 \ --hard secrets=20
A multi-project quota, defined by a ClusterResourceQuota
object, allows
quotas to be shared across
multiple projects. Resources used in each selected project will be aggregated
and that aggregate will be used to limit resources across all the selected
projects.
Projects can be selected based on either annotation selection, label selection, or both. For example:
$ oc create clusterquota for-user \ --project-annotation-selector openshift.io/requester=<user-name> \ --hard pods=10 \ --hard secrets=20
creates:
apiVersion: v1
kind: ClusterResourceQuota
metadata:
name: for-user
spec:
quota: (1)
hard:
pods: "10"
secrets: "20"
selector:
annotations: (2)
openshift.io/requester: <user-name>
labels: null (3)
status:
namespaces: (4)
- namespace: ns-one
status:
hard:
pods: "10"
secrets: "20"
used:
pods: "1"
secrets: "9"
total: (5)
hard:
pods: "10"
secrets: "20"
used:
pods: "1"
secrets: "9"
1 | The ResourceQuotaSpec object that will be enforced over the selected projects. |
2 | A simple key/value selector for annotations. |
3 | A label selector that can be used to select projects. |
4 | A per-namespace map that describes current quota usage in each selected project. |
5 | The aggregate usage across all selected projects. |
This multi-project quota document controls all projects requested by <user-name> using the default project request endpoint. You are limited to 10 pods and 20 secrets.
ClusterResourceQuotas
A project administrator is not allowed to create or modify the multi-project
quota that limits his or her project, but the administrator is allowed to view the
multi-project quota documents that are applied to his or her project. The
project administrator can do this via the AppliedClusterResourceQuota
resource.
$ oc describe AppliedClusterResourceQuota
produces:
Name: for-user Namespace: <none> Created: 19 hours ago Labels: <none> Annotations: <none> Label Selector: <null> AnnotationSelector: map[openshift.io/requester:<user-name>] Resource Used Hard -------- ---- ---- pods 1 10 secrets 9 20
Due to the locking consideration when claiming quota allocations, the number of active projects selected by a multi-project quota is an important consideration. Selecting more than 100 projects under a single multi-project quota may have detrimental effects on API server responsiveness in those projects.