Skip to content

[Question] Is running Trident in CSI Node-only mode outside Kubernetes supported or feasible? #1111

@nineonine

Description

@nineonine

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

  1. Is this a supported or tested configuration? Has Trident been tested running in CSI Node mode without a
    Kubernetes cluster?

  2. 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 through NodePublishVolume requests?
  • Is --no_persistence viable for a node-only deployment where the orchestrator manages volume state externally?
  1. 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?

  2. Are there plans to support non-K8s orchestrators? We see the plainnodehelper and 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions