Title
Create new category
Edit page index title
Edit category
Edit link
Workload Examples Deployment Using Helm
The Helm Chart eases the deployment of the provided workload examples that use the lb-csi-plugin as a persistent storage backend.
We provide some workload deployment examples that use lb-csi-plugin for storage provisioning.
To ease the deployment of these workloads and to make them easily customizable, we provide a Helm Chart as part of the lb-csi-bundle-<version>.tar.gz.
This Helm Chart is comprised of six sub-charts. Each sub-chart defines a set of manifests representing a workload.
All sub-charts are dependent on the StorageClass chart. All of the following PVCs created by the other charts will use the StorageClass we created using the StorageClass Chart. Hence, we should first install this chart and uninstall only after we have uninstalled all other charts.
Workload examples include:
StorageClass
Block
Filesystem
Pre-provisioned volume
Snapshots and Clones
StatefulSet
Helm Chart Content
Chart Values
Workload examples are configurable using the lb-csi-workload-examples/values.yaml file.
All workloads are disabled by default, and can be enabled by the <workload_name>.enabled property.
All examples share the same StorageClass and Secret templates.
To override values in these templates, you can:
Modify fields in the
values.yamlfile.Use the
--setflag on the helm install command.
Example provided values.yaml file:
Values Description:
Name | Description | Default | Required |
|---|---|---|---|
storageclass.enable | Deploy Secret, StorageClass | false | false |
block.enable | Deploy block volume workload | false | false |
block.nodeSelector | Deploy | {} | false |
block.nodeName | Deploy | "" | false |
filesystem.enable | Deploy filesystem volume workload | false | false |
filesystem.nodeSelector | Deploy | {} | false |
filesystem.nodeName | Deploy | "" | false |
statefulset.enable | Deploy statefulset workload | false | false |
preprovisioned.enable | Deploy preprovisioned volume workload | false | false |
preprovisioned.lightosVolNguid | NGUID of LightOS volume | "" | true |
preprovisioned.volumeMode | Specifies if this volume is used for Block or Filesystem | "" | true |
preprovisioned.storage | Size of the volume this PV will point to | "" | true |
snaps.enable | Deploy snapshot workloads | false | false |
snaps.pvcName | Name of the PVC for snapshot example | example-pvc | false |
snaps.stage | Name of the snapshot stage we want to execute | "" | false |
global.storageClass.mgmtEndpoints | Lightbits API endpoint list; ex: | "" | true |
global.storageClass.projectName | Created resources will be scoped to this project | default | false |
global.storageClass.replicaCount | Number of replicas for each volume | 3 | false |
global.storageClass.compression | Whether compressions are in enabled/disabled | disabled | false |
global.jwtSecret.name | Secret name that holds Lightbits API | example-secret | true |
global.jwtSecret.namespace | Namespace the secret is defined at | default | true |
global.jwtSecret.jwt |
| default | true |
global.storageClass.qosPolicyName | qos policy name; should exist in Lightbits prior to volume creation | "" | false |
global.storageClass.hostEncryption | Whether host-side encryption is enabled/disabled | disabled | false |
Mandatory Values To Modify
The following values MUST be modified to match the target Kubernetes cluster.
Lightbits Cluster API Endpoints (mgmt-endpoint ):
Before we deploy a workload, we need to fetch some information from the Lightbits cluster.
lb-csi-plugin needs to be informed about Lightbits management API endpoints.
These endpoints are passed as a comma-delimited string in StorageClass.Parameters.mgmt-endpoints.
Set the MGMT_EP environment variable, by fetching mgmtEndpoints from lbcli - by running the following command:
When passing the '' value in the join command to Helm, we must use the escape character \.
Lightbits API JWT:
Each API call to Lightbits requires a JWT for authentication and authorization.
The JWT is passed to the plugin by creating a Kubernetes Secret resource.
Set the LIGHTOS_JWT environment variable, by fetching mgmtEndpoints from lbcli - by running the following command:
Kubernetes stores the secret data base64 encoded, but the chart will do the encoding for you.
Installing in a Different Namespace
You can install the workloads in a different namespace (ex: lb-csi-ns), by creating a namespace yourself or by using the shortcut to let Helm create a namespace for you:
Rendering Manifests Using the Helm Chart
Render manifests to file /tmp/filesystem-workload.yaml by running the following command:
The chart enables rendering multiple workloads at the same time using the following command:
The outcome is placed at /tmp/block-and-filesystem-workload.yaml.
© 2026 Lightbits Labs™