OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Components · Storage

Pure Storage CSI

Go CSI driver for Pure Storage FlashArray over iSCSI: snapshots, clones, expansion, block RWX for KubeVirt. Prototype.

Go FlashArray over iSCSIopenkeel-csi-pure

The module

CSI driver in Go for Pure Storage FlashArray over iSCSI. It is a real driver, not a wrapper around another one: it maps CSI calls to array operations and attaches LUNs with csi-lib-iscsi. The standard sidecars (external-provisioner, attacher, snapshotter, resizer) do the rest, which gives VolumeSnapshot, cloning and expansion.

  • Go module: github.com/openkeel/openkeel-csi-pure, binary pure-csi, image openkeel/openkeel-csi-pure
  • Driver name: pure-iscsi.csi.openkeel.io
  • Array backends: rest2 (FlashArray REST 2.x, in-house client, the default) and pugo (REST 1.x through the community SDK github.com/devans10/pugo/flasharray), behind one interface (internal/array).

Excerpt from openkeel-csi-pure/README.md (in English).

How compatibility is tested

The Pure Storage FlashArray driver is a CSI driver, so it is checked against the CSI specification and Kubernetes storage conformance rather than against Cinder.

Client contract

In-process csi-sanity

The driver honours the CSI contract (kubernetes-csi csi-sanity, csi-test v5), GroupController included, with in-memory array and node fakes.

How it runs

make test or make sanity.

Latest result 79 specs pass; skipped specs cover capabilities not advertised. No iSCSI, multipath or real mounts exercised.

Source: openkeel-csi-pure/docs/TESTING.md

Unit and golden tests

Unit tests on simulated arrays

Group snapshots, idempotence of every call, sizes, restore and clone, publish, REST 2.x and REST 1.x clients and iSCSI path lookup behave as specified.

How it runs

make test (go test -race ./...) with simulated HTTPS arrays and a fake sysfs.

Source: openkeel-csi-pure/docs/TESTING.md

Scenario

csi-sanity and e2e on a real array

REST request shapes against a real Purity version, then the Kubernetes external storage e2e suite on real nodes.

How it runs

make sanity-real on a node, then make e2e driven by test/e2e/pure-iscsi.yaml.

Latest result Not yet run against a real FlashArray.

Source: openkeel-csi-pure/README.md

Scenario

csi-tester scenario catalogue

Realistic scenarios: access modes, expansion, snapshots, clones, I/O during pod deletion, drains, leftovers, with pass, fail or skip verdicts.

How it runs

openkeel-csi-tester in the cluster; csi-tester run --suite=all --allow-disruptive.

Latest result 18 scenarios pass against the simulated cluster in unit tests; not yet run against a real CSI driver.

Source: openkeel-csi-tester/README.md