This repository has been archived by the owner on Oct 22, 2024. It is now read-only.
v0.6.0
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 forkustomize
and/orkubectl 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.