Skip to content

Commit 1f63845

Browse files
YashasG98GouthamML
authored andcommitted
Helm related doc updates
1 parent 984db80 commit 1f63845

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

container-storage-interface.md

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This project implements a csi plugin for Kubernetes clusters
44
running on Oracle Cloud Infrastructure (OCI). It enables provisioning, attach, detach, mount and unmount of [OCI block
55
storage volumes][1] to Kubernetes Pods via the [CSI][2] plugin interface.
66

7-
## Install / Setup
7+
## Install / Setup using yamls
88

99
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.
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

81152
Create a claim:

0 commit comments

Comments
 (0)