k3s/pkg
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
..
admission Fix usage of shared informer in namespace admission controllers 2016-08-01 13:40:34 -04:00
api Merge pull request #28936 from rata/secret-configmap-file-mode 2016-08-18 05:59:48 -07:00
apimachinery Merge pull request #28431 from brendandburns/thirdparty2 2016-07-22 09:41:58 -07:00
apis Merge pull request #30138 from gmarek/flags 2016-08-18 00:41:28 -07:00
apiserver implement restful for InstallLogsSupport 2016-08-16 09:09:02 +08:00
auth Merge pull request #28281 from nhlfr/authorize-return-bool 2016-07-18 21:40:26 -07:00
capabilities Use Go canonical import paths 2016-07-16 13:48:21 -04:00
client Merge pull request #30839 from lavalamp/fix 2016-08-18 02:43:25 -07:00
cloudprovider GCE changes for the new provisioning model 2016-08-18 10:36:50 +02:00
controller Merge pull request #29006 from jsafrane/dynprov2 2016-08-18 09:56:16 -07:00
conversion Use Go canonical import paths 2016-07-16 13:48:21 -04:00
credentialprovider Merge pull request #28539 from derekwaynecarr/credential_provider_timeout 2016-07-22 18:01:41 -07:00
dns Use MarshalIndent instead of marshal and indent 2016-08-16 18:00:30 +09:00
fieldpath Fix default resource limits (node capacities) for downward api volumes 2016-08-16 14:41:17 -04:00
fields add RequiresExactMatch test for empty andterm 2016-08-12 11:51:52 -07:00
genericapiserver Merge pull request #30050 from ping035627/ping035627-patch-0804 2016-08-17 00:53:53 -07:00
healthz fixes the wrong doc in package healthz 2016-07-18 22:46:09 +08:00
httplog Use Go canonical import paths 2016-07-16 13:48:21 -04:00
hyperkube Use Go canonical import paths 2016-07-16 13:48:21 -04:00
kubectl Dynamic provisioning V2 controller, provisioners, docs and tests. 2016-08-18 10:36:49 +02:00
kubelet kubelet eviction on inode exhaustion 2016-08-17 16:57:44 -04:00
kubemark Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
labels Print/log pointers of structs with %#v instead of %+v 2016-08-01 22:27:56 +02:00
master Update etcd default ports for v3, and validate tests 2016-08-17 07:49:19 -05:00
metrics Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
probe Merge pull request #27562 from 7ing/ipt 2016-08-02 08:02:32 -07:00
proxy Revert "syncNetworkUtil in kubelet and fix loadbalancerSourceRange on GCE" 2016-08-16 18:12:28 -07:00
quota Quota admission errors if usage is negative 2016-08-11 11:26:59 -04:00
registry Merge pull request #30250 from krousey/kctl_dynamic 2016-08-17 14:48:56 -07:00
runtime Add JSON encoding handlers to unstructured objects 2016-08-15 22:07:53 -07:00
security Add alpha annotations support to the PodSecurityPolicy provider 2016-08-17 10:14:36 -07:00
securitycontext Remove pod mutation for PVs with supplemental GIDs 2016-07-22 17:41:44 -04:00
serviceaccount Check for valid serviceaccount JWT token before inspecting claims 2016-07-06 14:25:15 -04:00
ssh Revert "Add a customized ssh dialer that will timeout" 2016-07-14 08:48:24 +02:00
storage Merge pull request #30664 from hongchaodeng/r3 2016-08-17 00:56:05 -07:00
types Use Go canonical import paths 2016-07-16 13:48:21 -04:00
ui Use Go canonical import paths 2016-07-16 13:48:21 -04:00
util Merge pull request #30257 from timstclair/aa-psp-annotations 2016-08-18 07:12:45 -07:00
version Use Go canonical import paths 2016-07-16 13:48:21 -04:00
volume Merge pull request #29006 from jsafrane/dynprov2 2016-08-18 09:56:16 -07:00
watch Update generated files due to dependency shift. 2016-08-09 10:41:09 -05:00
OWNERS Remove bgrant from pkg/OWNERS and pkg/kubectl/OWNERS since he has plenty to do. 2016-06-16 08:21:27 -07:00