Go-CSI-Treiber für Pure Storage FlashArray über iSCSI: Snapshots, Klone, Erweiterung, Block-RWX für KubeVirt. Prototyp.
Go FlashArray über iSCSIopenkeel-csi-pure
Das Modul
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).
Auszug aus openkeel-csi-pure/README.md (auf Englisch).
Wie die Kompatibilität getestet wird
Der Pure Storage FlashArray-Treiber ist ein CSI-Treiber und wird daher gegen die CSI-Spezifikation und die Kubernetes-Speicherkonformität geprüft statt gegen Cinder.
Client-Vertrag
csi-sanity im Prozess
Der Treiber erfüllt den CSI-Vertrag (kubernetes-csi csi-sanity, csi-test v5), einschließlich GroupController, mit In-Memory-Fakes für Array und Knoten.
Ausführung
make test oder make sanity.
Letztes Ergebnis 79 Specs bestanden; übersprungene Specs betreffen nicht angekündigte Fähigkeiten. Weder iSCSI noch Multipath oder echte Mounts geprüft.
Quelle: openkeel-csi-pure/docs/TESTING.md
Unit- und Golden Tests
Unit-Tests auf simulierten Arrays
Gruppen-Snapshots, Idempotenz jedes Aufrufs, Größen, Wiederherstellung und Klonen, Veröffentlichung, REST-2.x- und REST-1.x-Clients sowie die iSCSI-Pfadsuche verhalten sich wie spezifiziert.
Ausführung
make test (go test -race ./...) mit simulierten HTTPS-Arrays und einem Fake-sysfs.
Quelle: openkeel-csi-pure/docs/TESTING.md
Szenario
csi-sanity und e2e auf einem echten Array
REST-Anfragestrukturen gegen eine echte Purity-Version, danach die Kubernetes-e2e-Suite für externen Speicher auf echten Knoten.
Ausführung
make sanity-real auf einem Knoten, danach make e2e, gesteuert durch test/e2e/pure-iscsi.yaml.
Letztes Ergebnis Noch nicht gegen ein echtes FlashArray ausgeführt.
Quelle: openkeel-csi-pure/README.md
Szenario
Szenariokatalog von csi-tester
Realistische Szenarien: Zugriffsmodi, Erweiterung, Snapshots, Klone, E/A während des Löschens von Pods, Drains, Überreste, mit den Ergebnissen bestanden, fehlgeschlagen oder übersprungen.
Ausführung
openkeel-csi-tester im Cluster; csi-tester run --suite=all --allow-disruptive.
Letztes Ergebnis 18 Szenarien bestehen gegen den simulierten Cluster in Unit-Tests; noch nicht gegen einen echten CSI-Treiber ausgeführt.