Maintained by: Remodl AI Upstream: NexGenCloud/csi-hyperstack Customizations: NodeSelector support for multi-cloud Kubernetes deployments
Current released image - reg.digitalocean.ngbackend.cloud/hyperstack-csi-driver/csi:v0.0.1
This fork adds the following enhancements to the upstream Hyperstack CSI driver:
- NodeSelector Support: Allows restricting CSI node DaemonSet to Hyperstack nodes only in multi-cloud clusters
- Multi-Cloud K8s Optimization: Prevents CSI driver from attempting to run on non-Hyperstack nodes (AWS, GCP, etc.)
In multi-cloud Kubernetes deployments (e.g., AWS control plane + Hyperstack GPU workers), the upstream CSI driver attempts to run on all nodes. This causes crashes on non-Hyperstack nodes since the driver can only attach Hyperstack volumes to Hyperstack VMs. This fork enables proper node targeting via standard Kubernetes nodeSelector configuration.
This documentation provides instructions for installing and using the Hyperstack CSI Driver. The CSI provisioner for hyperstack CSI driver is hyperstack.csi.nexgencloud.com.
Before you begin, ensure you have the following tools installed:
- Go 1.24
- Helm
- A Hyperstack Kubernetes cluster
-
(Optional) gRPCurl – Useful for debugging gRPC calls.
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
Run go mod tidy before starting the gRPC server:
go run main.go start \
--endpoint="unix://tmp/csi-hyperstack.sock" \
--hyperstack-api-address="<API_BASE_URL>" \
--hyperstack-api-key="<API_KEY>" \
--service-controller-enabled \
--service-node-enabledTo list the available gRPC calls:
grpcurl --plaintext unix:///tmp/csi-hyperstack.sock listYou can invoke a specific RPC method for a given operation using grpcurl.
To build the project:
make build VERSION=<VERSION>Refer to the charts/csi-hyperstack documentation for details on installation and usage with Helm.
For more information about the features of the Hyperstack API, visit the Hyperstack Documentation.
Relevant docs: