Files
dsk-devops-toolchains/helm/openebs/charts/nfs-provisioner/README.md
2024-01-03 17:29:11 +09:00

9.3 KiB

OpenEBS NFS Provisioner

License

A Helm chart for openebs dynamic nfs provisioner. This chart bootstraps OpenEBS Dynamic NFS Provisioner deployment on a Kubernetes cluster using the Helm package manager.

Homepage: http://www.openebs.io/

Maintainers

Name Email Url
kmova kiran.mova@mayadata.io
mynktl mayank.patel@mayadata.io
rahulkrishnanra rahulkrishnanfs@gmail.com
mittachaitu sai.chaithanya@mayadata.io

Get Repo Info

helm repo add openebs-nfs https://openebs.github.io/dynamic-nfs-provisioner
helm repo update

See helm repo for command documentation.

Install Chart

Run the following command to install the OpenEBS Dynamic NFS Provisioner helm chart using the default StorageClass as the Backend StorageClass:

# Helm
helm install [RELEASE_NAME] openebs-nfs/nfs-provisioner --namespace [NAMESPACE] --create-namespace

The chart requires a StorageClass to provision the backend volume for the NFS share. You can use the --set-string nfsStorageClass.backendStorageClass=<storageclass-name> flag in the helm install command to specify the Backend StorageClass. If a StorageClass is not specified, the default StorageClass is used.

Use the command below to get the name of the default StorageClasses in your cluster:

kubectl get sc -o=jsonpath='{range .items[?(@.metadata.annotations.storageclass\.kubernetes\.io/is-default-class=="true")]}{@.metadata.name}{"\n"}{end}'

Sample command to install the OpenEBS Dynamic NFS Provisioner helm chart using the default StorageClass as BackendStorageClass:

helm install openebs-nfs openebs-nfs/nfs-provisioner --namespace openebs --create-namespace

If you do not have an available StorageClass, you can install the OpenEBS Dynamic LocalPV Provisioner helm chart and use the 'openebs-hostpath' StorageClass as Backend Storage Class. Sample commands:

# Add openebs-localpv repo
helm repo add openebs-localpv https://openebs.github.io/dynamic-localpv-provisioner
helm repo update

# Install localpv-provisioner
helm install openebs-localpv openebs-localpv/localpv-provisioner -n openebs --create-namespace \
	--set openebsNDM.enabled=false \
	--set deviceClass.enabled=false

# Install nfs-provisioner
helm install openebs-nfs openebs-nfs/nfs-provisioner -n openebs \
	--set-string nfsStorageClass.backendStorageClass="openebs-hostpath"

Please visit this link for helm 3 installation instructions.

See configuration below.

See helm install for command documentation.

Uninstall Chart

# Helm
helm uninstall [RELEASE_NAME] --namespace [NAMESPACE]

This removes all the Kubernetes components associated with the chart and deletes the release.

See helm uninstall for command documentation.

Upgrading Chart

# Helm
helm upgrade [RELEASE_NAME] [CHART] --install --namespace [NAMESPACE]

Configuration

The following table lists the configurable parameters of the OpenEBS Dynamic NFS 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).

In the following sample command we modify nfsStorageClass.backendStorageClass to specify the StorageClass to be used to provision the backend volume used for the NFS share. We also use nfsStorageClass.isDefaultClass to set an annotation such that the 'openebs-kernel-nfs' StorageClass is used as the default StorageClass for the cluster.

helm install openebs-nfs openebs-nfs/nfs-provisioner --namespace openebs --create-namespace \
	--set-string nfsStorageClass.backendStorageClass="openebs-hostpath" \
	--set nfsStorageClass.isDefaultClass=true
Parameter Description Default
analytics.enabled Enable sending stats to Google Analytics true
fullnameOverride Set custom Full Name for resources. Defaults to ( Release-name + nfsProvisioner.name ) ""
imagePullSecrets Provides image pull secret ""
nameOverride Set custom name for resources. Defaults to nfsProvisioner.name ""
nfsProvisioner.affinity NFS Provisioner pod affinity {}
nfsProvisioner.enabled Enable NFS Provisioner true
nfsProvisioner.enableLeaderElection Enable leader election true
nfsProvisioner.healthCheck.initialDelaySeconds Delay before liveness probe is initiated 30
nfsProvisioner.healthCheck.periodSeconds How often to perform the liveness probe 60
nfsProvisioner.image.registry Registry for NFS Provisioner image ""
nfsProvisioner.image.repository Image repository for NFS Provisioner openebs/provisioner-nfs
nfsProvisioner.image.tag Image tag for NFS Provisioner 0.10.0
nfsProvisioner.image.pullPolicy Image pull policy for NFS Provisioner image IfNotPresent
nfsProvisioner.annotations Annotations for NFS Provisioner metadata ""
nfsProvisioner.nodeSelector Nodeselector for NFS Provisioner pod ""
nfsProvisioner.nfsServerAlpineImage.registry Registry for nfs-server-alpine ""
nfsProvisioner.nfsServerAlpineImage.repository Image repository for nfs-server-alpine openebs/nfs-server-alpine
nfsProvisioner.nfsServerAlpineImage.tag Image tag for nfs-server-alpine 0.10.0
nfsProvisioner.resources Resource request and limit for the container true
nfsProvisioner.securityContext Security context for container ""
nfsProvisioner.tolerations NFS Provisioner pod toleration values ""
nfsProvisioner.nfsServerNamespace NFS server namespace "openebs"
nfsProvisioner.nfsServerNodeAffinity NFS Server node affinity rules ""
nfsProvisioner.nfsBackendPvcTimeout Timeout for backend PVC binding in seconds "60"
nfsProvisioner.nfsHookConfigMap Existing Configmap name to load hook configuration ""
nfsStorageClass.backendStorageClass StorageClass to be used to provision the backend volume. If not specified, the default StorageClass is used. ""
nfsStorageClass.isDefaultClass Make 'openebs-kernel-nfs' the default StorageClass "false"
nfsStorageClass.reclaimPolicy ReclaimPolicy for NFS PVs "Delete"
nfsStorageClass.leaseTime Renewal period(in seconds) for NFS client state 90
nfsStorageClass.graceTime Recovery period(in seconds) to reclaim locks for NFS client 90
nfsStorageClass.nfsServerResources Resource requests and limits of NFS Server ""
nfsStorageClass.filePermissions.UID Set user owner of the shared directory ""
nfsStorageClass.filePermissions.GID Set group owner of the shared directory ""
nfsStorageClass.filePermissions.mode Set file mode of the shared directory ""
rbac.create Enable RBAC Resources true
rbac.pspEnabled Create pod security policy resources false
nfsServer.imagePullSecret Image pull secret name to be used by NFS Server pods ""

Specify each parameter using the --set key=value[,key=value] argument to helm install.

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

helm install <release-name> -f values.yaml ----namespace openebs openebs-nfs/nfs-provisioner --create-namespace

Tip

: You can use the default values.yaml