From 720ffb80887b4051902981d7cb6398dbb9bbd0a8 Mon Sep 17 00:00:00 2001 From: Jiri 'Ghormoon' Novak Date: Tue, 23 Sep 2025 19:01:35 +0200 Subject: [PATCH] wqAllow custom hostnqn/hostid settings --- pkg/nvmf/fabrics.go | 26 ++++++++++++++++++-------- pkg/nvmf/nvmf.go | 6 ++++++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/pkg/nvmf/fabrics.go b/pkg/nvmf/fabrics.go index 0ad59db..a1a6fc7 100644 --- a/pkg/nvmf/fabrics.go +++ b/pkg/nvmf/fabrics.go @@ -42,16 +42,26 @@ type Connector struct { } func getNvmfConnector(nvmfInfo *nvmfDiskInfo) *Connector { - hostnqnData, err := os.ReadFile("/etc/nvme/hostnqn") - hostnqn := strings.TrimSpace(string(hostnqnData)) - if err != nil { - hostnqn = "" + hostnqn := "" + if nvmfInfo.HostNqn != "" { + hostnqn = nvmfInfo.HostNqn + } else { + hostnqnData, err := os.ReadFile("/etc/nvme/hostnqn") + hostnqn = strings.TrimSpace(string(hostnqnData)) + if err != nil { + hostnqn = "" + } } - hostidData, err := os.ReadFile("/etc/nvme/hostid") - hostid := strings.TrimSpace(string(hostidData)) - if err != nil { - hostid = "" + hostid := "" + if nvmfInfo.HostId != "" { + hostid = nvmfInfo.HostId + } else { + hostidData, err := os.ReadFile("/etc/nvme/hostid") + hostid = strings.TrimSpace(string(hostidData)) + if err != nil { + hostid = "" + } } return &Connector{ diff --git a/pkg/nvmf/nvmf.go b/pkg/nvmf/nvmf.go index f0c6420..2485f49 100644 --- a/pkg/nvmf/nvmf.go +++ b/pkg/nvmf/nvmf.go @@ -33,6 +33,8 @@ type nvmfDiskInfo struct { Port string DeviceUUID string Transport string + HostId string + HostNqn string } type nvmfDiskMounter struct { @@ -59,6 +61,8 @@ func getNVMfDiskInfo(req *csi.NodePublishVolumeRequest) (*nvmfDiskInfo, error) { targetTrPort := volOpts["targetTrPort"] targetTrType := volOpts["targetTrType"] deviceUUID := volOpts["deviceUUID"] + devHostNqn := volOpts["hostNqn"] + devHostId := volOpts["hostId"] nqn := volOpts["nqn"] if targetTrAddr == "" || nqn == "" || targetTrPort == "" || targetTrType == "" || deviceUUID == "" { @@ -72,6 +76,8 @@ func getNVMfDiskInfo(req *csi.NodePublishVolumeRequest) (*nvmfDiskInfo, error) { Nqn: nqn, DeviceUUID: deviceUUID, Transport: targetTrType, + HostNqn: devHostNqn, + HostId: devHostId, }, nil }