-
Notifications
You must be signed in to change notification settings - Fork 264
Description
Greetings!
We are exploring the feasibility of running Trident's CSI Node service in standalone mode — outside of a Kubernetes cluster — to serve NodePublishVolume/NodeUnpublishVolume RPCs for NFS mounts on a non-K8s container orchestrator.
From reviewing the codebase, we see that Trident supports --csi_role=node and has a plainnodehelper code path (main.go#L480) that activates when no K8s API server is configured. A minimal invocation might look like:
trident --csi_endpoint=unix:///var/run/csi.sock \
--csi_node_name=my-node \
--csi_role=node \
--no_persistence \
--config=/path/to/backend.json
Questions
-
Is this a supported or tested configuration? Has Trident been tested running in CSI Node mode without a
Kubernetes cluster? -
What is the minimum required configuration? Specifically:
- Is a backend configuration file (
--config) required for node-only mode, or can volume context (DNS name,
export path) be passed entirely throughNodePublishVolumerequests? - Is
--no_persistenceviable for a node-only deployment where the orchestrator manages volume state externally?
-
What is the expected resource footprint? We noticed that even in node mode, the full Trident orchestrator is
bootstrapped (main.go#L392). Is there a lightweight mode that only initializes the CSI Node service without the orchestrator runtime? -
Are there plans to support non-K8s orchestrators? We see the
plainnodehelperand Docker plugin mode as precedents for non-K8s usage. Is there interest in making standalone CSI Node mode a first-class supported configuration?
Context
We are evaluating storage integration options and are interested in leveraging Trident for FSx for
NetApp ONTAP NFS mounts. Our use case only requires the CSI Node service (mount/unmount) — volume
provisioning and lifecycle management are handled by the control plane.
Any guidance on feasibility, limitations, or recommended approaches would be appreciated.
Thank you!