@@ -4,7 +4,7 @@ This project implements a csi plugin for Kubernetes clusters
44running on Oracle Cloud Infrastructure (OCI). It enables provisioning, attach, detach, mount and unmount of [ OCI block
55storage volumes] [ 1 ] to Kubernetes Pods via the [ CSI] [ 2 ] plugin interface.
66
7- ## Install / Setup
7+ ## Install / Setup using yamls
88
99We publish two binaries oci-csi-controller-driver which runs on the master nodes, and oci-csi-node-controller which runs on each of the worker nodes.
1010
@@ -76,6 +76,77 @@ $ kubectl -n kube-system get po | grep csi-oci-controller
7676$ kubectl -n kube-system get po | grep csi-oci-node
7777```
7878
79+ ## Install / Setup using helm chart
80+
81+ We publish two binaries oci-csi-controller-driver which runs on the master nodes, and oci-csi-node-controller which runs on each of the worker nodes.
82+
83+ ### Submit configuration as a Kubernetes secret
84+
85+ Create a config.yaml file with contents similar to the following. This file will contain authentication
86+ information necessary to authenticate with the OCI APIs and provision block storage volumes.
87+ An example configuration file can be found [ here] ( manifests/provider-config-example.yaml )
88+
89+ Submit this as a Kubernetes Secret.
90+
91+ ``` bash
92+ kubectl create secret generic oci-volume-provisioner \
93+ -n kube-system \
94+ --from-file=config.yaml=provider-config-example.yaml
95+ ```
96+ ### Installer
97+
98+ Create the associated RBAC rules if your cluster is configured to use [ RBAC] [ 3 ]
99+
100+ Before applying the below helm chart make sure you are on the GitHub branch/tag where you want to apply the helm chart from (for example, v1.31.0)
101+
102+ The CSI Volume Snapshot-Restore feature requires additional CRDs
103+
104+ ``` bash
105+ $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
106+ $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
107+ $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
108+ ```
109+
110+ The below helm chart installs the following:
111+ 1 . CSI controller driver - It is provided as a deployment and it has five containers -
112+ 1 . csi-provisioner [ external-provisioner] [ 4 ]
113+ 2 . csi-attacher [ external-attacher] [ 5 ]
114+ 3 . snapshot-controller [ snapshot-controller] [ 8 ]
115+ 4 . csi-snapshotter [ external-snapshotter] [ 9 ]
116+ 5 . oci-csi-controller-driver
117+ 2 . Node-driver: It is provided as a daemon set and it has two containers -
118+ 1 . node-driver-registrar [ node-driver-registrar] [ 6 ]
119+ 2 . oci-csi-node-driver
120+ 3 . Storage classes required
121+
122+ ``` bash
123+ $ helm install < release-name-of-your-choice> manifests/container-storage-interface/csi
124+ ```
125+
126+ Lastly, verify that the oci-csi-controller-driver and oci-csi-node-controller is running in your cluster. By default it runs in the 'kube-system' namespace.
127+
128+ ```
129+ $ kubectl -n kube-system get po | grep csi-oci-controller
130+ $ kubectl -n kube-system get po | grep csi-oci-node
131+ ```
132+
133+ #### CSI controller/node custom drivers deployment
134+
135+ Some use-cases need the CSI controller/node driver containers to be installed with a custom name (for ex: To run custom containers alongside OKE deployed default containers on an OKE cluster). In such cases, the below command can be used to create a custom CSI helm release with components renamed to avoid conflicts with default components
136+
137+ ``` bash
138+ $ helm install < release-name-of-your-choice> manifests/container-storage-interface/csi --set customHandle=" custom"
139+ ```
140+
141+ The above installs all the components listed in the above section with custom names
142+
143+ To uninstall the above helm release and all the components it has installed
144+
145+ ``` bash
146+ $ helm uninstall < release-name-of-your-choice>
147+ ```
148+
149+
79150## Tutorial
80151
81152Create a claim:
0 commit comments