This repository has been archived by the owner on Oct 22, 2024. It is now read-only.
v0.9.0
Major enhancements:
- Finalized the operator API, with
PmemCSIDeployment
as the name for the custom resource. The scheduler extensions can be enabled also in a deployment created by the operator. However, the Kubernetes scheduler still needs to be reconfigured manually. No more backward incompatible changes are planned. - Replaced the custom controller<->node communication with distributed provisioning. This solves several race conditions that could have led to volume leaks. it also removes the need to create certificates when using only the CSI driver itself. Certificates are still needed for securing the communication between Kubernetes and the webhooks if that gets enabled.
Other changes:
- added support for Kubernetes 1.20
- 7a5b879: work around read-only /sys
- d42db56: faster volume deletion by overwriting with zero instead of random data
- 3e896ef: drop deprecated usage of v1beta1 mutation webhook api
- 0d36389: consistent object naming in deployments with app.kubernetes.io labels
- 17d4480: Output can be created in JSON format. All log output in the operator is "structured", i.e. message plus key/value pairs.
- updated dependencies and sidecars
- 262fd07: the default in the YAML files is to deploy in the
pmem-csi
namespace - 3d63bf1: usage of NFD is recommended
- cafe248: fake device manager for testing without PMEM hardware
Known limitations:
- Raw block volumes are based on an "fsdax" namespace and thus only support dax through a filesystem. This is a technical limitation of PMEM and Kubernetes. A "devdax" namespace would support dax directly, but cannot be passed into a pod as a storage volume because it is a character device and Kubernetes expects a block device.