kubernetes/pkg/controller
Kubernetes Submit Queue 9d2a5fe5e8 Merge pull request #29006 from jsafrane/dynprov2
Automatic merge from submit-queue

Implement dynamic provisioning (beta) of PersistentVolumes via StorageClass

Implemented according to PR #26908. There are several patches in this PR with one huge code regen inside.

* Please review the API changes (the first patch) carefully, sometimes I don't know what the code is doing...

* `PV.Spec.Class` and `PVC.Spec.Class` is not implemented, use annotation `volume.alpha.kubernetes.io/storage-class`

* See e2e test and integration test changes - Kubernetes won't provision a thing without explicit configuration of at least one `StorageClass` instance!

* Multiple provisioning volume plugins can coexist together, e.g. HostPath and AWS EBS. This is important for Gluster and RBD provisioners in #25026

* Contradicting the proposal, `claim.Selector` and `volume.alpha.kubernetes.io/storage-class` annotation are **not** mutually exclusive. They're both used for matching existing PVs. However, only `volume.alpha.kubernetes.io/storage-class` is used for provisioning, configuration of provisioning with `Selector` is left for (near) future.

* Documentation is missing. Can please someone write some while I am out?

For now, AWS volume plugin accepts classes with these parameters:

```
kind: StorageClass
metadata:
  name: slow
provisionerType: kubernetes.io/aws-ebs
provisionerParameters:
  type: io1
  zone: us-east-1d
  iopsPerGB: 10
```

* parameters are case-insensitive
* `type`: `io1`, `gp2`, `sc1`, `st1`. See AWS docs for details
* `iopsPerGB`: only for `io1` volumes. I/O operations per second per GiB. AWS volume plugin multiplies this with size of requested volume to compute IOPS of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see AWS docs).
* of course, the plugin will use some defaults when a parameter is omitted in a `StorageClass` instance (`gp2` in the same zone as in 1.3).

GCE:

```
apiVersion: extensions/v1beta1
kind: StorageClass
metadata:
  name: slow
provisionerType: kubernetes.io/gce-pd
provisionerParameters:
  type: pd-standard
  zone: us-central1-a
```

* `type`: `pd-standard` or `pd-ssd`
* `zone`: GCE zone
* of course, the plugin will use some defaults when a parameter is omitted in a `StorageClass` instance (SSD in the same zone as in 1.3 ?).


No OpenStack/Cinder yet

@kubernetes/sig-storage
2016-08-18 09:56:16 -07:00
..
certificates certificates: implement certificates controller 2016-07-19 11:25:38 -07:00
daemon Change podNamespacer API 2016-08-17 16:55:01 +02:00
deployment fix tests; convert IsPodActive to operate on *Pod 2016-08-17 13:05:37 -07:00
disruption Change podNamespacer API 2016-08-17 16:55:01 +02:00
endpoint Change podNamespacer API 2016-08-17 16:55:01 +02:00
framework Collapse duplicate informer creation paths 2016-08-04 09:02:13 +02:00
garbagecollector Merge pull request #28387 from caesarxuchao/gc-latency-measure 2016-08-11 02:33:55 -07:00
job Change podNamespacer API 2016-08-17 16:55:01 +02:00
namespace only store typeMeta and objectMeta in the gc store 2016-08-08 17:23:13 -07:00
node Merge pull request #30138 from gmarek/flags 2016-08-18 00:41:28 -07:00
petset Change podNamespacer API 2016-08-17 16:55:01 +02:00
podautoscaler fix go vet errors 2016-08-10 16:45:41 -07:00
podgc Use Go canonical import paths 2016-07-16 13:48:21 -04:00
replicaset Change podNamespacer API 2016-08-17 16:55:01 +02:00
replication Change podNamespacer API 2016-08-17 16:55:01 +02:00
resourcequota Merge pull request #29653 from ZTE-PaaS/zhangke-patch-010 2016-08-11 21:54:28 -07:00
route Use Go canonical import paths 2016-07-16 13:48:21 -04:00
scheduledjob Remove pods along with jobs when Replace ConcurrentPolicy is set 2016-08-14 11:59:06 +02:00
service rewrite serivce controller to apply the latest controller pattern 2016-08-04 09:28:55 +08:00
serviceaccount move new etcd storage into cacher 2016-08-12 18:40:20 -07:00
volume Merge pull request #29006 from jsafrane/dynprov2 2016-08-18 09:56:16 -07:00
controller_ref_manager.go fix tests; convert IsPodActive to operate on *Pod 2016-08-17 13:05:37 -07:00
controller_utils.go fix tests; convert IsPodActive to operate on *Pod 2016-08-17 13:05:37 -07:00
controller_utils_test.go fix tests; convert IsPodActive to operate on *Pod 2016-08-17 13:05:37 -07:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
lookup_cache.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
OWNERS Remove myself from a bunch of OWNERS files, as I am too overloaded 2016-05-11 13:34:51 -07:00