Merge a1fdb7f405 into 8193b689ed
				
					
				
			This commit is contained in:
		
						commit
						5d49e8c93b
					
				|  | @ -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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   # 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 | ||||||
|  |  | ||||||
|  | @ -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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetParentName: tank/k8s/a/vols |   datasetParentName: tank/k8s/a/vols | ||||||
|   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap |   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap | ||||||
|  |  | ||||||
|  | @ -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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   # these are managed automatically via the volume creation process when flagged as an smb volume |   # these are managed automatically via the volume creation process when flagged as an smb volume | ||||||
|   #datasetProperties: |   #datasetProperties: | ||||||
|  |  | ||||||
|  | @ -43,6 +43,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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   # 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 | ||||||
|  |  | ||||||
|  | @ -43,6 +43,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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetParentName: tank/k8s/a/vols |   datasetParentName: tank/k8s/a/vols | ||||||
|   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap |   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap | ||||||
|  |  | ||||||
|  | @ -43,6 +43,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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetProperties: |   datasetProperties: | ||||||
|     aclmode: restricted |     aclmode: restricted | ||||||
|  |  | ||||||
|  | @ -27,6 +27,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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetParentName: tank/k8s/test |   datasetParentName: tank/k8s/test | ||||||
|   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap |   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap | ||||||
|  |  | ||||||
|  | @ -27,6 +27,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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetParentName: tank/k8s/test |   datasetParentName: tank/k8s/test | ||||||
|   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap |   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap | ||||||
|  |  | ||||||
|  | @ -27,6 +27,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" | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetParentName: tank/k8s/test |   datasetParentName: tank/k8s/test | ||||||
|   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap |   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap | ||||||
|  |  | ||||||
|  | @ -28,6 +28,8 @@ zfs: | ||||||
|     #aclinherit: passthrough |     #aclinherit: passthrough | ||||||
|     #acltype: nfsv4 |     #acltype: nfsv4 | ||||||
|     casesensitivity: insensitive |     casesensitivity: insensitive | ||||||
|  |   # snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetParentName: tank/k8s/test |   datasetParentName: tank/k8s/test | ||||||
|   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap |   # do NOT make datasetParentName and detachedSnapshotsDatasetParentName overlap | ||||||
|  |  | ||||||
|  | @ -6,6 +6,8 @@ zfs: | ||||||
| 
 | 
 | ||||||
|   datasetProperties: |   datasetProperties: | ||||||
|     # key: value |     # key: value | ||||||
|  |   snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   datasetEnableQuotas: true |   datasetEnableQuotas: true | ||||||
|   datasetEnableReservation: false |   datasetEnableReservation: false | ||||||
|  |  | ||||||
|  | @ -6,6 +6,8 @@ zfs: | ||||||
| 
 | 
 | ||||||
|   datasetProperties: |   datasetProperties: | ||||||
|     # key: value |     # key: value | ||||||
|  |   snapshotProperties: | ||||||
|  |   #  "org.freenas:key": "value" | ||||||
| 
 | 
 | ||||||
|   zvolCompression: |   zvolCompression: | ||||||
|   zvolDedup: |   zvolDedup: | ||||||
|  |  | ||||||
|  | @ -2106,6 +2106,19 @@ class ControllerZfsBaseDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     // user-supplied properties
 | ||||||
|  |     // put early to prevent stupid (user-supplied values overwriting system values)
 | ||||||
|  |     if (driver.options.zfs.snapshotProperties) { | ||||||
|  |       for (let property in driver.options.zfs.snapshotProperties) { | ||||||
|  |         let value = driver.options.zfs.snapshotProperties[property]; | ||||||
|  |         const template = Handlebars.compile(value); | ||||||
|  | 
 | ||||||
|  |         snapshotProperties[property] = template({ | ||||||
|  |           parameters: call.request.parameters, | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     const volumeDatasetName = volumeParentDatasetName + "/" + source_volume_id; |     const volumeDatasetName = volumeParentDatasetName + "/" + source_volume_id; | ||||||
|     const datasetName = datasetParentName + "/" + source_volume_id; |     const datasetName = datasetParentName + "/" + source_volume_id; | ||||||
|     snapshotProperties[SNAPSHOT_CSI_NAME_PROPERTY_NAME] = name; |     snapshotProperties[SNAPSHOT_CSI_NAME_PROPERTY_NAME] = name; | ||||||
|  |  | ||||||
|  | @ -3999,6 +3999,19 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     // user-supplied properties
 | ||||||
|  |     // put early to prevent stupid (user-supplied values overwriting system values)
 | ||||||
|  |     if (driver.options.zfs.snapshotProperties) { | ||||||
|  |       for (let property in driver.options.zfs.snapshotProperties) { | ||||||
|  |         let value = driver.options.zfs.snapshotProperties[property]; | ||||||
|  |         const template = Handlebars.compile(value); | ||||||
|  | 
 | ||||||
|  |         snapshotProperties[property] = template({ | ||||||
|  |           parameters: call.request.parameters, | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     const datasetName = datasetParentName + "/" + source_volume_id; |     const datasetName = datasetParentName + "/" + source_volume_id; | ||||||
|     snapshotProperties[SNAPSHOT_CSI_NAME_PROPERTY_NAME] = name; |     snapshotProperties[SNAPSHOT_CSI_NAME_PROPERTY_NAME] = name; | ||||||
|     snapshotProperties[SNAPSHOT_CSI_SOURCE_VOLUME_ID_PROPERTY_NAME] = |     snapshotProperties[SNAPSHOT_CSI_SOURCE_VOLUME_ID_PROPERTY_NAME] = | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue