• 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
..
chaosmonkey Loading commit data...
common Loading commit data...
framework Loading commit data...
generated Loading commit data...
perftype Loading commit data...
testing-manifests Loading commit data...
BUILD Loading commit data...
addon_update.go Loading commit data...
apparmor.go Loading commit data...
autoscaling_utils.go Loading commit data...
batch_v1_jobs.go Loading commit data...
cadvisor.go Loading commit data...
cluster_logging_es.go Loading commit data...
cluster_logging_gcl.go Loading commit data...
cluster_logging_utils.go Loading commit data...
cluster_size_autoscaling.go Loading commit data...
cluster_upgrade.go Loading commit data...
cronjob.go Loading commit data...
daemon_restart.go Loading commit data...
daemon_set.go Loading commit data...
dashboard.go Loading commit data...
density.go Loading commit data...
deployment.go Loading commit data...
disruption.go Loading commit data...
dns.go Loading commit data...
dns_autoscaling.go Loading commit data...
dns_configmap.go Loading commit data...
e2e-example-config.json Loading commit data...
e2e.go Loading commit data...
e2e_test.go Loading commit data...
empty.go Loading commit data...
empty_dir_wrapper.go Loading commit data...
etcd_failure.go Loading commit data...
events.go Loading commit data...
example_cluster_dns.go Loading commit data...
example_k8petstore.go Loading commit data...
examples.go Loading commit data...
federated-ingress.go Loading commit data...
federated-namespace.go Loading commit data...
federated-secret.go Loading commit data...
federated-service.go Loading commit data...
federation-apiserver.go Loading commit data...
federation-authn.go Loading commit data...
federation-daemonset.go Loading commit data...
federation-deployment.go Loading commit data...
federation-event.go Loading commit data...
federation-replicaset.go Loading commit data...
federation-util-14.go Loading commit data...
federation-util.go Loading commit data...
garbage_collector.go Loading commit data...
generated_clientset.go Loading commit data...
gke_local_ssd.go Loading commit data...
gke_node_pools.go Loading commit data...
ha_master.go Loading commit data...
horizontal_pod_autoscaling.go Loading commit data...
ingress.go Loading commit data...
ingress_utils.go Loading commit data...
initial_resources.go Loading commit data...
job.go Loading commit data...
kibana_logging.go Loading commit data...
kube_proxy.go Loading commit data...
kubectl.go Loading commit data...
kubelet.go Loading commit data...
kubelet_perf.go Loading commit data...
limit_range.go Loading commit data...
load.go Loading commit data...
logging_soak.go Loading commit data...
mesos.go Loading commit data...
metrics_grabber_test.go Loading commit data...
monitoring.go Loading commit data...
namespace.go Loading commit data...
network_partition.go Loading commit data...
networking.go Loading commit data...
networking_perf.go Loading commit data...
node_problem_detector.go Loading commit data...
nodeoutofdisk.go Loading commit data...
opaque_resource.go Loading commit data...
pd.go Loading commit data...
persistent_volumes.go Loading commit data...
petset.go Loading commit data...
pod_gc.go Loading commit data...
pods.go Loading commit data...
portforward.go Loading commit data...
pre_stop.go Loading commit data...
proxy.go Loading commit data...
rc.go Loading commit data...
reboot.go Loading commit data...
replica_set.go Loading commit data...
rescheduler.go Loading commit data...
resize_nodes.go Loading commit data...
resource_quota.go Loading commit data...
restart.go Loading commit data...
scheduler_predicates.go Loading commit data...
security_context.go Loading commit data...
service.go Loading commit data...
service_accounts.go Loading commit data...
service_latency.go Loading commit data...
serviceloadbalancers.go Loading commit data...
ssh.go Loading commit data...
third-party.go Loading commit data...
ubernetes_lite.go Loading commit data...
util_iperf.go Loading commit data...
volume_provisioning.go Loading commit data...
volumes.go Loading commit data...