Installing DataCore Puls8
Explore this Page
Overview
This guide outlines the steps to set up the Helm repository, install DataCore Puls8 with default configurations, and apply customizations based on your specific requirements. Helm provides a streamlined method for installing and managing DataCore Puls8 on a Kubernetes cluster.
Before proceeding with the installation, ensure you have met all Prerequisites.
Installing DataCore Puls8 using Helm
To perform an installation of DataCore Puls8:
- Install the DataCore Puls8 Helm Chart with the default configuration. The chart is now publicly available via an OCI-compliant registry, you can install it directly using the following command:CopyInstall the DataCore Puls8 Helm Chart
helm install puls8 -n puls8 --create-namespace oci://docker.io/datacoresoftware/puls8 --version <chart-version>This command deploys the following DataCore Puls8 storage components within the
puls8namespace:- Local PV Hostpath
- Local PV LVM
- Local PV ZFS
- Replicated PV Mayastor
You can customize the installation and adjust advanced options:
- Disabling Storage Engines - By default, DataCore Puls8 Helm chart installs both Local Storage and Replicated Storage are installed. You can disable specific storages by setting the corresponding options to false in your Helm chart configuration values:CopyDisable Storages
openebs.engines.replicated.mayastor.enabled: false
openebs.engines.local.lvm.enabled: false
openebs.engines.local.zfs.enabled: falseAdjust these values based on which storage you want to exclude. If not set, all storages will be deployed by default.
CopyExample: Helm Install Without Replicated Storagehelm install puls8 -n puls8 --create-namespace oci://docker.io/datacoresoftware/puls8 \
--set openebs.engines.replicated.mayastor.enabled=false - If your Kubernetes cluster already contains the CustomResourceDefinitions (CRDs) for CSI VolumeSnapshots, you can skip their creation by adding the following flag:CopyFlag to Skip CSI VolumeSnapshot CRDs Creation
--set openebs.openebs-crds.csi.volumeSnapshots.enabled=false - Customize Installation Options - Provide custom configuration during installation by using the
--set <configuration values>flag or by supplying a custom values file with the-f <file name>option.
- Modify the Kubelet Directory (If Required).
For Kubernetes distributions that use a non-standard Kubelet directory, update the directory path during installation by using the --set flag.
Kubelet Directory Paths for Different Storage Types
Kubelet Directory Paths for Specific Kubernetes Distributions
If you are using any of the following Kubernetes distributions, update the Kubelet directory accordingly:
- MicroK8s: Change
/var/lib/kubelet/to/var/snap/microk8s/common/var/lib/kubelet/ - k0s: Change
/var/lib/kubelet/to/var/lib/k0s/kubelet/
3. Check the installed Helm chart and review its status. Run the following command to confirm installation and review the chart’s deployment status:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
puls8 puls8 1 2026-07-27 13:58:16.7666767 +0530 IST deployed puls8-4.6.1 4.6.1
Component Configuration Options
The following Helm values configure the components that are specific to DataCore Puls8. Set them during installation with the --set flag, or supply them in a custom values file with the -f option.
These values sit at the top level of the chart, unlike the values for the storage engines, which are nested under openebs.
NFS Driver
The NFS driver provides shared ReadWriteMany (RWX) volumes backed by Replicated PV Mayastor block volumes. Refer to the NFS RWX Using the DataCore Puls8 NFS Driver documentation for provisioning and security configuration.
| Value | Default | Description |
|---|---|---|
nfs.enabled
|
true
|
Deploys the NFS CSI driver. Set to false to install without shared RWX support. |
nfs.csi.controller.maxWorkerThreads
|
10
|
Maximum worker threads used by the CSI sidecars of the controller. |
nfs.csi.controller.priorityClassName
|
""
|
PriorityClass for the controller pod. |
nfs.csi.controller.tolerations
|
[]
|
Tolerations for the controller pod. |
nfs.csi.controller.serviceAccount.create
|
true
|
Creates the ServiceAccount for the controller. Set to false to supply your own. |
nfs.csi.node.kubeletDir
|
/var/lib/kubelet
|
Kubelet root directory on the host. Change this for a Kubernetes distribution that uses a non-standard path. |
nfs.csi.node.priorityClassName
|
""
|
PriorityClass for the node DaemonSet. |
nfs.csi.node.tolerations
|
[]
|
Tolerations for the node DaemonSet. |
nfs.csi.node.serviceAccount.create
|
true
|
Creates the ServiceAccount for the node DaemonSet. |
nfs.server.priorityClassName
|
""
|
Default PriorityClass for the per-volume NFS server pods. Can be overridden for an individual volume through the server block of the StorageClass. |
The CSI sidecar images used by the driver are configured through nfs.csi.sideCars. A single registry, repo and pullPolicy apply to every sidecar, and each sidecar takes its own release tag through provisionerTag, attacherTag, registrarTag, resizerTag and snapshotterTag. Change these only when mirroring images into a private registry.
Toolbox CLI
The Toolbox CLI is a long-running pod that provides in-cluster access to the DataCore Puls8 command line interface, so that operations can be run without the plugin installed locally.
| Value | Default | Description |
|---|---|---|
toolbox.cli.enabled
|
true
|
Deploys the Toolbox CLI pod. |
toolbox.cli.dumpStorageSize
|
""
|
Size limit for the volume that support bundles are written to before download. Unset means the size is bounded only by available node disk space. |
toolbox.cli.priorityClassName
|
""
|
PriorityClass for the Toolbox CLI pod. |
toolbox.cli.tolerations
|
[]
|
Tolerations for the Toolbox CLI pod. |
Leaving dumpStorageSize unset is deliberate. On a large cluster the collected data and the resulting archive can together reach several gigabytes, and a fixed limit risks interrupting a bundle while it is still being collected.
Global Overrides
The following values apply to every DataCore Puls8 component, and are useful when images are mirrored into a private registry or pulled through credentials.
| Value | Default | Description |
|---|---|---|
global.imageRegistry
|
""
|
Container image registry for all components. Refer to the Air-Gapped Installation documentation for the full procedure. |
global.imagePullSecrets
|
[]
|
Image pull secrets applied to all components. Merged with any component-level secrets rather than replacing them. |
global.imagePullPolicy
|
""
|
Image pull policy for all components. |
global.analytics.enabled
|
unset | Enables or disables usage analytics for all components. Overrides the per-component setting. |
REST API Network Policy
A Kubernetes NetworkPolicy restricts inbound traffic to the REST API service to the ports it serves on. It is enabled by default.
| Value | Default | Description |
|---|---|---|
openebs.mayastor.security.networkPolicy.enabled
|
true
|
Applies a NetworkPolicy to the REST API service. Set to false to remove the restriction. |
The policy permits inbound traffic on port 8080, and on port 8081 while TLS is disabled. Traffic to any other port on the service is denied. Enabling TLS removes the allowance for port 8081.
Disable the policy only where your cluster applies its own network restrictions to the namespace. Your cluster must run a CNI plugin that enforces NetworkPolicy for the policy to take effect at all.
Next Steps
With DataCore Puls8 successfully installed, complete the following post-installation steps to ensure a fully functional setup:
- Download and install the DataCore Puls8 Kubectl Plugin - Required for license activation and day-to-day CLI operations. Refer to the DataCore Puls8 Kubectl Plugin document for installation instructions.
- Activate the License - Follow the license activation procedure to enable DataCore Puls8 features.
- Verify the Installation - Confirm that all deployed components are running as expected.
Once the installation is verified, proceed with the following actions to get the most value from your deployment:
- Configure Storage - Set up and validate Local Storage and Replicated Storage configurations.
- Deploy Workloads - Create Persistent Volume Claims (PVCs) and bind them to applications.
Learn More