- feat(CSI-295): add affinity for controller and separated nodeSelector for controller and node by @sergeyberezansky in #377
- feat(CSI-302): convert controller StatefulSet to Deployment by @sergeyberezansky in #381
- feat(CSI-303): add livenessProbe to attacher sidecar by @sergeyberezansky in #382
- fix(CSI-294): caCertificate, NfsTargetIps, localContainerName are not hashed in API client by @sergeyberezansky in #371
- fix(CSI-292): parse NFS version 3.0 to correctly pass it to mountoption by @sergeyberezansky in #372
- fix(CSI-297): nfsTargetIps override is handled incorreclty when empty by @sergeyberezansky in #374
- fix(CSI-296): node registration fails after switch transport from NFS to Wekafs due to label conflict by @sergeyberezansky in #375
- feat(CSI-301): bump locar to version 0.4.2 by @sergeyberezansky in #380
- docs: fix the example of static provisioning of directory-backed volume by @sergeyberezansky in #370
- chore(deps): update actions/checkout digest to 11bd719 by @renovate in #352
- fix(deps): update kubernetes packages to v0.31.2 by @renovate in #376
- chore(deps): update registry.k8s.io/kubernetes/kubectl to v1.31.2 by @renovate in #373
- fix(deps): update golang.org/x/exp digest to f66d83c by @renovate in #349
- fix(deps): update module github.com/prometheus/client_golang to v1.20.5 by @renovate in #369
- Due to current limitation of WEKA software, publishing snapshot-backed volumes via NFS transport is not supported and could result in
stale file handle
error when trying to access the volume contents from within the pod. This limitation applies to both new snapshot-backed volumes and to any volumes that were cloned from existing PersistentVolume or Snapshot.
- feat(CSI-253): support custom CA certificate in API secret by @sergeyberezansky in #324 This enhancement allows providing a base64-encoded CA certificate in X509 format for secure API connectivity
- feat(CSI-213): support NFS transport by @sergeyberezansky in #299 This feature provides a way to provision and publish WEKA CSI volumes via NFS transport for clusters that cannot be installed with Native WEKA client software. For additional information, refer to https://github.com/weka/csi-wekafs/blob/main/docs/NFS.md
- feat(CSI-252): implement kubelet PVC stats by @sergeyberezansky in #322
This feature provides a way to monitor WEKA CSI volume usage statistics via kubelet statistics collection.
The following statistics are supported:
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_available_bytes
kubelet_volume_stats_used_bytes
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_used
- Due to current limitation of WEKA software, publishing snapshot-backed volumes via NFS transport is not supported and could result in
stale file handle
error when trying to access the volume contents from within the pod. This limitation applies to both new snapshot-backed volumes and to any volumes that were cloned from existing PersistentVolume or Snapshot.
- feat(CSI-244): match subnets if existing in client rule by @sergeyberezansky in #315
- feat(CSI-245): allow specifying client group for NFS by @sergeyberezansky in #316
- feat(CSI-249): optimize NFS mounter to use multiple targets by @sergeyberezansky in #318
- feat(CSI-247): implement InterfaceGroup.GetRandomIpAddress() by @sergeyberezansky in #319
- refactor(CSI-250): do not maintain redundant active mounts from node server after publishing volume by @sergeyberezansky in #320
- fix(CSI-258): make NFS protocol version configurable by @sergeyberezansky in #334
- feat(CSI-259): report mount transport in node topology by @sergeyberezansky in #337
- feat(CSI-268): support NFS target IPs override via API secret by @sergeyberezansky in #343
- fix(CSI-274): add sleep before mount if nfs was reconfigured by @sergeyberezansky in #353
- chore(deps): add OTEL tracing and span logging for GRPC server by @sergeyberezansky in #361
- feat(CSI-288): validate API user role prior to performing ops by @sergeyberezansky in #365
- feat(CSI-289): add default nfs option for rdirplus by @sergeyberezansky in #368
- fix(CSI-241): disregard sync_on_close in mountmap per FS by @sergeyberezansky in #310
- fix(CSI-241): conflict in metrics between node and controller by @sergeyberezansky in #325
- fix(CSI-243): service accounts for CSI plugin assume ImagePullSecret and cause error messages. by @sergeyberezansky in #311
- feat(CSI-239): moveToTrash does not return error to upper layers by @sergeyberezansky in #312
- fix(CSI-241): fix unmountWithOptions to use map key rather than options.String() by @sergeyberezansky in #317
- chore(deps): update official documentation URL by @AriAttias in #303
- fix(CSI-256): avoid multiple mounts to same filesystem on same mountpoint by @sergeyberezansky in #331
- fix(CSI-257): wekafsmount refcount is decreased even if unmount failed by @sergeyberezansky in #332
- fix(CSI-260): lookup of NFS interface group fails when empty name provided by @sergeyberezansky in #341
- fix(CSI-270): filesystem-backed volumes cannot be deleted due to stale NFS permissions by @sergeyberezansky in #344
- fix(CSI-269): nfsmount mountPoint may be incorrect in certain cases by @sergeyberezansky in #345
- fix(CSI-273): remove rdirplus from mountoptions by @sergeyberezansky in #355
- fix(CSI-275): version of NFS is only set to V4 during NFS permission creation by @sergeyberezansky in #354
- fix(CSI-276): allow unpublish even if publish failed with stale file handle by @sergeyberezansky in #356
- feat(CSI-286): whitespace not trimmed for localContainerName in CSI secret by @sergeyberezansky in #364
- chore(deps): combine chmod with ADD in Dockerfile by @sergeyberezansky in #313
- chore(deps): update packages to latest versions and Go to 1.22.5 by @sergeyberezansky in #314
- docs(CSI-254): update official docs link in Helm templates and README by @sergeyberezansky in #323
- fix(CSI-255): remove unmaintained kubectl-sidecar image by @sergeyberezansky in #330
- fix(deps): update module github.com/prometheus/client_golang to v1.20.4 by @renovate in #338
- fix(deps): update module google.golang.org/grpc to v1.67.0 by @renovate in #339
- ci(CSI-213): add NFS sanity by @sergeyberezansky in #340
- chore(deps): update Go dependencies to latest by @sergeyberezansky in #357
- @AriAttias made their first contribution in #303
- feat(CSI-259): report mount transport in node topology by @sergeyberezansky in #337
- feat(CSI-268): support NFS target IPs override via API secret by @sergeyberezansky in #343
- fix(CSI-260): lookup of NFS interface group fails when empty name provided by @sergeyberezansky in #341
- fix(CSI-270): filesystem-backed volumes cannot be deleted due to stale NFS permissions by @sergeyberezansky in #344
- fix(CSI-269): nfsmount mountPoint may be incorrect in certain cases by @sergeyberezansky in #345
- fix(deps): update module github.com/prometheus/client_golang to v1.20.4 by @renovate in #338
- fix(deps): update module google.golang.org/grpc to v1.67.0 by @renovate in #339
- ci(CSI-213): add NFS sanity by @sergeyberezansky in #340
Full Changelog: https://github.com/weka/csi-wekafs/compare/v2.5.0-beta...main
- feat(CSI-253): support custom CA certificate in API secret by @sergeyberezansky in #324
- feat(CSI-213): support NFS transport by @sergeyberezansky in #299
- feat(CSI-252): implement kubelet PVC stats by @sergeyberezansky in #322
- feat(CSI-244): match subnets if existing in client rule by @sergeyberezansky in #315
- feat(CSI-245): allow specifying client group for NFS by @sergeyberezansky in #316
- feat(CSI-249): optimize NFS mounter to use multiple targets by @sergeyberezansky in #318
- feat(CSI-247): implement InterfaceGroup.GetRandomIpAddress() by @sergeyberezansky in #319
- refactor(CSI-250): do not maintain redundant active mounts from node server after publishing volume by @sergeyberezansky in #320
- fix(CSI-258): make NFS protocol version configurable by @sergeyberezansky in #334
- feat(CSI-259): report mount transport in node topology by @sergeyberezansky in #337
- feat(CSI-268): support NFS target IPs override via API secret by @sergeyberezansky in #343
- fix(CSI-241): disregard sync_on_close in mountmap per FS by @sergeyberezansky in #310
- fix(CSI-241): conflict in metrics between node and controller by @sergeyberezansky in #325
- fix(CSI-243): service accounts for CSI plugin assume ImagePullSecret and cause error messages. by @sergeyberezansky in #311
- feat(CSI-239): moveToTrash does not return error to upper layers by @sergeyberezansky in #312
- fix(CSI-241): fix unmountWithOptions to use map key rather than options.String() by @sergeyberezansky in #317
- chore(deps): update official documentation URL by @AriAttias in #303
- fix(CSI-256): avoid multiple mounts to same filesystem on same mountpoint by @sergeyberezansky in #331
- fix(CSI-257): wekafsmount refcount is decreased even if unmount failed by @sergeyberezansky in #332
- fix(CSI-260): lookup of NFS interface group fails when empty name provided by @sergeyberezansky in #341
- fix(CSI-270): filesystem-backed volumes cannot be deleted due to stale NFS permissions by @sergeyberezansky in #344
- fix(CSI-269): nfsmount mountPoint may be incorrect in certain cases by @sergeyberezansky in #345
- chore(deps): combine chmod with ADD in Dockerfile by @sergeyberezansky in #313
- chore(deps): update packages to latest versions and Go to 1.22.5 by @sergeyberezansky in #314
- docs(CSI-254): update official docs link in Helm templates and README by @sergeyberezansky in #323
- fix(CSI-255): remove unmaintained kubectl-sidecar image by @sergeyberezansky in #330
- fix(deps): update module github.com/prometheus/client_golang to v1.20.4 by @renovate in #338
- fix(deps): update module google.golang.org/grpc to v1.67.0 by @renovate in #339
- ci(CSI-213): add NFS sanity by @sergeyberezansky in #340
- @AriAttias made their first contribution in #303
- feat(CSI-253): support custom CA certificate in API secret by @sergeyberezansky in #324
- feat(CSI-213): support NFS transport by @sergeyberezansky in #299
- feat(CSI-247): implement InterfaceGroup.GetRandomIpAddress() by @sergeyberezansky in #319
- feat(CSI-252): implement kubelet PVC stats by @sergeyberezansky in #322
- feat(CSI-244): match subnets if existing in client rule by @sergeyberezansky in #315
- feat(CSI-245): allow specifying client group for NFS by @sergeyberezansky in #316
- feat(CSI-249): optimize NFS mounter to use multiple targets by @sergeyberezansky in #318
- refactor(CSI-250): do not maintain redundant active mounts from node server after publishing volume by @sergeyberezansky in #320
- fix(CSI-258): make NFS protocol version configurable by @sergeyberezansky in #334
- fix(CSI-241): disregard sync_on_close in mountmap per FS by @sergeyberezansky in #310
- fix(CSI-241): conflict in metrics between node and controller by @sergeyberezansky in #325
- fix(CSI-243): service accounts for CSI plugin assume ImagePullSecret and cause error messages. by @sergeyberezansky in #311
- feat(CSI-239): moveToTrash does not return error to upper layers by @sergeyberezansky in #312
- fix(CSI-241): fix unmountWithOptions to use map key rather than options.String() by @sergeyberezansky in #317
- chore(deps): update official documentation URL by @AriAttias in #303
- fix(CSI-256): avoid multiple mounts to same filesystem on same mountpoint by @sergeyberezansky in #331
- fix(CSI-257): wekafsmount refcount is decreased even if unmount failed by @sergeyberezansky in #332
- chore(deps): combine chmod with ADD in Dockerfile by @sergeyberezansky in #313
- chore(deps): update packages to latest versions and Go to 1.22.5 by @sergeyberezansky in #314
- docs(CSI-254): update official docs link in Helm templates and README by @sergeyberezansky in #323
- fix(CSI-255): remove unmaintained kubectl-sidecar image by @sergeyberezansky in #330
- @AriAttias made their first contribution in #303
- fix(CSI-226): support IPv6 in APIclient by @sergeyberezansky in #287
- feat(CSI-227): allow host networking via configuration by @sergeyberezansky in #288
- fix(CSI-237): increase parralelism of PV deletions by @sergeyberezansky in #295
- fix(CSI-224,WEKAPP-417375): race condition on multiple volume deletion in parallel by @sergeyberezansky in #286
- fix(CSI-236): for OCP installations, only 1 machineConfigPolicy was created by @sergeyberezansky in #294
- chore(deps): update dependencies to latest version by @sergeyberezansky in #278
- chore(deps): put installation slack link in code block by @sergeyberezansky in #291
- chore(deps): allow WEKAPP tickets in lint by @sergeyberezansky in #290
- chore(deps): bump Go dependencies to latest version by @sergeyberezansky in #297
- fix(CSI-226): support IPv6 in APIclient by @sergeyberezansky in #287
- feat(CSI-227): allow host networking via configuration by @sergeyberezansky in #288
- fix(CSI-237): increase parralelism of PV deletions by @sergeyberezansky in #295
- fix(CSI-224,WEKAPP-417375): race condition on multiple volume deletion in parallel by @sergeyberezansky in #286
- fix(CSI-236): for OCP installations, only 1 machineConfigPolicy was created by @sergeyberezansky in #294
- chore(deps): update dependencies to latest version by @sergeyberezansky in #278
- chore(deps): put installation slack link in code block by @sergeyberezansky in #291
- chore(deps): allow WEKAPP tickets in lint by @sergeyberezansky in #290
- chore(deps): bump Go dependencies to latest version by @sergeyberezansky in #297
- feat(CSI-211): support new API paths nodes->processes as per cluster version by @sergeyberezansky in #269
- feat(CSI-215): improve lookup for frontend containers to include protocols by @sergeyberezansky in #269
- feat(CSI-209): automatically update API endpoints on re-login by @sergeyberezansky in #269
- feat(CSI-221): support configurable fsGroupPolicy by @sergeyberezansky in #269
- feat(CSI-219): add securityContextConstraints for CSI on OCP by @sergeyberezansky in #269
- feat(CSI-220): automatically determine selinux for OCP nodes by @sergeyberezansky in #269
- fix(CSI-217): Containers are filtered by status but not by state by @sergeyberezansky in #269
- fix(CSI-223): mount still attempted when local container name is missing by @sergeyberezansky in #269
- chore(deps): update azure/setup-helm action to v4 by @renovate in #243
- chore(deps): update helm/kind-action action to v1.10.0 by @renovate in #240
- chore(deps): update actions/checkout digest to 692973e by @renovate in #256
- fix(deps): update module github.com/google/uuid to v1.6.0 by @renovate in #221
- fix(deps): update golang.org/x/exp digest to 7f521ea by @renovate in #257
- fix(deps): update module google.golang.org/grpc to v1.64.0 by @renovate in #224
- fix(deps): update module github.com/rs/zerolog to v1.33.0 by @renovate in #235
- chore(deps): update docker/build-push-action action to v6 by @renovate in #264
- fix(deps): update module google.golang.org/protobuf to v1.34.2 by @renovate in #263
- chore(deps): update softprops/action-gh-release action to v2 by @renovate in #265
- fix(deps): update module github.com/hashicorp/go-version to v1.7.0 by @renovate in #260
- chore(deps): update dependency go to v1.22.4 by @renovate in #259
- fix(CSI-170): error not reported when moving directory to trash by @sergeyberezansky in in #184
- chore(deps): update helm/chart-testing-action action to v2.6.1 by @renovate in #184
- chore(deps): update helm/chart-releaser-action action to v1.6.0 by @renovate in #183
- feat(CSI-166): update CSI spec to 1.9.0 by @sergeyberezansky in #178
- fix(CSI-163): missing ca-certificates package in wekafs container image by @sergeyberezansky in #179
- chore(deps): update actions/checkout digest to b4ffde6 by @renovate in #161
- chore(deps): update stefanzweifel/git-auto-commit-action action to v5 by @renovate in #167
- chore(deps): update helm/chart-testing-action action to v2.6.0 by @renovate in #181
- chore(deps): bump dependencies by @sergeyberezansky in #177
- feat(CSI-159): add weka driver monitoring for readiness probe by @sergeyberezansky in #58
- chore(deps): update actions/checkout action to v4 by @renovate in #152
- fix(deps): update kubernetes packages to v0.28.1 by @renovate in #139
- fix(deps): update module github.com/google/uuid to v1.3.1 by @renovate in #148
- fix(deps): update module github.com/rs/zerolog to v1.30.0 by @renovate in #146
- fix(deps): update module google.golang.org/grpc to v1.58.0 by @renovate in #145
- fix(deps): update module github.com/kubernetes-csi/csi-lib-utils to v0.15.0 by @renovate in #149
- fix(deps): update opentelemetry-go monorepo to v1.17.0 by @renovate in #151
- fix(deps): update golang.org/x/exp digest to 9212866 by @renovate in #144
- chore(deps): update docker/build-push-action action to v5 by @renovate in #154
- chore(deps): update docker/login-action action to v3 by @renovate in #155
- chore(deps): update docker/setup-buildx-action action to v3 by @renovate in #156
- feat(CSI-122): support multiple Weka clusters on same nodes by @sergeyberezansky in #134
- fix(deps): update module google.golang.org/grpc to v1.56.2 by @renovate in #135
- fix(deps): update golang.org/x/exp digest to 613f0c0 by @renovate in #136
- chore(deps): update helm/kind-action action to v1.8.0 by @renovate in #137
- feat(CSI-57): acl mount option by @dontbreakit in #128
- fix(CSI-118): cannot initialize API client with non-root organization by @sergeyberezansky in #131
- ci(CSI-116): prefix v for all components validation, also CSI-117 by @dontbreakit in #129
- fix(deps): update golang.org/x/exp digest to 97b1e66 by @renovate in #126
- fix(deps): update module google.golang.org/protobuf to v1.31.0 by @renovate in #125
- fix(CSI-75): compatibilityMap has duplicate parameter for same functionality #120
- fix(CSI-76): filtering Rest API allowed only from 4.1 but should be from 4.0 #120
- fix(CSI-110): CSI does not propagate error when failing to init API client from secrets #120
- fix(CSI-112): panic when creating CSI snapshot-based volume and failing to initialize API client #120
- fix(CSI-113) plugin incorrectly handles secret with API endpoints separated by newline rather than comma #120
- fix(CSI-111): Replace deprecated ioutil.ReadFile / WriteFile #120
- docs(CSI-115): document incorrectly states version of Weka for snapshot quotas #123
Full Changelog: https://github.com/weka/csi-wekafs/compare/v2.1.0...v2.1.1
- feat(CSI-67): sign helm chart by @dontbreakit in #116
- fix(CSI-109): update registry.k8s.io/sig-storage/csi-snapshotter to v6.2.2 by @renovate in #113
- update Golang dependencies for the csi binary
- fix(deps): update module golang.org/x/sync to v0.3.0 by @renovate in #105
- fix(deps): update module k8s.io/apimachinery to v0.27.3 by @renovate in #106
- fix(deps): update module github.com/prometheus/client_golang to v1.16.0 by @renovate in #107
- fix(deps): update module google.golang.org/grpc to v1.56.1 by @renovate in #108
- fix(deps): update module github.com/kubernetes-csi/csi-lib-utils to v0.14.0 by @renovate in #117
- fix(CSI-74): no error returned when fetching info from weka cluster fails by @dontbreakit & @sergeyberezansky in #102
- fix(CSI-107): revert csi-attacher by @dontbreakit in #103
Weka CSI Plugin v2.0.0 has a comprehensive set of improvenents and new functionality:
- Support of different backings for CSI volumes (filesystem, writable snapshot, directory)
- CSI snapshot and volume cloning support
fsGroup
support- Custom mount options per storageClass
- Redundant CSI controllers
- Restructuring of CI and release workflows
NOTE: some of the functionality provided by Weka CSI Plugin 2.0.0 requires Weka software of version 4.2 or higher. Please refer to documentation for additional information
NOTE: To better understand the different types of volume backings and their implications, refer to documentation.
- feat: Support of new volumes from content source by @sergeyberezansky in #11
- feat: Support Mount options by @sergeyberezansky in #18
- feat: Add fsGroup support on CSI driver by @sergeyberezansky in #20
- feat: Support different backing types for CSI volumes by @sergeyberezansky in #69
- feat: official support for multiple controller server replicas by @sergeyberezansky in #47
- feat: configurable log format (colorized human-readable logs or JSON structured logs) by @sergeyberezansky in #26
- feat: OpenTelemetry tracing support by @sergeyberezansky in #26
- feat: support of mutually exclusive mount options by @sergeyberezansky in #54
- feat: Add concurrency limitation for multiple requests by @sergeyberezansky in #56
- refactor: concurrency improvements by @sergeyberezansky in #68
- fix: Correctly calculate capacity for FS-based volume expansion (fixu… by @sergeyberezansky in #15
- refactor: do not recover lost mounts and shorten default mountOptions by @sergeyberezansky in #21
- fix: plugin might crash when trying to create dir-based volume on non… by @sergeyberezansky in #29
- fix: CSI-47 Snapshot volumes run out of space after filling FS space by @sergeyberezansky in #35
- fix: WEKAPP-298226 volumes published with ReadOnlyMany were writable by @sergeyberezansky in #36
- fix: initial filesystem capacity conversion to bytes is invalid by @sergeyberezansky in #38
- fix: loozen snapshot id validation for static provisioning by @sergeyberezansky in #41
- fix: re-enable writecache by default by @sergeyberezansky in #51
- fix: make sure op is written correctly for each function by @sergeyberezansky in #67
- style: add more logging to initial FS resize by @sergeyberezansky in #37
- Add Helm linting and install test by @sergeyberezansky in #13
- Push updated docs to main branch straight after PR merge by @sergeyberezansky in #19
- docs: modify helm docs templates by @sergeyberezansky in #22
- chore: add S3 chart upload GH task by @sergeyberezansky in #23
- chore: auto increase version on feat git commit by @sergeyberezansky in #24
- feat: Bump versions of packages by @sergeyberezansky in #25
- chore: change docker build via native buildx GH action by @sergeyberezansky in #27
- ci: add csi-sanity action to PRs by @dontbreakit in #30
- ci: add release action by @dontbreakit in #34
- docs: Improve documentation on mount options and different volume types by @sergeyberezansky in #39
- chore: Bump CSI sidecar images to latest version by @sergeyberezansky in #42
- docs: fix capacityEnforcement comment inside storageClass examples by @sergeyberezansky in #46
- Add notifications to slack by @dontbreakit in #53
- docs: Improve release.yaml to include additional PR labels by @sergeyberezansky in #70
In order to support fsGroup
functionality, the CSIDriver manifest had to be modified. Since this type of Kubernetes objects is defined as immutable, upgrading Helm release with the new version might fail.
Hence, when upgrading from version below 2.0.0, a complete uninstall and reinstall of Helm release is required.
NOTE: it is not required to remove any Secrets, storageClass definitions, PersistentVolumes or PersistentVolumeClaims.
Support of legacy volumes without API binding will be removed in next major release of Weka CSI Plugin. New features rely on API connectivity to Weka cluster and will not be supported on API unbound volumes. Please make sure to migrate all existing volumes to API based scheme prior to next version upgrade.
- Fixed an error which caused the CSI Node component to fail starting on Selinux-enabled hosts
- Fixed installation notes to correctly show the helm commands required for seeing the release
- Fixed a race condition due to which CSI Node component running on same node with CSI Controller component could fail to start
- Fixed README.md to correct SELinux README.md URL
- Fix invalid link to CSI SELinux documentation on ArtifactHub page
- Fix version strings are not updated inside Helm chart README.md
Weka CSI Plugin can now work with SELinux-enabled Kubernetes clusters.
NOTE: Special configuration is required to deploy the Weka CSI plugin in SELinux-compatible mode
Refer to SELinux Support Readme for additional information
- Helm Charts were separated on per-object basis for better supportability
- Custom
kubelet
path may be set, e.g. for using Kubernetes installed into non-default directory
- Part of new settings in
values.yaml
were not documented - Improved logging on failure to mount a filesystem due to authorization error
- Fixed a situation in which
csi-registrar
container (part of node server) could enter crash loop due tocsi.Node.v1
not found
This functionality is supported for Weka clusters of version 3.14 and up
- Filesystems set with auth-required=true can be used for CSI volumes
- Filesystems in non-root organization can be used for CSI volumes
- Volume ownership and permissions configuration can be set via storageClass parameters
- Automated doc generation via helm-doc
- Upgrade sidecar components to latest versions on gcr.io
- Upgrade sidecar components to latest versions
- When new dir/v1 volume is created, it is automatically bound to API quota object
- Can be set to either HARD (forbid writes with E_NOSPC) or SOFT (alerts only)
- Supported for dynamic volumes only in this version
- Requires a modification of storage class (or creation of new storage class)
- Requires a Secret creation that contains API connection information
- Current limitation: only new volumes will be set with quota. For setting quota on existing volumes, use migration script in
migration
directory - Old volumes can be still expanded using a Legacy API secret (see values.yaml), but user is highly encouraged to migrate workloads to new storage class
- Requires Weka software of v3.13 and above. If cluster version is below v3.13, quotas will not be applied.
Multiple simultaneous Weka clusters are now supported by a single CSI controller. This configuration implies a large Kubernetes cluster, which is connected to multiple Weka clusters, e.g. in different availability zones.
In such case, single CSI controller may take care of provisioning all volumes. Please remember to utilize PVC annotations to ensure the PVC is bound to correct Kubernetes node.
NOTE: Support for making a single Kubernetes node a member in multiple Weka clusters is not available at this time, and will be introduced in future Weka software versions.
- Build process simplified and Dockerized
This allows developers to build the software from sources locally - Release process was streamlined
- Logging improvements were introduced with refined log levels
- New examples provided for using Weka REST API
- New topology label that allows scheduling of pods only on Kubernetes nodes having CSI node component.
In order to schedule pods on supporting nodes, add this NodeSelector:topology.csi.weka.io/global: "true"
Failed to remove entry...
error messages appeared in logs for every inner directory during PV deletion
- Authenticated mounts are not supported in current version of CSI plugin
- Changed default mount options to writecache to improve inter-pod performance over CSI volumes
- In rare circumstances, CSI plugin may fail to publish a volume after node server pod restart
- CSI node driver does not crash when node is not configured as Weka client
- Deployment supported via Helm public repo
- Repository listed on ArtifactHub
- Fixed version strings SymVer2 compatibility
- Added values.schema.json
- Added post-installation notes
- Added documentation on values
- Separation of controller and node plugin components for increased performance and stability
- Support of deployment via Helm in addition to the previous deployment scheme
- Support of adding node taints and tolerations via helm deployment
- Cleanup script now handles entities of all versions
- Plugin logs are now much more readable
- Docker tag pattern was changed from "latest" to version tag
- During deployment, on slow networks, a node pod can arbitrary enter
CrashLoopBackoff
due to node-driver-registrar container loading before wekafs container In such case, delete the container and it will be recreated automatically.
In order to upgrade an existing deployment from version below 0.6.0, the previous version has to be uninstalled first:
./deploy/util/cleanup.sh
Then, a new version can be deployed, by following either one of the procedures below:
- helm public repo (recommended)
- deploy script
- helm local installation
Initial release