Skip to content

weka/csi-wekafs

Repository files navigation

CSI WekaFS Driver

Helm chart for Deployment of WekaIO Container Storage Interface (CSI) plugin for WekaFS - the world fastest filesystem

Version: 2.5.1 Type: application AppVersion: v2.5.1 License Artifact HUB

Homepage

https://github.com/weka/csi-wekafs

Maintainers

Name Email Url
WekaIO, Inc. csi@weka.io https://weka.io

Pre-requisite

  • Kubernetes cluster of version 1.20 or later is recommended. Minimum version is 1.17
  • Access to terminal with kubectl installed
  • Weka system pre-configured and Weka client installed and registered in cluster for each Kubernetes node

Deployment

Usage

Additional Documentation

Building the binaries

If you want to build the driver yourself, you can do so with the following command from the root directory:

make build

Values

Key Type Default Description
dynamicProvisionPath string "csi-volumes" Directory in root of file system where dynamic volumes are provisioned
csiDriverName string "csi.weka.io" Name of the driver (and provisioner)
csiDriverVersion string "2.5.1" CSI driver version
images.livenessprobesidecar string "registry.k8s.io/sig-storage/livenessprobe:v2.14.0" CSI liveness probe sidecar image URL
images.attachersidecar string "registry.k8s.io/sig-storage/csi-attacher:v4.7.0" CSI attacher sidecar image URL
images.provisionersidecar string "registry.k8s.io/sig-storage/csi-provisioner:v5.1.0" CSI provisioner sidecar image URL
images.registrarsidecar string "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.12.0" CSI registrar sidercar
images.resizersidecar string "registry.k8s.io/sig-storage/csi-resizer:v1.12.0" CSI resizer sidecar image URL
images.snapshottersidecar string "registry.k8s.io/sig-storage/csi-snapshotter:v8.1.0" CSI snapshotter sidecar image URL
images.nodeinfo string "quay.io/weka.io/csi-wekafs" CSI nodeinfo sidecar image URL, used for reading node metadata
images.csidriver string "quay.io/weka.io/csi-wekafs" CSI driver main image URL
images.csidriverTag string "2.5.1" CSI driver tag
imagePullSecret string "" image pull secret required for image download. Must have permissions to access all images above. Should be used in case of private registry that requires authentication
globalPluginTolerations list [{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}] Tolerations for all CSI driver components
controllerPluginTolerations list [{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}] Tolerations for CSI controller component only (by default same as global)
nodePluginTolerations list [{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Exists"}] Tolerations for CSI node component only (by default same as global)
nodeSelector object {} Optional nodeSelector for CSI plugin deployment on certain Kubernetes nodes only This nodeselector will be applied to all CSI plugin components
affinity object {} Optional affinity for CSI plugin deployment This affinity will be applied to all CSI plugin components
machineConfigLabels list ["worker","master"] Optional setting for OCP platform only, which machineconfig pools to apply the Weka SELinux policy on NOTE: by default, the policy will be installed both on workers and control plane nodes
controller.replicas int 2 Controller number of replicas
controller.maxConcurrentRequests int 5 Maximum concurrent requests from sidecars (global)
controller.concurrency object {"createSnapshot":5,"createVolume":5,"deleteSnapshot":5,"deleteVolume":5,"expandVolume":5} maximum concurrent operations per operation type
controller.grpcRequestTimeoutSeconds int 30 Return GRPC Unavailable if request waits in queue for that long time (seconds)
controller.configureProvisionerLeaderElection bool true Configure provisioner sidecar for leader election
controller.configureResizerLeaderElection bool true Configure resizer sidecar for leader election
controller.configureSnapshotterLeaderElection bool true Configure snapshotter sidecar for leader election
controller.configureAttacherLeaderElection bool true Configure attacher sidecar for leader election
controller.nodeSelector object {} optional nodeSelector for controller components only
controller.affinity object {} optional affinity for controller components only
node.maxConcurrentRequests int 5 Maximum concurrent requests from sidecars (global)
node.concurrency object {"nodePublishVolume":5,"nodeUnpublishVolume":5} maximum concurrent operations per operation type (to avoid API starvation)
node.grpcRequestTimeoutSeconds int 30 Return GRPC Unavailable if request waits in queue for that long time (seconds)
node.nodeSelector object {} optional nodeSelector for node components only
node.affinity object {} optional affinity for node components only
logLevel int 5 Log level of CSI plugin
useJsonLogging bool false Use JSON structured logging instead of human-readable logging format (for exporting logs to structured log parser)
legacyVolumeSecretName string "" for migration of pre-CSI 0.7.0 volumes only, default API secret. Must reside in same namespace as the plugin
priorityClassName string "" Optional CSI Plugin priorityClassName
selinuxSupport string "off" Support SELinux labeling for Persistent Volumes, may be either off, mixed, enforced (default off) In enforced mode, CSI node components will only start on nodes having a label selinuxNodeLabel below In mixed mode, separate CSI node components will be installed on SELinux-enabled and regular hosts In off mode, only non-SELinux-enabled node components will be run on hosts without label. WARNING: if SELinux is not enabled, volume provisioning and publishing might fail! NOTE: SELinux support is enabled automatically on clusters recognized as RedHat OpenShift Container Platform
selinuxNodeLabel string "csi.weka.io/selinux_enabled" This label must be set to "true" on SELinux-enabled Kubernetes nodes, e.g., to run the node server in secure mode on SELinux-enabled node, the node must have label csi.weka.io/selinux_enabled="true"
kubeletPath string "/var/lib/kubelet" kubelet path, in cases Kubernetes is installed not in default folder
metrics.enabled bool true Enable Prometheus Metrics
metrics.controllerPort int 9090 Metrics port for Controller Server
metrics.provisionerPort int 9091 Provisioner metrics port
metrics.resizerPort int 9092 Resizer metrics port
metrics.snapshotterPort int 9093 Snapshotter metrics port
metrics.nodePort int 9094 Metrics port for Node Serer
metrics.attacherPort int 9095 Attacher metrics port
hostNetwork bool false Set to true to use host networking. Will be always set to true when using NFS mount protocol
pluginConfig.fsGroupPolicy string "File" WARNING: Changing this value might require uninstall and re-install of the plugin
pluginConfig.allowInsecureHttps bool false Allow insecure HTTPS (skip TLS certificate verification)
pluginConfig.objectNaming.volumePrefix string "csivol-" Prefix that will be added to names of Weka cluster filesystems / snapshots assocciated with CSI volume, must not exceed 7 symbols.
pluginConfig.objectNaming.snapshotPrefix string "csisnp-" Prefix that will be added to names of Weka cluster snapshots assocciated with CSI snapshot, must not exceed 7 symbols.
pluginConfig.objectNaming.seedSnapshotPrefix string "csisnp-seed-" Prefix that will be added to automatically created "seed" snapshot of empty filesytem, must not exceed 12 symbols.
pluginConfig.allowedOperations.autoCreateFilesystems bool true Allow automatic provisioning of CSI volumes based on distinct Weka filesystem
pluginConfig.allowedOperations.autoExpandFilesystems bool true Allow automatic expansion of filesystem on which Weka snapshot-backed CSI volumes, e.g. in case a required volume capacity exceeds the size of filesystem. Note: the filesystem is not expanded automatically when a new directory-backed volume is provisioned
pluginConfig.allowedOperations.snapshotDirectoryVolumes bool false Create snapshots of legacy (dir/v1) volumes. By default disabled. Note: when enabled, for every legacy volume snapshot, a full filesystem snapshot will be created (wasteful)
pluginConfig.allowedOperations.snapshotVolumesWithoutQuotaEnforcement bool false Allow creation of snapshot-backed volumes even on unsupported Weka cluster versions, off by default Note: On versions of Weka < v4.2 snapshot-backed volume capacity cannot be enforced
pluginConfig.mutuallyExclusiveMountOptions[0] string "readcache,writecache,coherent,forcedirect"
pluginConfig.mutuallyExclusiveMountOptions[1] string "sync,async"
pluginConfig.mutuallyExclusiveMountOptions[2] string "ro,rw"
pluginConfig.mountProtocol.useNfs bool false Use NFS transport for mounting Weka filesystems, off by default
pluginConfig.mountProtocol.allowNfsFailback bool false Allow Failback to NFS transport if Weka client fails to mount filesystem using native protocol
pluginConfig.mountProtocol.interfaceGroupName string "" Specify name of NFS interface group to use for mounting Weka filesystems. If not set, first NFS interface group will be used
pluginConfig.mountProtocol.clientGroupName string "" Specify existing client group name for NFS configuration. If not set, "WekaCSIPluginClients" group will be created
pluginConfig.mountProtocol.nfsProtocolVersion string "4.1" Specify NFS protocol version to use for mounting Weka filesystems. Default is "4.1", consult Weka documentation for supported versions

Autogenerated from chart metadata using helm-docs v1.14.2