Skip to content

Commit

Permalink
feat(CSI-259): report mount transport in node topology
Browse files Browse the repository at this point in the history
  • Loading branch information
sergeyberezansky committed Sep 18, 2024
1 parent e374a43 commit 77cb7f5
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 4 deletions.
8 changes: 7 additions & 1 deletion pkg/wekafs/interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ import (
"time"
)

const (
dataTransportNfs DataTransport = "nfs"
dataTransportWekafs DataTransport = "wekafs"
)

type AnyServer interface {
getMounter() AnyMounter
getApiStore() *ApiStore
Expand All @@ -24,12 +29,13 @@ type AnyMounter interface {
gcInactiveMounts()
schedulePeriodicMountGc()
getGarbageCollector() *innerPathVolGc
getTransport() DataTransport
}

type mountsMapPerFs map[string]AnyMount
type mountsMap map[string]mountsMapPerFs
type nfsMountsMap map[string]int // we only follow the mountPath and number of references

type DataTransport string
type UnmountFunc func()

type AnyMount interface {
Expand Down
4 changes: 4 additions & 0 deletions pkg/wekafs/nfsmounter.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,7 @@ func (m *nfsMounter) schedulePeriodicMountGc() {
}
}()
}

func (m *nfsMounter) getTransport() DataTransport {
return dataTransportNfs
}
8 changes: 5 additions & 3 deletions pkg/wekafs/nodeserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ const (
TopologyKeyNode = "topology.wekafs.csi/node"
TopologyLabelNode = "topology.csi.weka.io/node"
TopologyLabelWeka = "topology.csi.weka.io/global"
TopologyLabelTransport = "topology.csi.weka.io/transport"
WekaKernelModuleName = "wekafsgw"
NodeServerAdditionalMountOptions = MountOptionWriteCache + "," + MountOptionSyncOnClose
)
Expand Down Expand Up @@ -564,9 +565,10 @@ func (ns *NodeServer) NodeGetInfo(ctx context.Context, req *csi.NodeGetInfoReque
}()
topology := &csi.Topology{
Segments: map[string]string{
TopologyKeyNode: ns.nodeID, // required exactly same way as this is how node is accessed by K8s
TopologyLabelNode: ns.nodeID,
TopologyLabelWeka: "true",
TopologyKeyNode: ns.nodeID, // required exactly same way as this is how node is accessed by K8s
TopologyLabelNode: ns.nodeID,
TopologyLabelWeka: "true",
TopologyLabelTransport: string(ns.getMounter().getTransport()),
},
}

Expand Down
4 changes: 4 additions & 0 deletions pkg/wekafs/wekafsmounter.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,7 @@ func (m *wekafsMounter) schedulePeriodicMountGc() {
}
}()
}

func (m *wekafsMounter) getTransport() DataTransport {
return dataTransportWekafs
}

0 comments on commit 77cb7f5

Please sign in to comment.