Skip to content

v0.6.0

Compare
Choose a tag to compare
@pohly pohly released this 12 Dec 15:00
· 118 commits to release-0.6 since this release

New features:

  • raw block volumes: applications can use volumes provisioned by PMEM-CSI as raw block devices. The advantage is that they have full control over how a filesystem is created on them.
  • ephemeral inline volumes: ephemeral inline volumes are specified inside the pod spec and get created and destroyed together with the pod. This is ideal for local, non-persistent scratch space.
  • PMEM-CSI in direct mode now allows admins to make changes (like creating new namespaces) while the driver is running.
  • The sub-directories in deploy/kubernetes-* can be used as base for kustomize and/or kubectl kustomize.
  • Source code was converted to Go modules, so it now also builds outside of GOPATH.

Breaking changes:

  • Support for Kubernetes 1.13 was removed because its support for CSI is too limited.

Other changes:

  • Enhanced documentation.
  • Extended testing.

Deprecation warning:

  • "Sector" namespace support is likely to be removed unless a need for it is found.

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.
  • Pod scheduling in Kubernetes is unaware of how much free PMEM exists on a node and thus a pod using an ephemeral inline volume or a persistent volume with WaitForFirstConsume volume binding mode may end up on a node where the volume cannot be created. In that case it is stuck until enough free PMEM becomes available.