Helm chart for Deployment of WekaIO Container Storage Interface (CSI) plugin for WekaFS - the world fastest filesystem
https://github.com/weka/csi-wekafs
Name | Url | |
---|---|---|
WekaIO, Inc. | csi@weka.io | https://weka.io |
- 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
- Helm public repo (recommended)
- Helm-based local deployment
- Deploy an Example application
- SELinux Support & Installation Notes
- Using Weka CSI Plugin with NFS transport
If you want to build the driver yourself, you can do so with the following command from the root directory:
make build
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