Merge nbp installation into opensds ansible script
[stor4nfv.git] / tutorials / csi-plugin.md
1 ## Prerequisite ##\r
2 \r
3 ### ubuntu\r
4 * Version information\r
5 \r
6         ```\r
7         root@proxy:~# cat /etc/issue\r
8         Ubuntu 16.04.2 LTS \n \l\r
9         ```\r
10 \r
11 ### docker\r
12 * Version information\r
13 \r
14         ```\r
15         root@proxy:~# docker version\r
16         Client:\r
17          Version:      1.12.6\r
18          API version:  1.24\r
19          Go version:   go1.6.2\r
20          Git commit:   78d1802\r
21          Built:        Tue Jan 31 23:35:14 2017\r
22          OS/Arch:      linux/amd64\r
23         \r
24         Server:\r
25          Version:      1.12.6\r
26          API version:  1.24\r
27          Go version:   go1.6.2\r
28          Git commit:   78d1802\r
29          Built:        Tue Jan 31 23:35:14 2017\r
30          OS/Arch:      linux/amd64\r
31         ```\r
32 \r
33 ### [kubernetes](https://github.com/kubernetes/kubernetes) local cluster\r
34 * You can startup the v1.9.0 k8s local cluster by executing commands blow:\r
35 \r
36         ```\r
37         cd $HOME\r
38         git clone https://github.com/kubernetes/kubernetes.git\r
39         cd $HOME/kubernetes\r
40         git checkout v1.9.0\r
41         make\r
42         echo alias kubectl='$HOME/kubernetes/cluster/kubectl.sh' >> /etc/profile\r
43         ALLOW_PRIVILEGED=true FEATURE_GATES=CSIPersistentVolume=true,MountPropagation=true RUNTIME_CONFIG="storage.k8s.io/v1alpha1=true" LOG_LEVEL=5 hack/local-up-cluster.sh\r
44         ```\r
45 \r
46 ### [opensds](https://github.com/opensds/opensds) local cluster\r
47 * For testing purposes you can deploy OpenSDS refering to ```ansible/README.md```.\r
48 \r
49 ## Testing steps ##\r
50 \r
51 * Change the workplace\r
52 \r
53         ```\r
54         cd /opt/opensds-k8s-v0.1.0-linux-amd64\r
55         ```\r
56 \r
57 * Configure opensds endpoint IP\r
58 \r
59         ```\r
60         vim csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml\r
61         ```\r
62 \r
63         The IP (127.0.0.1) should be replaced with the opensds actual endpoint IP.\r
64         ```yaml\r
65         kind: ConfigMap\r
66         apiVersion: v1\r
67             metadata:\r
68         name: csi-configmap-opensdsplugin\r
69             data:\r
70             opensdsendpoint: http://127.0.0.1:50040\r
71         ```\r
72 \r
73 * Create opensds CSI pods.\r
74 \r
75         ```\r
76         kubectl create -f csi/deploy/kubernetes\r
77         ```\r
78 \r
79         After this three pods can be found by ```kubectl get pods``` like below:\r
80 \r
81         - csi-provisioner-opensdsplugin\r
82         - csi-attacher-opensdsplugin\r
83         - csi-nodeplugin-opensdsplugin\r
84 \r
85         You can find more design details from\r
86     [CSI Volume Plugins in Kubernetes Design Doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md)\r
87 \r
88 * Create example nginx application\r
89 \r
90         ```\r
91         kubectl create -f csi/examples/kubernetes/nginx.yaml\r
92         ```\r
93 \r
94         This example will mount a opensds volume into ```/var/lib/www/html```.\r
95 \r
96         You can use the following command to inspect into nginx container to verify it.\r
97 \r
98         ```\r
99         docker exec -it <nginx container id> /bin/bash\r
100         ```\r
101 \r
102 ## Clean up steps ##\r
103 \r
104 Clean up example nginx application and opensds CSI pods by the following commands.\r
105 \r
106 ```\r
107 kubectl delete -f csi/examples/kubernetes/nginx.yaml\r
108 kubectl delete -f csi/deploy/kubernetes\r
109 ```\r