161 lines
11 KiB
Markdown
161 lines
11 KiB
Markdown
# OpenEBS LocalPV Provisioner
|
|
|
|
[](https://opensource.org/licenses/Apache-2.0)
|
|

|
|

|
|
|
|
A Helm chart for openebs dynamic localpv provisioner. This chart bootstraps OpenEBS Dynamic LocalPV provisioner deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
|
|
|
|
|
**Homepage:** <http://www.openebs.io/>
|
|
|
|
## Maintainers
|
|
|
|
| Name | Email | Url |
|
|
| ---- | ------ | --- |
|
|
| akhilerm | akhil.mohan@mayadata.io | |
|
|
| kiranmova | kiran.mova@mayadata.io | |
|
|
| prateekpandey14 | prateek.pandey@mayadata.io | |
|
|
|
|
|
|
## Get Repo Info
|
|
|
|
```console
|
|
helm repo add openebs-localpv https://openebs.github.io/dynamic-localpv-provisioner
|
|
helm repo update
|
|
```
|
|
|
|
_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._
|
|
|
|
## Install Chart
|
|
|
|
Please visit the [link](https://openebs.github.io/dynamic-localpv-provisioner/) for install instructions via helm3.
|
|
|
|
```console
|
|
# Helm
|
|
helm install [RELEASE_NAME] openebs-localpv/localpv-provisioner --namespace [NAMESPACE] --create-namespace
|
|
```
|
|
|
|
_See [configuration](#configuration) below._
|
|
|
|
_See [helm install](https://helm.sh/docs/helm/helm_install/) for command documentation._
|
|
|
|
## Dependencies
|
|
|
|
By default this chart installs additional, dependent charts:
|
|
|
|
| Repository | Name | Version |
|
|
|------------|------|---------|
|
|
| https://openebs.github.io/node-disk-manager | openebs-ndm | 2.1.0 |
|
|
|
|
**Note:** Find detailed Node Disk Manager Helm chart configuration options [here](https://github.com/openebs/node-disk-manager/blob/master/deploy/helm/charts/README.md).
|
|
|
|
|
|
To disable the dependency during installation, set `openebsNDM.enabled` to `false`.
|
|
|
|
_See [helm dependency](https://helm.sh/docs/helm/helm_dependency/) for command documentation._
|
|
|
|
## Uninstall Chart
|
|
|
|
```console
|
|
# Helm
|
|
helm uninstall [RELEASE_NAME] --namespace [NAMESPACE]
|
|
```
|
|
|
|
This removes all the Kubernetes components associated with the chart and deletes the release.
|
|
|
|
_See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command documentation._
|
|
|
|
## Upgrading Chart
|
|
|
|
```console
|
|
# Helm
|
|
helm upgrade [RELEASE_NAME] [CHART] --install --namespace [NAMESPACE]
|
|
```
|
|
|
|
|
|
## Configuration
|
|
|
|
The following table lists the configurable parameters of the OpenEBS Dynamic LocalPV Provisioner chart and their default values.
|
|
|
|
You can modify different parameters by specifying the desired value in the `helm install` command by using the `--set` and/or the `--set-string` flag(s). You can modify the parameters of the [Node Disk Manager chart](https://openebs.github.io/node-disk-manager) by adding `openebs-ndm` before the desired parameter in the `helm install` command.
|
|
|
|
In the following sample command we modify `deviceClass.fsType` from the localpv-provisioner chart and `ndm.nodeSelector` from the openebs-ndm chart to only schedule openebs-ndm DaemonSet pods on nodes labelled with `openebs.io/data-plane=true`. We also enable the 'Use OS-disk' feature gate using the `featureGates.UseOSDisk.enabled` parameter from the openebs-ndm chart.
|
|
|
|
|
|
```console
|
|
helm install openebs-localpv openebs-localpv/localpv-provisioner --namespace openebs --create-namespace \
|
|
--set-string deviceClass.fsType="xfs" \
|
|
--set-string openebs-ndm.ndm.nodeSelector."openebs\.io/data-plane"=true \
|
|
--set openebs-ndm.featureGates.UseOSDisk.enabled=true
|
|
```
|
|
|
|
Sample command to install the provisioner with nodeAffinityLabels "openebs.io/node-affinity-key-1" and "openebs.io/node-affinity-key-2" on the hostpath StorageClass:
|
|
```console
|
|
helm install openebs-localpv openebs-localpv/localpv-provisioner --namespace openebs --create-namespace \
|
|
--set-string hostpathClass.nodeAffinityLabels="{openebs.io/node-affinity-key-1,openebs.io/node-affinity-key-2}"
|
|
```
|
|
|
|
Sample command to install the provisioner with blockDeviceSelectors "openebs.io/block-device-tag=mongo" and "ndm.io/fsType=ext4":
|
|
```console
|
|
helm install openebs-localpv openebs-localpv/localpv-provisioner --namespace openebs --create-namespace \
|
|
--set-string deviceClass.blockDeviceSelectors."openebs\.io/block-device-tag"="mongo" \
|
|
--set-string deviceClass.blockDeviceSelectors."ndm\.io/fsType"="ext4"
|
|
```
|
|
|
|
| Parameter | Description | Default |
|
|
| ------------------------------------------- | --------------------------------------------- | ----------------------------------------- |
|
|
| `release.version` | LocalPV Provisioner release version | `3.4.0` |
|
|
| `analytics.enabled` | Enable sending stats to Google Analytics | `true` |
|
|
| `analytics.pingInterval` | Duration(hours) between sending ping stat | `24h` |
|
|
| `deviceClass.blockDeviceSelectors` | Label key value pairs based on which BlockDevices on the node will be selected for provisioning | `{}` |
|
|
| `deviceClass.enabled` | Enables creation of default Device StorageClass | `true` |
|
|
| `deviceClass.fsType` | Filesystem type for openebs-device StorageClass | `"ext4"` |
|
|
| `deviceClass.isDefaultClass` | Make openebs-device the default StorageClass | `"false"` |
|
|
| `deviceClass.nodeAffinityLabels` | Custom node label(or labels) key to uniquely identify nodes. `kubernetes.io/hostname` is the default label key for node selection. | `[]` |
|
|
| `deviceClass.reclaimPolicy` | ReclaimPolicy for Device PVs | `"Delete"` |
|
|
| `helperPod.image.registry` | Registry for helper image | `""` |
|
|
| `helperPod.image.repository` | Image for helper pod | `"openebs/linux-utils"` |
|
|
| `helperPod.image.pullPolicy` | Pull policy for helper pod | `"IfNotPresent"` |
|
|
| `helperPod.image.tag` | Image tag for helper image | `3.4.0` |
|
|
| `hostpathClass.basePath` | BasePath for openebs-hostpath StorageClass | `"/var/openebs/local"` |
|
|
| `hostpathClass.enabled` | Enables creation of default Hostpath StorageClass | `true` |
|
|
| `hostpathClass.isDefaultClass` | Make openebs-hostpath the default StorageClass | `"false"` |
|
|
| `hostpathClass.nodeAffinityLabels` | Custom node label(or labels) key to uniquely identify nodes. `kubernetes.io/hostname` is the default label key for node selection. | `[]` |
|
|
| `hostpathClass.xfsQuota.enabled` | Enable XFS Quota (requires XFS filesystem) | `false` |
|
|
| `hostpathClass.ext4Quota.enabled` | Enable EXT4 Quota (requires EXT4 filesystem) | `false` |
|
|
| `hostpathClass.reclaimPolicy` | ReclaimPolicy for Hostpath PVs | `"Delete"` |
|
|
| `imagePullSecrets` | Provides image pull secrect | `""` |
|
|
| `localpv.enabled` | Enable LocalPV Provisioner | `true` |
|
|
| `localpv.image.registry` | Registry for LocalPV Provisioner image | `""` |
|
|
| `localpv.image.repository` | Image repository for LocalPV Provisioner | `openebs/localpv-provisioner` |
|
|
| `localpv.image.pullPolicy` | Image pull policy for LocalPV Provisioner | `IfNotPresent` |
|
|
| `localpv.image.tag` | Image tag for LocalPV Provisioner | `3.4.0` |
|
|
| `localpv.updateStrategy.type` | Update strategy for LocalPV Provisioner | `RollingUpdate` |
|
|
| `localpv.annotations` | Annotations for LocalPV Provisioner metadata | `""` |
|
|
| `localpv.podAnnotations` | Annotations for LocalPV Provisioner pods metadata | `""` |
|
|
| `localpv.privileged` | Run LocalPV Provisioner with extra privileges | `true` |
|
|
| `localpv.resources` | Resource and request and limit for containers | `""` |
|
|
| `localpv.podLabels` | Appends labels to the pods | `""` |
|
|
| `localpv.nodeSelector` | Nodeselector for LocalPV Provisioner pods | `""` |
|
|
| `localpv.tolerations` | LocalPV Provisioner pod toleration values | `""` |
|
|
| `localpv.securityContext` | Seurity context for container | `""` |
|
|
| `localpv.healthCheck.initialDelaySeconds` | Delay before liveness probe is initiated | `30` |
|
|
| `localpv.healthCheck.periodSeconds` | How often to perform the liveness probe | `60` |
|
|
| `localpv.replicas` | No. of LocalPV Provisioner replica | `1` |
|
|
| `localpv.enableLeaderElection` | Enable leader election | `true` |
|
|
| `localpv.affinity` | LocalPV Provisioner pod affinity | `{}` |
|
|
| `localpv.waitForBDBindTimeoutRetryCount` | This sets the number of times the provisioner should try with a polling interval of 5 seconds, to get the Blockdevice Name from a BlockDeviceClaim, before the BlockDeviceClaim is deleted. | "12" |
|
|
| `openebsNDM.enabled` | Install openebs NDM dependency | `true` |
|
|
| `rbac.create` | Enable RBAC Resources | `true` |
|
|
| `rbac.pspEnabled` | Create pod security policy resources | `false` |
|
|
|
|
|
|
A YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
|
|
|
|
```bash
|
|
helm install <release-name> -f values.yaml --namespace openebs openebs-localpv/localpv-provisioner
|
|
```
|
|
|
|
> **Tip**: You can use the default [values.yaml](values.yaml)
|