longhorn: upgrade from 1.9.0 to 1.12.0 (with intermediate releases)
Change-Id: Ice8f4e8f7e073023ab274c83154d9368525f9231
diff --git a/charts/longhorn/templates/crds.yaml b/charts/longhorn/templates/crds.yaml
index 73110b7..2ce4289 100644
--- a/charts/longhorn/templates/crds.yaml
+++ b/charts/longhorn/templates/crds.yaml
@@ -3,7 +3,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backingimagedatasources.longhorn.io
@@ -19,62 +19,6 @@
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The current state of the pod used to provision the backing image
- file from source
- jsonPath: .status.currentState
- name: State
- type: string
- - description: The data source type
- jsonPath: .spec.sourceType
- name: SourceType
- type: string
- - description: The node the backing image file will be prepared on
- jsonPath: .spec.nodeID
- name: Node
- type: string
- - description: The disk the backing image file will be prepared on
- jsonPath: .spec.diskUUID
- name: DiskUUID
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 BackingImageDataSource is deprecated;
- use longhorn.io/v1beta2 BackingImageDataSource instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: BackingImageDataSource is where Longhorn stores backing image
- data source object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The system generated UUID of the provisioned backing image file
jsonPath: .spec.uuid
name: UUID
@@ -192,7 +136,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backingimagemanagers.longhorn.io
@@ -231,65 +175,6 @@
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 BackingImageManager is deprecated; use
- longhorn.io/v1beta2 BackingImageManager instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: BackingImageManager is where Longhorn stores backing image manager
- object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: The current state of the manager
- jsonPath: .status.currentState
- name: State
- type: string
- - description: The image the manager pod will use
- jsonPath: .spec.image
- name: Image
- type: string
- - description: The node the manager is on
- jsonPath: .spec.nodeID
- name: Node
- type: string
- - description: The disk the manager is responsible for
- jsonPath: .spec.diskUUID
- name: DiskUUID
- type: string
- - description: The disk path the manager is using
- jsonPath: .spec.diskPath
- name: DiskPath
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
name: v1beta2
schema:
openAPIV3Schema:
@@ -388,23 +273,11 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backingimages.longhorn.io
spec:
- conversion:
- strategy: Webhook
- webhook:
- clientConfig:
- service:
- name: longhorn-conversion-webhook
- namespace: {{ include "release_namespace" . }}
- path: /v1/webhook/conversion
- port: 9501
- conversionReviewVersions:
- - v1beta2
- - v1beta1
group: longhorn.io
names:
kind: BackingImage
@@ -416,48 +289,6 @@
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The backing image name
- jsonPath: .spec.image
- name: Image
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 BackingImage is deprecated; use longhorn.io/v1beta2
- BackingImage instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: BackingImage is where Longhorn stores backing image object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The system generated UUID
jsonPath: .status.uuid
name: UUID
@@ -621,7 +452,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backupbackingimages.longhorn.io
@@ -788,7 +619,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backups.longhorn.io
@@ -816,61 +647,6 @@
jsonPath: .status.snapshotCreatedAt
name: SnapshotCreatedAt
type: string
- - description: The backup state
- jsonPath: .status.state
- name: State
- type: string
- - description: The backup last synced time
- jsonPath: .status.lastSyncedAt
- name: LastSyncedAt
- type: string
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 Backup is deprecated; use longhorn.io/v1beta2
- Backup instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: Backup is where Longhorn stores backup object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: The snapshot name
- jsonPath: .status.snapshotName
- name: SnapshotName
- type: string
- - description: The snapshot size
- jsonPath: .status.size
- name: SnapshotSize
- type: string
- - description: The snapshot creation time
- jsonPath: .status.snapshotCreatedAt
- name: SnapshotCreatedAt
- type: string
- description: The backup target name
jsonPath: .status.backupTargetName
name: BackupTarget
@@ -908,6 +684,15 @@
spec:
description: BackupSpec defines the desired state of the Longhorn backup
properties:
+ backupBlockSize:
+ description: The backup block size. 0 means the legacy default size
+ 2MiB, and -1 indicate the block size is invalid.
+ enum:
+ - "-1"
+ - "2097152"
+ - "16777216"
+ format: int64
+ type: string
backupMode:
description: |-
The backup mode of this backup.
@@ -915,7 +700,6 @@
enum:
- full
- incremental
- - ""
type: string
labels:
additionalProperties:
@@ -1021,23 +805,11 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backuptargets.longhorn.io
spec:
- conversion:
- strategy: Webhook
- webhook:
- clientConfig:
- service:
- name: longhorn-conversion-webhook
- namespace: {{ include "release_namespace" . }}
- path: /v1/webhook/conversion
- port: 9501
- conversionReviewVersions:
- - v1beta2
- - v1beta1
group: longhorn.io
names:
kind: BackupTarget
@@ -1069,61 +841,6 @@
jsonPath: .status.lastSyncedAt
name: LastSyncedAt
type: string
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 BackupTarget is deprecated; use longhorn.io/v1beta2
- BackupTarget instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: BackupTarget is where Longhorn stores backup target object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: The backup target URL
- jsonPath: .spec.backupTargetURL
- name: URL
- type: string
- - description: The backup target credential secret
- jsonPath: .spec.credentialSecret
- name: Credential
- type: string
- - description: The backup target poll interval
- jsonPath: .spec.pollInterval
- name: LastBackupAt
- type: string
- - description: Indicate whether the backup target is available or not
- jsonPath: .status.available
- name: Available
- type: boolean
- - description: The backup target last synced time
- jsonPath: .status.lastSyncedAt
- name: LastSyncedAt
- type: string
name: v1beta2
schema:
openAPIV3Schema:
@@ -1225,7 +942,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backupvolumes.longhorn.io
@@ -1241,57 +958,6 @@
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The backup volume creation time
- jsonPath: .status.createdAt
- name: CreatedAt
- type: string
- - description: The backup volume last backup name
- jsonPath: .status.lastBackupName
- name: LastBackupName
- type: string
- - description: The backup volume last backup time
- jsonPath: .status.lastBackupAt
- name: LastBackupAt
- type: string
- - description: The backup volume last synced time
- jsonPath: .status.lastSyncedAt
- name: LastSyncedAt
- type: string
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 BackupVolume is deprecated; use longhorn.io/v1beta2
- BackupVolume instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: BackupVolume is where Longhorn stores backup volume object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The backup target name
jsonPath: .spec.backupTargetName
name: BackupTarget
@@ -1418,61 +1084,46 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
- name: engineimages.longhorn.io
+ name: enginefrontends.longhorn.io
spec:
- conversion:
- strategy: Webhook
- webhook:
- clientConfig:
- service:
- name: longhorn-conversion-webhook
- namespace: {{ include "release_namespace" . }}
- path: /v1/webhook/conversion
- port: 9501
- conversionReviewVersions:
- - v1beta2
- - v1beta1
group: longhorn.io
names:
- kind: EngineImage
- listKind: EngineImageList
- plural: engineimages
+ kind: EngineFrontend
+ listKind: EngineFrontendList
+ plural: enginefrontends
shortNames:
- - lhei
- singular: engineimage
- preserveUnknownFields: false
+ - lhef
+ singular: enginefrontend
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: State of the engine image
- jsonPath: .status.state
+ - description: The data engine of the engine frontend
+ jsonPath: .spec.dataEngine
+ name: Data Engine
+ type: string
+ - description: The current state of the engine frontend
+ jsonPath: .status.currentState
name: State
type: string
- - description: The Longhorn engine image
- jsonPath: .spec.image
- name: Image
+ - description: The node that the engine frontend is on
+ jsonPath: .spec.nodeID
+ name: Node
type: string
- - description: Number of resources using the engine image
- jsonPath: .status.refCount
- name: RefCount
- type: integer
- - description: The build date of the engine image
- jsonPath: .status.buildDate
- name: BuildDate
- type: date
+ - description: The instance manager of the engine frontend
+ jsonPath: .status.instanceManagerName
+ name: InstanceManager
+ type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 EngineImage is deprecated; use longhorn.io/v1beta2
- EngineImage instead
- name: v1beta1
+ name: v1beta2
schema:
openAPIV3Schema:
- description: EngineImage is where Longhorn stores engine image object.
+ description: EngineFrontend is where Longhorn stores engine frontend object
+ for v2 data engine initiator.
properties:
apiVersion:
description: |-
@@ -1492,14 +1143,200 @@
metadata:
type: object
spec:
- x-kubernetes-preserve-unknown-fields: true
+ description: EngineFrontendSpec defines the desired state of the Longhorn
+ engine frontend (v2 initiator)
+ properties:
+ active:
+ type: boolean
+ dataEngine:
+ enum:
+ - v1
+ - v2
+ type: string
+ desireState:
+ type: string
+ disableFrontend:
+ type: boolean
+ engineName:
+ description: EngineName is the name of the v2 engine target (required
+ for EngineFrontend instance creation)
+ type: string
+ frontend:
+ enum:
+ - blockdev
+ - iscsi
+ - nvmf
+ - ublk
+ - ""
+ type: string
+ image:
+ type: string
+ logRequested:
+ type: boolean
+ nodeID:
+ type: string
+ salvageRequested:
+ type: boolean
+ size:
+ description: |-
+ Size is the desired size of the frontend device in bytes, as requested
+ by the volume owner. The EngineFrontend controller drives the frontend
+ device toward this size independently of the engine's target size.
+ format: int64
+ type: string
+ targetIP:
+ description: TargetIP is the IP address of the v2 engine target
+ type: string
+ targetPort:
+ description: TargetPort is the port of the v2 engine target
+ type: integer
+ ublkNumberOfQueue:
+ description: ublkNumberOfQueue controls the number of queues for ublk
+ frontend.
+ type: integer
+ ublkQueueDepth:
+ description: ublkQueueDepth controls the depth of each queue for ublk
+ frontend.
+ type: integer
+ volumeName:
+ type: string
+ volumeSize:
+ format: int64
+ type: string
+ type: object
status:
- x-kubernetes-preserve-unknown-fields: true
+ description: EngineFrontendStatus defines the observed state of the Longhorn
+ engine frontend
+ properties:
+ activePath:
+ description: ActivePath is the currently active frontend path address.
+ type: string
+ conditions:
+ 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
+ currentImage:
+ type: string
+ currentSize:
+ description: |-
+ CurrentSize is the current size of the frontend device in bytes, as
+ observed from the data plane. It is 0 while the engine frontend is not
+ running.
+ format: int64
+ type: string
+ currentState:
+ type: string
+ endpoint:
+ description: Endpoint is the initiator endpoint (e.g., /dev/longhorn/vol-name)
+ type: string
+ instanceManagerName:
+ type: string
+ ip:
+ type: string
+ logFetched:
+ type: boolean
+ ownerID:
+ type: string
+ paths:
+ description: Paths describes the currently known frontend multipath
+ state.
+ items:
+ properties:
+ anaState:
+ type: string
+ engineName:
+ type: string
+ nguid:
+ type: string
+ nqn:
+ type: string
+ targetIP:
+ type: string
+ targetPort:
+ type: integer
+ type: object
+ type: array
+ port:
+ type: integer
+ preferredPath:
+ description: PreferredPath is the preferred frontend path address.
+ type: string
+ salvageExecuted:
+ type: boolean
+ started:
+ type: boolean
+ starting:
+ type: boolean
+ storageIP:
+ type: string
+ switchoverPhase:
+ description: SwitchoverPhase is the last completed switchover phase
+ reported by the data plane.
+ type: string
+ targetIP:
+ description: TargetIP is the currently connected IP address of the
+ v2 engine target
+ type: string
+ targetPort:
+ description: TargetPort is the currently connected port of the v2
+ engine target
+ type: integer
+ ublkID:
+ format: int32
+ type: integer
+ uuid:
+ type: string
+ type: object
type: object
- served: false
- storage: false
+ served: true
+ storage: true
subresources:
status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.19.0
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+ longhorn-manager: ""
+ name: engineimages.longhorn.io
+spec:
+ group: longhorn.io
+ names:
+ kind: EngineImage
+ listKind: EngineImageList
+ plural: engineimages
+ shortNames:
+ - lhei
+ singular: engineimage
+ scope: Namespaced
+ versions:
- additionalPrinterColumns:
- description: Compatibility of the engine image
jsonPath: .status.incompatible
@@ -1633,7 +1470,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: engines.longhorn.io
@@ -1646,64 +1483,9 @@
shortNames:
- lhe
singular: engine
- preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The current state of the engine
- jsonPath: .status.currentState
- name: State
- type: string
- - description: The node that the engine is on
- jsonPath: .spec.nodeID
- name: Node
- type: string
- - description: The instance manager of the engine
- jsonPath: .status.instanceManagerName
- name: InstanceManager
- type: string
- - description: The current image of the engine
- jsonPath: .status.currentImage
- name: Image
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 Engine is deprecated; use longhorn.io/v1beta2
- Engine instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: Engine is where Longhorn stores engine object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The data engine of the engine
jsonPath: .spec.dataEngine
name: Data Engine
@@ -1779,6 +1561,14 @@
type: boolean
nodeID:
type: string
+ rebuildConcurrentSyncLimit:
+ description: |-
+ RebuildConcurrentSyncLimit controls the maximum number of file synchronization operations that can run
+ concurrently during a single replica rebuild.
+ It is determined by the global setting or the volume spec field with the same name.
+ maximum: 5
+ minimum: 0
+ type: integer
replicaAddressMap:
additionalProperties:
type: string
@@ -1796,6 +1586,14 @@
snapshotMaxSize:
format: int64
type: string
+ ublkNumberOfQueue:
+ description: ublkNumberOfQueue controls the number of queues for ublk
+ frontend.
+ type: integer
+ ublkQueueDepth:
+ description: ublkQueueDepth controls the depth of each queue for ublk
+ frontend.
+ type: integer
unmapMarkSnapChainRemovedEnabled:
type: boolean
upgradedReplicaAddressMap:
@@ -1922,13 +1720,29 @@
type: object
nullable: true
type: object
+ rebuildConcurrentSyncLimit:
+ description: |-
+ RebuildConcurrentSyncLimit controls the maximum number of file synchronization operations that can run
+ concurrently during a single replica rebuild.
+ It is determined by the global setting or the volume spec field with the same name.
+ minimum: 0
+ type: integer
rebuildStatus:
additionalProperties:
properties:
+ appliedRebuildingMBps:
+ format: int64
+ type: integer
error:
type: string
fromReplicaAddress:
+ description: Deprecated. We are now using FromReplicaAddressList
+ to list all source replicas.
type: string
+ fromReplicaAddressList:
+ items:
+ type: string
+ type: array
isRebuilding:
type: boolean
progress:
@@ -2012,6 +1826,8 @@
type: string
started:
type: boolean
+ starting:
+ type: boolean
storageIP:
type: string
ublkID:
@@ -2032,7 +1848,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: instancemanagers.longhorn.io
@@ -2045,60 +1861,9 @@
shortNames:
- lhim
singular: instancemanager
- preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The state of the instance manager
- jsonPath: .status.currentState
- name: State
- type: string
- - description: The type of the instance manager (engine or replica)
- jsonPath: .spec.type
- name: Type
- type: string
- - description: The node that the instance manager is running on
- jsonPath: .spec.nodeID
- name: Node
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 InstanceManager is deprecated; use longhorn.io/v1beta2
- InstanceManager instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: InstanceManager is where Longhorn stores instance manager object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The data engine of the instance manager
jsonPath: .spec.dataEngine
name: Data Engine
@@ -2196,6 +1961,35 @@
type: object
nullable: true
type: object
+ conditions:
+ 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
currentState:
type: string
dataEngineStatus:
@@ -2204,8 +1998,92 @@
properties:
cpuMask:
type: string
+ interruptModeEnabled:
+ description: |-
+ InterruptModeEnabled indicates whether the V2 data engine is running in
+ interrupt mode (true) or polling mode (false). Set by Longhorn manager;
+ read-only to users.
+ enum:
+ - ""
+ - "true"
+ - "false"
+ type: string
type: object
type: object
+ instanceEngineFrontends:
+ additionalProperties:
+ properties:
+ spec:
+ properties:
+ dataEngine:
+ type: string
+ name:
+ type: string
+ type: object
+ status:
+ properties:
+ activePath:
+ type: string
+ conditions:
+ additionalProperties:
+ type: boolean
+ nullable: true
+ type: object
+ endpoint:
+ type: string
+ errorMsg:
+ type: string
+ frontend:
+ type: string
+ listen:
+ type: string
+ paths:
+ items:
+ properties:
+ anaState:
+ type: string
+ engineName:
+ type: string
+ nguid:
+ type: string
+ nqn:
+ type: string
+ targetIP:
+ type: string
+ targetPort:
+ type: integer
+ type: object
+ type: array
+ portEnd:
+ format: int32
+ type: integer
+ portStart:
+ format: int32
+ type: integer
+ preferredPath:
+ type: string
+ resourceVersion:
+ format: int64
+ type: integer
+ state:
+ type: string
+ targetPortEnd:
+ format: int32
+ type: integer
+ targetPortStart:
+ format: int32
+ type: integer
+ type:
+ type: string
+ ublkID:
+ format: int32
+ type: integer
+ uuid:
+ type: string
+ type: object
+ type: object
+ nullable: true
+ type: object
instanceEngines:
additionalProperties:
properties:
@@ -2218,6 +2096,8 @@
type: object
status:
properties:
+ activePath:
+ type: string
conditions:
additionalProperties:
type: boolean
@@ -2227,14 +2107,35 @@
type: string
errorMsg:
type: string
+ frontend:
+ type: string
listen:
type: string
+ paths:
+ items:
+ properties:
+ anaState:
+ type: string
+ engineName:
+ type: string
+ nguid:
+ type: string
+ nqn:
+ type: string
+ targetIP:
+ type: string
+ targetPort:
+ type: integer
+ type: object
+ type: array
portEnd:
format: int32
type: integer
portStart:
format: int32
type: integer
+ preferredPath:
+ type: string
resourceVersion:
format: int64
type: integer
@@ -2269,6 +2170,8 @@
type: object
status:
properties:
+ activePath:
+ type: string
conditions:
additionalProperties:
type: boolean
@@ -2278,14 +2181,35 @@
type: string
errorMsg:
type: string
+ frontend:
+ type: string
listen:
type: string
+ paths:
+ items:
+ properties:
+ anaState:
+ type: string
+ engineName:
+ type: string
+ nguid:
+ type: string
+ nqn:
+ type: string
+ targetIP:
+ type: string
+ targetPort:
+ type: integer
+ type: object
+ type: array
portEnd:
format: int32
type: integer
portStart:
format: int32
type: integer
+ preferredPath:
+ type: string
resourceVersion:
format: int64
type: integer
@@ -2308,58 +2232,6 @@
type: object
nullable: true
type: object
- instances:
- additionalProperties:
- properties:
- spec:
- properties:
- dataEngine:
- type: string
- name:
- type: string
- type: object
- status:
- properties:
- conditions:
- additionalProperties:
- type: boolean
- nullable: true
- type: object
- 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
- targetPortEnd:
- format: int32
- type: integer
- targetPortStart:
- format: int32
- type: integer
- type:
- type: string
- ublkID:
- format: int32
- type: integer
- uuid:
- type: string
- type: object
- type: object
- description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas'
- nullable: true
- type: object
ip:
type: string
ownerID:
@@ -2379,23 +2251,11 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: nodes.longhorn.io
spec:
- conversion:
- strategy: Webhook
- webhook:
- clientConfig:
- service:
- name: longhorn-conversion-webhook
- namespace: {{ include "release_namespace" . }}
- path: /v1/webhook/conversion
- port: 9501
- conversionReviewVersions:
- - v1beta2
- - v1beta1
group: longhorn.io
names:
kind: Node
@@ -2404,62 +2264,10 @@
shortNames:
- lhn
singular: node
- preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Indicate whether the node is ready
- jsonPath: .status.conditions['Ready']['status']
- name: Ready
- type: string
- - description: Indicate whether the user disabled/enabled replica scheduling for
- the node
- jsonPath: .spec.allowScheduling
- name: AllowScheduling
- type: boolean
- - description: Indicate whether Longhorn can schedule replicas on the node
- jsonPath: .status.conditions['Schedulable']['status']
- name: Schedulable
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 Node is deprecated; use longhorn.io/v1beta2
- Node instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: Node is where Longhorn stores Longhorn node object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: Indicate whether the node is ready
jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Ready
type: string
@@ -2512,6 +2320,7 @@
- ""
- auto
- aio
+ - nvme
type: string
diskType:
enum:
@@ -2620,6 +2429,63 @@
type: string
filesystemType:
type: string
+ healthData:
+ additionalProperties:
+ properties:
+ attributes:
+ items:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ rawString:
+ type: string
+ rawValue:
+ format: int64
+ type: integer
+ threshold:
+ type: integer
+ value:
+ type: integer
+ whenFailed:
+ type: string
+ worst:
+ type: integer
+ type: object
+ type: array
+ capacity:
+ format: int64
+ type: integer
+ diskName:
+ type: string
+ diskType:
+ type: string
+ firmwareVersion:
+ type: string
+ healthStatus:
+ enum:
+ - FAILED
+ - PASSED
+ - UNKNOWN
+ - WARNING
+ type: string
+ modelName:
+ type: string
+ serialNumber:
+ type: string
+ source:
+ enum:
+ - SMART
+ - SPDK
+ type: string
+ temperature:
+ type: integer
+ type: object
+ type: object
+ healthDataLastCollectedAt:
+ format: date-time
+ type: string
instanceManagerName:
type: string
scheduledBackingImage:
@@ -2667,7 +2533,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: orphans.longhorn.io
@@ -2786,7 +2652,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: recurringjobs.longhorn.io
@@ -2807,69 +2673,6 @@
jsonPath: .spec.groups
name: Groups
type: string
- - description: Should be one of "backup" or "snapshot"
- jsonPath: .spec.task
- name: Task
- type: string
- - description: The cron expression represents recurring job scheduling
- jsonPath: .spec.cron
- name: Cron
- type: string
- - description: The number of snapshots/backups to keep for the volume
- jsonPath: .spec.retain
- name: Retain
- type: integer
- - description: The concurrent job to run by each cron job
- jsonPath: .spec.concurrency
- name: Concurrency
- type: integer
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- - description: Specify the labels
- jsonPath: .spec.labels
- name: Labels
- type: string
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 RecurringJob is deprecated; use longhorn.io/v1beta2
- RecurringJob instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: RecurringJob is where Longhorn stores recurring job object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: Sets groupings to the jobs. When set to "default" group will be
- added to the volume label when no other job label exist in volume
- jsonPath: .spec.groups
- name: Groups
- type: string
- description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup",
"snapshot-delete", "backup", "backup-force-create", "filesystem-trim" or "system-backup"
jsonPath: .spec.task
@@ -2986,7 +2789,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: replicas.longhorn.io
@@ -2999,68 +2802,9 @@
shortNames:
- lhr
singular: replica
- preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The current state of the replica
- jsonPath: .status.currentState
- name: State
- type: string
- - description: The node that the replica is on
- jsonPath: .spec.nodeID
- name: Node
- type: string
- - description: The disk that the replica is on
- jsonPath: .spec.diskID
- name: Disk
- type: string
- - description: The instance manager of the replica
- jsonPath: .status.instanceManagerName
- name: InstanceManager
- type: string
- - description: The current image of the replica
- jsonPath: .status.currentImage
- name: Image
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 Replica is deprecated; use longhorn.io/v1beta2
- Replica instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: Replica is where Longhorn stores replica object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The data engine of the replica
jsonPath: .spec.dataEngine
name: Data Engine
@@ -3238,9 +2982,6 @@
type: string
currentState:
type: string
- evictionRequested:
- description: 'Deprecated: Replaced by field `spec.evictionRequested`.'
- type: boolean
instanceManagerName:
type: string
ip:
@@ -3255,6 +2996,8 @@
type: boolean
started:
type: boolean
+ starting:
+ type: boolean
storageIP:
type: string
ublkID:
@@ -3273,7 +3016,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: settings.longhorn.io
@@ -3286,7 +3029,6 @@
shortNames:
- lhs
singular: setting
- preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -3294,48 +3036,6 @@
jsonPath: .value
name: Value
type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 Setting is deprecated; use longhorn.io/v1beta2
- Setting instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: Setting is where Longhorn stores setting object.
- 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
- value:
- type: string
- required:
- - value
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: The value of the setting
- jsonPath: .value
- name: Value
- type: string
- description: The setting is applied
jsonPath: .status.applied
name: Applied
@@ -3375,7 +3075,10 @@
- applied
type: object
value:
- description: The value of the setting.
+ description: |-
+ The value of the setting.
+ - It can be a non-JSON formatted string that is applied to all the applicable data engines listed in the setting definition.
+ - It can be a JSON formatted string that contains values for applicable data engines listed in the setting definition's Default.
type: string
required:
- value
@@ -3389,7 +3092,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: sharemanagers.longhorn.io
@@ -3413,51 +3116,9 @@
jsonPath: .status.ownerID
name: Node
type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 ShareManager is deprecated; use longhorn.io/v1beta2
- ShareManager instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: ShareManager is where Longhorn stores share manager object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- - description: The state of the share manager
- jsonPath: .status.state
- name: State
- type: string
- - description: The node that the share manager is owned by
- jsonPath: .status.ownerID
- name: Node
+ - description: The current image of the share manager
+ jsonPath: .status.currentImage
+ name: Image
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
@@ -3497,6 +3158,9 @@
description: ShareManagerStatus defines the observed state of the Longhorn
share manager
properties:
+ currentImage:
+ description: The image currently used by the share manager pod
+ type: string
endpoint:
description: NFS endpoint that can access the mounted filesystem of
the volume
@@ -3519,7 +3183,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: snapshots.longhorn.io
@@ -3607,6 +3271,11 @@
properties:
checksum:
type: string
+ checksumCalculatedAt:
+ description: |-
+ ChecksumCalculatedAt is the RFC3339 timestamp indicating when the checksum
+ for this snapshot was last calculated or updated.
+ type: string
children:
additionalProperties:
type: boolean
@@ -3629,6 +3298,8 @@
type: string
readyToUse:
type: boolean
+ requestedTime:
+ type: string
restoreSize:
format: int64
type: integer
@@ -3648,7 +3319,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: supportbundles.longhorn.io
@@ -3779,7 +3450,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: systembackups.longhorn.io
@@ -3916,7 +3587,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: systemrestores.longhorn.io
@@ -4025,7 +3696,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: volumeattachments.longhorn.io
@@ -4169,23 +3840,11 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.17.1
+ controller-gen.kubebuilder.io/version: v0.19.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: volumes.longhorn.io
spec:
- conversion:
- strategy: Webhook
- webhook:
- clientConfig:
- service:
- name: longhorn-conversion-webhook
- namespace: {{ include "release_namespace" . }}
- path: /v1/webhook/conversion
- port: 9501
- conversionReviewVersions:
- - v1beta2
- - v1beta1
group: longhorn.io
names:
kind: Volume
@@ -4194,68 +3853,9 @@
shortNames:
- lhv
singular: volume
- preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The state of the volume
- jsonPath: .status.state
- name: State
- type: string
- - description: The robustness of the volume
- jsonPath: .status.robustness
- name: Robustness
- type: string
- - description: The scheduled condition of the volume
- jsonPath: .status.conditions['scheduled']['status']
- name: Scheduled
- type: string
- - description: The size of the volume
- jsonPath: .spec.size
- name: Size
- type: string
- - description: The node that the volume is currently attaching to
- jsonPath: .status.currentNodeID
- name: Node
- type: string
- - jsonPath: .metadata.creationTimestamp
- name: Age
- type: date
- deprecated: true
- deprecationWarning: longhorn.io/v1beta1 Volume is deprecated; use longhorn.io/v1beta2
- Volume instead
- name: v1beta1
- schema:
- openAPIV3Schema:
- description: Volume is where Longhorn stores volume object.
- 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:
- x-kubernetes-preserve-unknown-fields: true
- status:
- x-kubernetes-preserve-unknown-fields: true
- type: object
- served: false
- storage: false
- subresources:
- status: {}
- - additionalPrinterColumns:
- description: The data engine of the volume
jsonPath: .spec.dataEngine
name: Data Engine
@@ -4280,6 +3880,11 @@
jsonPath: .status.currentNodeID
name: Node
type: string
+ - description: The engine switchover state
+ jsonPath: .status.switchoverState
+ name: Switchover
+ priority: 1
+ type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
@@ -4313,10 +3918,22 @@
accessMode:
enum:
- rwo
+ - rwop
- rwx
type: string
backingImage:
type: string
+ x-kubernetes-validations:
+ - message: BackingImage is immutable
+ rule: self == oldSelf
+ backupBlockSize:
+ description: BackupBlockSize indicate the block size to create backups.
+ The block size is immutable.
+ enum:
+ - "2097152"
+ - "16777216"
+ format: int64
+ type: string
backupCompressionMethod:
enum:
- none
@@ -4327,6 +3944,12 @@
description: The backup target name that the volume will be backed
up to or is synced.
type: string
+ cloneMode:
+ enum:
+ - ""
+ - full-copy
+ - linked-clone
+ type: string
dataEngine:
enum:
- v1
@@ -4348,6 +3971,14 @@
type: array
encrypted:
type: boolean
+ x-kubernetes-validations:
+ - message: Encrypted is immutable
+ rule: self == oldSelf
+ engineNodeID:
+ description: |-
+ engineNodeID defines the node where the backend engine (target) runs.
+ If empty, falls back to NodeID.
+ type: string
freezeFilesystemForSnapshot:
description: Setting that freezes the filesystem on the root partition
before a snapshot is created.
@@ -4375,6 +4006,8 @@
migrationNodeID:
type: string
nodeID:
+ description: nodeID defines the node where the volume is attached
+ (where the frontend initiator runs).
type: string
nodeSelector:
items:
@@ -4393,6 +4026,14 @@
- disabled
- enabled
type: string
+ rebuildConcurrentSyncLimit:
+ description: |-
+ RebuildConcurrentSyncLimit controls the maximum number of file synchronization operations that can run
+ concurrently during a single replica rebuild.
+ When set to 0, it means following the global setting.
+ maximum: 5
+ minimum: 0
+ type: integer
replicaAutoBalance:
enum:
- ignored
@@ -4408,6 +4049,14 @@
- enabled
- disabled
type: string
+ replicaRebuildingBandwidthLimit:
+ description: ReplicaRebuildingBandwidthLimit controls the maximum
+ write bandwidth (in megabytes per second) allowed on the destination
+ replica during the rebuilding process. Set this value to 0 to disable
+ bandwidth limiting.
+ format: int64
+ minimum: 0
+ type: integer
replicaSoftAntiAffinity:
description: Replica soft anti affinity of the volume. Set enabled
to allow replicas to be scheduled on the same node.
@@ -4442,6 +4091,15 @@
- enabled
- fast-check
type: string
+ snapshotHashingRequestedAt:
+ description: |-
+ SnapshotHashingRequestedAt is the RFC3339 timestamp (e.g., "2026-03-16T10:30:00Z") when an on-demand snapshot checksum calculation is requested.
+ When this value is set and is later than LastOnDemandSnapshotHashingCompleteAt, the system will calculate checksums
+ for all user snapshots.
+
+ If SnapshotHashingRequestedAt differs from LastOnDemandSnapshotHashingCompleteAt, it indicates that a hashing request
+ is still in progress, and a new request will be rejected.
+ type: string
snapshotMaxCount:
type: integer
snapshotMaxSize:
@@ -4449,6 +4107,14 @@
type: string
staleReplicaTimeout:
type: integer
+ ublkNumberOfQueue:
+ description: ublkNumberOfQueue controls the number of queues for ublk
+ frontend.
+ type: integer
+ ublkQueueDepth:
+ description: ublkQueueDepth controls the depth of each queue for ublk
+ frontend.
+ type: integer
unmapMarkSnapChainRemoved:
enum:
- ignored
@@ -4504,6 +4170,10 @@
type: object
nullable: true
type: array
+ currentEngineNodeID:
+ description: the node that the engine (target) is currently running
+ on.
+ type: string
currentImage:
type: string
currentMigrationNodeID:
@@ -4548,12 +4218,20 @@
nullable: true
type: array
type: object
+ lastAutoSalvagedAt:
+ type: string
lastBackup:
type: string
lastBackupAt:
type: string
lastDegradedAt:
type: string
+ lastOnDemandSnapshotHashingCompleteAt:
+ description: |-
+ LastOnDemandSnapshotHashingCompleteAt is the RFC3339 timestamp (e.g., "2026-03-16T10:30:00Z") when the
+ most recent on-demand snapshot checksum calculation completed.
+ When this value matches SnapshotHashingRequestedAt, the requested on-demand checksum calculation is considered complete.
+ type: string
ownerID:
type: string
remountRequestedAt:
@@ -4570,6 +4248,11 @@
type: string
state:
type: string
+ switchoverState:
+ description: |-
+ SwitchoverState describes the current progress of a v2 engine live switchover.
+ Empty when no switchover is in progress.
+ type: string
type: object
type: object
served: true