diff --git a/examples/freenas-api-iscsi.yaml b/examples/freenas-api-iscsi.yaml index 2174598..c2286e7 100644 --- a/examples/freenas-api-iscsi.yaml +++ b/examples/freenas-api-iscsi.yaml @@ -63,6 +63,9 @@ iscsi: #nameTemplate: "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}-{{ parameters.[csi.storage.k8s.io/pvc/name] }}" namePrefix: csi- nameSuffix: "-clustera" + + #extentCommentTemplate: "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}-{{ parameters.[csi.storage.k8s.io/pvc/name] }}" + # add as many as needed targetGroups: # get the correct ID from the "portal" section in the UI diff --git a/examples/freenas-iscsi.yaml b/examples/freenas-iscsi.yaml index 9db8e8d..4225799 100644 --- a/examples/freenas-iscsi.yaml +++ b/examples/freenas-iscsi.yaml @@ -72,6 +72,9 @@ iscsi: #nameTemplate: "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}-{{ parameters.[csi.storage.k8s.io/pvc/name] }}" namePrefix: csi- nameSuffix: "-clustera" + + #extentCommentTemplate: "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}-{{ parameters.[csi.storage.k8s.io/pvc/name] }}" + # add as many as needed targetGroups: # get the correct ID from the "portal" section in the UI diff --git a/src/driver/freenas/api.js b/src/driver/freenas/api.js index 2da1887..9592041 100644 --- a/src/driver/freenas/api.js +++ b/src/driver/freenas/api.js @@ -640,6 +640,25 @@ class FreeNASApiDriver extends CsiBaseDriver { "FreeNAS creating iscsi assets with name: " + iscsiName ); + let extentComment; + if (this.options.iscsi.extentCommentTemplate) { + extentComment = Handlebars.compile( + this.options.iscsi.extentCommentTemplate + )({ + name: call.request.name, + parameters: call.request.parameters, + csi: { + name: this.ctx.args.csiName, + version: this.ctx.args.csiVersion, + }, + zfs: { + datasetName: datasetName, + }, + }); + } else { + extentComment = ""; + } + const extentInsecureTpc = this.options.iscsi.hasOwnProperty( "extentInsecureTpc" ) @@ -863,7 +882,7 @@ class FreeNASApiDriver extends CsiBaseDriver { } let extent = { - iscsi_target_extent_comment: "", // TODO: allow template for this value + iscsi_target_extent_comment: extentComment, iscsi_target_extent_type: "Disk", // Disk/File, after save Disk becomes "ZVOL" iscsi_target_extent_name: iscsiName, iscsi_target_extent_insecure_tpc: extentInsecureTpc, @@ -1114,7 +1133,7 @@ class FreeNASApiDriver extends CsiBaseDriver { }); let extent = { - comment: "", // TODO: allow this to be templated + comment: extentComment, type: "DISK", // Disk/File, after save Disk becomes "ZVOL" name: iscsiName, //iscsi_target_extent_naa: "0x3822690834aae6c5", diff --git a/src/driver/freenas/ssh.js b/src/driver/freenas/ssh.js index dd0752c..ce66d86 100644 --- a/src/driver/freenas/ssh.js +++ b/src/driver/freenas/ssh.js @@ -671,6 +671,25 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { "FreeNAS creating iscsi assets with name: " + iscsiName ); + let extentComment; + if (this.options.iscsi.extentCommentTemplate) { + extentComment = Handlebars.compile( + this.options.iscsi.extentCommentTemplate + )({ + name: call.request.name, + parameters: call.request.parameters, + csi: { + name: this.ctx.args.csiName, + version: this.ctx.args.csiVersion, + }, + zfs: { + datasetName: datasetName, + }, + }); + } else { + extentComment = ""; + } + const extentInsecureTpc = this.options.iscsi.hasOwnProperty( "extentInsecureTpc" ) @@ -894,7 +913,7 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { } let extent = { - iscsi_target_extent_comment: "", // TODO: allow template for this value + iscsi_target_extent_comment: extentComment, iscsi_target_extent_type: "Disk", // Disk/File, after save Disk becomes "ZVOL" iscsi_target_extent_name: iscsiName, iscsi_target_extent_insecure_tpc: extentInsecureTpc, @@ -1145,7 +1164,7 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { }); let extent = { - comment: "", // TODO: allow this to be templated + comment: extentComment, type: "DISK", // Disk/File, after save Disk becomes "ZVOL" name: iscsiName, //iscsi_target_extent_naa: "0x3822690834aae6c5",