*`type`: [VolumeType](http://docs.openstack.org/admin-guide/dashboard-manage-volumes.html) created in Cinder. Default is empty.
*`type`: [VolumeType](http://docs.openstack.org/admin-guide/dashboard-manage-volumes.html) created in Cinder. Default is empty.
*`availability`: Availability Zone. Default is empty.
*`availability`: Availability Zone. Default is empty.
#### Ceph RBD
```yaml
apiVersion:extensions/v1beta1
kind:StorageClass
metadata:
name:fast
provisioner:kubernetes.io/rbd
parameters:
monitors:10.16.153.105:6789
adminID:kube
adminSecretName:ceph-secret
adminSecretNamespace:kube-system
pool:kube
userId:kube
secretName:ceph-secret-user
```
*`monitors`: Ceph monitors, comma delimited
*`adminID`: Ceph client ID that is capable of creating images in the pool. Default is "admin"
*`adminSecret`: Secret Name for `adminID`
*`adminSecretNamespace`: The namespace for `adminSecret`. Default is "default"
*`pool`: Ceph RBD pool. Default is "rbd"
*`userId`: Ceph client ID that is used to map the RBD image. Default is the same as `adminID`
*`secretName`: The name of Ceph Secret. It must exist in the same namespace as PVCs.
### User provisioning requests
### User provisioning requests
Users request dynamically provisioned storage by including a storage class in their `PersistentVolumeClaim`.
Users request dynamically provisioned storage by including a storage class in their `PersistentVolumeClaim`.
...
@@ -152,6 +178,7 @@ In the future, the storage class may remain in an annotation or become a field o
...
@@ -152,6 +178,7 @@ In the future, the storage class may remain in an annotation or become a field o
### Sample output
### Sample output
#### GCE
This example uses GCE but any provisioner would follow the same flow.
This example uses GCE but any provisioner would follow the same flow.
First we note there are no Persistent Volumes in the cluster. After creating a storage class and a claim including that storage class, we see a new PV is created
First we note there are no Persistent Volumes in the cluster. After creating a storage class and a claim including that storage class, we see a new PV is created
...
@@ -184,6 +211,73 @@ $ kubectl get pv
...
@@ -184,6 +211,73 @@ $ kubectl get pv
```
```
#### Ceph RBD
First create Ceph admin's Secret in the system namespace. Here the Secret is created in `kube-system`:
glog.V(4).Infof("rbd: create %s size %s using mon %s, pool %s id %s key %s",p.rbdMounter.Image,volSz,mon,p.rbdMounter.Pool,p.rbdMounter.Id,p.rbdMounter.Secret)