| abstract | authors | date | title | |||||
|---|---|---|---|---|---|---|---|---|
This is the readme for the Helm Charts in this repository that can be used to deploy Static and Dynamic Storage Classes to bare metal Kubernetes clusters. |
|
2024-07-18 |
Readme |
Presently this includes a provisioner for local static storage as well as
a {term}CSI driver for dynamically provisioning Linux {term}LVM storage.
For more information, see the full documentation on GitHub Pages.
For the sake of the author's convenience, install instructions will assume that
you have already completed the following steps on an {term}ArchLinux system.
-
Install kubie
yay -S kubie -
Update your {term}
kubiecontext so it points to your cluster.kubie ctx
To install this application, you can follow these steps. The {term}CSI {term}LVM driver
supports 3 volume modes (linear, striped, mirror). All three are enabled by
default. The local static provisioner is disabled by default.
-
Have a {term}
Kubernetescluster that needs {term}StorageClassobjects. -
On at least one node in your cluster provision a Volume Group that matches the name you've provided in the
csi-driver-lvm.lvm.vgName{l=yaml} setting in {file}values.yaml. For best results, provision this volume group on all of the nodes in your cluster on which you intend to run this application. -
Create a namespace in that cluster called
storagekubectl create ns storage
-
Change your namespace in {term}
kubie.kubie ns storage -
You will likely need to update the values contained in the file {file}
values.yamlfile to suit your local cluster. Prior to installing the application would be a good time for that. -
Install the
csi-lvmapp into thestoragenamespace.helm upgrade --install csi-lvm . -
Run the provided test suites.
-
Start with the basic Helm tests.
helm test lvmIf things went well, you should see output similar to this.
NAME: lvm LAST DEPLOYED: Sun Jul 28 15:43:34 2024 NAMESPACE: csi-driver-lvm STATUS: deployed REVISION: 9 TEST SUITE: csi-driver-lvm-pod-test Last Started: Mon Jul 29 07:31:39 2024 Last Completed: Mon Jul 29 07:31:39 2024 Phase: Succeeded TEST SUITE: csi-driver-lvm-pod-test Last Started: Mon Jul 29 07:31:39 2024 Last Completed: Mon Jul 29 07:31:49 2024 Phase: Succeeded TEST SUITE: csi-driver-lvm-sts-test Last Started: Mon Jul 29 07:31:49 2024 Last Completed: Mon Jul 29 07:31:49 2024 Phase: Succeeded
-
Install the Helm unittest plugin.
helm plugin install https://github.com/helm-unittest/helm-unittest
-
Run the included unit tests.
helm unittest -f 'tests/*.yaml' csi-driver-lvm/If things went well, you should see output similar to this.
### Chart [ lvm ] . PASS CSI Driver LVM StatefulSet Test Suite tests/controller_test.yaml PASS CSI Driver LVM CSIDriver Test Suite tests/driver_test.yaml PASS CSI Driver LVM Test Suite tests/manifest_test.yaml PASS CSI Driver LVM DaemonSet Test Suite tests/plugin_test.yaml PASS CSI Driver LVM Role Test Suite tests/role_test.yaml PASS CSI Driver LVM Test Suite tests/storageClass_test.yaml PASS CSI Driver LVM StorageClasses Test Suite tests/storageclasses_test.yaml PASS CSI Driver LVM Test Suite tests/sts_test.yaml Charts: 1 passed, 1 total Test Suites: 8 passed, 8 total Tests: 41 passed, 41 total Snapshot: 0 passed, 0 total Time: 261.729855ms
-
Now, you can dynamically provision PersistentVolumeClaims{l=yaml} for any node in your
cluster that has a Volume Group with the same name as the value of
csi-driver-lvm.lvm.vgName{l=yaml} in your {file}values.yaml file.
See the test files in the templates/ directory for examples.
Uninstall the application.
helm uninstall storage