update charts
diff --git a/charts/longhorn/Chart.yaml b/charts/longhorn/Chart.yaml
index d9dd5a1..1609eb5 100644
--- a/charts/longhorn/Chart.yaml
+++ b/charts/longhorn/Chart.yaml
@@ -1,5 +1,5 @@
apiVersion: v1
-appVersion: v1.4.1
+appVersion: v1.5.2
description: Longhorn is a distributed block storage system for Kubernetes.
home: https://github.com/longhorn/longhorn
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/longhorn/icon/color/longhorn-icon-color.png
@@ -25,4 +25,4 @@
- https://github.com/longhorn/longhorn-ui
- https://github.com/longhorn/longhorn-tests
- https://github.com/longhorn/backing-image-manager
-version: 1.4.1
+version: 1.5.2
diff --git a/charts/longhorn/questions.yaml b/charts/longhorn/questions.yaml
index b4ae9de..b53b0fe 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.4.1
+ default: v1.5.2
description: "Specify Longhorn Manager Image Tag"
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.4.1
+ default: v1.5.2
description: "Specify Longhorn Engine Image Tag"
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.4.1
+ default: v1.5.2
description: "Specify Longhorn UI Image Tag"
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.4.1
+ default: v1.5.2
description: "Specify Longhorn Instance Manager Image Tag"
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.4.1
+ default: v1.5.2
description: "Specify Longhorn Share Manager Image Tag"
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.4.1
+ default: v1.5.2
description: "Specify Longhorn Backing Image Manager Image Tag"
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.17
+ default: v0.0.27
description: "Specify Longhorn Support Bundle Manager Image Tag"
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: v3.4.0
+ default: v4.2.0
description: "Specify CSI attacher image tag. Leave blank to autodetect."
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: v2.1.2
+ default: v3.4.1
description: "Specify CSI provisioner image tag. Leave blank to autodetect."
type: string
label: Longhorn CSI Provisioner Image Tag
@@ -125,7 +125,7 @@
label: Longhorn CSI Node Driver Registrar Image Repository
group: "Longhorn CSI Driver Images"
- variable: image.csi.nodeDriverRegistrar.tag
- default: v2.5.0
+ default: v2.7.0
description: "Specify CSI Node Driver Registrar image tag. Leave blank to autodetect."
type: string
label: Longhorn CSI Node Driver Registrar 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.3.0
+ default: v1.7.0
description: "Specify CSI Driver Resizer image tag. Leave blank to autodetect."
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: v5.0.1
+ default: v6.2.1
description: "Specify CSI Driver Snapshotter image tag. Leave blank to autodetect."
type: string
label: Longhorn CSI Driver Snapshotter Image Tag
@@ -161,7 +161,7 @@
label: Longhorn CSI Liveness Probe Image Repository
group: "Longhorn CSI Driver Images"
- variable: image.csi.livenessProbe.tag
- default: v2.8.0
+ default: v2.9.0
description: "Specify CSI liveness probe image tag. Leave blank to autodetect."
type: string
label: Longhorn CSI Liveness Probe Image Tag
@@ -327,6 +327,14 @@
min: 0
max: 100
default: 25
+ - variable: defaultSettings.storageReservedPercentageForDefaultDisk
+ label: Storage Reserved Percentage For Default Disk
+ description: "The reserved percentage specifies the percentage of disk space that will not be allocated to the default disk on each new Longhorn node."
+ group: "Longhorn Default Settings"
+ type: int
+ min: 0
+ max: 100
+ default: 30
- variable: defaultSettings.upgradeChecker
label: Enable Upgrade Checker
description: 'Upgrade Checker will check for new Longhorn version periodically. When there is a new version available, a notification will appear in the UI. By default true.'
@@ -439,24 +447,19 @@
- "delete-deployment-pod"
- "delete-both-statefulset-and-deployment-pod"
default: "do-nothing"
- - variable: defaultSettings.allowNodeDrainWithLastHealthyReplica
- label: Allow Node Drain with the Last Healthy Replica
- description: "By default, Longhorn will block `kubectl drain` action on a node if the node contains the last healthy replica of a volume.
-If this setting is enabled, Longhorn will **not** block `kubectl drain` action on a node even if the node contains the last healthy replica of a volume."
+ - variable: defaultSettings.nodeDrainPolicy
+ label: Node Drain Policy
+ description: "Define the policy to use when a node with the last healthy replica of a volume is drained.
+- **block-if-contains-last-replica** Longhorn will block the drain when the node contains the last healthy replica of a volume.
+- **allow-if-replica-is-stopped** Longhorn will allow the drain when the node contains the last healthy replica of a volume but the replica is stopped. WARNING: possible data loss if the node is removed after draining. Select this option if you want to drain the node and do in-place upgrade/maintenance.
+- **always-allow** Longhorn will allow the drain even though the node contains the last healthy replica of a volume. WARNING: possible data loss if the node is removed after draining. Also possible data corruption if the last replica was running during the draining."
group: "Longhorn Default Settings"
- type: boolean
- default: "false"
- - variable: defaultSettings.mkfsExt4Parameters
- label: Custom mkfs.ext4 parameters
- description: "Allows setting additional filesystem creation parameters for ext4. For older host kernels it might be necessary to disable the optional ext4 metadata_csum feature by specifying `-O ^64bit,^metadata_csum`."
- group: "Longhorn Default Settings"
- type: string
- - variable: defaultSettings.disableReplicaRebuild
- label: Disable Replica Rebuild
- description: "This setting disable replica rebuild cross the whole cluster, eviction and data locality feature won't work if this setting is true. But doesn't have any impact to any current replica rebuild and restore disaster recovery volume."
- group: "Longhorn Default Settings"
- type: boolean
- default: "false"
+ type: enum
+ options:
+ - "block-if-contains-last-replica"
+ - "allow-if-replica-is-stopped"
+ - "always-allow"
+ default: "block-if-contains-last-replica"
- variable: defaultSettings.replicaReplenishmentWaitInterval
label: Replica Replenishment Wait Interval
description: "In seconds. The interval determines how long Longhorn will wait at least in order to reuse the existing data on a failed replica rather than directly creating a new replica for a degraded volume.
@@ -538,42 +541,30 @@
type: int
min: 0
default: 300
- - variable: defaultSettings.guaranteedEngineManagerCPU
- label: Guaranteed Engine Manager CPU
- description: "This integer value indicates how many percentage of the total allocatable CPU on each node will be reserved for each engine manager Pod. For example, 10 means 10% of the total CPU on a node will be allocated to each engine manager pod on this node. This will help maintain engine stability during high node workload.
- In order to prevent unexpected volume engine crash as well as guarantee a relative acceptable IO performance, you can use the following formula to calculate a value for this setting:
- Guaranteed Engine Manager CPU = The estimated max Longhorn volume engine count on a node * 0.1 / The total allocatable CPUs on the node * 100.
+ - variable: defaultSettings.guaranteedInstanceManagerCPU
+ label: Guaranteed Instance Manager CPU
+ description: "This integer value indicates how many percentage of the total allocatable CPU on each node will be reserved for each instance manager Pod. For example, 10 means 10% of the total CPU on a node will be allocated to each instance manager pod on this node. This will help maintain engine and replica stability during high node workload.
+ In order to prevent unexpected volume instance (engine/replica) crash as well as guarantee a relative acceptable IO performance, you can use the following formula to calculate a value for this setting:
+ `Guaranteed Instance Manager CPU = The estimated max Longhorn volume engine and replica count on a node * 0.1 / The total allocatable CPUs on the node * 100`
The result of above calculation doesn't mean that's the maximum CPU resources the Longhorn workloads require. To fully exploit the Longhorn volume I/O performance, you can allocate/guarantee more CPU resources via this setting.
If it's hard to estimate the usage now, you can leave it with the default value, which is 12%. Then you can tune it when there is no running workload using Longhorn volumes.
WARNING:
- - Value 0 means unsetting CPU requests for engine manager pods.
- - Considering the possible new instance manager pods in the further system upgrade, this integer value is range from 0 to 40. And the sum with setting 'Guaranteed Engine Manager CPU' should not be greater than 40.
+ - Value 0 means unsetting CPU requests for instance manager pods.
+ - Considering the possible new instance manager pods in the further system upgrade, this integer value is range 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 \"EngineManagerCPURequest\" on the node is set.
- - After this setting is changed, all engine 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."
+ - 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."
group: "Longhorn Default Settings"
type: int
min: 0
max: 40
default: 12
- - variable: defaultSettings.guaranteedReplicaManagerCPU
- label: Guaranteed Replica Manager CPU
- description: "This integer value indicates how many percentage of the total allocatable CPU on each node will be reserved for each replica manager Pod. 10 means 10% of the total CPU on a node will be allocated to each replica manager pod on this node. This will help maintain replica stability during high node workload.
- In order to prevent unexpected volume replica crash as well as guarantee a relative acceptable IO performance, you can use the following formula to calculate a value for this setting:
- Guaranteed Replica Manager CPU = The estimated max Longhorn volume replica count on a node * 0.1 / The total allocatable CPUs on the node * 100.
- The result of above calculation doesn't mean that's the maximum CPU resources the Longhorn workloads require. To fully exploit the Longhorn volume I/O performance, you can allocate/guarantee more CPU resources via this setting.
- If it's hard to estimate the usage now, you can leave it with the default value, which is 12%. Then you can tune it when there is no running workload using Longhorn volumes.
- WARNING:
- - Value 0 means unsetting CPU requests for replica manager pods.
- - Considering the possible new instance manager pods in the further system upgrade, this integer value is range from 0 to 40. And the sum with setting 'Guaranteed Replica Manager CPU' should not be greater than 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 \"ReplicaManagerCPURequest\" on the node is set.
- - After this setting is changed, all replica 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."
+ - variable: defaultSettings.logLevel
+ label: Log Level
+ description: "The log level Panic, Fatal, Error, Warn, Info, Debug, Trace used in longhorn manager. By default Debug."
group: "Longhorn Default Settings"
- type: int
- min: 0
- max: 40
- default: 12
+ type: string
+ default: "Info"
- variable: defaultSettings.kubernetesClusterAutoscalerEnabled
label: Kubernetes Cluster Autoscaler Enabled (Experimental)
description: "Enabling this setting will notify Longhorn that the cluster is using Kubernetes Cluster Autoscaler.
@@ -660,6 +651,50 @@
group: "Longhorn Default Settings"
type: int
default: "30"
+- variable: defaultSettings.backupCompressionMethod
+ label: Backup Compression Method
+ description: "This setting allows users to specify backup compression method.
+ Available options are
+ - **none**: Disable the compression method. Suitable for multimedia data such as encoded images and videos.
+ - **lz4**: Fast compression method. Suitable for flat files.
+ - **gzip**: A bit of higher compression ratio but relatively slow."
+ group: "Longhorn Default Settings"
+ type: string
+ default: "lz4"
+- variable: defaultSettings.backupConcurrentLimit
+ label: Backup Concurrent Limit Per Backup
+ description: "This setting controls how many worker threads per backup concurrently."
+ 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.v2DataEngine
+ label: V2 Data Engine
+ description: "This allows users to activate v2 data engine based on SPDK. Currently, it is in the preview phase and should not be utilized in a production environment.
+ WARNING:
+ - DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES. Longhorn will block this setting update when there are attached volumes.
+ - When applying the setting, Longhorn will restart all instance-manager pods.
+ - 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.offlineReplicaRebuilding
+ label: Offline Replica Rebuilding
+ description: ""This setting allows users to enable the offline replica rebuilding for volumes using v2 data engine."
+ group: "Longhorn V2 Data Engine (Preview Feature) Settings"
+ required: true
+ type: enum
+ options:
+ - "enabled"
+ - "disabled"
+ default: "enabled"
- variable: persistence.defaultClass
default: "true"
description: "Set as default StorageClass for Longhorn"
@@ -708,18 +743,18 @@
group: "Longhorn Storage Class Settings"
type: string
default:
-- variable: defaultSettings.defaultNodeSelector.enable
- description: "Enable recurring Node selector for Longhorn StorageClass"
+- variable: persistence.defaultNodeSelector.enable
+ description: "Enable Node selector for Longhorn StorageClass"
group: "Longhorn Storage Class Settings"
label: Enable Storage Class Node Selector
type: boolean
default: false
show_subquestion_if: true
subquestions:
- - variable: defaultSettings.defaultNodeSelector.selector
+ - variable: persistence.defaultNodeSelector.selector
label: Storage Class Node Selector
- description: 'We use NodeSelector when we want to bind PVC via StorageClass into desired mountpoint on the nodes tagged whith its value'
- group: "Longhorn Default Settings"
+ description: 'We use NodeSelector when we want to bind PVC via StorageClass into desired mountpoint on the nodes tagged with its value'
+ group: "Longhorn Storage Class Settings"
type: string
default:
- variable: persistence.backingImage.enable
@@ -835,3 +870,21 @@
label: Rancher Windows Cluster
type: boolean
group: "Other Settings"
+- variable: networkPolicies.enabled
+ description: "Enable NetworkPolicies to limit access to the longhorn pods.
+ Warning: The Rancher Proxy will not work if this feature is enabled and a custom NetworkPolicy must be added."
+ group: "Other Settings"
+ label: Network Policies
+ default: "false"
+ type: boolean
+ subquestions:
+ - variable: networkPolicies.type
+ label: Network Policies for Ingress
+ description: "Create the policy to allow access for the ingress, select the distribution."
+ show_if: "networkPolicies.enabled=true&&ingress.enabled=true"
+ type: enum
+ default: "rke2"
+ options:
+ - "rke1"
+ - "rke2"
+ - "k3s"
diff --git a/charts/longhorn/templates/clusterrole.yaml b/charts/longhorn/templates/clusterrole.yaml
index bf28a47..e652a34 100644
--- a/charts/longhorn/templates/clusterrole.yaml
+++ b/charts/longhorn/templates/clusterrole.yaml
@@ -41,7 +41,8 @@
"backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status",
"backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status",
"recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status",
- "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status"]
+ "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status",
+ "volumeattachments", "volumeattachments/status"]
verbs: ["*"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
diff --git a/charts/longhorn/templates/crds.yaml b/charts/longhorn/templates/crds.yaml
index 0f73824..ac56efe 100644
--- a/charts/longhorn/templates/crds.yaml
+++ b/charts/longhorn/templates/crds.yaml
@@ -296,12 +296,6 @@
properties:
currentChecksum:
type: string
- directory:
- description: 'Deprecated: This field is useless.'
- type: string
- downloadProgress:
- description: 'Deprecated: This field is renamed to `Progress`.'
- type: integer
message:
type: string
name:
@@ -317,9 +311,6 @@
type: integer
state:
type: string
- url:
- description: 'Deprecated: This field is useless now. The manager of backing image files doesn''t care if a file is downloaded and how.'
- type: string
uuid:
type: string
type: object
@@ -364,7 +355,7 @@
name: longhorn-conversion-webhook
namespace: {{ include "release_namespace" . }}
path: /v1/webhook/conversion
- port: 9443
+ port: 9501
conversionReviewVersions:
- v1beta2
- v1beta1
@@ -446,9 +437,6 @@
additionalProperties:
type: string
type: object
- imageURL:
- description: 'Deprecated: This kind of info will be included in the related BackingImageDataSource.'
- type: string
sourceParameters:
additionalProperties:
type: string
@@ -465,19 +453,6 @@
properties:
checksum:
type: string
- diskDownloadProgressMap:
- additionalProperties:
- type: integer
- description: 'Deprecated: Replaced by field `Progress` in `DiskFileStatusMap`.'
- nullable: true
- type: object
- diskDownloadStateMap:
- additionalProperties:
- description: BackingImageDownloadState is replaced by BackingImageState.
- type: string
- description: 'Deprecated: Replaced by field `State` in `DiskFileStatusMap`.'
- nullable: true
- type: object
diskFileStatusMap:
additionalProperties:
properties:
@@ -637,6 +612,9 @@
backupCreatedAt:
description: The snapshot backup upload finished time.
type: string
+ compressionMethod:
+ description: Compression method
+ type: string
error:
description: The error message when taking the snapshot backup.
type: string
@@ -724,7 +702,7 @@
name: longhorn-conversion-webhook
namespace: {{ include "release_namespace" . }}
path: /v1/webhook/conversion
- port: 9443
+ port: 9501
conversionReviewVersions:
- v1beta2
- v1beta1
@@ -1032,6 +1010,9 @@
size:
description: The backup volume size.
type: string
+ storageClassName:
+ description: the storage class name of pv/pvc binding with the volume.
+ type: string
type: object
type: object
served: true
@@ -1064,7 +1045,7 @@
name: longhorn-conversion-webhook
namespace: {{ include "release_namespace" . }}
path: /v1/webhook/conversion
- port: 9443
+ port: 9501
conversionReviewVersions:
- v1beta2
- v1beta1
@@ -1333,6 +1314,11 @@
properties:
active:
type: boolean
+ backendStoreDriver:
+ enum:
+ - v1
+ - v2
+ type: string
backupVolume:
type: string
desireState:
@@ -1345,6 +1331,7 @@
enum:
- blockdev
- iscsi
+ - nvmf
- ""
type: string
logRequested:
@@ -1668,15 +1655,13 @@
spec:
description: InstanceManagerSpec defines the desired state of the Longhorn instancer manager
properties:
- engineImage:
- description: 'Deprecated: This field is useless.'
- type: string
image:
type: string
nodeID:
type: string
type:
enum:
+ - aio
- engine
- replica
type: string
@@ -1694,11 +1679,13 @@
type: integer
currentState:
type: string
- instances:
+ instanceEngines:
additionalProperties:
properties:
spec:
properties:
+ backendStoreDriver:
+ type: string
name:
type: string
type: object
@@ -1727,6 +1714,77 @@
type: object
nullable: true
type: object
+ instanceReplicas:
+ additionalProperties:
+ properties:
+ spec:
+ properties:
+ backendStoreDriver:
+ type: string
+ name:
+ type: string
+ type: object
+ status:
+ properties:
+ endpoint:
+ type: string
+ errorMsg:
+ type: string
+ listen:
+ type: string
+ portEnd:
+ format: int32
+ type: integer
+ portStart:
+ format: int32
+ type: integer
+ resourceVersion:
+ format: int64
+ type: integer
+ state:
+ type: string
+ type:
+ type: string
+ type: object
+ type: object
+ nullable: true
+ type: object
+ instances:
+ additionalProperties:
+ properties:
+ spec:
+ properties:
+ backendStoreDriver:
+ type: string
+ name:
+ type: string
+ type: object
+ status:
+ properties:
+ endpoint:
+ type: string
+ errorMsg:
+ type: string
+ listen:
+ type: string
+ portEnd:
+ format: int32
+ type: integer
+ portStart:
+ format: int32
+ type: integer
+ resourceVersion:
+ format: int64
+ type: integer
+ state:
+ type: string
+ type:
+ type: string
+ type: object
+ type: object
+ nullable: true
+ description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas'
+ type: object
ip:
type: string
ownerID:
@@ -1763,7 +1821,7 @@
name: longhorn-conversion-webhook
namespace: {{ include "release_namespace" . }}
path: /v1/webhook/conversion
- port: 9443
+ port: 9501
conversionReviewVersions:
- v1beta2
- v1beta1
@@ -1865,16 +1923,19 @@
items:
type: string
type: array
+ diskType:
+ enum:
+ - filesystem
+ - block
+ type: string
type: object
type: object
- engineManagerCPURequest:
- type: integer
evictionRequested:
type: boolean
+ instanceManagerCPURequest:
+ type: integer
name:
type: string
- replicaManagerCPURequest:
- type: integer
tags:
items:
type: string
@@ -1934,6 +1995,8 @@
type: object
nullable: true
type: array
+ diskType:
+ type: string
diskUUID:
type: string
scheduledReplica:
@@ -2153,7 +2216,7 @@
jsonPath: .spec.groups
name: Groups
type: string
- - description: Should be one of "snapshot", "snapshot-cleanup", "snapshot-delete" or "backup"
+ - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
jsonPath: .spec.task
name: Task
type: string
@@ -2215,12 +2278,15 @@
description: The retain count of the snapshot/backup.
type: integer
task:
- description: The recurring job task. Can be "snapshot", "snapshot-cleanup", "snapshot-delete" or "backup".
+ description: The recurring job task. Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
enum:
- snapshot
+ - snapshot-force-create
- snapshot-cleanup
- snapshot-delete
- backup
+ - backup-force-create
+ - filesystem-trim
type: string
type: object
status:
@@ -2350,16 +2416,15 @@
properties:
active:
type: boolean
+ backendStoreDriver:
+ enum:
+ - v1
+ - v2
+ type: string
backingImage:
type: string
- baseImage:
- description: Deprecated. Rename to BackingImage
- type: string
dataDirectoryName:
type: string
- dataPath:
- description: Deprecated
- type: string
desireState:
type: string
diskID:
@@ -2626,16 +2691,20 @@
description: ShareManagerSpec defines the desired state of the Longhorn share manager
properties:
image:
+ description: Share manager image used for creating a share manager pod
type: string
type: object
status:
description: ShareManagerStatus defines the observed state of the Longhorn share manager
properties:
endpoint:
+ description: NFS endpoint that can access the mounted filesystem of the volume
type: string
ownerID:
+ description: The node ID on which the controller is responsible to reconcile this share manager resource
type: string
state:
+ description: The state of the share manager resource
type: string
type: object
type: object
@@ -2947,6 +3016,11 @@
type: object
spec:
description: SystemBackupSpec defines the desired state of the Longhorn SystemBackup
+ properties:
+ volumeBackupPolicy:
+ description: The create volume backup policy Can be "if-not-present", "always" or "disabled"
+ nullable: true
+ type: string
type: object
status:
description: SystemBackupStatus defines the observed state of the Longhorn SystemBackup
@@ -3131,7 +3205,7 @@
name: longhorn-conversion-webhook
namespace: {{ include "release_namespace" . }}
path: /v1/webhook/conversion
- port: 9443
+ port: 9501
conversionReviewVersions:
- v1beta2
- v1beta1
@@ -3238,10 +3312,18 @@
- rwo
- rwx
type: string
+ backendStoreDriver:
+ enum:
+ - v1
+ - v2
+ type: string
backingImage:
type: string
- baseImage:
- description: Deprecated. Rename to BackingImage
+ backupCompressionMethod:
+ enum:
+ - none
+ - lz4
+ - gzip
type: string
dataLocality:
enum:
@@ -3263,16 +3345,11 @@
type: string
fromBackup:
type: string
- restoreVolumeRecurringJob:
- enum:
- - ignored
- - enabled
- - disabled
- type: string
frontend:
enum:
- blockdev
- iscsi
+ - nvmf
- ""
type: string
lastAttachedBy:
@@ -3289,36 +3366,13 @@
type: array
numberOfReplicas:
type: integer
- recurringJobs:
- description: Deprecated. Replaced by a separate resource named "RecurringJob"
- items:
- description: 'Deprecated: This field is useless and has been replaced by the RecurringJob CRD'
- properties:
- concurrency:
- type: integer
- cron:
- type: string
- groups:
- items:
- type: string
- type: array
- labels:
- additionalProperties:
- type: string
- type: object
- name:
- type: string
- retain:
- type: integer
- task:
- enum:
- - snapshot
- - snapshot-cleanup
- - snapshot-delete
- - backup
- type: string
- type: object
- type: array
+ offlineReplicaRebuilding:
+ description: OfflineReplicaRebuilding is used to determine if the offline replica rebuilding feature is enabled or not
+ enum:
+ - ignored
+ - disabled
+ - enabled
+ type: string
replicaAutoBalance:
enum:
- ignored
@@ -3326,6 +3380,26 @@
- least-effort
- best-effort
type: string
+ replicaSoftAntiAffinity:
+ description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node
+ enum:
+ - ignored
+ - enabled
+ - disabled
+ type: string
+ replicaZoneSoftAntiAffinity:
+ description: Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone
+ enum:
+ - ignored
+ - enabled
+ - disabled
+ type: string
+ restoreVolumeRecurringJob:
+ enum:
+ - ignored
+ - enabled
+ - disabled
+ type: string
revisionCounterDisabled:
type: boolean
size:
@@ -3388,6 +3462,9 @@
type: array
currentImage:
type: string
+ currentMigrationNodeID:
+ description: the node that this volume is currently migrating to
+ type: string
currentNodeID:
type: string
expansionRequired:
@@ -3433,9 +3510,12 @@
type: string
lastDegradedAt:
type: string
+ offlineReplicaRebuildingRequired:
+ type: boolean
ownerID:
type: string
pendingNodeID:
+ description: Deprecated.
type: string
remountRequestedAt:
type: string
@@ -3463,3 +3543,130 @@
plural: ""
conditions: []
storedVersions: []
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.7.0
+ creationTimestamp: null
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+ longhorn-manager: ""
+ name: volumeattachments.longhorn.io
+spec:
+ group: longhorn.io
+ names:
+ kind: VolumeAttachment
+ listKind: VolumeAttachmentList
+ plural: volumeattachments
+ shortNames:
+ - lhva
+ singular: volumeattachment
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1beta2
+ schema:
+ openAPIV3Schema:
+ description: VolumeAttachment stores attachment information of a Longhorn volume
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: VolumeAttachmentSpec defines the desired state of Longhorn VolumeAttachment
+ properties:
+ attachmentTickets:
+ additionalProperties:
+ properties:
+ generation:
+ description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
+ format: int64
+ type: integer
+ id:
+ description: The unique ID of this attachment. Used to differentiate different attachments of the same volume.
+ type: string
+ nodeID:
+ description: The node that this attachment is requesting
+ type: string
+ parameters:
+ additionalProperties:
+ type: string
+ description: Optional additional parameter for this attachment
+ type: object
+ type:
+ type: string
+ type: object
+ type: object
+ volume:
+ description: The name of Longhorn volume of this VolumeAttachment
+ type: string
+ required:
+ - volume
+ type: object
+ status:
+ description: VolumeAttachmentStatus defines the observed state of Longhorn VolumeAttachment
+ properties:
+ attachmentTicketStatuses:
+ additionalProperties:
+ properties:
+ conditions:
+ description: Record any error when trying to fulfill this attachment
+ items:
+ properties:
+ lastProbeTime:
+ description: Last time we probed the condition.
+ type: string
+ lastTransitionTime:
+ description: Last time the condition transitioned from one status to another.
+ type: string
+ message:
+ description: Human-readable message indicating details about last transition.
+ type: string
+ reason:
+ description: Unique, one-word, CamelCase reason for the condition's last transition.
+ type: string
+ status:
+ description: Status is the status of the condition. Can be True, False, Unknown.
+ type: string
+ type:
+ description: Type is the type of the condition.
+ type: string
+ type: object
+ nullable: true
+ type: array
+ generation:
+ description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
+ format: int64
+ type: integer
+ id:
+ description: The unique ID of this attachment. Used to differentiate different attachments of the same volume.
+ type: string
+ satisfied:
+ description: Indicate whether this attachment ticket has been satisfied
+ type: boolean
+ required:
+ - conditions
+ - satisfied
+ type: object
+ type: object
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: []
+ storedVersions: []
diff --git a/charts/longhorn/templates/daemonset-sa.yaml b/charts/longhorn/templates/daemonset-sa.yaml
index 63f98cd..f361d27 100644
--- a/charts/longhorn/templates/daemonset-sa.yaml
+++ b/charts/longhorn/templates/daemonset-sa.yaml
@@ -18,10 +18,6 @@
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
- initContainers:
- - name: wait-longhorn-admission-webhook
- image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
- command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" -k https://longhorn-admission-webhook:9443/v1/healthz) != "200" ]; do echo waiting; sleep 2; done']
containers:
- name: longhorn-manager
image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
@@ -52,9 +48,17 @@
ports:
- containerPort: 9500
name: manager
+ - containerPort: 9501
+ name: conversion-wh
+ - containerPort: 9502
+ name: admission-wh
+ - containerPort: 9503
+ name: recov-backend
readinessProbe:
- tcpSocket:
- port: 9500
+ httpGet:
+ path: /v1/healthz
+ port: 9501
+ scheme: HTTPS
volumeMounts:
- name: dev
mountPath: /host/dev/
diff --git a/charts/longhorn/templates/default-setting.yaml b/charts/longhorn/templates/default-setting.yaml
index 49870a4..ac38ba9 100644
--- a/charts/longhorn/templates/default-setting.yaml
+++ b/charts/longhorn/templates/default-setting.yaml
@@ -15,6 +15,7 @@
{{ if not (kindIs "invalid" .Values.defaultSettings.replicaAutoBalance) }}replica-auto-balance: {{ .Values.defaultSettings.replicaAutoBalance }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.storageOverProvisioningPercentage) }}storage-over-provisioning-percentage: {{ .Values.defaultSettings.storageOverProvisioningPercentage }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.storageMinimalAvailablePercentage) }}storage-minimal-available-percentage: {{ .Values.defaultSettings.storageMinimalAvailablePercentage }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.storageReservedPercentageForDefaultDisk) }}storage-reserved-percentage-for-default-disk: {{ .Values.defaultSettings.storageReservedPercentageForDefaultDisk }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.upgradeChecker) }}upgrade-checker: {{ .Values.defaultSettings.upgradeChecker }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.defaultReplicaCount) }}default-replica-count: {{ .Values.defaultSettings.defaultReplicaCount }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.defaultDataLocality) }}default-data-locality: {{ .Values.defaultSettings.defaultDataLocality }}{{ end }}
@@ -51,9 +52,7 @@
{{ if not (kindIs "invalid" .Values.defaultSettings.disableSchedulingOnCordonedNode) }}disable-scheduling-on-cordoned-node: {{ .Values.defaultSettings.disableSchedulingOnCordonedNode }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.replicaZoneSoftAntiAffinity) }}replica-zone-soft-anti-affinity: {{ .Values.defaultSettings.replicaZoneSoftAntiAffinity }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.nodeDownPodDeletionPolicy) }}node-down-pod-deletion-policy: {{ .Values.defaultSettings.nodeDownPodDeletionPolicy }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.allowNodeDrainWithLastHealthyReplica) }}allow-node-drain-with-last-healthy-replica: {{ .Values.defaultSettings.allowNodeDrainWithLastHealthyReplica }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.mkfsExt4Parameters) }}mkfs-ext4-parameters: {{ .Values.defaultSettings.mkfsExt4Parameters }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.disableReplicaRebuild) }}disable-replica-rebuild: {{ .Values.defaultSettings.disableReplicaRebuild }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.nodeDrainPolicy) }}node-drain-policy: {{ .Values.defaultSettings.nodeDrainPolicy }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.replicaReplenishmentWaitInterval) }}replica-replenishment-wait-interval: {{ .Values.defaultSettings.replicaReplenishmentWaitInterval }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.concurrentReplicaRebuildPerNodeLimit) }}concurrent-replica-rebuild-per-node-limit: {{ .Values.defaultSettings.concurrentReplicaRebuildPerNodeLimit }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.concurrentVolumeBackupRestorePerNodeLimit) }}concurrent-volume-backup-restore-per-node-limit: {{ .Values.defaultSettings.concurrentVolumeBackupRestorePerNodeLimit }}{{ end }}
@@ -64,8 +63,7 @@
{{ if not (kindIs "invalid" .Values.defaultSettings.concurrentAutomaticEngineUpgradePerNodeLimit) }}concurrent-automatic-engine-upgrade-per-node-limit: {{ .Values.defaultSettings.concurrentAutomaticEngineUpgradePerNodeLimit }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.backingImageCleanupWaitInterval) }}backing-image-cleanup-wait-interval: {{ .Values.defaultSettings.backingImageCleanupWaitInterval }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.backingImageRecoveryWaitInterval) }}backing-image-recovery-wait-interval: {{ .Values.defaultSettings.backingImageRecoveryWaitInterval }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.guaranteedEngineManagerCPU) }}guaranteed-engine-manager-cpu: {{ .Values.defaultSettings.guaranteedEngineManagerCPU }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.guaranteedReplicaManagerCPU) }}guaranteed-replica-manager-cpu: {{ .Values.defaultSettings.guaranteedReplicaManagerCPU }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.guaranteedInstanceManagerCPU) }}guaranteed-instance-manager-cpu: {{ .Values.defaultSettings.guaranteedInstanceManagerCPU }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.kubernetesClusterAutoscalerEnabled) }}kubernetes-cluster-autoscaler-enabled: {{ .Values.defaultSettings.kubernetesClusterAutoscalerEnabled }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.orphanAutoDeletion) }}orphan-auto-deletion: {{ .Values.defaultSettings.orphanAutoDeletion }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.storageNetwork) }}storage-network: {{ .Values.defaultSettings.storageNetwork }}{{ end }}
@@ -76,4 +74,10 @@
{{ if not (kindIs "invalid" .Values.defaultSettings.snapshotDataIntegrityCronjob) }}snapshot-data-integrity-cronjob: {{ .Values.defaultSettings.snapshotDataIntegrityCronjob }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.removeSnapshotsDuringFilesystemTrim) }}remove-snapshots-during-filesystem-trim: {{ .Values.defaultSettings.removeSnapshotsDuringFilesystemTrim }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.fastReplicaRebuildEnabled) }}fast-replica-rebuild-enabled: {{ .Values.defaultSettings.fastReplicaRebuildEnabled }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.replicaFileSyncHttpClientTimeout) }}replica-file-sync-http-client-timeout: {{ .Values.defaultSettings.replicaFileSyncHttpClientTimeout }}{{ end }}
\ No newline at end of file
+ {{ if not (kindIs "invalid" .Values.defaultSettings.replicaFileSyncHttpClientTimeout) }}replica-file-sync-http-client-timeout: {{ .Values.defaultSettings.replicaFileSyncHttpClientTimeout }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.logLevel) }}log-level: {{ .Values.defaultSettings.logLevel }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.backupCompressionMethod) }}backup-compression-method: {{ .Values.defaultSettings.backupCompressionMethod }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.backupConcurrentLimit) }}backup-concurrent-limit: {{ .Values.defaultSettings.backupConcurrentLimit }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.restoreConcurrentLimit) }}restore-concurrent-limit: {{ .Values.defaultSettings.restoreConcurrentLimit }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.v2DataEngine) }}v2-data-engine: {{ .Values.defaultSettings.v2DataEngine }}{{ end }}
+ {{ if not (kindIs "invalid" .Values.defaultSettings.offlineReplicaRebuilding) }}offline-replica-rebuilding: {{ .Values.defaultSettings.offlineReplicaRebuilding }}{{ end }}
diff --git a/charts/longhorn/templates/deployment-recovery-backend.yaml b/charts/longhorn/templates/deployment-recovery-backend.yaml
deleted file mode 100644
index 81c8aba..0000000
--- a/charts/longhorn/templates/deployment-recovery-backend.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels: {{- include "longhorn.labels" . | nindent 4 }}
- app: longhorn-recovery-backend
- name: longhorn-recovery-backend
- namespace: {{ include "release_namespace" . }}
-spec:
- replicas: {{ .Values.longhornRecoveryBackend.replicas }}
- selector:
- matchLabels:
- app: longhorn-recovery-backend
- template:
- metadata:
- labels: {{- include "longhorn.labels" . | nindent 8 }}
- app: longhorn-recovery-backend
- spec:
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- labelSelector:
- matchExpressions:
- - key: app
- operator: In
- values:
- - longhorn-recovery-backend
- topologyKey: kubernetes.io/hostname
- containers:
- - name: longhorn-recovery-backend
- image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- securityContext:
- runAsUser: 2000
- command:
- - longhorn-manager
- - recovery-backend
- - --service-account
- - longhorn-service-account
- ports:
- - containerPort: 9600
- name: recov-backend
- readinessProbe:
- tcpSocket:
- port: 9600
- initialDelaySeconds: 3
- periodSeconds: 5
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: NODE_NAME
- valueFrom:
- fieldRef:
- fieldPath: spec.nodeName
- {{- if .Values.privateRegistry.registrySecret }}
- imagePullSecrets:
- - name: {{ .Values.privateRegistry.registrySecret }}
- {{- end }}
- {{- if .Values.longhornRecoveryBackend.priorityClass }}
- priorityClassName: {{ .Values.longhornRecoveryBackend.priorityClass | quote }}
- {{- end }}
- {{- if or .Values.longhornRecoveryBackend.tolerations .Values.global.cattle.windowsCluster.enabled }}
- tolerations:
- {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
-{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
- {{- end }}
- {{- if .Values.longhornRecoveryBackend.tolerations }}
-{{ toYaml .Values.longhornRecoveryBackend.tolerations | indent 6 }}
- {{- end }}
- {{- end }}
- {{- if or .Values.longhornRecoveryBackend.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
- nodeSelector:
- {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
-{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
- {{- end }}
- {{- if .Values.longhornRecoveryBackend.nodeSelector }}
-{{ toYaml .Values.longhornRecoveryBackend.nodeSelector | indent 8 }}
- {{- end }}
- {{- end }}
- serviceAccountName: longhorn-service-account
diff --git a/charts/longhorn/templates/deployment-webhook.yaml b/charts/longhorn/templates/deployment-webhook.yaml
deleted file mode 100644
index c4d353a..0000000
--- a/charts/longhorn/templates/deployment-webhook.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels: {{- include "longhorn.labels" . | nindent 4 }}
- app: longhorn-conversion-webhook
- name: longhorn-conversion-webhook
- namespace: {{ include "release_namespace" . }}
-spec:
- replicas: {{ .Values.longhornConversionWebhook.replicas }}
- selector:
- matchLabels:
- app: longhorn-conversion-webhook
- template:
- metadata:
- labels: {{- include "longhorn.labels" . | nindent 8 }}
- app: longhorn-conversion-webhook
- spec:
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- labelSelector:
- matchExpressions:
- - key: app
- operator: In
- values:
- - longhorn-conversion-webhook
- topologyKey: kubernetes.io/hostname
- containers:
- - name: longhorn-conversion-webhook
- image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- securityContext:
- runAsUser: 2000
- command:
- - longhorn-manager
- - conversion-webhook
- - --service-account
- - longhorn-service-account
- ports:
- - containerPort: 9443
- name: conversion-wh
- readinessProbe:
- tcpSocket:
- port: 9443
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- {{- if .Values.privateRegistry.registrySecret }}
- imagePullSecrets:
- - name: {{ .Values.privateRegistry.registrySecret }}
- {{- end }}
- {{- if .Values.longhornConversionWebhook.priorityClass }}
- priorityClassName: {{ .Values.longhornConversionWebhook.priorityClass | quote }}
- {{- end }}
- {{- if or .Values.longhornConversionWebhook.tolerations .Values.global.cattle.windowsCluster.enabled }}
- tolerations:
- {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
-{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
- {{- end }}
- {{- if .Values.longhornConversionWebhook.tolerations }}
-{{ toYaml .Values.longhornConversionWebhook.tolerations | indent 6 }}
- {{- end }}
- {{- end }}
- {{- if or .Values.longhornConversionWebhook.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
- nodeSelector:
- {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
-{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
- {{- end }}
- {{- if .Values.longhornConversionWebhook.nodeSelector }}
-{{ toYaml .Values.longhornConversionWebhook.nodeSelector | indent 8 }}
- {{- end }}
- {{- end }}
- serviceAccountName: longhorn-service-account
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels: {{- include "longhorn.labels" . | nindent 4 }}
- app: longhorn-admission-webhook
- name: longhorn-admission-webhook
- namespace: {{ include "release_namespace" . }}
-spec:
- replicas: {{ .Values.longhornAdmissionWebhook.replicas }}
- selector:
- matchLabels:
- app: longhorn-admission-webhook
- template:
- metadata:
- labels: {{- include "longhorn.labels" . | nindent 8 }}
- app: longhorn-admission-webhook
- spec:
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- labelSelector:
- matchExpressions:
- - key: app
- operator: In
- values:
- - longhorn-admission-webhook
- topologyKey: kubernetes.io/hostname
- initContainers:
- - name: wait-longhorn-conversion-webhook
- image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
- command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" -k https://longhorn-conversion-webhook:9443/v1/healthz) != "200" ]; do echo waiting; sleep 2; done']
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- securityContext:
- runAsUser: 2000
- containers:
- - name: longhorn-admission-webhook
- image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- securityContext:
- runAsUser: 2000
- command:
- - longhorn-manager
- - admission-webhook
- - --service-account
- - longhorn-service-account
- ports:
- - containerPort: 9443
- name: admission-wh
- readinessProbe:
- tcpSocket:
- port: 9443
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: NODE_NAME
- valueFrom:
- fieldRef:
- fieldPath: spec.nodeName
- {{- if .Values.privateRegistry.registrySecret }}
- imagePullSecrets:
- - name: {{ .Values.privateRegistry.registrySecret }}
- {{- end }}
- {{- if .Values.longhornAdmissionWebhook.priorityClass }}
- priorityClassName: {{ .Values.longhornAdmissionWebhook.priorityClass | quote }}
- {{- end }}
- {{- if or .Values.longhornAdmissionWebhook.tolerations .Values.global.cattle.windowsCluster.enabled }}
- tolerations:
- {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
-{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
- {{- end }}
- {{- if .Values.longhornAdmissionWebhook.tolerations }}
-{{ toYaml .Values.longhornAdmissionWebhook.tolerations | indent 6 }}
- {{- end }}
- {{- end }}
- {{- if or .Values.longhornAdmissionWebhook.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
- nodeSelector:
- {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
-{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
- {{- end }}
- {{- if .Values.longhornAdmissionWebhook.nodeSelector }}
-{{ toYaml .Values.longhornAdmissionWebhook.nodeSelector | indent 8 }}
- {{- end }}
- {{- end }}
- serviceAccountName: longhorn-service-account
diff --git a/charts/longhorn/templates/network-policies/backing-image-data-source-network-policy.yaml b/charts/longhorn/templates/network-policies/backing-image-data-source-network-policy.yaml
new file mode 100644
index 0000000..cc91054
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/backing-image-data-source-network-policy.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.networkPolicies.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: backing-image-data-source
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-data-source
+ policyTypes:
+ - Ingress
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ app: longhorn-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: instance-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-data-source
+{{- end }}
diff --git a/charts/longhorn/templates/network-policies/backing-image-manager-network-policy.yaml b/charts/longhorn/templates/network-policies/backing-image-manager-network-policy.yaml
new file mode 100644
index 0000000..ebc288f
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/backing-image-manager-network-policy.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.networkPolicies.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: backing-image-manager
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-manager
+ policyTypes:
+ - Ingress
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ app: longhorn-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: instance-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-data-source
+{{- end }}
diff --git a/charts/longhorn/templates/network-policies/instance-manager-networking.yaml b/charts/longhorn/templates/network-policies/instance-manager-networking.yaml
new file mode 100644
index 0000000..6f03c6e
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/instance-manager-networking.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.networkPolicies.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: instance-manager
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ longhorn.io/component: instance-manager
+ policyTypes:
+ - Ingress
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ app: longhorn-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: instance-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-manager
+ - podSelector:
+ matchLabels:
+ longhorn.io/component: backing-image-data-source
+{{- end }}
diff --git a/charts/longhorn/templates/network-policies/manager-network-policy.yaml b/charts/longhorn/templates/network-policies/manager-network-policy.yaml
new file mode 100644
index 0000000..c9d763f
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/manager-network-policy.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.networkPolicies.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: longhorn-manager
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ app: longhorn-manager
+ policyTypes:
+ - Ingress
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ app: longhorn-manager
+ - podSelector:
+ matchLabels:
+ app: longhorn-ui
+ - podSelector:
+ matchLabels:
+ app: longhorn-csi-plugin
+ - podSelector:
+ matchLabels:
+ longhorn.io/managed-by: longhorn-manager
+ matchExpressions:
+ - { key: recurring-job.longhorn.io, operator: Exists }
+ - podSelector:
+ matchExpressions:
+ - { key: longhorn.io/job-task, operator: Exists }
+ - podSelector:
+ matchLabels:
+ app: longhorn-driver-deployer
+{{- end }}
diff --git a/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml b/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml
new file mode 100644
index 0000000..cebe485
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.networkPolicies.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: longhorn-recovery-backend
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ app: longhorn-manager
+ policyTypes:
+ - Ingress
+ ingress:
+ - ports:
+ - protocol: TCP
+ port: 9503
+{{- end }}
diff --git a/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml b/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml
new file mode 100644
index 0000000..04c8beb
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml
@@ -0,0 +1,46 @@
+{{- if and .Values.networkPolicies.enabled .Values.ingress.enabled (not (eq .Values.networkPolicies.type "")) }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: longhorn-ui-frontend
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ app: longhorn-ui
+ policyTypes:
+ - Ingress
+ ingress:
+ - from:
+ {{- if eq .Values.networkPolicies.type "rke1"}}
+ - namespaceSelector:
+ matchLabels:
+ kubernetes.io/metadata.name: ingress-nginx
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/component: controller
+ app.kubernetes.io/instance: ingress-nginx
+ app.kubernetes.io/name: ingress-nginx
+ {{- else if eq .Values.networkPolicies.type "rke2" }}
+ - namespaceSelector:
+ matchLabels:
+ kubernetes.io/metadata.name: kube-system
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/component: controller
+ app.kubernetes.io/instance: rke2-ingress-nginx
+ app.kubernetes.io/name: rke2-ingress-nginx
+ {{- else if eq .Values.networkPolicies.type "k3s" }}
+ - namespaceSelector:
+ matchLabels:
+ kubernetes.io/metadata.name: kube-system
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/name: traefik
+ ports:
+ - port: 8000
+ protocol: TCP
+ - port: 80
+ protocol: TCP
+ {{- end }}
+{{- end }}
diff --git a/charts/longhorn/templates/network-policies/webhook-network-policy.yaml b/charts/longhorn/templates/network-policies/webhook-network-policy.yaml
new file mode 100644
index 0000000..c9790f6
--- /dev/null
+++ b/charts/longhorn/templates/network-policies/webhook-network-policy.yaml
@@ -0,0 +1,33 @@
+{{- if .Values.networkPolicies.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: longhorn-conversion-webhook
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ app: longhorn-manager
+ policyTypes:
+ - Ingress
+ ingress:
+ - ports:
+ - protocol: TCP
+ port: 9501
+---
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: longhorn-admission-webhook
+ namespace: longhorn-system
+spec:
+ podSelector:
+ matchLabels:
+ app: longhorn-manager
+ policyTypes:
+ - Ingress
+ ingress:
+ - ports:
+ - protocol: TCP
+ port: 9502
+{{- end }}
diff --git a/charts/longhorn/templates/postupgrade-job.yaml b/charts/longhorn/templates/postupgrade-job.yaml
index b9b2eeb..bb25a54 100644
--- a/charts/longhorn/templates/postupgrade-job.yaml
+++ b/charts/longhorn/templates/postupgrade-job.yaml
@@ -19,8 +19,6 @@
- name: longhorn-post-upgrade
image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
- securityContext:
- privileged: true
command:
- longhorn-manager
- post-upgrade
diff --git a/charts/longhorn/templates/preupgrade-job.yaml b/charts/longhorn/templates/preupgrade-job.yaml
new file mode 100644
index 0000000..357e6d7
--- /dev/null
+++ b/charts/longhorn/templates/preupgrade-job.yaml
@@ -0,0 +1,58 @@
+{{- if .Values.helmPreUpgradeCheckerJob.enabled }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+ annotations:
+ "helm.sh/hook": pre-upgrade
+ "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation,hook-failed
+ name: longhorn-pre-upgrade
+ namespace: {{ include "release_namespace" . }}
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+spec:
+ activeDeadlineSeconds: 900
+ backoffLimit: 1
+ template:
+ metadata:
+ name: longhorn-pre-upgrade
+ labels: {{- include "longhorn.labels" . | nindent 8 }}
+ spec:
+ containers:
+ - name: longhorn-pre-upgrade
+ image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ command:
+ - longhorn-manager
+ - pre-upgrade
+ env:
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ restartPolicy: OnFailure
+ {{- if .Values.privateRegistry.registrySecret }}
+ imagePullSecrets:
+ - name: {{ .Values.privateRegistry.registrySecret }}
+ {{- end }}
+ {{- if .Values.longhornManager.priorityClass }}
+ priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
+ {{- end }}
+ serviceAccountName: longhorn-service-account
+ {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
+ tolerations:
+ {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
+{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
+ {{- end }}
+ {{- if .Values.longhornManager.tolerations }}
+{{ toYaml .Values.longhornManager.tolerations | indent 6 }}
+ {{- end }}
+ {{- end }}
+ {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ nodeSelector:
+ {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
+{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
+ {{- end }}
+ {{- if .Values.longhornManager.nodeSelector }}
+{{ toYaml .Values.longhornManager.nodeSelector | indent 8 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/longhorn/templates/services.yaml b/charts/longhorn/templates/services.yaml
index cd008db..7da9d18 100644
--- a/charts/longhorn/templates/services.yaml
+++ b/charts/longhorn/templates/services.yaml
@@ -9,10 +9,10 @@
type: ClusterIP
sessionAffinity: ClientIP
selector:
- app: longhorn-conversion-webhook
+ app: longhorn-manager
ports:
- name: conversion-webhook
- port: 9443
+ port: 9501
targetPort: conversion-wh
---
apiVersion: v1
@@ -26,10 +26,10 @@
type: ClusterIP
sessionAffinity: ClientIP
selector:
- app: longhorn-admission-webhook
+ app: longhorn-manager
ports:
- name: admission-webhook
- port: 9443
+ port: 9502
targetPort: admission-wh
---
apiVersion: v1
@@ -43,10 +43,10 @@
type: ClusterIP
sessionAffinity: ClientIP
selector:
- app: longhorn-recovery-backend
+ app: longhorn-manager
ports:
- name: recovery-backend
- port: 9600
+ port: 9503
targetPort: recov-backend
---
apiVersion: v1
diff --git a/charts/longhorn/templates/uninstall-job.yaml b/charts/longhorn/templates/uninstall-job.yaml
index 989933d..968f420 100644
--- a/charts/longhorn/templates/uninstall-job.yaml
+++ b/charts/longhorn/templates/uninstall-job.yaml
@@ -19,8 +19,6 @@
- name: longhorn-uninstall
image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
- securityContext:
- privileged: true
command:
- longhorn-manager
- uninstall
diff --git a/charts/longhorn/values.yaml b/charts/longhorn/values.yaml
index 3ded6cd..bad9882 100644
--- a/charts/longhorn/values.yaml
+++ b/charts/longhorn/values.yaml
@@ -21,48 +21,53 @@
taintToleration: cattle.io/os=linux:NoSchedule
systemManagedComponentsNodeSelector: kubernetes.io/os:linux
+networkPolicies:
+ enabled: false
+ # Available types: k3s, rke2, rke1
+ type: "k3s"
+
image:
longhorn:
engine:
repository: longhornio/longhorn-engine
- tag: v1.4.1
+ tag: v1.5.2
manager:
repository: longhornio/longhorn-manager
- tag: v1.4.1
+ tag: v1.5.2
ui:
repository: longhornio/longhorn-ui
- tag: v1.4.1
+ tag: v1.5.2
instanceManager:
repository: longhornio/longhorn-instance-manager
- tag: v1.4.1
+ tag: v1.5.2
shareManager:
repository: longhornio/longhorn-share-manager
- tag: v1.4.1
+ tag: v1.5.2
backingImageManager:
repository: longhornio/backing-image-manager
- tag: v1.4.1
+ tag: v1.5.2
supportBundleKit:
repository: longhornio/support-bundle-kit
- tag: v0.0.19
+ tag: v0.0.27
csi:
attacher:
repository: longhornio/csi-attacher
- tag: v3.4.0
+ tag: v4.2.0
provisioner:
repository: longhornio/csi-provisioner
- tag: v2.1.2
+ tag: v3.4.1
nodeDriverRegistrar:
repository: longhornio/csi-node-driver-registrar
- tag: v2.5.0
+ tag: v2.7.0
resizer:
repository: longhornio/csi-resizer
- tag: v1.3.0
+ tag: v1.7.0
snapshotter:
repository: longhornio/csi-snapshotter
- tag: v5.0.1
+ tag: v6.2.1
livenessProbe:
repository: longhornio/livenessprobe
- tag: v2.8.0
+ tag: v2.9.0
pullPolicy: IfNotPresent
service:
@@ -94,9 +99,12 @@
expectedChecksum: ~
defaultNodeSelector:
enable: false # disable by default
- selector: []
+ selector: ""
removeSnapshotsDuringFilesystemTrim: ignored # "enabled" or "disabled" otherwise
+helmPreUpgradeCheckerJob:
+ enabled: true
+
csi:
kubeletRootDir: ~
attacherReplicaCount: ~
@@ -115,6 +123,7 @@
replicaAutoBalance: ~
storageOverProvisioningPercentage: ~
storageMinimalAvailablePercentage: ~
+ storageReservedPercentageForDefaultDisk: ~
upgradeChecker: ~
defaultReplicaCount: ~
defaultLonghornStaticStorageClass: ~
@@ -132,9 +141,7 @@
disableSchedulingOnCordonedNode: ~
replicaZoneSoftAntiAffinity: ~
nodeDownPodDeletionPolicy: ~
- allowNodeDrainWithLastHealthyReplica: ~
- mkfsExt4Parameters: ~
- disableReplicaRebuild: ~
+ nodeDrainPolicy: ~
replicaReplenishmentWaitInterval: ~
concurrentReplicaRebuildPerNodeLimit: ~
concurrentVolumeBackupRestorePerNodeLimit: ~
@@ -145,8 +152,7 @@
concurrentAutomaticEngineUpgradePerNodeLimit: ~
backingImageCleanupWaitInterval: ~
backingImageRecoveryWaitInterval: ~
- guaranteedEngineManagerCPU: ~
- guaranteedReplicaManagerCPU: ~
+ guaranteedInstanceManagerCPU: ~
kubernetesClusterAutoscalerEnabled: ~
orphanAutoDeletion: ~
storageNetwork: ~
@@ -158,6 +164,12 @@
removeSnapshotsDuringFilesystemTrim: ~
fastReplicaRebuildEnabled: ~
replicaFileSyncHttpClientTimeout: ~
+ logLevel: ~
+ backupCompressionMethod: ~
+ backupConcurrentLimit: ~
+ restoreConcurrentLimit: ~
+ v2DataEngine: ~
+ offlineReplicaRebuilding: ~
privateRegistry:
createSecret: ~
registryUrl: ~
@@ -219,54 +231,6 @@
# label-key1: "label-value1"
# label-key2: "label-value2"
-longhornConversionWebhook:
- replicas: 2
- priorityClass: ~
- tolerations: []
- ## If you want to set tolerations for Longhorn conversion webhook Deployment, delete the `[]` in the line above
- ## and uncomment this example block
- # - key: "key"
- # operator: "Equal"
- # value: "value"
- # effect: "NoSchedule"
- nodeSelector: {}
- ## If you want to set node selector for Longhorn conversion webhook Deployment, delete the `{}` in the line above
- ## and uncomment this example block
- # label-key1: "label-value1"
- # label-key2: "label-value2"
-
-longhornAdmissionWebhook:
- replicas: 2
- priorityClass: ~
- tolerations: []
- ## If you want to set tolerations for Longhorn admission webhook Deployment, delete the `[]` in the line above
- ## and uncomment this example block
- # - key: "key"
- # operator: "Equal"
- # value: "value"
- # effect: "NoSchedule"
- nodeSelector: {}
- ## If you want to set node selector for Longhorn admission webhook Deployment, delete the `{}` in the line above
- ## and uncomment this example block
- # label-key1: "label-value1"
- # label-key2: "label-value2"
-
-longhornRecoveryBackend:
- replicas: 2
- priorityClass: ~
- tolerations: []
- ## If you want to set tolerations for Longhorn recovery backend Deployment, delete the `[]` in the line above
- ## and uncomment this example block
- # - key: "key"
- # operator: "Equal"
- # value: "value"
- # effect: "NoSchedule"
- nodeSelector: {}
- ## If you want to set node selector for Longhorn recovery backend Deployment, delete the `{}` in the line above
- ## and uncomment this example block
- # label-key1: "label-value1"
- # label-key2: "label-value2"
-
ingress:
## Set to true to enable ingress record generation
enabled: false