Longhorn: Upgrade from 1.7.3 to 1.8.1

Change-Id: Ie2076df97ee3d00cbced65ad52888d3b467725d4
diff --git a/charts/longhorn/questions.yaml b/charts/longhorn/questions.yaml
index 2ae660f..86201d6 100644
--- a/charts/longhorn/questions.yaml
+++ b/charts/longhorn/questions.yaml
@@ -17,7 +17,7 @@
     label: Longhorn Manager Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.manager.tag
-    default: v1.7.3
+    default: v1.8.1
     description: "Tag for the Longhorn Manager image."
     type: string
     label: Longhorn Manager Image Tag
@@ -29,7 +29,7 @@
     label: Longhorn Engine Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.engine.tag
-    default: v1.7.3
+    default: v1.8.1
     description: "Tag for the Longhorn Engine image."
     type: string
     label: Longhorn Engine Image Tag
@@ -41,7 +41,7 @@
     label: Longhorn UI Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.ui.tag
-    default: v1.7.3
+    default: v1.8.1
     description: "Tag for the Longhorn UI image."
     type: string
     label: Longhorn UI Image Tag
@@ -53,7 +53,7 @@
     label: Longhorn Instance Manager Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.instanceManager.tag
-    default: v1.7.3
+    default: v1.8.1
     description: "Tag for the Longhorn Instance Manager image."
     type: string
     label: Longhorn Instance Manager Image Tag
@@ -65,7 +65,7 @@
     label: Longhorn Share Manager Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.shareManager.tag
-    default: v1.7.3
+    default: v1.8.1
     description: "Tag for the Longhorn Share Manager image."
     type: string
     label: Longhorn Share Manager Image Tag
@@ -77,7 +77,7 @@
     label: Longhorn Backing Image Manager Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.backingImageManager.tag
-    default: v1.7.3
+    default: v1.8.1
     description: "Tag for the Backing Image Manager image. When unspecified, Longhorn uses the default value."
     type: string
     label: Longhorn Backing Image Manager Image Tag
@@ -89,7 +89,7 @@
     label: Longhorn Support Bundle Kit Image Repository
     group: "Longhorn Images Settings"
   - variable: image.longhorn.supportBundleKit.tag
-    default: v0.0.51
+    default: v0.0.52
     description: "Tag for the Longhorn Support Bundle Manager image."
     type: string
     label: Longhorn Support Bundle Kit Image Tag
@@ -101,7 +101,7 @@
     label: Longhorn CSI Attacher Image Repository
     group: "Longhorn CSI Driver Images"
   - variable: image.csi.attacher.tag
-    default: v4.8.0
+    default: v4.8.1
     description: "Tag for the CSI attacher image. When unspecified, Longhorn uses the default value."
     type: string
     label: Longhorn CSI Attacher Image Tag
@@ -113,7 +113,7 @@
     label: Longhorn CSI Provisioner Image Repository
     group: "Longhorn CSI Driver Images"
   - variable: image.csi.provisioner.tag
-    default: v4.0.1-20250204
+    default: v5.2.0
     description: "Tag for the CSI Provisioner image. When unspecified, Longhorn uses the default value."
     type: string
     label: Longhorn CSI Provisioner Image Tag
@@ -137,7 +137,7 @@
     label: Longhorn CSI Driver Resizer Image Repository
     group: "Longhorn CSI Driver Images"
   - variable: image.csi.resizer.tag
-    default: v1.13.1
+    default: v1.13.2
     description: "Tag for the CSI Resizer image. When unspecified, Longhorn uses the default value."
     type: string
     label: Longhorn CSI Driver Resizer Image Tag
@@ -149,7 +149,7 @@
     label: Longhorn CSI Driver Snapshotter Image Repository
     group: "Longhorn CSI Driver Images"
   - variable: image.csi.snapshotter.tag
-    default: v7.0.2-20250204
+    default: v8.2.0
     description: "Tag for the CSI Snapshotter image. When unspecified, Longhorn uses the default value."
     type: string
     label: Longhorn CSI Driver Snapshotter Image Tag
@@ -242,18 +242,6 @@
     description: "Replica count of the CSI Snapshotter. When unspecified, Longhorn uses the default value (\"3\")."
     label: Longhorn CSI Snapshotter replica count
     group: "Longhorn CSI Driver Settings"
-  - variable: defaultSettings.backupTarget
-    label: Backup Target
-    description: "Endpoint used to access the backupstore. (Options: \"NFS\", \"CIFS\", \"AWS\", \"GCP\", \"AZURE\")"
-    group: "Longhorn Default Settings"
-    type: string
-    default:
-  - variable: defaultSettings.backupTargetCredentialSecret
-    label: Backup Target Credential Secret
-    description: "Name of the Kubernetes secret associated with the backup target."
-    group: "Longhorn Default Settings"
-    type: string
-    default:
   - variable: defaultSettings.allowRecurringJobWhileVolumeDetached
     label: Allow Recurring Job While Volume Is Detached
     description: 'Setting that allows Longhorn to automatically attach a volume and create snapshots or backups when recurring jobs are run.'
@@ -334,6 +322,15 @@
     group: "Longhorn Default Settings"
     type: boolean
     default: "true"
+  - variable: defaultSettings.upgradeResponderURL
+    label: Upgrade Responder URL
+    description: >-
+      The Upgrade Responder sends a notification whenever a new Longhorn
+      version that you can upgrade to becomes available. The default value
+      is "https://longhorn-upgrade-responder.rancher.io/v1/checkupgrade".
+    group: Longhorn Default Settings
+    type: string
+    default: 'https://longhorn-upgrade-responder.rancher.io/v1/checkupgrade'
   - variable: defaultSettings.defaultReplicaCount
     label: Default Replica Count
     description: "Default number of replicas for volumes created using the Longhorn UI. For Kubernetes configuration, modify the `numberOfReplicas` field in the StorageClass. The default value is \"3\"."
@@ -344,17 +341,10 @@
     default: 3
   - variable: defaultSettings.defaultLonghornStaticStorageClass
     label: Default Longhorn Static StorageClass Name
-    description: "Default Longhorn StorageClass. \"storageClassName\" is assigned to PVs and PVCs that are created for an existing Longhorn volume. \"storageClassName\" can also be used as a label, so it is possible to use a Longhorn StorageClass to bind a workload to an existing PV without creating a Kubernetes StorageClass object. The default value is \"longhorn-static\"."
+    description: "Default name of Longhorn Static StorageClass. The \"storageClassName\" is assigned to PVs and PVCs that are created for an existing Longhorn volume. The \"storageClassName\" can also be used as a label, so it is possible to use a Longhorn StorageClass to bind a workload to an existing PV without creating a Kubernetes StorageClass object. The \"storageClassName\" needs to be an existing StorageClass. The default value is \"longhorn-static\"."
     group: "Longhorn Default Settings"
     type: string
     default: "longhorn-static"
-  - variable: defaultSettings.backupstorePollInterval
-    label: Backupstore Poll Interval
-    description: "Number of seconds that Longhorn waits before checking the backupstore for new backups. The default value is \"300\". When the value is \"0\", polling is disabled."
-    group: "Longhorn Default Settings"
-    type: int
-    min: 0
-    default: 300
   - variable: defaultSettings.failedBackupTTL
     label: Failed Backup Time to Live
     description: "Number of minutes that Longhorn keeps a failed backup resource. When the value is \"0\", automatic deletion is disabled."
@@ -461,11 +451,11 @@
     group: "Longhorn Default Settings"
     type: enum
     options:
-      - "block-for-eviction"
-      - "block-for-eviction-if-contains-last-replica"
-      - "block-if-contains-last-replica"
-      - "allow-if-replica-is-stopped"
-      - "always-allow"
+    - "block-for-eviction"
+    - "block-for-eviction-if-contains-last-replica"
+    - "block-if-contains-last-replica"
+    - "allow-if-replica-is-stopped"
+    - "always-allow"
     default: "block-if-contains-last-replica"
   - variable: defaultSettings.detachManuallyAttachedVolumesWhenCordoned
     label: Detach Manually Attached Volumes When Cordoned
@@ -488,11 +478,7 @@
     default: 600
   - variable: defaultSettings.concurrentReplicaRebuildPerNodeLimit
     label: Concurrent Replica Rebuild Per Node Limit
-    description: "Maximum number of replicas that can be concurrently rebuilt on each node.
-    WARNING:
-      - The old setting \"Disable Replica Rebuild\" is replaced by this setting.
-      - Different from relying on replica starting delay to limit the concurrent rebuilding, if the rebuilding is disabled, replica object replenishment will be directly skipped.
-      - When the value is 0, the eviction and data locality feature won't work. But this shouldn't have any impact to any current replica rebuild and backup restore."
+    description: "Maximum number of replicas that can be concurrently rebuilt on each node. **Caution**: [1] This setting replaces \"Disable Replica Rebuild\". Instead of delaying replica startup, Longhorn skips replica object replenishment to limit the number of concurrently rebuilding replicas. [2] When the value is \"0\", the eviction and data locality features do not work, but ongoing replica rebuilding and backup/restoration operations should remain unaffected."
     group: "Longhorn Default Settings"
     type: int
     min: 0
@@ -561,13 +547,7 @@
     default: 300
   - variable: defaultSettings.guaranteedInstanceManagerCPU
     label: Guaranteed Instance Manager CPU
-    description: "Percentage of the total allocatable CPU resources on each node to be reserved for each instance manager pod when the V1 Data Engine is enabled. The default value is \"12\".
-    WARNING:
-      - Value 0 means removing the CPU requests from spec of instance manager pods.
-      - Considering the possible number of new instance manager pods in a further system upgrade, this integer value ranges from 0 to 40.
-      - One more set of instance manager pods may need to be deployed when the Longhorn system is upgraded. If current available CPUs of the nodes are not enough for the new instance manager pods, you need to detach the volumes using the oldest instance manager pods so that Longhorn can clean up the old pods automatically and release the CPU resources. And the new pods with the latest instance manager image will be launched then.
-      - This global setting will be ignored for a node if the field \"InstanceManagerCPURequest\" on the node is set.
-      - After this setting is changed, all instance manager pods using this global setting on all the nodes will be automatically restarted. In other words, DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES."
+    description: "Percentage of the total allocatable CPU resources on each node to be reserved for each Instance Manager pod when the V1 Data Engine is enabled. You can specify a value between \"0\" and \"40\" to accommodate the possible number of new Instance Manager pods during upgrades. The default value is \"12\". **Caution**: [1] When the value is \"0\", CPU requests are removed from the spec of Instance Manager pods. [2] A new set of Instance Manager pods must be deployed when Longhorn is upgraded. If the available CPUs are not sufficient for the new pods, you must detach the volumes using the oldest Instance Manager pods so that Longhorn can automatically clean up the old pods and release the CPU resources. Once completed, the new pods with the latest Instance Manager image are launched. [3] This global setting is not applied to nodes with a specified value for the \"InstanceManagerCPURequest\" field. [4] After this setting is configured, Instance Manager pods on all nodes that use this setting are automatically restarted. **Do not change this setting while volumes are still attached.**"
     group: "Longhorn Default Settings"
     type: int
     min: 0
@@ -590,160 +570,165 @@
     group: "Longhorn Default Settings"
     type: boolean
     default: "false"
-- variable: defaultSettings.kubernetesClusterAutoscalerEnabled
-  label: Kubernetes Cluster Autoscaler Enabled (Experimental)
-  description: "Setting that notifies Longhorn that the cluster is using the Kubernetes Cluster Autoscaler.
-  WARNING:
-    - Replica rebuilding could be expensive because nodes with reusable replicas could get removed by the Kubernetes Cluster Autoscaler."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: false
-- variable: defaultSettings.orphanAutoDeletion
-  label: Orphaned Data Cleanup
-  description: "Setting that allows Longhorn to automatically delete an orphaned resource and the corresponding data (for example, stale replicas). Orphaned resources on failed or unknown nodes are not automatically cleaned up."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: false
-- variable: defaultSettings.storageNetwork
-  label: Storage Network
-  description: "Longhorn uses the storage network for in-cluster data traffic. Leave this blank to use the Kubernetes cluster network.
-  WARNING:
-    - This setting should change after detaching all Longhorn volumes, as some of the Longhorn system component pods will get recreated to apply the setting. Longhorn will try to block this setting update when there are attached volumes."
-  group: "Longhorn Default Settings"
-  type: string
-  default:
-- variable: defaultSettings.deletingConfirmationFlag
-  label: Deleting Confirmation Flag
-  description: "Flag that prevents accidental uninstallation of Longhorn."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: "false"
-- variable: defaultSettings.engineReplicaTimeout
-  label: Timeout between Engine and Replica
-  description: "Timeout between the Longhorn Engine and replicas. Specify a value between \"8\" and \"30\" seconds. The default value is \"8\"."
-  group: "Longhorn Default Settings"
-  type: int
-  default: "8"
-- variable: defaultSettings.snapshotDataIntegrity
-  label: Snapshot Data Integrity
-  description: "This setting allows users to enable or disable snapshot hashing and data integrity checking."
-  group: "Longhorn Default Settings"
-  type: string
-  default: "disabled"
-- variable: defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation
-  label: Immediate Snapshot Data Integrity Check After Creating a Snapshot
-  description: "Hashing snapshot disk files impacts the performance of the system. The immediate snapshot hashing and checking can be disabled to minimize the impact after creating a snapshot."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: "false"
-- variable: defaultSettings.snapshotDataIntegrityCronjob
-  label: Snapshot Data Integrity Check CronJob
-  description: "Unix-cron string format. The setting specifies when Longhorn checks the data integrity of snapshot disk files."
-  group: "Longhorn Default Settings"
-  type: string
-  default: "0 0 */7 * *"
-- variable: defaultSettings.removeSnapshotsDuringFilesystemTrim
-  label: Remove Snapshots During Filesystem Trim
-  description: "This setting allows Longhorn filesystem trim feature to automatically mark the latest snapshot and its ancestors as removed and stops at the snapshot containing multiple children."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: "false"
-- variable: defaultSettings.fastReplicaRebuildEnabled
-  label: Fast Replica Rebuild Enabled
-  description: "Setting that allows fast rebuilding of replicas using the checksum of snapshot disk files. Before enabling this setting, you must set the snapshot-data-integrity value to \"enable\" or \"fast-check\"."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: false
-- variable: defaultSettings.replicaFileSyncHttpClientTimeout
-  label: Timeout of HTTP Client to Replica File Sync Server
-  description: "In seconds. The setting specifies the HTTP client timeout to the file sync server."
-  group: "Longhorn Default Settings"
-  type: int
-  default: "30"
-- variable: defaultSettings.longGRPCTimeOut
-  label: Long gRPC Timeout
-  description: "Number of seconds that Longhorn allows for the completion of replica rebuilding and snapshot cloning operations."
-  group: "Longhorn Default Settings"
-  type: int
-  default: "86400"
-- variable: defaultSettings.backupCompressionMethod
-  label: Backup Compression Method
-  description: "Setting that allows you to specify a backup compression method."
-  group: "Longhorn Default Settings"
-  type: string
-  default: "lz4"
-- variable: defaultSettings.backupConcurrentLimit
-  label: Backup Concurrent Limit Per Backup
-  description: "Maximum number of worker threads that can concurrently run for each backup."
-  group: "Longhorn Default Settings"
-  type: int
-  min: 1
-  default: 2
-- variable: defaultSettings.restoreConcurrentLimit
-  label: Restore Concurrent Limit Per Backup
-  description: "This setting controls how many worker threads per restore concurrently."
-  group: "Longhorn Default Settings"
-  type: int
-  min: 1
-  default: 2
-- variable: defaultSettings.allowCollectingLonghornUsageMetrics
-  label: Allow Collecting Longhorn Usage Metrics
-  description: "Setting that allows Longhorn to periodically collect anonymous usage data for product improvement purposes. Longhorn sends collected data to the [Upgrade Responder](https://github.com/longhorn/upgrade-responder) server, which is the data source of the Longhorn Public Metrics Dashboard (https://metrics.longhorn.io). The Upgrade Responder server does not store data that can be used to identify clients, including IP addresses."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: true
-- variable: defaultSettings.v1DataEngine
-  label: V1 Data Engine
-  description: "Setting that allows you to enable the V1 Data Engine."
-  group: "Longhorn V1 Data Engine Settings"
-  type: boolean
-  default: true
-- variable: defaultSettings.v2DataEngine
-  label: V2 Data Engine
-  description: "Setting that allows you to enable the V2 Data Engine, which is based on the Storage Performance Development Kit (SPDK). The V2 Data Engine is a preview feature and should not be used in production environments.
-  WARNING:
-    - DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES. Longhorn will block this setting update when there are attached volumes.
-    - When the V2 Data Engine is enabled, each instance-manager pod utilizes 1 CPU core. This high CPU usage is attributed to the spdk_tgt process running within each instance-manager pod. The spdk_tgt process is responsible for handling input/output (IO) operations and requires intensive polling. As a result, it consumes 100% of a dedicated CPU core to efficiently manage and process the IO requests, ensuring optimal performance and responsiveness for storage operations."
-  group: "Longhorn V2 Data Engine (Preview Feature) Settings"
-  type: boolean
-  default: false
-- variable: defaultSettings.v2DataEngineHugepageLimit
-  label: V2 Data Engine
-  description: "This allows users to configure maximum huge page size (in MiB) for the V2 Data Engine."
-  group: "Longhorn V2 Data Engine (Preview Feature) Settings"
-  type: int
-  default: "2048"
-- variable: defaultSettings.v2DataEngineLogLevel
-  label: V2 Data Engine
-  description: "Setting that allows you to configure the log level of the SPDK target daemon (spdk_tgt) of the V2 Data Engine."
-  group: "Longhorn V2 Data Engine (Preview Feature) Settings"
-  type: enum
-  options:
-  - "Disabled"
-  - "Error"
-  - "Warn"
-  - "Notice"
-  - "Info"
-  - "Debug"
-  default: "Notice"
-- variable: defaultSettings.v2DataEngineLogFlags
-  label: V2 Data Engine
-  description: "Setting that allows you to configure the log flags of the SPDK target daemon (spdk_tgt) of the V2 Data Engine."
-  group: "Longhorn V2 Data Engine (Preview Feature) Settings"
-  type: string
-  default:
-- variable: defaultSettings.autoCleanupSnapshotWhenDeleteBackup
-  label: Auto Cleanup Snapshot When Delete Backup
-  description: "Setting that automatically cleans up the snapshot when the backup is deleted."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: false
-- variable: defaultSettings.rwxVolumeFastFailover
-  label: RWX Volume Fast Failover (Experimental)
-  description: "Turn on logic to detect and move RWX volumes quickly on node failure."
-  group: "Longhorn Default Settings"
-  type: boolean
-  default: false
+  - variable: defaultSettings.kubernetesClusterAutoscalerEnabled
+    label: Kubernetes Cluster Autoscaler Enabled (Experimental)
+    description: "Setting that notifies Longhorn that the cluster is using the Kubernetes Cluster Autoscaler. **Caution**: Replica rebuilding may consume significant resources if the Kubernetes Cluster Autoscaler removes nodes with reusable replicas."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: false
+  - variable: defaultSettings.orphanAutoDeletion
+    label: Orphaned Data Cleanup
+    description: "Setting that allows Longhorn to automatically delete an orphaned resource and the corresponding data (for example, stale replicas). Orphaned resources on failed or unknown nodes are not automatically cleaned up."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: false
+  - variable: defaultSettings.storageNetwork
+    label: Storage Network
+    description: "Longhorn uses the storage network for in-cluster data traffic. Leave this blank to use the Kubernetes cluster network. **Caution**: This setting should change after all volumes are detached because some Longhorn component pods must be recreated to apply the setting. You cannot modify this setting while volumes are still attached."
+    group: "Longhorn Default Settings"
+    type: string
+    default:
+  - variable: defaultSettings.taintToleration
+    label: Taint Toleration
+    description: "Taint or toleration for system-managed Longhorn components. Specify values using a semicolon-separated list in `kubectl taint` syntax (Example: key1=value1:effect; key2=value2:effect). **Caution**: This setting should change after all volumes are detached because some Longhorn component pods must be recreated to apply the setting. You cannot modify this setting while volumes are still attached."
+    group: "Longhorn Default Settings"
+    type: string
+    default:
+  - variable: defaultSettings.systemManagedComponentsNodeSelector
+    label: System Managed Components NodeSelector
+    description: "Node selector for system-managed Longhorn components.. **Caution**: This setting should change after all volumes are detached because some Longhorn component pods must be recreated to apply the setting. You cannot modify this setting while volumes are still attached."
+    group: "Longhorn Default Settings"
+    type: string
+    default:
+  - variable: defaultSettings.deletingConfirmationFlag
+    label: Deleting Confirmation Flag
+    description: "Flag that prevents accidental uninstallation of Longhorn."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: "false"
+  - variable: defaultSettings.engineReplicaTimeout
+    label: Timeout between Engine and Replica
+    description: "Timeout between the Longhorn Engine and replicas. Specify a value between \"8\" and \"30\" seconds. The default value is \"8\"."
+    group: "Longhorn Default Settings"
+    type: int
+    default: "8"
+  - variable: defaultSettings.snapshotDataIntegrity
+    label: Snapshot Data Integrity
+    description: "This setting allows users to enable or disable snapshot hashing and data integrity checking."
+    group: "Longhorn Default Settings"
+    type: string
+    default: "disabled"
+  - variable: defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation
+    label: Immediate Snapshot Data Integrity Check After Creating a Snapshot
+    description: "Hashing snapshot disk files impacts the performance of the system. The immediate snapshot hashing and checking can be disabled to minimize the impact after creating a snapshot."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: "false"
+  - variable: defaultSettings.snapshotDataIntegrityCronjob
+    label: Snapshot Data Integrity Check CronJob
+    description: "Unix-cron string format. The setting specifies when Longhorn checks the data integrity of snapshot disk files."
+    group: "Longhorn Default Settings"
+    type: string
+    default: "0 0 */7 * *"
+  - variable: defaultSettings.removeSnapshotsDuringFilesystemTrim
+    label: Remove Snapshots During Filesystem Trim
+    description: "This setting allows Longhorn filesystem trim feature to automatically mark the latest snapshot and its ancestors as removed and stops at the snapshot containing multiple children."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: "false"
+  - variable: defaultSettings.fastReplicaRebuildEnabled
+    label: Fast Replica Rebuild Enabled
+    description: "Setting that allows fast rebuilding of replicas using the checksum of snapshot disk files. Before enabling this setting, you must set the snapshot-data-integrity value to \"enable\" or \"fast-check\"."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: false
+  - variable: defaultSettings.replicaFileSyncHttpClientTimeout
+    label: Timeout of HTTP Client to Replica File Sync Server
+    description: "In seconds. The setting specifies the HTTP client timeout to the file sync server."
+    group: "Longhorn Default Settings"
+    type: int
+    default: "30"
+  - variable: defaultSettings.longGRPCTimeOut
+    label: Long gRPC Timeout
+    description: "Number of seconds that Longhorn allows for the completion of replica rebuilding and snapshot cloning operations."
+    group: "Longhorn Default Settings"
+    type: int
+    default: "86400"
+  - variable: defaultSettings.backupCompressionMethod
+    label: Backup Compression Method
+    description: "Setting that allows you to specify a backup compression method."
+    group: "Longhorn Default Settings"
+    type: string
+    default: "lz4"
+  - variable: defaultSettings.backupConcurrentLimit
+    label: Backup Concurrent Limit Per Backup
+    description: "Maximum number of worker threads that can concurrently run for each backup."
+    group: "Longhorn Default Settings"
+    type: int
+    min: 1
+    default: 2
+  - variable: defaultSettings.restoreConcurrentLimit
+    label: Restore Concurrent Limit Per Backup
+    description: "This setting controls how many worker threads per restore concurrently."
+    group: "Longhorn Default Settings"
+    type: int
+    min: 1
+    default: 2
+  - variable: defaultSettings.allowCollectingLonghornUsageMetrics
+    label: Allow Collecting Longhorn Usage Metrics
+    description: "Setting that allows Longhorn to periodically collect anonymous usage data for product improvement purposes. Longhorn sends collected data to the [Upgrade Responder](https://github.com/longhorn/upgrade-responder) server, which is the data source of the Longhorn Public Metrics Dashboard (https://metrics.longhorn.io). The Upgrade Responder server does not store data that can be used to identify clients, including IP addresses."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: true
+  - variable: defaultSettings.v1DataEngine
+    label: V1 Data Engine
+    description: "Setting that allows you to enable the V1 Data Engine."
+    group: "Longhorn V1 Data Engine Settings"
+    type: boolean
+    default: true
+  - variable: defaultSettings.v2DataEngine
+    label: V2 Data Engine
+    description: "Setting that allows you to enable the V2 Data Engine, which is based on the Storage Performance Development Kit (SPDK). The V2 Data Engine is an experimental feature and should not be used in production environments. **Caution**: [1] **Do not modify this setting while volumes are still attached.** [2] When the V2 Data Engine is enabled, each Instance Manager pod for the V2 Data Engine uses 1 CPU core. The high CPU usage is caused by `spdk_tgt`, a process running in each Instance Manager pod that handles input/output (IO) operations and requires intensive polling. `spdk_tgt` consumes 100% of a dedicated CPU core to efficiently manage and process the IO requests, ensuring optimal performance and responsiveness for storage operations."
+    group: "Longhorn V2 Data Engine (Experimental Feature) Settings"
+    type: boolean
+    default: false
+  - variable: defaultSettings.v2DataEngineHugepageLimit
+    label: V2 Data Engine
+    description: "This allows users to configure maximum huge page size (in MiB) for the V2 Data Engine."
+    group: "Longhorn V2 Data Engine (Experimental Feature) Settings"
+    type: int
+    default: "2048"
+  - variable: defaultSettings.v2DataEngineLogLevel
+    label: V2 Data Engine
+    description: "Setting that allows you to configure the log level of the SPDK target daemon (spdk_tgt) of the V2 Data Engine."
+    group: "Longhorn V2 Data Engine (Experimental Feature) Settings"
+    type: enum
+    options:
+    - "Disabled"
+    - "Error"
+    - "Warn"
+    - "Notice"
+    - "Info"
+    - "Debug"
+    default: "Notice"
+  - variable: defaultSettings.v2DataEngineLogFlags
+    label: V2 Data Engine
+    description: "Setting that allows you to configure the log flags of the SPDK target daemon (spdk_tgt) of the V2 Data Engine."
+    group: "Longhorn V2 Data Engine (Experimental Feature) Settings"
+    type: string
+    default:
+  - variable: defaultSettings.autoCleanupSnapshotWhenDeleteBackup
+    label: Auto Cleanup Snapshot When Delete Backup
+    description: "Setting that automatically cleans up the snapshot when the backup is deleted."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: false
+  - variable: defaultSettings.rwxVolumeFastFailover
+    label: RWX Volume Fast Failover (Experimental)
+    description: "Setting that allows Longhorn to detect node failure and immediately migrate affected RWX volumes."
+    group: "Longhorn Default Settings"
+    type: boolean
+    default: false
 - variable: persistence.defaultClass
   default: "true"
   description: "Setting that allows you to specify the default Longhorn StorageClass."
@@ -761,6 +746,15 @@
   - "Delete"
   - "Retain"
   default: "Delete"
+- variable: persistence.defaultFsType
+  label: Storage Class Filesystem Type
+  description: "Filesystem type of the default Longhorn StorageClass"
+  group: "Longhorn Storage Class Settings"
+  type: enum
+  options:
+  - "xfs"
+  - "ext4"
+  default: "ext4"
 - variable: persistence.disableRevisionCounter
   label: Default Storage Class Disable Revision Counter
   description: "Setting that disables the revision counter and thereby prevents Longhorn from tracking all write operations to a volume. When salvaging a volume, Longhorn uses properties of the volume-head-xxx.img file (the last file size and the last time the file was modified) to select the replica to be used for volume recovery. (Options: \"true\", \"false\")"
@@ -768,8 +762,8 @@
   required: true
   type: enum
   options:
-    - "true"
-    - "false"
+  - "true"
+  - "false"
   default: "true"
 - variable: persistence.defaultClassReplicaCount
   description: "Replica count of the default Longhorn StorageClass."
@@ -810,12 +804,12 @@
   default: false
   show_subquestion_if: true
   subquestions:
-    - variable: persistence.defaultDiskSelector.selector
-      label: Storage Class Disk Selector
-      description: 'Disk selector for the default Longhorn StorageClass. Longhorn uses only disks with the specified tags for storing volume data. (Examples: "nvme,sata")'
-      group: "Longhorn Storage Class Settings"
-      type: string
-      default:
+  - variable: persistence.defaultDiskSelector.selector
+    label: Storage Class Disk Selector
+    description: 'Disk selector for the default Longhorn StorageClass. Longhorn uses only disks with the specified tags for storing volume data. (Examples: "nvme,sata")'
+    group: "Longhorn Storage Class Settings"
+    type: string
+    default:
 - variable: persistence.defaultNodeSelector.enable
   description: "Setting that allows you to enable the node selector for the default Longhorn StorageClass."
   group: "Longhorn Storage Class Settings"
@@ -845,19 +839,13 @@
     type: string
     default:
   - variable: persistence.backingImage.expectedChecksum
-    description: 'Expected SHA-512 checksum of a backing image used in a Longhorn StorageClass.
-    WARNING:
-      - If the backing image name is not specified, setting this field is meaningless.
-      - It is not recommended to set this field if the data source type is \"export-from-volume\".'
+    description: 'Expected SHA-512 checksum of a backing image used in a Longhorn StorageClass. **Caution** [1] This field is useful only if the backing image name is specified. [2] Specifying a checksum is not recommended when the data source type is \"export-from-volume\".'
     label: Storage Class Backing Image Expected SHA512 Checksum
     group: "Longhorn Storage Class Settings"
     type: string
     default:
   - variable: persistence.backingImage.dataSourceType
-    description: 'Data source type of a backing image used in a Longhorn StorageClass. If the backing image exists in the cluster, Longhorn uses this setting to verify the image. If the backing image does not exist, Longhorn creates one using the specified data source type.
-    WARNING:
-      - If the backing image name is not specified, setting this field is meaningless.
-      - As for backing image creation with data source type \"upload\", it is recommended to do it via UI rather than StorageClass here. Uploading requires file data sending to the Longhorn backend after the object creation, which is complicated if you want to handle it manually.'
+    description: 'Data source type of a backing image used in a Longhorn StorageClass. If the backing image exists in the cluster, Longhorn uses this setting to verify the image. If the backing image does not exist, Longhorn creates one using the specified data source type. **Caution** [1] This field is useful only if the backing image name is specified. [2] Backing images with data source type \"upload\" are best created using the Longhorn UI. Uploading requires sending file data to Longhorn after object creation, which can be complicated when performed manually.'
     label: Storage Class Backing Image Data Source Type
     group: "Longhorn Storage Class Settings"
     type: enum
@@ -868,10 +856,7 @@
     - "export-from-volume"
     default: ""
   - variable: persistence.backingImage.dataSourceParameters
-    description: "Data source parameters of a backing image used in a Longhorn StorageClass. You can specify a JSON string of a map. (Example: `'{\"url\":\"https://backing-image-example.s3-region.amazonaws.com/test-backing-image\"}'`)
-    WARNING:
-      - If the backing image name is not specified, setting this field is meaningless.
-      - Be careful of the quotes here."
+    description: "Data source parameters of a backing image used in a Longhorn StorageClass. You can specify a JSON string of a map. (Example: `'{\"url\":\"https://backing-image-example.s3-region.amazonaws.com/test-backing-image\"}'`) **Caution** [1] This field is useful only if the backing image name is specified. [2] Ensure that quotes are used correctly when specifying parameters."
     label: Storage Class Backing Image Data Source Parameters
     group: "Longhorn Storage Class Settings"
     type: string
@@ -886,6 +871,21 @@
   - "enabled"
   - "disabled"
   default: "ignored"
+- variable: persistence.dataEngine
+  description: "Setting that allows you to specify the data engine version for the default Longhorn StorageClass. (Options: \"v1\", \"v2\")"
+  label: Default Storage Class Data Engine
+  group: "Longhorn Storage Class Settings"
+  type: enum
+  options:
+  - "v1"
+  - "v2"
+  default: "v1"
+- variable: persistence.backupTargetName
+  description: "Setting that allows you to specify the backup target for the default Longhorn StorageClass"
+  label: Default Storage Class Backup Target Name
+  group: "Longhorn Storage Class Settings"
+  type: string
+  default: "default"
 - variable: ingress.enabled
   default: "false"
   description: "Expose app using Layer 7 Load Balancer - ingress"
@@ -911,9 +911,9 @@
     description: "Path type for the ingress. (Options: \"ImplementationSpecific\", \"Exact\", \"Prefix\")"
     type: enum
     options:
-      - "ImplementationSpecific"
-      - "Exact"
-      - "Prefix"
+    - "ImplementationSpecific"
+    - "Exact"
+    - "Prefix"
     required: true
     label: Ingress Path Type
 - variable: service.ui.type
@@ -921,10 +921,10 @@
   description: "Service type for Longhorn UI. (Options: \"ClusterIP\", \"NodePort\", \"LoadBalancer\", \"Rancher-Proxy\")"
   type: enum
   options:
-    - "ClusterIP"
-    - "NodePort"
-    - "LoadBalancer"
-    - "Rancher-Proxy"
+  - "ClusterIP"
+  - "NodePort"
+  - "LoadBalancer"
+  - "Rancher-Proxy"
   label: Longhorn UI Service
   show_if: "ingress.enabled=false"
   group: "Services and Load Balancing"
@@ -938,6 +938,33 @@
     max: 32767
     show_if: "service.ui.type=NodePort||service.ui.type=LoadBalancer"
     label: UI Service NodePort number
+- variable: longhorn.default_resource
+  default: "false"
+  description: "Customize the default resource before installing Longhorn for the first time. This option will only work if the cluster hasn't installed Longhorn."
+  label: "Customize Default Resources"
+  type: boolean
+  show_subquestion_if: true
+  group: "Longhorn Default Resources"
+  subquestions:
+  - variable: defaultBackupStore.backupTarget
+    label: Backup Target
+    description: "Endpoint used to access the backupstore. (Options: \"NFS\", \"CIFS\", \"AWS\", \"GCP\", \"AZURE\")"
+    group: "Longhorn Default Resources"
+    type: string
+    default:
+  - variable: defaultBackupStore.backupTargetCredentialSecret
+    label: Backup Target Credential Secret
+    description: "Name of the Kubernetes secret associated with the backup target."
+    group: "Longhorn Default Resources"
+    type: string
+    default:
+  - variable: defaultBackupStore.backupstorePollInterval
+    label: Backupstore Poll Interval
+    description: "Number of seconds that Longhorn waits before checking the backupstore for new backups. The default value is \"300\". When the value is \"0\", polling is disabled."
+    group: "Longhorn Default Resources"
+    type: int
+    min: 0
+    default: 300
 - variable: enablePSP
   default: "false"
   description: "Setting that allows you to enable pod security policies (PSPs) that allow privileged Longhorn pods to start. This setting applies only to clusters running Kubernetes 1.25 and earlier, and with the built-in Pod Security admission controller enabled."
@@ -951,8 +978,7 @@
   type: boolean
   group: "Other Settings"
 - variable: networkPolicies.enabled
-  description: "Setting that allows you to enable network policies that control access to Longhorn pods.
-  Warning: The Rancher Proxy will not work if this feature is enabled and a custom NetworkPolicy must be added."
+  description: "Setting that allows you to enable network policies that control access to Longhorn pods. **Caution** The Rancher Proxy will work only if this feature is enabled and a custom NetworkPolicy is added."
   group: "Other Settings"
   label: Network Policies
   default: "false"
@@ -965,17 +991,18 @@
     type: enum
     default: "rke2"
     options:
-      - "rke1"
-      - "rke2"
-      - "k3s"
+    - "rke1"
+    - "rke2"
+    - "k3s"
   - variable: defaultSettings.v2DataEngineGuaranteedInstanceManagerCPU
     label: Guaranteed Instance Manager CPU for V2 Data Engine
-    description: 'Number of millicpus on each node to be reserved for each Instance Manager pod when the V2 Data Engine is enabled. The default value is "1250".
-    WARNING:
-    - Specifying a value of 0 disables CPU requests for instance manager pods. You must specify an integer between 1000 and 8000.
-    - This is a global setting. Modifying the value triggers an automatic restart of the instance manager pods. Do not modify the value while volumes are still attached."
-    group: "Longhorn Default Settings'
+    description: 'Number of millicpu on each node to be reserved for each Instance Manager pod when the V2 Data Engine is enabled. The default value is \"1250\". **Caution** [1] Specifying a value of \"0\" disables CPU requests for Instance Manager pods. You must specify an integer between \"1000\" and \"8000\". [2] This is a global setting. Modifying the value triggers an automatic restart of the Instance Manager pods. Do not modify the value while volumes are still attached.'
     type: int
     min: 1000
     max: 8000
     default: 1250
+  - variable: defaultSettings.v2DataEngineCPUMask
+    label: CPU Mask for V2 Data Engine
+    description: 'CPU cores on which the Storage Performance Development Kit (SPDK) target daemon should run. The SPDK target daemon is located in each Instance Manager pod. Ensure that the number of cores is less than or equal to the guaranteed Instance Manager CPUs for the V2 Data Engine. The default value is \"0x1\".'
+    type: string
+    default: "0x1"
\ No newline at end of file