*`monitors`: Ceph monitors, comma delimited. It is required.
*`adminID`: Ceph client ID that is capable of creating images in the pool. Default is "admin"
*`adminId`: Ceph client ID that is capable of creating images in the pool. Default is "admin".
*`adminSecret`: Secret Name for `adminID`
*`adminSecret`: Secret Name for `adminId`. It is required.
*`adminSecretNamespace`: The namespace for `adminSecret`. Default is "default"
*`adminSecretNamespace`: The namespace for `adminSecret`. Default is "default".
*`pool`: Ceph RBD pool. Default is "rbd"
*`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`
*`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.
*`userSecretName`: The name of Ceph Secret for `userId` to map RBD image. It must exist in the same namespace as PVCs. It is required.
### User provisioning requests
### User provisioning requests
...
@@ -179,6 +179,7 @@ In the future, the storage class may remain in an annotation or become a field o
...
@@ -179,6 +179,7 @@ In the future, the storage class may remain in an annotation or become a field o
### Sample output
### Sample output
#### GCE
#### 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
...
@@ -231,6 +232,7 @@ Before creating PVC in user's namespace (e.g. myns), make sure the Ceph user's S
...
@@ -231,6 +232,7 @@ Before creating PVC in user's namespace (e.g. myns), make sure the Ceph user's S
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)
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.adminId,p.rbdMounter.adminSecret)
glog.V(4).Infof("rbd: rm %s using mon %s, pool %s id %s key %s",p.rbdMounter.Image,mon,p.rbdMounter.Pool,p.rbdMounter.Id,p.rbdMounter.Secret)
glog.V(4).Infof("rbd: rm %s using mon %s, pool %s id %s key %s",p.rbdMounter.Image,mon,p.rbdMounter.Pool,p.rbdMounter.adminId,p.rbdMounter.adminSecret)