• Kubernetes Submit Queue's avatar
    Merge pull request #34554 from derekwaynecarr/quota-storage-class · b72c006e
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 37270, 38309, 37568, 34554)
    
    Ability to quota storage by storage class
    
    Adds the ability to quota storage by storage class.
    1. `<storage-class>.storageclass.storage.k8s.io/persistentvolumeclaims` - quota the number of claims with a specific storage class
    2. `<storage-class>.storageclass.storage.k8s.io/requests.storage` - quota the cumulative request for storage in a particular storage class.
    
    For example:
    
    ```
    $ cat quota.yaml
    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: storage-quota
    spec:
      hard:
        requests.storage: 100Gi
        persistentvolumeclaims: 100
        gold.storageclass.storage.k8s.io/requests.storage: 50Gi
        gold.storageclass.storage.k8s.io/persistentvolumeclaims: 5
        silver.storageclass.storage.k8s.io/requests.storage: 75Gi
        silver.storageclass.storage.k8s.io/persistentvolumeclaims: 10
        bronze.storageclass.storage.k8s.io.kubernetes.io/requests.storage: 100Gi
        bronze.storageclass.storage.k8s.io/persistentvolumeclaims: 15
    $ kubectl create -f quota.yaml
    $ cat pvc-bronze.yaml
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      generateName: pvc-bronze-
      annotations:
        volume.beta.kubernetes.io/storage-class: "bronze"
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 8Gi
    $ kubectl create -f pvc-bronze.yaml
    $ kubectl get quota storage-quota -o yaml
    apiVersion: v1
    kind: ResourceQuota
    ...
    status:
      hard:
        bronze.storageclass.storage.k8s.io/persistentvolumeclaims: "15"
        bronze.storageclass.storage.k8s.io/requests.storage: 100Gi
        gold.storageclass.storage.k8s.io/persistentvolumeclaims: "5"
        gold.storageclass.storage.k8s.io/requests.storage: 50Gi
        persistentvolumeclaims: "100"
        requests.storage: 100Gi
        silver.storageclass.storage.k8s.io/persistentvolumeclaims: "10"
        silver.storageclass.storage.k8s.io/requests.storage: 75Gi
      used:
        bronze.storageclass.storage.k8s.io/persistentvolumeclaims: "1"
        bronze.storageclass.storage.k8s.io/requests.storage: 8Gi
        gold.storageclass.storage.k8s.io/persistentvolumeclaims: "0"
        gold.storageclass.storage.k8s.io/requests.storage: "0"
        persistentvolumeclaims: "1"
        requests.storage: 8Gi
        silver.storageclass.storage.k8s.io/persistentvolumeclaims: "0"
        silver.storageclass.storage.k8s.io/requests.storage: "0"
    ```
    b72c006e
Name
Last commit
Last update
..
boilerplate Loading commit data...
cmd/teststale Loading commit data...
e2e-internal Loading commit data...
gen-swagger-doc Loading commit data...
jenkins Loading commit data...
lib Loading commit data...
make-rules Loading commit data...
testdata Loading commit data...
verify-flags Loading commit data...
.linted_packages Loading commit data...
OWNERS Loading commit data...
autogenerated_placeholder.txt Loading commit data...
benchmark-go.sh Loading commit data...
benchmark-integration.sh Loading commit data...
build-cross.sh Loading commit data...
build-go.sh Loading commit data...
build-ui.sh Loading commit data...
cherry_pick_pull.sh Loading commit data...
dev-build-and-push.sh Loading commit data...
dev-build-and-up.sh Loading commit data...
dev-push-hyperkube.sh Loading commit data...
e2e-node-test.sh Loading commit data...
e2e.go Loading commit data...
federated-ginkgo-e2e.sh Loading commit data...
generate-bindata.sh Loading commit data...
generate-docs.sh Loading commit data...
get-build.sh Loading commit data...
ginkgo-e2e.sh Loading commit data...
godep-save.sh Loading commit data...
grab-profiles.sh Loading commit data...
install-etcd.sh Loading commit data...
list-feature-tests.sh Loading commit data...
local-up-cluster.sh Loading commit data...
lookup_pull.py Loading commit data...
run-in-gopath.sh Loading commit data...
test-cmd.sh Loading commit data...
test-go.sh Loading commit data...
test-integration.sh Loading commit data...
test-update-storage-objects.sh Loading commit data...
update-all.sh Loading commit data...
update-api-reference-docs.sh Loading commit data...
update-bazel.sh Loading commit data...
update-codecgen.sh Loading commit data...
update-codegen.sh Loading commit data...
update-federation-api-reference-docs.sh Loading commit data...
update-federation-generated-swagger-docs.sh Loading commit data...
update-federation-openapi-spec.sh Loading commit data...
update-federation-swagger-spec.sh Loading commit data...
update-generated-docs.sh Loading commit data...
update-generated-protobuf-dockerized.sh Loading commit data...
update-generated-protobuf.sh Loading commit data...
update-generated-runtime-dockerized.sh Loading commit data...
update-generated-runtime.sh Loading commit data...
update-generated-swagger-docs.sh Loading commit data...
update-godep-licenses.sh Loading commit data...
update-gofmt.sh Loading commit data...
update-munge-docs.sh Loading commit data...
update-openapi-spec.sh Loading commit data...
update-staging-client-go.sh Loading commit data...
update-swagger-spec.sh Loading commit data...
update_owners.py Loading commit data...
verify-all.sh Loading commit data...
verify-api-groups.sh Loading commit data...
verify-api-reference-docs.sh Loading commit data...
verify-bazel.sh Loading commit data...
verify-boilerplate.sh Loading commit data...
verify-cli-conventions.sh Loading commit data...
verify-codecgen.sh Loading commit data...
verify-codegen.sh Loading commit data...
verify-description.sh Loading commit data...
verify-federation-openapi-spec.sh Loading commit data...
verify-flags-underscore.py Loading commit data...
verify-generated-docs.sh Loading commit data...
verify-generated-protobuf.sh Loading commit data...
verify-generated-runtime.sh Loading commit data...
verify-generated-swagger-docs.sh Loading commit data...
verify-godep-licenses.sh Loading commit data...
verify-godeps.sh Loading commit data...
verify-gofmt.sh Loading commit data...
verify-golint.sh Loading commit data...
verify-govet.sh Loading commit data...
verify-import-boss.sh Loading commit data...
verify-linkcheck.sh Loading commit data...
verify-openapi-spec.sh Loading commit data...
verify-pkg-names.sh Loading commit data...
verify-staging-client-go.sh Loading commit data...
verify-swagger-spec.sh Loading commit data...
verify-symbols.sh Loading commit data...
verify-test-images.sh Loading commit data...
verify-test-owners.sh Loading commit data...