Rook is an open source file, block, and object storage for your cloud native environment and is based on battle tested ceph storage. Rook offers storage for your OpenShift apps through persistent volumes which can be dynamically provisioned with kubernetes StorageClass.

The installation itself is fairly simple and can be drilled down to two high-level steps

$ oc create -f rook-operator.yaml
$ oc create -f rook-cluster.yaml

Detailed Installation Steps

Author's Disclaimer:
This tutorial is for educational purpose only has not been tested for production workload by the author.

Step 1: Clone repo

$ git clone https://github.com/rook/rook.git
$ cd rook/demo/kubernetes/1.5
$ oc new-project rook

Step 2: Grant permissions to rook operator as cluster-admin

$ oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:rook:default
$ oc adm policy add-scc-to-user anyuid -z default -n rook
$ oc adm policy add-scc-to-user privileged -z default -n rook

Step 3: Create rook operator

$ oc create -f rook-operator.yaml
$ sleep 10 ##wait for rook operator to be created
$ cat rook-cluster.yaml ##for more options
$ oc create -f rook-cluster.yaml
$ oc get pods -n rook ##wait for rook cluster to be created.
$ oc create -f rook-storageclass.yaml

How do you use Rook?

You can use Rook in the same way that you use other OpenShift storage classes.

For example:

$ oc create -f mysql.yaml -n default ##inside demo/1.5/kubernetes folder.

Note: When provisioning storage, Rook uses a secret called rook-rook-user. Copy this secret to a different namespace if you want to provision storage on a namespace other than the default.

Want to know more?

1) https://rook.io/
2) https://github.com/rook/rook