From f8161e9954de4443cb5190976d96ea8d2f1303bd Mon Sep 17 00:00:00 2001 From: Ruslan Timofieiev Date: Tue, 22 Aug 2023 17:43:16 +0300 Subject: [PATCH] add lun description to createVolume --- deploy/kubernetes/v1.19/controller.yml | 1 + deploy/kubernetes/v1.20/controller.yml | 1 + pkg/driver/controllerserver.go | 10 ++++++++++ pkg/dsm/service/dsm.go | 11 ++++++----- pkg/dsm/webapi/iscsi.go | 14 ++++++++------ pkg/models/dsm_req_spec.go | 1 + 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/deploy/kubernetes/v1.19/controller.yml b/deploy/kubernetes/v1.19/controller.yml index 2c4fab8..e78c698 100644 --- a/deploy/kubernetes/v1.19/controller.yml +++ b/deploy/kubernetes/v1.19/controller.yml @@ -96,6 +96,7 @@ spec: - --timeout=60s - --csi-address=$(ADDRESS) - --v=5 + - --extra-create-metadata env: - name: ADDRESS value: /var/lib/csi/sockets/pluginproxy/csi.sock diff --git a/deploy/kubernetes/v1.20/controller.yml b/deploy/kubernetes/v1.20/controller.yml index f651dff..1f234e0 100644 --- a/deploy/kubernetes/v1.20/controller.yml +++ b/deploy/kubernetes/v1.20/controller.yml @@ -96,6 +96,7 @@ spec: - --timeout=60s - --csi-address=$(ADDRESS) - --v=5 + - --extra-create-metadata env: - name: ADDRESS value: /var/lib/csi/sockets/pluginproxy/csi.sock diff --git a/pkg/driver/controllerserver.go b/pkg/driver/controllerserver.go index 1811296..a60ffd5 100644 --- a/pkg/driver/controllerserver.go +++ b/pkg/driver/controllerserver.go @@ -132,10 +132,20 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol // used only in NodeStageVolume though VolumeContext formatOptions := params["formatOptions"] + lunDescription := "" + if _, ok := params["csi.storage.k8s.io/pvc/name"]; ok { + // if the /pvc/name is present, the namespace is present too + // as these parameters are reserved by external-provisioner + pvcNamespace := params["csi.storage.k8s.io/pvc/namespace"] + pvcName := params["csi.storage.k8s.io/pvc/name"] + lunDescription = pvcNamespace + "/" + pvcName + } + spec := &models.CreateK8sVolumeSpec{ DsmIp: params["dsm"], K8sVolumeName: volName, LunName: models.GenLunName(volName), + LunDescription: lunDescription, ShareName: models.GenShareName(volName), Location: params["location"], Size: sizeInByte, diff --git a/pkg/dsm/service/dsm.go b/pkg/dsm/service/dsm.go index e8305c7..122a545 100644 --- a/pkg/dsm/service/dsm.go +++ b/pkg/dsm/service/dsm.go @@ -168,7 +168,7 @@ func (service *DsmService) createMappingTarget(dsm *webapi.DSM, spec *models.Cre } targetSpec := webapi.TargetCreateSpec{ Name: spec.TargetName, - Iqn: genTargetIqn(), + Iqn: genTargetIqn(), } log.Debugf("TargetCreate spec: %v", targetSpec) @@ -224,10 +224,11 @@ func (service *DsmService) createVolumeByDsm(dsm *webapi.DSM, spec *models.Creat // 3. Create LUN lunSpec := webapi.LunCreateSpec{ - Name: spec.LunName, - Location: spec.Location, - Size: spec.Size, - Type: lunType, + Name: spec.LunName, + Description: spec.LunDescription, + Location: spec.Location, + Size: spec.Size, + Type: lunType, } log.Debugf("LunCreate spec: %v", lunSpec) diff --git a/pkg/dsm/webapi/iscsi.go b/pkg/dsm/webapi/iscsi.go index 178b6f1..6520111 100644 --- a/pkg/dsm/webapi/iscsi.go +++ b/pkg/dsm/webapi/iscsi.go @@ -67,11 +67,12 @@ type LunDevAttrib struct { } type LunCreateSpec struct { - Name string - Location string - Size int64 - Type string - DevAttribs []LunDevAttrib + Name string + Description string + Location string + Size int64 + Type string + DevAttribs []LunDevAttrib } type LunUpdateSpec struct { @@ -165,6 +166,7 @@ func (dsm *DSM) LunCreate(spec LunCreateSpec) (string, error) { params.Add("size", strconv.FormatInt(int64(spec.Size), 10)) params.Add("type", spec.Type) params.Add("location", spec.Location) + params.Add("description", spec.Description) js, err := json.Marshal(spec.DevAttribs) if err != nil { @@ -497,4 +499,4 @@ func (dsm *DSM) SnapshotClone(spec SnapshotCloneSpec) (string, error) { } return snapshotCloneResp.Uuid, nil -} \ No newline at end of file +} diff --git a/pkg/models/dsm_req_spec.go b/pkg/models/dsm_req_spec.go index 8055735..3ef0571 100644 --- a/pkg/models/dsm_req_spec.go +++ b/pkg/models/dsm_req_spec.go @@ -12,6 +12,7 @@ type CreateK8sVolumeSpec struct { DsmIp string K8sVolumeName string LunName string + LunDescription string ShareName string Location string Size int64