Restoring Cloudsnaps to same OR different namespace

To restore your cloudsnap to a different namespace, you may use the following PVC object and create it under the different namespace while applying.

When you install Stork, it also creates a storage class called stork-snapshot-sc . This storage class can be used to create PVCs from snapshots.

To create a PVC from a snapshot, you would add the snapshot.alpha.kubernetes.io/snapshot annotation to refer to the snapshot name.

Restoring to same namespace:

Pre-requisites:

  1. Name of the snapshot object - You can get this with kubectl get volume snapshot -n test-namespace

Use the annotation:
snapshot.alpha.kubernetes.io/snapshot:

kubectl apply -f restore_pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-snap-clone
  annotations:
    snapshot.alpha.kubernetes.io/snapshot: mysql-snapshot //This is exact snapshot name 
spec:
  accessModes:
     - ReadWriteOnce
  storageClassName: stork-snapshot-sc
  resources:
    requests:
      storage: 2Gi

Restoring to different namespace:

Pre-requisites:

  1. Name of the snapshot object - You can get this with kubectl get volumesnapshot -n test-namespace
  2. NameSpace of the snapshot object currently

Lets say, you are trying to restore a PVC into a new namespace, other than the original namespace,

If the snapshot exists in another namespace, the snapshot namespace should be specified with the annotation in the restored PVC as follows:

stork.libopenstorage.org/snapshot-source-namespace: <EXISTING-NAMESPACE>

Note that the storageClassName needs to be the Stork StorageClass stork-snapshot-sc as in the example below.

The following spec restores a PVC from the snapshot in the example above:

kubectl apply -f restore_pvc.yaml -n <NEW-NAMESPACE>

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-snap-clone
  annotations:
    snapshot.alpha.kubernetes.io/snapshot: mysql-snapshot //This is exact snapshot name 
     stork.libopenstorage.org/snapshot-source-namespace: <Namespace of mysql-snapshot>
spec:
  accessModes:
     - ReadWriteOnce
  storageClassName: stork-snapshot-sc
  resources:
    requests:
      storage: 2Gi

Nice Post, Will it work in px 2.5.x versions as well? Can i also use the schedule policy during my restore ?

Yes it will work with PX 2.5.
After the volume is restored, you need to create the Kubernetes objects (PVC, PV) first to schedule that restored volume using VolumeSnapshot object.
OR
it can be done using the pxctl CLI without creating the objects.