pmem-csi

module
v0.7.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2020 License: Apache-2.0

README

Introduction to PMEM-CSI for Kubernetes

Note: This is Alpha code and not production ready.

Intel PMEM-CSI is a CSI storage driver for container orchestrators like Kubernetes. It makes local persistent memory (PMEM) available as a filesystem volume to container applications. It can currently utilize non-volatile memory devices that can be controlled via the libndctl utility library. In this readme, we use persistent memory to refer to a non-volatile dual in-line memory module (NVDIMM).

The v0.6.0 release is the latest feature release and is regularly updated with newer base images and bug fixes. Older versions are no longer supported.

Documentation is part of the source code for each release and also available in rendered form for easier reading:

Supported Kubernetes versions

PMEM-CSI implements the CSI specification version 1.x, which is only supported by Kubernetes versions >= v1.13. The following table summarizes the status of support for PMEM-CSI on different Kubernetes versions:

Kubernetes version Required alpha feature gates Support status
1.13 CSINodeInfo, CSIDriverRegistry,
CSIBlockVolume
unsupported 1
1.14 unsupported 2
1.15 CSIInlineVolume
1.16
1.17
1.18

1 Several relevant features are only available in alpha quality in Kubernetes 1.13 and the combination of skip attach and block volumes is completely broken, with the fix only being available in later versions. The external-provisioner v1.0.1 for Kubernetes 1.13 lacks the --strict-topology flag and therefore late binding is unreliable. It's also a release that is not supported officially by upstream anymore.

2 Lacks support for ephemeral inline volumes. Not supported officially by upstream anymore.

Demo

Click the image to watch the animated demo on asciinema.org:

asciicast

Content

Directories

Path Synopsis
cmd
Code generated for package deploy by go-bindata DO NOT EDIT.
Code generated for package deploy by go-bindata DO NOT EDIT.
hack
tooling
Package tooling contains dependencies for some of the code that we only need at build time.
Package tooling contains dependencies for some of the code that we only need at build time.
pkg
apis/pmemcsi
Package pmemcsi contains pmemcsi API versions.
Package pmemcsi contains pmemcsi API versions.
apis/pmemcsi/v1alpha1
Package v1alpha1 contains API Schema definitions for the pmem-csi v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=pmem-csi.intel.com Package v1alpha1 contains API Schema definitions for the pmem-csi v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=pmem-csi.intel.com
Package v1alpha1 contains API Schema definitions for the pmem-csi v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=pmem-csi.intel.com Package v1alpha1 contains API Schema definitions for the pmem-csi v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=pmem-csi.intel.com
deployments
The deployments package reads the reference YAML files and optionally modifies them for deployment.
The deployments package reads the reference YAML files and optionally modifies them for deployment.
imagefile
Package imagefile contains code to create a file with the following content: .-----------.----------.---------------.
Package imagefile contains code to create a file with the following content: .-----------.----------.---------------.
imagefile/test
Package test contains a black-box test for the imagefile package.
Package test contains a black-box test for the imagefile package.
k8sutil
The package k8sutil contains some helper code which simplifies interaction with a Kubernetes cluster.
The package k8sutil contains some helper code which simplifies interaction with a Kubernetes cluster.
pmem-csi-operator/controller/deployment/testcases
Package testcases contains test cases for the operator which can be used both during unit and E2E testing.
Package testcases contains test cases for the operator which can be used both during unit and E2E testing.
test
e2e
e2e/deploy
Package deploy contains code which provides information about the cluster and deploying PMEM-CSI inside it.
Package deploy contains code which provides information about the cluster and deploying PMEM-CSI inside it.
e2e/operator/validate
Package validate contains code to check objects deployed by the operator as part of an E2E test.
Package validate contains code to check objects deployed by the operator as part of an E2E test.
third-party
go-fibmap
Package fibmap implements FIBMAP/FIEMAP and related Linux ioctl for dealing with low level file allocation.
Package fibmap implements FIBMAP/FIEMAP and related Linux ioctl for dealing with low level file allocation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL