Skip to content

v0.9.0

Compare
Choose a tag to compare
@pohly pohly released this 16 Mar 19:30
· 54 commits to release-0.9 since this release

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.