allow setting comments field on iscsi volumes
This commit is contained in:
parent
7fe916c916
commit
96854c16d1
|
|
@ -33,6 +33,8 @@ zfs:
|
||||||
# "org.freenas:description": "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}/{{ parameters.[csi.storage.k8s.io/pvc/name] }}"
|
# "org.freenas:description": "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}/{{ parameters.[csi.storage.k8s.io/pvc/name] }}"
|
||||||
# "org.freenas:test": "{{ parameters.foo }}"
|
# "org.freenas:test": "{{ parameters.foo }}"
|
||||||
# "org.freenas:test2": "some value"
|
# "org.freenas:test2": "some value"
|
||||||
|
# can be used to set the comments field in the UI
|
||||||
|
#datasetCommentTemplate: "{{ parameters.[csi.storage.k8s.io/pvc/namespace] }}/{{ parameters.[csi.storage.k8s.io/pvc/name] }}"
|
||||||
|
|
||||||
# total volume name (zvol/<datasetParentName>/<pvc name>) length cannot exceed 63 chars
|
# total volume name (zvol/<datasetParentName>/<pvc name>) length cannot exceed 63 chars
|
||||||
# https://www.ixsystems.com/documentation/freenas/11.2-U5/storage.html#zfs-zvol-config-opts-tab
|
# https://www.ixsystems.com/documentation/freenas/11.2-U5/storage.html#zfs-zvol-config-opts-tab
|
||||||
|
|
|
||||||
|
|
@ -2173,6 +2173,26 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
*/
|
*/
|
||||||
const datasetName = datasetParentName + "/" + volume_id;
|
const datasetName = datasetParentName + "/" + volume_id;
|
||||||
|
|
||||||
|
// Instead of templatizing the name, use the comment field to store details visible in the UI.
|
||||||
|
let datasetComment;
|
||||||
|
if (this.options.zfs.datasetCommentTemplate) {
|
||||||
|
datasetComment = Handlebars.compile(
|
||||||
|
this.options.zfs.datasetCommentTemplate
|
||||||
|
)({
|
||||||
|
name: call.request.name,
|
||||||
|
parameters: call.request.parameters,
|
||||||
|
csi: {
|
||||||
|
name: this.ctx.args.csiName,
|
||||||
|
version: this.ctx.args.csiVersion,
|
||||||
|
},
|
||||||
|
zfs: {
|
||||||
|
datasetName: datasetName,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
datasetComment = "";
|
||||||
|
}
|
||||||
|
|
||||||
// ensure volumes with the same name being requested a 2nd time but with a different size fails
|
// ensure volumes with the same name being requested a 2nd time but with a different size fails
|
||||||
try {
|
try {
|
||||||
let properties = await httpApiClient.DatasetGet(datasetName, [
|
let properties = await httpApiClient.DatasetGet(datasetName, [
|
||||||
|
|
@ -2399,6 +2419,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
volumeProperties.comments = datasetComment;
|
||||||
response = await httpApiClient.DatasetSet(
|
response = await httpApiClient.DatasetSet(
|
||||||
datasetName,
|
datasetName,
|
||||||
volumeProperties
|
volumeProperties
|
||||||
|
|
@ -2438,6 +2459,13 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
|
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CloneCreate doesn't support the comments field, so set it after the fact.
|
||||||
|
if (datasetComment) {
|
||||||
|
await httpApiClient.DatasetSet(datasetName, {
|
||||||
|
comments: datasetComment
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!zb.helpers.isZfsSnapshot(volume_content_source_snapshot_id)) {
|
if (!zb.helpers.isZfsSnapshot(volume_content_source_snapshot_id)) {
|
||||||
|
|
@ -2569,6 +2597,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
volumeProperties.comments = datasetComment;
|
||||||
response = await httpApiClient.DatasetSet(
|
response = await httpApiClient.DatasetSet(
|
||||||
datasetName,
|
datasetName,
|
||||||
volumeProperties
|
volumeProperties
|
||||||
|
|
@ -2605,6 +2634,13 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
|
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CloneCreate doesn't support the comments field, so set it after the fact.
|
||||||
|
if (datasetComment) {
|
||||||
|
await httpApiClient.DatasetSet(datasetName, {
|
||||||
|
comments: datasetComment
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -2629,6 +2665,7 @@ class FreeNASApiDriver extends CsiBaseDriver {
|
||||||
share_type: driver.getDriverShareType().includes("smb")
|
share_type: driver.getDriverShareType().includes("smb")
|
||||||
? "SMB"
|
? "SMB"
|
||||||
: "GENERIC",
|
: "GENERIC",
|
||||||
|
comments: datasetComment,
|
||||||
user_properties: httpApiClient.getPropertiesKeyValueArray(
|
user_properties: httpApiClient.getPropertiesKeyValueArray(
|
||||||
httpApiClient.getUserProperties(volumeProperties)
|
httpApiClient.getUserProperties(volumeProperties)
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue