Last updated
Last updated
The Weka CSI Plugin supports the following persistent volume types:
Dynamic: Persistent Volume Claim (PVC).
Static: Persistent Volume (PV).
The Weka CSI Plugin communicates with the WEKA cluster using REST API, leveraging this integration to provide extended capabilities, such as strictly enforcing volume capacity usage through integration with filesystem directory quota functionality. For details, see .
Starting from CSI Plugin v2.0, three StorageClass configurations are available:
Directory-backed StorageClass
Snapshot-backed StorageClass
Filesystem-backed StorageClass
In the API-based model, the API endpoint addresses and authentication credentials must be provided to the WEKA CSI Plugin to establish a REST API connection with the WEKA cluster and perform configuration tasks.
The information is stored securely in , referred to by the Storage Class.
Adhere to the following:
The configuration described in this section applies to WEKA CSI Plugin version 0.8.4 and higher. To get all features, WEKA CSI Plugin version 2.0 is required.
Directory quota integration requires WEKA cluster version 3.13.0 and higher.
Snapshot quota integration requires WEKA cluster version 4.2 and higher.
Authenticated mounts for filesystems set with auth-required=true
, and filesystems in the non-root organization, require WEKA cluster version 3.14.0 and higher.
The legacy communication model is deprecated and will be removed in the next release. If you are using the legacy communication model, replacing it with the API-based one is recommended.
To provision any persistent volume type, a Storage Class must exist in Kubernetes deployment that matches the secret name and namespace in the WEKA cluster configuration.
For directory-backed and snapshot-backed storage class configurations, a filesystem must be pre-created on the WEKA cluster to create PVCs.
For the filesystem-backed StorageClass configuration, the filesystem name is generated automatically based on the PVC name, but the filesystem group name must be declared in the Storage Class configuration.
Create a secret data file (see the following example).
Apply the secret data and validate it is created successfully.
To provision CSI volumes on filesystems residing in non-root organizations or filesystems, set with auth-required=true
. A CSI Plugin of version 0.8.4 and higher and WEKA cluster version 3.14 and higher are required.
All values in the secret data file must be in base64-encoded format.
A single K8s worker node can be connected to multiple WEKA clusters (maximum 7 clusters) simultaneously.
For each k8s worker node, create a number of WEKA client containers according to the number of clusters you want to connect to. The WEKA client container name must be according to the WEKA cluster that is connected to. For example, to connect to 7 WEKA clusters, it is required to create 7 WEKA client containers named client 1, client 2, and so on.
Create secret data files for each WEKA cluster. In the localContainerName
set the relevant client container name. For example, for client 1 set the name of the client container connected to cluster 1.
Configure storage classes using the relevant secret data file.
Filesystem names used for k8s (defined in the storage classes) must be unique across all clusters.
Related topic
Create a directory-backed storage class yaml file (see the following example).
Apply the directory-backed storage class and validate it is created successfully.
Adhere to the following:
You can define multiple storage classes different filesystem groups for filesystem backup.
You can use the same secret for multiple storage classes, as long as the credentials are valid to access the filesystem.
You can use several secret data files for different organizations on the same WEKA cluster, or for different WEKA clusters spanning across the same Kubernetes cluster.
Create a snapshot-backed StorageClass yaml file (see the following example).
Apply the snapshot-backed StorageClass and validate it is created successfully.
Adhere to the following:
You can define multiple storage classes with different filesystems.
You can use the same secret for multiple storage classes, as long as the credentials are valid to access the filesystem.
You can use several secret data files for different organizations on the same WEKA cluster, or for different WEKA clusters spanning across the same Kubernetes cluster.
Create a filesystem-backed StorageClass yaml file (see the following example).
Apply the filesystem-backed StorageClass and validate it is created successfully.
Adhere to the following:
You can define multiple storage classes with different filesystems.
You can use the same secret for multiple storage classes, as long as the credentials are valid to access the filesystem.
You can use several secret data files for different organizations on the same WEKA cluster, or for different WEKA clusters spanning across the same Kubernetes cluster.