update
diff --git a/charts/longhorn/templates/clusterrole.yaml b/charts/longhorn/templates/clusterrole.yaml
index e652a34..c065f17 100644
--- a/charts/longhorn/templates/clusterrole.yaml
+++ b/charts/longhorn/templates/clusterrole.yaml
@@ -35,14 +35,17 @@
resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"]
verbs: ["*"]
- apiGroups: ["longhorn.io"]
- resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings",
+ resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", "settings/status",
"engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
+ {{- if .Values.openshift.enabled }}
+ "engineimages/finalizers", "nodes/finalizers", "instancemanagers/finalizers",
+ {{- end }}
"sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status",
"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",
- "volumeattachments", "volumeattachments/status"]
+ "volumeattachments", "volumeattachments/status", "backupbackingimages", "backupbackingimages/status"]
verbs: ["*"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
@@ -59,3 +62,16 @@
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"]
verbs: ["*"]
+{{- if .Values.openshift.enabled }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: longhorn-ocp-privileged-role
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+rules:
+- apiGroups: ["security.openshift.io"]
+ resources: ["securitycontextconstraints"]
+ resourceNames: ["anyuid", "privileged"]
+ verbs: ["use"]
+{{- end }}
diff --git a/charts/longhorn/templates/clusterrolebinding.yaml b/charts/longhorn/templates/clusterrolebinding.yaml
index 8ab944b..2e34f01 100644
--- a/charts/longhorn/templates/clusterrolebinding.yaml
+++ b/charts/longhorn/templates/clusterrolebinding.yaml
@@ -25,3 +25,25 @@
- kind: ServiceAccount
name: longhorn-support-bundle
namespace: {{ include "release_namespace" . }}
+{{- if .Values.openshift.enabled }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: longhorn-ocp-privileged-bind
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: longhorn-ocp-privileged-role
+subjects:
+- kind: ServiceAccount
+ name: longhorn-service-account
+ namespace: {{ include "release_namespace" . }}
+- kind: ServiceAccount
+ name: longhorn-ui-service-account
+ namespace: {{ include "release_namespace" . }}
+- kind: ServiceAccount
+ name: default # supportbundle-agent-support-bundle uses default sa
+ namespace: {{ include "release_namespace" . }}
+{{- end }}
diff --git a/charts/longhorn/templates/crds.yaml b/charts/longhorn/templates/crds.yaml
index ac56efe..44a19b2 100644
--- a/charts/longhorn/templates/crds.yaml
+++ b/charts/longhorn/templates/crds.yaml
@@ -2,8 +2,7 @@
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backingimagedatasources.longhorn.io
@@ -19,7 +18,8 @@
scope: Namespaced
versions:
- additionalPrinterColumns:
- - description: The current state of the pod used to provision the backing image file from source
+ - description: The current state of the pod used to provision the backing image
+ file from source
jsonPath: .status.currentState
name: State
type: string
@@ -41,13 +41,23 @@
name: v1beta1
schema:
openAPIV3Schema:
- description: BackingImageDataSource is where Longhorn stores backing image data source object.
+ 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'
+ 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'
+ 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
@@ -65,7 +75,8 @@
jsonPath: .spec.uuid
name: UUID
type: string
- - description: The current state of the pod used to provision the backing image file from source
+ - description: The current state of the pod used to provision the backing image
+ file from source
jsonPath: .status.currentState
name: State
type: string
@@ -91,18 +102,29 @@
name: v1beta2
schema:
openAPIV3Schema:
- description: BackingImageDataSource is where Longhorn stores backing image data source object.
+ 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'
+ 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'
+ 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: BackingImageDataSourceSpec defines the desired state of the Longhorn backing image data source
+ description: BackingImageDataSourceSpec defines the desired state of the
+ Longhorn backing image data source
properties:
checksum:
type: string
@@ -123,12 +145,15 @@
- download
- upload
- export-from-volume
+ - restore
+ - clone
type: string
uuid:
type: string
type: object
status:
- description: BackingImageDataSourceStatus defines the observed state of the Longhorn backing image data source
+ description: BackingImageDataSourceStatus defines the observed state of
+ the Longhorn backing image data source
properties:
checksum:
type: string
@@ -158,19 +183,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backingimagemanagers.longhorn.io
@@ -212,13 +230,23 @@
name: v1beta1
schema:
openAPIV3Schema:
- description: BackingImageManager is where Longhorn stores backing image manager object.
+ 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'
+ 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'
+ 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
@@ -258,18 +286,29 @@
name: v1beta2
schema:
openAPIV3Schema:
- description: BackingImageManager is where Longhorn stores backing image manager object.
+ 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'
+ 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'
+ 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: BackingImageManagerSpec defines the desired state of the Longhorn backing image manager
+ description: BackingImageManagerSpec defines the desired state of the
+ Longhorn backing image manager
properties:
backingImages:
additionalProperties:
@@ -285,7 +324,8 @@
type: string
type: object
status:
- description: BackingImageManagerStatus defines the observed state of the Longhorn backing image manager
+ description: BackingImageManagerStatus defines the observed state of the
+ Longhorn backing image manager
properties:
apiMinVersion:
type: integer
@@ -302,6 +342,9 @@
type: string
progress:
type: integer
+ realSize:
+ format: int64
+ type: integer
senderManagerAddress:
type: string
sendingReference:
@@ -313,6 +356,9 @@
type: string
uuid:
type: string
+ virtualSize:
+ format: int64
+ type: integer
type: object
nullable: true
type: object
@@ -330,19 +376,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backingimages.longhorn.io
@@ -383,10 +422,19 @@
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'
+ 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'
+ 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
@@ -412,6 +460,10 @@
jsonPath: .status.size
name: Size
type: string
+ - description: The virtual size of the image (may be larger than file size)
+ jsonPath: .status.virtualSize
+ name: VirtualSize
+ type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
@@ -421,22 +473,66 @@
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'
+ 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'
+ 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: BackingImageSpec defines the desired state of the Longhorn backing image
+ description: BackingImageSpec defines the desired state of the Longhorn
+ backing image
properties:
checksum:
type: string
+ dataEngine:
+ default: v1
+ enum:
+ - v1
+ - v2
+ type: string
+ diskFileSpecMap:
+ additionalProperties:
+ properties:
+ dataEngine:
+ enum:
+ - v1
+ - v2
+ type: string
+ evictionRequested:
+ type: boolean
+ type: object
+ type: object
+ diskSelector:
+ items:
+ type: string
+ type: array
disks:
additionalProperties:
type: string
+ description: Deprecated. We are now using DiskFileSpecMap to assign
+ different spec to the file on different disks.
type: object
+ minNumberOfCopies:
+ type: integer
+ nodeSelector:
+ items:
+ type: string
+ type: array
+ secret:
+ type: string
+ secretNamespace:
+ type: string
sourceParameters:
additionalProperties:
type: string
@@ -446,16 +542,24 @@
- download
- upload
- export-from-volume
+ - restore
+ - clone
type: string
type: object
status:
- description: BackingImageStatus defines the observed state of the Longhorn backing image status
+ description: BackingImageStatus defines the observed state of the Longhorn
+ backing image status
properties:
checksum:
type: string
diskFileStatusMap:
additionalProperties:
properties:
+ dataEngine:
+ enum:
+ - v1
+ - v2
+ type: string
lastStateTransitionTime:
type: string
message:
@@ -474,30 +578,209 @@
type: object
ownerID:
type: string
+ realSize:
+ description: Real size of image in bytes, which may be smaller than
+ the size when the file is a sparse file. Will be zero until known
+ (e.g. while a backing image is uploading)
+ format: int64
+ type: integer
size:
format: int64
type: integer
uuid:
type: string
+ v2FirstCopyDisk:
+ type: string
+ v2FirstCopyStatus:
+ description: It is pending -> in-progress -> ready/failed
+ type: string
+ virtualSize:
+ description: Virtual size of image in bytes, which may be larger than
+ physical size. Will be zero until known (e.g. while a backing image
+ is uploading)
+ format: int64
+ type: integer
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.15.0
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+ longhorn-manager: ""
+ name: backupbackingimages.longhorn.io
+spec:
+ group: longhorn.io
+ names:
+ kind: BackupBackingImage
+ listKind: BackupBackingImageList
+ plural: backupbackingimages
+ shortNames:
+ - lhbbi
+ singular: backupbackingimage
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: The backing image name
+ jsonPath: .status.backingImage
+ name: BackingImage
+ type: string
+ - description: The backing image size
+ jsonPath: .status.size
+ name: Size
+ type: string
+ - description: The backing image backup upload finished time
+ jsonPath: .status.backupCreatedAt
+ name: BackupCreatedAt
+ type: string
+ - description: The backing image backup state
+ jsonPath: .status.state
+ name: State
+ type: string
+ - description: The last synced time
+ jsonPath: .status.lastSyncedAt
+ name: LastSyncedAt
+ type: string
+ name: v1beta2
+ schema:
+ openAPIV3Schema:
+ description: BackupBackingImage is where Longhorn stores backing image 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:
+ description: BackupBackingImageSpec defines the desired state of the Longhorn
+ backing image backup
+ properties:
+ backingImage:
+ description: |-
+ The backing image name.
+ type: string
+ backupTargetName:
+ description: The backup target name.
+ nullable: true
+ type: string
+ labels:
+ additionalProperties:
+ type: string
+ description: The labels of backing image backup.
+ type: object
+ syncRequestedAt:
+ description: The time to request run sync the remote backing image
+ backup.
+ format: date-time
+ nullable: true
+ type: string
+ userCreated:
+ description: |-
+ Is this CR created by user through API or UI.
+ type: boolean
+ required:
+ - backingImage
+ - userCreated
+ type: object
+ status:
+ description: BackupBackingImageStatus defines the observed state of the
+ Longhorn backing image backup
+ properties:
+ backingImage:
+ description: The backing image name.
+ type: string
+ backupCreatedAt:
+ description: The backing image backup upload finished time.
+ type: string
+ checksum:
+ description: The checksum of the backing image.
+ type: string
+ compressionMethod:
+ description: Compression method
+ type: string
+ error:
+ description: The error message when taking the backing image backup.
+ type: string
+ labels:
+ additionalProperties:
+ type: string
+ description: The labels of backing image backup.
+ nullable: true
+ type: object
+ lastSyncedAt:
+ description: The last time that the backing image backup was synced
+ with the remote backup target.
+ format: date-time
+ nullable: true
+ type: string
+ managerAddress:
+ description: The address of the backing image manager that runs backing
+ image backup.
+ type: string
+ messages:
+ additionalProperties:
+ type: string
+ description: The error messages when listing or inspecting backing
+ image backup.
+ nullable: true
+ type: object
+ ownerID:
+ description: The node ID on which the controller is responsible to
+ reconcile this CR.
+ type: string
+ progress:
+ description: The backing image backup progress.
+ type: integer
+ secret:
+ description: Record the secret if this backup backing image is encrypted
+ type: string
+ secretNamespace:
+ description: Record the secret namespace if this backup backing image
+ is encrypted
+ type: string
+ size:
+ description: The backing image size.
+ format: int64
+ type: integer
+ state:
+ description: |-
+ The backing image backup creation state.
+ Can be "", "InProgress", "Completed", "Error", "Unknown".
+ type: string
+ url:
+ description: The backing image backup URL.
+ type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backups.longhorn.io
@@ -539,10 +822,19 @@
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'
+ 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'
+ 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
@@ -568,6 +860,10 @@
jsonPath: .status.snapshotCreatedAt
name: SnapshotCreatedAt
type: string
+ - description: The backup target name
+ jsonPath: .status.backupTargetName
+ name: BackupTarget
+ type: string
- description: The backup state
jsonPath: .status.state
name: State
@@ -582,16 +878,34 @@
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'
+ 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'
+ 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: BackupSpec defines the desired state of the Longhorn backup
properties:
+ backupMode:
+ description: |-
+ The backup mode of this backup.
+ Can be "full" or "incremental"
+ enum:
+ - full
+ - incremental
+ - ""
+ type: string
labels:
additionalProperties:
type: string
@@ -612,6 +926,9 @@
backupCreatedAt:
description: The snapshot backup upload finished time.
type: string
+ backupTargetName:
+ description: The backup target name.
+ type: string
compressionMethod:
description: Compression method
type: string
@@ -625,22 +942,31 @@
nullable: true
type: object
lastSyncedAt:
- description: The last time that the backup was synced with the remote backup target.
+ description: The last time that the backup was synced with the remote
+ backup target.
format: date-time
nullable: true
type: string
messages:
additionalProperties:
type: string
- description: The error messages when calling longhorn engine on listing or inspecting backups.
+ description: The error messages when calling longhorn engine on listing
+ or inspecting backups.
nullable: true
type: object
+ newlyUploadDataSize:
+ description: Size in bytes of newly uploaded data
+ type: string
ownerID:
- description: The node ID on which the controller is responsible to reconcile this backup CR.
+ description: The node ID on which the controller is responsible to
+ reconcile this backup CR.
type: string
progress:
description: The snapshot backup progress.
type: integer
+ reUploadedDataSize:
+ description: Size in bytes of reuploaded data
+ type: string
replicaAddress:
description: The address of the replica that runs snapshot backup.
type: string
@@ -654,7 +980,9 @@
description: The snapshot name.
type: string
state:
- description: The backup creation state. Can be "", "InProgress", "Completed", "Error", "Unknown".
+ description: |-
+ The backup creation state.
+ Can be "", "InProgress", "Completed", "Error", "Unknown".
type: string
url:
description: The snapshot backup URL.
@@ -677,19 +1005,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backuptargets.longhorn.io
@@ -743,10 +1064,19 @@
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'
+ 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'
+ 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
@@ -786,15 +1116,25 @@
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'
+ 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'
+ 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: BackupTargetSpec defines the desired state of the Longhorn backup target
+ description: BackupTargetSpec defines the desired state of the Longhorn
+ backup target
properties:
backupTargetURL:
description: The backup target URL.
@@ -803,7 +1143,8 @@
description: The backup target credential secret.
type: string
pollInterval:
- description: The interval that the cluster needs to run sync with the backup target.
+ description: The interval that the cluster needs to run sync with
+ the backup target.
type: string
syncRequestedAt:
description: The time to request run sync the remote backup target.
@@ -812,10 +1153,12 @@
type: string
type: object
status:
- description: BackupTargetStatus defines the observed state of the Longhorn backup target
+ description: BackupTargetStatus defines the observed state of the Longhorn
+ backup target
properties:
available:
- description: Available indicates if the remote backup target is available or not.
+ description: Available indicates if the remote backup target is available
+ or not.
type: boolean
conditions:
description: Records the reason on why the backup target is unavailable.
@@ -825,16 +1168,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -843,12 +1191,14 @@
nullable: true
type: array
lastSyncedAt:
- description: The last time that the controller synced with the remote backup target.
+ description: The last time that the controller synced with the remote
+ backup target.
format: date-time
nullable: true
type: string
ownerID:
- description: The node ID on which the controller is responsible to reconcile this backup target CR.
+ description: The node ID on which the controller is responsible to
+ reconcile this backup target CR.
type: string
type: object
type: object
@@ -856,19 +1206,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: backupvolumes.longhorn.io
@@ -906,10 +1249,19 @@
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'
+ 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'
+ 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
@@ -923,6 +1275,10 @@
subresources:
status: {}
- additionalPrinterColumns:
+ - description: The backup target name
+ jsonPath: .spec.backupTargetName
+ name: BackupTarget
+ type: string
- description: The backup volume creation time
jsonPath: .status.createdAt
name: CreatedAt
@@ -945,24 +1301,42 @@
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'
+ 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'
+ 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: BackupVolumeSpec defines the desired state of the Longhorn backup volume
+ description: BackupVolumeSpec defines the desired state of the Longhorn
+ backup volume
properties:
+ backupTargetName:
+ description: The backup target name that the backup volume was synced.
+ nullable: true
+ type: string
syncRequestedAt:
description: The time to request run sync the remote backup volume.
format: date-time
nullable: true
type: string
+ volumeName:
+ description: The volume name that the backup volume was used to backup.
+ type: string
type: object
status:
- description: BackupVolumeStatus defines the observed state of the Longhorn backup volume
+ description: BackupVolumeStatus defines the observed state of the Longhorn
+ backup volume
properties:
backingImageChecksum:
description: the backing image checksum.
@@ -994,18 +1368,21 @@
nullable: true
type: string
lastSyncedAt:
- description: The last time that the backup volume was synced into the cluster.
+ description: The last time that the backup volume was synced into
+ the cluster.
format: date-time
nullable: true
type: string
messages:
additionalProperties:
type: string
- description: The error messages when call longhorn engine on list or inspect backup volumes.
+ description: The error messages when call longhorn engine on list
+ or inspect backup volumes.
nullable: true
type: object
ownerID:
- description: The node ID on which the controller is responsible to reconcile this backup volume CR.
+ description: The node ID on which the controller is responsible to
+ reconcile this backup volume CR.
type: string
size:
description: The backup volume size.
@@ -1019,24 +1396,16 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: engineimages.longhorn.io
spec:
- preserveUnknownFields: false
conversion:
strategy: Webhook
webhook:
@@ -1057,6 +1426,7 @@
shortNames:
- lhei
singular: engineimage
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -1085,10 +1455,19 @@
description: EngineImage is where Longhorn stores engine 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'
+ 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'
+ 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
@@ -1102,6 +1481,10 @@
subresources:
status: {}
- additionalPrinterColumns:
+ - description: Compatibility of the engine image
+ jsonPath: .status.incompatible
+ name: Incompatible
+ type: boolean
- description: State of the engine image
jsonPath: .status.state
name: State
@@ -1127,15 +1510,25 @@
description: EngineImage is where Longhorn stores engine 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'
+ 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'
+ 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: EngineImageSpec defines the desired state of the Longhorn engine image
+ description: EngineImageSpec defines the desired state of the Longhorn
+ engine image
properties:
image:
minLength: 1
@@ -1144,7 +1537,8 @@
- image
type: object
status:
- description: EngineImageStatus defines the observed state of the Longhorn engine image
+ description: EngineImageStatus defines the observed state of the Longhorn
+ engine image
properties:
buildDate:
type: string
@@ -1159,16 +1553,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -1186,6 +1585,8 @@
type: integer
gitCommit:
type: string
+ incompatible:
+ type: boolean
noRefSince:
type: string
nodeDeploymentMap:
@@ -1207,19 +1608,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: engines.longhorn.io
@@ -1232,6 +1626,7 @@
shortNames:
- lhe
singular: engine
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -1260,10 +1655,19 @@
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'
+ 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'
+ 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
@@ -1277,6 +1681,10 @@
subresources:
status: {}
- additionalPrinterColumns:
+ - description: The data engine of the engine
+ jsonPath: .spec.dataEngine
+ name: Data Engine
+ type: string
- description: The current state of the engine
jsonPath: .status.currentState
name: State
@@ -1302,10 +1710,19 @@
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'
+ 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'
+ 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
@@ -1315,17 +1732,21 @@
active:
type: boolean
backendStoreDriver:
+ description: Deprecated:Replaced by field `dataEngine`.
+ type: string
+ backupVolume:
+ type: string
+ dataEngine:
enum:
- v1
- v2
type: string
- backupVolume:
- type: string
desireState:
type: string
disableFrontend:
type: boolean
engineImage:
+ description: 'Deprecated: Replaced by field `image`.'
type: string
frontend:
enum:
@@ -1334,6 +1755,8 @@
- nvmf
- ""
type: string
+ image:
+ type: string
logRequested:
type: boolean
nodeID:
@@ -1350,6 +1773,11 @@
type: boolean
salvageRequested:
type: boolean
+ snapshotMaxCount:
+ type: integer
+ snapshotMaxSize:
+ format: int64
+ type: string
unmapMarkSnapChainRemovedEnabled:
type: boolean
upgradedReplicaAddressMap:
@@ -1408,16 +1836,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -1492,6 +1925,14 @@
type: string
nullable: true
type: object
+ replicaTransitionTimeMap:
+ additionalProperties:
+ type: string
+ description: |-
+ ReplicaTransitionTimeMap records the time a replica in ReplicaModeMap transitions from one mode to another (or
+ from not being in the ReplicaModeMap to being in it). This information is sometimes required by other controllers
+ (e.g. the volume controller uses it to determine the correct value for replica.Spec.lastHealthyAt).
+ type: object
restoreStatus:
additionalProperties:
properties:
@@ -1516,6 +1957,11 @@
type: object
salvageExecuted:
type: boolean
+ snapshotMaxCount:
+ type: integer
+ snapshotMaxSize:
+ format: int64
+ type: string
snapshots:
additionalProperties:
properties:
@@ -1558,19 +2004,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: instancemanagers.longhorn.io
@@ -1583,6 +2022,7 @@
shortNames:
- lhim
singular: instancemanager
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -1607,10 +2047,19 @@
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'
+ 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'
+ 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
@@ -1624,6 +2073,10 @@
subresources:
status: {}
- additionalPrinterColumns:
+ - description: The data engine of the instance manager
+ jsonPath: .spec.dataEngine
+ name: Data Engine
+ type: string
- description: The state of the instance manager
jsonPath: .status.currentState
name: State
@@ -1645,16 +2098,36 @@
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'
+ 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'
+ 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: InstanceManagerSpec defines the desired state of the Longhorn instancer manager
+ description: InstanceManagerSpec defines the desired state of the Longhorn
+ instance manager
properties:
+ dataEngine:
+ type: string
+ dataEngineSpec:
+ properties:
+ v2:
+ properties:
+ cpuMask:
+ type: string
+ type: object
+ type: object
image:
type: string
nodeID:
@@ -1667,30 +2140,66 @@
type: string
type: object
status:
- description: InstanceManagerStatus defines the observed state of the Longhorn instance manager
+ description: InstanceManagerStatus defines the observed state of the Longhorn
+ instance manager
properties:
apiMinVersion:
type: integer
apiVersion:
type: integer
- proxyApiMinVersion:
- type: integer
- proxyApiVersion:
- type: integer
+ backingImages:
+ additionalProperties:
+ properties:
+ currentChecksum:
+ type: string
+ diskUUID:
+ type: string
+ message:
+ type: string
+ name:
+ type: string
+ progress:
+ type: integer
+ size:
+ format: int64
+ type: integer
+ state:
+ type: string
+ uuid:
+ type: string
+ type: object
+ nullable: true
+ type: object
currentState:
type: string
+ dataEngineStatus:
+ properties:
+ v2:
+ properties:
+ cpuMask:
+ type: string
+ type: object
+ type: object
instanceEngines:
additionalProperties:
properties:
spec:
properties:
backendStoreDriver:
+ description: Deprecated:Replaced by field `dataEngine`.
+ type: string
+ dataEngine:
type: string
name:
type: string
type: object
status:
properties:
+ conditions:
+ additionalProperties:
+ type: boolean
+ nullable: true
+ type: object
endpoint:
type: string
errorMsg:
@@ -1708,6 +2217,12 @@
type: integer
state:
type: string
+ targetPortEnd:
+ format: int32
+ type: integer
+ targetPortStart:
+ format: int32
+ type: integer
type:
type: string
type: object
@@ -1720,12 +2235,20 @@
spec:
properties:
backendStoreDriver:
+ description: Deprecated:Replaced by field `dataEngine`.
+ type: string
+ dataEngine:
type: string
name:
type: string
type: object
status:
properties:
+ conditions:
+ additionalProperties:
+ type: boolean
+ nullable: true
+ type: object
endpoint:
type: string
errorMsg:
@@ -1743,6 +2266,12 @@
type: integer
state:
type: string
+ targetPortEnd:
+ format: int32
+ type: integer
+ targetPortStart:
+ format: int32
+ type: integer
type:
type: string
type: object
@@ -1755,12 +2284,20 @@
spec:
properties:
backendStoreDriver:
+ description: Deprecated:Replaced by field `dataEngine`.
+ type: string
+ dataEngine:
type: string
name:
type: string
type: object
status:
properties:
+ conditions:
+ additionalProperties:
+ type: boolean
+ nullable: true
+ type: object
endpoint:
type: string
errorMsg:
@@ -1778,41 +2315,43 @@
type: integer
state:
type: string
+ targetPortEnd:
+ format: int32
+ type: integer
+ targetPortStart:
+ format: int32
+ type: integer
type:
type: string
type: object
type: object
- nullable: true
description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas'
+ nullable: true
type: object
ip:
type: string
ownerID:
type: string
+ proxyApiMinVersion:
+ type: integer
+ proxyApiVersion:
+ type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: nodes.longhorn.io
spec:
- preserveUnknownFields: false
conversion:
strategy: Webhook
webhook:
@@ -1833,6 +2372,7 @@
shortNames:
- lhn
singular: node
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -1840,7 +2380,8 @@
jsonPath: .status.conditions['Ready']['status']
name: Ready
type: string
- - description: Indicate whether the user disabled/enabled replica scheduling for the node
+ - description: Indicate whether the user disabled/enabled replica scheduling for
+ the node
jsonPath: .spec.allowScheduling
name: AllowScheduling
type: boolean
@@ -1857,10 +2398,19 @@
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'
+ 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'
+ 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
@@ -1878,7 +2428,8 @@
jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Ready
type: string
- - description: Indicate whether the user disabled/enabled replica scheduling for the node
+ - description: Indicate whether the user disabled/enabled replica scheduling for
+ the node
jsonPath: .spec.allowScheduling
name: AllowScheduling
type: boolean
@@ -1895,10 +2446,19 @@
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'
+ 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'
+ 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
@@ -1912,6 +2472,17 @@
properties:
allowScheduling:
type: boolean
+ diskDriver:
+ enum:
+ - ""
+ - auto
+ - aio
+ type: string
+ diskType:
+ enum:
+ - filesystem
+ - block
+ type: string
evictionRequested:
type: boolean
path:
@@ -1923,11 +2494,6 @@
items:
type: string
type: array
- diskType:
- enum:
- - filesystem
- - block
- type: string
type: object
type: object
evictionRequested:
@@ -1944,6 +2510,8 @@
status:
description: NodeStatus defines the observed state of the Longhorn node
properties:
+ autoEvicting:
+ type: boolean
conditions:
items:
properties:
@@ -1951,16 +2519,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -1978,16 +2551,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from
+ one status to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details
+ about last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -1995,10 +2573,26 @@
type: object
nullable: true
type: array
+ diskDriver:
+ type: string
+ diskName:
+ type: string
+ diskPath:
+ type: string
diskType:
type: string
diskUUID:
type: string
+ filesystemType:
+ type: string
+ instanceManagerName:
+ type: string
+ scheduledBackingImage:
+ additionalProperties:
+ format: int64
+ type: integer
+ nullable: true
+ type: object
scheduledReplica:
additionalProperties:
format: int64
@@ -2024,8 +2618,6 @@
lastPeriodicCheckedAt:
format: date-time
type: string
- snapshotCheckState:
- type: string
type: object
zone:
type: string
@@ -2035,19 +2627,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: orphans.longhorn.io
@@ -2077,21 +2662,34 @@
description: Orphan is where Longhorn stores orphan 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'
+ 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'
+ 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: OrphanSpec defines the desired state of the Longhorn orphaned data
+ description: OrphanSpec defines the desired state of the Longhorn orphaned
+ data
properties:
nodeID:
- description: The node ID on which the controller is responsible to reconcile this orphan CR.
+ description: The node ID on which the controller is responsible to
+ reconcile this orphan CR.
type: string
orphanType:
- description: The type of the orphaned data. Can be "replica".
+ description: |-
+ The type of the orphaned data.
+ Can be "replica".
type: string
parameters:
additionalProperties:
@@ -2100,7 +2698,8 @@
type: object
type: object
status:
- description: OrphanStatus defines the observed state of the Longhorn orphaned data
+ description: OrphanStatus defines the observed state of the Longhorn orphaned
+ data
properties:
conditions:
items:
@@ -2109,16 +2708,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -2134,20 +2738,13 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
- labels:
+ controller-gen.kubebuilder.io/version: v0.15.0
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: recurringjobs.longhorn.io
spec:
@@ -2162,7 +2759,8 @@
scope: Namespaced
versions:
- 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
+ - 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
@@ -2195,10 +2793,19 @@
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'
+ 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'
+ 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
@@ -2212,11 +2819,13 @@
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
+ - 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" or "filesystem-trim"
+ - 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
@@ -2245,15 +2854,25 @@
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'
+ 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'
+ 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: RecurringJobSpec defines the desired state of the Longhorn recurring job
+ description: RecurringJobSpec defines the desired state of the Longhorn
+ recurring job
properties:
concurrency:
description: The concurrency of taking the snapshot/backup.
@@ -2274,11 +2893,20 @@
name:
description: The recurring job name.
type: string
+ parameters:
+ additionalProperties:
+ type: string
+ description: |-
+ The parameters of the snapshot/backup.
+ Support parameters: "full-backup-interval".
+ type: object
retain:
description: The retain count of the snapshot/backup.
type: integer
task:
- description: The recurring job task. Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
+ 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
@@ -2290,10 +2918,15 @@
type: string
type: object
status:
- description: RecurringJobStatus defines the observed state of the Longhorn recurring job
+ description: RecurringJobStatus defines the observed state of the Longhorn
+ recurring job
properties:
+ executionCount:
+ description: The number of jobs that have been triggered.
+ type: integer
ownerID:
- description: The owner ID which is responsible to reconcile this recurring job CR.
+ description: The owner ID which is responsible to reconcile this recurring
+ job CR.
type: string
type: object
type: object
@@ -2301,19 +2934,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: replicas.longhorn.io
@@ -2326,6 +2952,7 @@
shortNames:
- lhr
singular: replica
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -2358,10 +2985,19 @@
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'
+ 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'
+ 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
@@ -2375,6 +3011,10 @@
subresources:
status: {}
- additionalPrinterColumns:
+ - description: The data engine of the replica
+ jsonPath: .spec.dataEngine
+ name: Data Engine
+ type: string
- description: The current state of the replica
jsonPath: .status.currentState
name: State
@@ -2404,10 +3044,19 @@
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'
+ 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'
+ 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
@@ -2417,14 +3066,17 @@
active:
type: boolean
backendStoreDriver:
- enum:
- - v1
- - v2
+ description: Deprecated:Replaced by field `dataEngine`.
type: string
backingImage:
type: string
dataDirectoryName:
type: string
+ dataEngine:
+ enum:
+ - v1
+ - v2
+ type: string
desireState:
type: string
diskID:
@@ -2432,17 +3084,58 @@
diskPath:
type: string
engineImage:
+ description: 'Deprecated: Replaced by field `image`.'
type: string
engineName:
type: string
+ evictionRequested:
+ type: boolean
failedAt:
+ description: |-
+ FailedAt is set when a running replica fails or when a running engine is unable to use a replica for any reason.
+ FailedAt indicates the time the failure occurred. When FailedAt is set, a replica is likely to have useful
+ (though possibly stale) data. A replica with FailedAt set must be rebuilt from a non-failed replica (or it can
+ be used in a salvage if all replicas are failed). FailedAt is cleared before a rebuild or salvage. FailedAt may
+ be later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
+ controller acknowledges the change.
type: string
hardNodeAffinity:
type: string
healthyAt:
+ description: |-
+ HealthyAt is set the first time a replica becomes read/write in an engine after creation or rebuild. HealthyAt
+ indicates the time the last successful rebuild occurred. When HealthyAt is set, a replica is likely to have
+ useful (though possibly stale) data. HealthyAt is cleared before a rebuild. HealthyAt may be later than the
+ corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume controller
+ acknowledges the change.
+ type: string
+ image:
+ type: string
+ lastFailedAt:
+ description: |-
+ LastFailedAt is always set at the same time as FailedAt. Unlike FailedAt, LastFailedAt is never cleared.
+ LastFailedAt is not a reliable indicator of the state of a replica's data. For example, a replica with
+ LastFailedAt may already be healthy and in use again. However, because it is never cleared, it can be compared to
+ LastHealthyAt to help prevent dangerous replica deletion in some corner cases. LastFailedAt may be later than the
+ corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume controller
+ acknowledges the change.
+ type: string
+ lastHealthyAt:
+ description: |-
+ LastHealthyAt is set every time a replica becomes read/write in an engine. Unlike HealthyAt, LastHealthyAt is
+ never cleared. LastHealthyAt is not a reliable indicator of the state of a replica's data. For example, a
+ replica with LastHealthyAt set may be in the middle of a rebuild. However, because it is never cleared, it can be
+ compared to LastFailedAt to help prevent dangerous replica deletion in some corner cases. LastHealthyAt may be
+ later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
+ controller acknowledges the change.
type: string
logRequested:
type: boolean
+ migrationEngineName:
+ description: |-
+ MigrationEngineName is indicating the migrating engine which current connected to this replica. This is only
+ used for live migration of v2 data engine
+ type: string
nodeID:
type: string
rebuildRetryCount:
@@ -2451,6 +3144,11 @@
type: boolean
salvageRequested:
type: boolean
+ snapshotMaxCount:
+ type: integer
+ snapshotMaxSize:
+ format: int64
+ type: string
unmapMarkDiskChainRemovedEnabled:
type: boolean
volumeName:
@@ -2460,7 +3158,8 @@
type: string
type: object
status:
- description: ReplicaStatus defines the observed state of the Longhorn replica
+ description: ReplicaStatus defines the observed state of the Longhorn
+ replica
properties:
conditions:
items:
@@ -2469,16 +3168,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -2491,6 +3195,7 @@
currentState:
type: string
evictionRequested:
+ description: 'Deprecated: Replaced by field `spec.evictionRequested`.'
type: boolean
instanceManagerName:
type: string
@@ -2514,19 +3219,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: settings.longhorn.io
@@ -2539,6 +3237,7 @@
shortNames:
- lhs
singular: setting
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -2555,10 +3254,19 @@
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'
+ 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'
+ 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
@@ -2576,6 +3284,10 @@
jsonPath: .value
name: Value
type: string
+ - description: The setting is applied
+ jsonPath: .status.applied
+ name: Applied
+ type: boolean
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
@@ -2585,14 +3297,33 @@
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'
+ 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'
+ 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
+ status:
+ description: The status of the setting.
+ properties:
+ applied:
+ description: The setting is applied.
+ type: boolean
+ required:
+ - applied
+ type: object
value:
+ description: The value of the setting.
type: string
required:
- value
@@ -2601,19 +3332,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: sharemanagers.longhorn.io
@@ -2646,10 +3370,19 @@
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'
+ 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'
+ 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
@@ -2680,28 +3413,42 @@
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'
+ 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'
+ 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: ShareManagerSpec defines the desired state of the Longhorn share manager
+ description: ShareManagerSpec defines the desired state of the Longhorn
+ share manager
properties:
image:
- description: Share manager image used for creating a share manager pod
+ 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
+ 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
+ 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
+ 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
@@ -2712,19 +3459,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: snapshots.longhorn.io
@@ -2748,11 +3488,13 @@
jsonPath: .status.creationTime
name: CreationTime
type: string
- - description: Indicates if the snapshot is ready to be used to restore/backup a volume
+ - description: Indicates if the snapshot is ready to be used to restore/backup
+ a volume
jsonPath: .status.readyToUse
name: ReadyToUse
type: boolean
- - description: Represents the minimum size of volume required to rehydrate from this snapshot
+ - description: Represents the minimum size of volume required to rehydrate from
+ this snapshot
jsonPath: .status.restoreSize
name: RestoreSize
type: string
@@ -2769,10 +3511,19 @@
description: Snapshot is the Schema for the snapshots API
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'
+ 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'
+ 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
@@ -2789,7 +3540,9 @@
nullable: true
type: object
volume:
- description: the volume that this snapshot belongs to. This field is immutable after creation. Required
+ description: |-
+ the volume that this snapshot belongs to.
+ This field is immutable after creation.
type: string
required:
- volume
@@ -2835,19 +3588,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: supportbundles.longhorn.io
@@ -2884,15 +3630,25 @@
description: SupportBundle is where Longhorn stores support bundle 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'
+ 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'
+ 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: SupportBundleSpec defines the desired state of the Longhorn SupportBundle
+ description: SupportBundleSpec defines the desired state of the Longhorn
+ SupportBundle
properties:
description:
description: A brief description of the issue
@@ -2908,7 +3664,8 @@
- description
type: object
status:
- description: SupportBundleStatus defines the observed state of the Longhorn SupportBundle
+ description: SupportBundleStatus defines the observed state of the Longhorn
+ SupportBundle
properties:
conditions:
items:
@@ -2917,16 +3674,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -2957,19 +3719,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: systembackups.longhorn.io
@@ -3007,23 +3762,36 @@
description: SystemBackup is where Longhorn stores system 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'
+ 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'
+ 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: SystemBackupSpec defines the desired state of the Longhorn SystemBackup
+ 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"
+ 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
+ description: SystemBackupStatus defines the observed state of the Longhorn
+ SystemBackup
properties:
conditions:
items:
@@ -3032,16 +3800,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -3058,7 +3831,8 @@
nullable: true
type: string
lastSyncedAt:
- description: The last time that the system backup was synced into the cluster.
+ description: The last time that the system backup was synced into
+ the cluster.
format: date-time
nullable: true
type: string
@@ -3066,7 +3840,8 @@
description: The saved manager image.
type: string
ownerID:
- description: The node ID of the responsible controller to reconcile this SystemBackup.
+ description: The node ID of the responsible controller to reconcile
+ this SystemBackup.
type: string
state:
description: The system backup state.
@@ -3081,19 +3856,12 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
- creationTimestamp: null
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: systemrestores.longhorn.io
@@ -3122,15 +3890,25 @@
description: SystemRestore is where Longhorn stores system restore 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'
+ 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'
+ 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: SystemRestoreSpec defines the desired state of the Longhorn SystemRestore
+ description: SystemRestoreSpec defines the desired state of the Longhorn
+ SystemRestore
properties:
systemBackup:
description: The system backup name in the object store.
@@ -3139,7 +3917,8 @@
- systemBackup
type: object
status:
- description: SystemRestoreStatus defines the observed state of the Longhorn SystemRestore
+ description: SystemRestoreStatus defines the observed state of the Longhorn
+ SystemRestore
properties:
conditions:
items:
@@ -3148,16 +3927,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -3166,7 +3950,8 @@
nullable: true
type: array
ownerID:
- description: The node ID of the responsible controller to reconcile this SystemRestore.
+ description: The node ID of the responsible controller to reconcile
+ this SystemRestore.
type: string
sourceURL:
description: The source system backup URL.
@@ -3180,23 +3965,160 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.7.0
+ controller-gen.kubebuilder.io/version: v0.15.0
+ 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: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.15.0
labels: {{- include "longhorn.labels" . | nindent 4 }}
longhorn-manager: ""
name: volumes.longhorn.io
spec:
- preserveUnknownFields: false
conversion:
strategy: Webhook
webhook:
@@ -3217,6 +4139,7 @@
shortNames:
- lhv
singular: volume
+ preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
@@ -3249,10 +4172,19 @@
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'
+ 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'
+ 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
@@ -3266,6 +4198,10 @@
subresources:
status: {}
- additionalPrinterColumns:
+ - description: The data engine of the volume
+ jsonPath: .spec.dataEngine
+ name: Data Engine
+ type: string
- description: The state of the volume
jsonPath: .status.state
name: State
@@ -3295,10 +4231,19 @@
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'
+ 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'
+ 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
@@ -3313,9 +4258,7 @@
- rwx
type: string
backendStoreDriver:
- enum:
- - v1
- - v2
+ description: Deprecated:Replaced by field `dataEngine`.'
type: string
backingImage:
type: string
@@ -3325,6 +4268,15 @@
- lz4
- gzip
type: string
+ backupTargetName:
+ description: The backup target name that the volume will be backed
+ up to or is synced.
+ type: string
+ dataEngine:
+ enum:
+ - v1
+ - v2
+ type: string
dataLocality:
enum:
- disabled
@@ -3342,6 +4294,15 @@
encrypted:
type: boolean
engineImage:
+ description: 'Deprecated: Replaced by field `image`.'
+ type: string
+ freezeFilesystemForSnapshot:
+ description: Setting that freezes the filesystem on the root partition
+ before a snapshot is created.
+ enum:
+ - ignored
+ - enabled
+ - disabled
type: string
fromBackup:
type: string
@@ -3352,6 +4313,8 @@
- nvmf
- ""
type: string
+ image:
+ type: string
lastAttachedBy:
type: string
migratable:
@@ -3366,13 +4329,6 @@
type: array
numberOfReplicas:
type: integer
- 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
@@ -3380,15 +4336,25 @@
- least-effort
- best-effort
type: string
+ replicaDiskSoftAntiAffinity:
+ description: Replica disk soft anti affinity of the volume. Set enabled
+ to allow replicas to be scheduled in the same disk.
+ enum:
+ - ignored
+ - enabled
+ - disabled
+ type: string
replicaSoftAntiAffinity:
- description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node
+ 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
+ description: Replica zone soft anti affinity of the volume. Set enabled
+ to allow replicas to be scheduled in the same zone.
enum:
- ignored
- enabled
@@ -3412,6 +4378,11 @@
- enabled
- fast-check
type: string
+ snapshotMaxCount:
+ type: integer
+ snapshotMaxSize:
+ format: int64
+ type: string
staleReplicaTimeout:
type: integer
unmapMarkSnapChainRemoved:
@@ -3429,6 +4400,10 @@
type: integer
cloneStatus:
properties:
+ attemptCount:
+ type: integer
+ nextAllowedAttemptAt:
+ type: string
snapshot:
type: string
sourceVolume:
@@ -3443,16 +4418,21 @@
description: Last time we probed the condition.
type: string
lastTransitionTime:
- description: Last time the condition transitioned from one status to another.
+ description: Last time the condition transitioned from one status
+ to another.
type: string
message:
- description: Human-readable message indicating details about last transition.
+ description: Human-readable message indicating details about
+ last transition.
type: string
reason:
- description: Unique, one-word, CamelCase reason for the condition's last transition.
+ 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.
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
@@ -3510,8 +4490,6 @@
type: string
lastDegradedAt:
type: string
- offlineReplicaRebuildingRequired:
- type: boolean
ownerID:
type: string
pendingNodeID:
@@ -3537,136 +4515,3 @@
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- 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 f361d27..0bba120 100644
--- a/charts/longhorn/templates/daemonset-sa.yaml
+++ b/charts/longhorn/templates/daemonset-sa.yaml
@@ -45,6 +45,9 @@
- "{{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}"
- --service-account
- longhorn-service-account
+ {{- if .Values.preUpgradeChecker.upgradeVersionCheck}}
+ - --upgrade-version-check
+ {{- end }}
ports:
- containerPort: 9500
name: manager
@@ -60,16 +63,31 @@
port: 9501
scheme: HTTPS
volumeMounts:
+ - name: boot
+ mountPath: /host/boot/
+ readOnly: true
- name: dev
mountPath: /host/dev/
- name: proc
mountPath: /host/proc/
+ readOnly: true
+ - name: etc
+ mountPath: /host/etc/
+ readOnly: true
- name: longhorn
mountPath: /var/lib/longhorn/
mountPropagation: Bidirectional
- name: longhorn-grpc-tls
mountPath: /tls-files/
+ {{- if .Values.enableGoCoverDir }}
+ - name: go-cover-dir
+ mountPath: /go-cover-dir/
+ {{- end }}
env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
@@ -82,16 +100,36 @@
valueFrom:
fieldRef:
fieldPath: spec.nodeName
+ {{- if .Values.enableGoCoverDir }}
+ - name: GOCOVERDIR
+ value: /go-cover-dir/
+ {{- end }}
+ - name: pre-pull-share-manager-image
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ image: {{ template "registry_url" . }}{{ .Values.image.longhorn.shareManager.repository }}:{{ .Values.image.longhorn.shareManager.tag }}
+ command: ["sh", "-c", "echo share-manager image pulled && sleep infinity"]
volumes:
+ - name: boot
+ hostPath:
+ path: /boot/
- name: dev
hostPath:
path: /dev/
- name: proc
hostPath:
path: /proc/
+ - name: etc
+ hostPath:
+ path: /etc/
- name: longhorn
hostPath:
path: /var/lib/longhorn/
+ {{- if .Values.enableGoCoverDir }}
+ - name: go-cover-dir
+ hostPath:
+ path: /go-cover-dir/
+ type: DirectoryOrCreate
+ {{- end }}
- name: longhorn-grpc-tls
secret:
secretName: longhorn-grpc-tls
@@ -103,22 +141,22 @@
{{- if .Values.longhornManager.priorityClass }}
priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
{{- end }}
- {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.tolerations .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 }}
+ {{- if or .Values.global.tolerations .Values.longhornManager.tolerations }}
+{{ default .Values.global.tolerations .Values.longhornManager.tolerations | toYaml | indent 6 }}
{{- end }}
{{- end }}
- {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.nodeSelector .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 }}
+ {{- if or .Values.global.nodeSelector .Values.longhornManager.nodeSelector }}
+{{ default .Values.global.nodeSelector .Values.longhornManager.nodeSelector | toYaml | indent 8 }}
{{- end }}
{{- end }}
serviceAccountName: longhorn-service-account
@@ -139,7 +177,6 @@
{{- end }}
spec:
type: {{ .Values.service.manager.type }}
- sessionAffinity: ClientIP
selector:
app: longhorn-manager
ports:
diff --git a/charts/longhorn/templates/default-resource.yaml b/charts/longhorn/templates/default-resource.yaml
new file mode 100644
index 0000000..2d67201
--- /dev/null
+++ b/charts/longhorn/templates/default-resource.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: longhorn-default-resource
+ namespace: {{ include "release_namespace" . }}
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+data:
+ default-resource.yaml: |-
+ {{- if not (kindIs "invalid" .Values.defaultBackupStore.backupTarget) }}
+ backup-target: {{ .Values.defaultBackupStore.backupTarget }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultBackupStore.backupTargetCredentialSecret) }}
+ backup-target-credential-secret: {{ .Values.defaultBackupStore.backupTargetCredentialSecret }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultBackupStore.pollInterval) }}
+ backupstore-poll-interval: {{ .Values.defaultBackupStore.pollInterval }}
+ {{- end }}
diff --git a/charts/longhorn/templates/default-setting.yaml b/charts/longhorn/templates/default-setting.yaml
index ac38ba9..e0419dc 100644
--- a/charts/longhorn/templates/default-setting.yaml
+++ b/charts/longhorn/templates/default-setting.yaml
@@ -6,26 +6,66 @@
labels: {{- include "longhorn.labels" . | nindent 4 }}
data:
default-setting.yaml: |-
- {{ if not (kindIs "invalid" .Values.defaultSettings.backupTarget) }}backup-target: {{ .Values.defaultSettings.backupTarget }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.backupTargetCredentialSecret) }}backup-target-credential-secret: {{ .Values.defaultSettings.backupTargetCredentialSecret }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.allowRecurringJobWhileVolumeDetached) }}allow-recurring-job-while-volume-detached: {{ .Values.defaultSettings.allowRecurringJobWhileVolumeDetached }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.createDefaultDiskLabeledNodes) }}create-default-disk-labeled-nodes: {{ .Values.defaultSettings.createDefaultDiskLabeledNodes }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.defaultDataPath) }}default-data-path: {{ .Values.defaultSettings.defaultDataPath }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.replicaSoftAntiAffinity) }}replica-soft-anti-affinity: {{ .Values.defaultSettings.replicaSoftAntiAffinity }}{{ end }}
- {{ 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 }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.defaultLonghornStaticStorageClass) }}default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.backupstorePollInterval) }}backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.failedBackupTTL) }}failed-backup-ttl: {{ .Values.defaultSettings.failedBackupTTL }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.restoreVolumeRecurringJobs) }}restore-volume-recurring-jobs: {{ .Values.defaultSettings.restoreVolumeRecurringJobs }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.recurringSuccessfulJobsHistoryLimit) }}recurring-successful-jobs-history-limit: {{ .Values.defaultSettings.recurringSuccessfulJobsHistoryLimit }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.recurringFailedJobsHistoryLimit) }}recurring-failed-jobs-history-limit: {{ .Values.defaultSettings.recurringFailedJobsHistoryLimit }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.supportBundleFailedHistoryLimit) }}support-bundle-failed-history-limit: {{ .Values.defaultSettings.supportBundleFailedHistoryLimit }}{{ end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.allowRecurringJobWhileVolumeDetached) }}
+ allow-recurring-job-while-volume-detached: {{ .Values.defaultSettings.allowRecurringJobWhileVolumeDetached }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.createDefaultDiskLabeledNodes) }}
+ create-default-disk-labeled-nodes: {{ .Values.defaultSettings.createDefaultDiskLabeledNodes }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.defaultDataPath) }}
+ default-data-path: {{ .Values.defaultSettings.defaultDataPath }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.replicaSoftAntiAffinity) }}
+ replica-soft-anti-affinity: {{ .Values.defaultSettings.replicaSoftAntiAffinity }}
+ {{- end }}
+ {{- 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.upgradeResponderURL) }}
+ upgrade-responder-url: {{ .Values.defaultSettings.upgradeResponderURL }}
+ {{- 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 }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.defaultLonghornStaticStorageClass) }}
+ default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.failedBackupTTL) }}
+ failed-backup-ttl: {{ .Values.defaultSettings.failedBackupTTL }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.backupExecutionTimeout) }}
+ backup-execution-timeout: {{ .Values.defaultSettings.backupExecutionTimeout }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.restoreVolumeRecurringJobs) }}
+ restore-volume-recurring-jobs: {{ .Values.defaultSettings.restoreVolumeRecurringJobs }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.recurringSuccessfulJobsHistoryLimit) }}
+ recurring-successful-jobs-history-limit: {{ .Values.defaultSettings.recurringSuccessfulJobsHistoryLimit }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.recurringJobMaxRetention) }}
+ recurring-job-max-retention: {{ .Values.defaultSettings.recurringJobMaxRetention }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.recurringFailedJobsHistoryLimit) }}
+ recurring-failed-jobs-history-limit: {{ .Values.defaultSettings.recurringFailedJobsHistoryLimit }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.supportBundleFailedHistoryLimit) }}
+ support-bundle-failed-history-limit: {{ .Values.defaultSettings.supportBundleFailedHistoryLimit }}
+ {{- end }}
{{- if or (not (kindIs "invalid" .Values.defaultSettings.taintToleration)) (.Values.global.cattle.windowsCluster.enabled) }}
taint-toleration: {{ $windowsDefaultSettingTaintToleration := list }}{{ $defaultSettingTaintToleration := list -}}
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.defaultSetting.taintToleration -}}
@@ -46,38 +86,159 @@
{{- end -}}
{{- $nodeSelector := list $windowsDefaultSettingNodeSelector $defaultSettingNodeSelector }}{{ join ";" (compact $nodeSelector) -}}
{{- end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.priorityClass) }}priority-class: {{ .Values.defaultSettings.priorityClass }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.autoSalvage) }}auto-salvage: {{ .Values.defaultSettings.autoSalvage }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly) }}auto-delete-pod-when-volume-detached-unexpectedly: {{ .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly }}{{ end }}
- {{ 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.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 }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.disableRevisionCounter) }}disable-revision-counter: {{ .Values.defaultSettings.disableRevisionCounter }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.systemManagedPodsImagePullPolicy) }}system-managed-pods-image-pull-policy: {{ .Values.defaultSettings.systemManagedPodsImagePullPolicy }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.allowVolumeCreationWithDegradedAvailability) }}allow-volume-creation-with-degraded-availability: {{ .Values.defaultSettings.allowVolumeCreationWithDegradedAvailability }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.autoCleanupSystemGeneratedSnapshot) }}auto-cleanup-system-generated-snapshot: {{ .Values.defaultSettings.autoCleanupSystemGeneratedSnapshot }}{{ end }}
- {{ 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.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 }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.deletingConfirmationFlag) }}deleting-confirmation-flag: {{ .Values.defaultSettings.deletingConfirmationFlag }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.engineReplicaTimeout) }}engine-replica-timeout: {{ .Values.defaultSettings.engineReplicaTimeout }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.snapshotDataIntegrity) }}snapshot-data-integrity: {{ .Values.defaultSettings.snapshotDataIntegrity }}{{ end }}
- {{ if not (kindIs "invalid" .Values.defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation) }}snapshot-data-integrity-immediate-check-after-snapshot-creation: {{ .Values.defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation }}{{ end }}
- {{ 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 }}
- {{ 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 }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.priorityClass) }}
+ priority-class: {{ .Values.defaultSettings.priorityClass }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.autoSalvage) }}
+ auto-salvage: {{ .Values.defaultSettings.autoSalvage }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly) }}
+ auto-delete-pod-when-volume-detached-unexpectedly: {{ .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly }}
+ {{- end }}
+ {{- 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.replicaDiskSoftAntiAffinity) }}
+ replica-disk-soft-anti-affinity: {{ .Values.defaultSettings.replicaDiskSoftAntiAffinity }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.nodeDownPodDeletionPolicy) }}
+ node-down-pod-deletion-policy: {{ .Values.defaultSettings.nodeDownPodDeletionPolicy }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.nodeDrainPolicy) }}
+ node-drain-policy: {{ .Values.defaultSettings.nodeDrainPolicy }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.detachManuallyAttachedVolumesWhenCordoned) }}
+ detach-manually-attached-volumes-when-cordoned: {{ .Values.defaultSettings.detachManuallyAttachedVolumesWhenCordoned }}
+ {{- 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 }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.disableRevisionCounter) }}
+ disable-revision-counter: {{ .Values.defaultSettings.disableRevisionCounter }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.systemManagedPodsImagePullPolicy) }}
+ system-managed-pods-image-pull-policy: {{ .Values.defaultSettings.systemManagedPodsImagePullPolicy }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.allowVolumeCreationWithDegradedAvailability) }}
+ allow-volume-creation-with-degraded-availability: {{ .Values.defaultSettings.allowVolumeCreationWithDegradedAvailability }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.autoCleanupSystemGeneratedSnapshot) }}
+ auto-cleanup-system-generated-snapshot: {{ .Values.defaultSettings.autoCleanupSystemGeneratedSnapshot }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.autoCleanupRecurringJobBackupSnapshot) }}
+ auto-cleanup-recurring-job-backup-snapshot: {{ .Values.defaultSettings.autoCleanupRecurringJobBackupSnapshot }}
+ {{- end }}
+ {{- 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.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 }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.deletingConfirmationFlag) }}
+ deleting-confirmation-flag: {{ .Values.defaultSettings.deletingConfirmationFlag }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.engineReplicaTimeout) }}
+ engine-replica-timeout: {{ .Values.defaultSettings.engineReplicaTimeout }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.snapshotDataIntegrity) }}
+ snapshot-data-integrity: {{ .Values.defaultSettings.snapshotDataIntegrity }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation) }}
+ snapshot-data-integrity-immediate-check-after-snapshot-creation: {{ .Values.defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation }}
+ {{- end }}
+ {{- 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 }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.longGRPCTimeOut) }}
+ long-grpc-timeout: {{ .Values.defaultSettings.longGRPCTimeOut }}
+ {{- 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.v1DataEngine) }}
+ v1-data-engine: {{ .Values.defaultSettings.v1DataEngine }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.v2DataEngine) }}
+ v2-data-engine: {{ .Values.defaultSettings.v2DataEngine }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.v2DataEngineHugepageLimit) }}
+ v2-data-engine-hugepage-limit: {{ .Values.defaultSettings.v2DataEngineHugepageLimit }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.allowEmptyNodeSelectorVolume) }}
+ allow-empty-node-selector-volume: {{ .Values.defaultSettings.allowEmptyNodeSelectorVolume }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.allowEmptyDiskSelectorVolume) }}
+ allow-empty-disk-selector-volume: {{ .Values.defaultSettings.allowEmptyDiskSelectorVolume }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.allowCollectingLonghornUsageMetrics) }}
+ allow-collecting-longhorn-usage-metrics: {{ .Values.defaultSettings.allowCollectingLonghornUsageMetrics }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.disableSnapshotPurge) }}
+ disable-snapshot-purge: {{ .Values.defaultSettings.disableSnapshotPurge }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.v2DataEngineGuaranteedInstanceManagerCPU) }}
+ v2-data-engine-guaranteed-instance-manager-cpu: {{ .Values.defaultSettings.v2DataEngineGuaranteedInstanceManagerCPU }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.snapshotMaxCount) }}
+ snapshot-max-count: {{ .Values.defaultSettings.snapshotMaxCount }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.v2DataEngineLogLevel) }}
+ v2-data-engine-log-level: {{ .Values.defaultSettings.v2DataEngineLogLevel }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.v2DataEngineLogFlags) }}
+ v2-data-engine-log-flags: {{ .Values.defaultSettings.v2DataEngineLogFlags }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.freezeFilesystemForSnapshot) }}
+ freeze-filesystem-for-snapshot: {{ .Values.defaultSettings.freezeFilesystemForSnapshot }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.autoCleanupSnapshotWhenDeleteBackup) }}
+ auto-cleanup-when-delete-backup: {{ .Values.defaultSettings.autoCleanupSnapshotWhenDeleteBackup }}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.rwxVolumeFastFailover) }}
+ rwx-volume-fast-failover: {{ .Values.defaultSettings.rwxVolumeFastFailover}}
+ {{- end }}
+ {{- if not (kindIs "invalid" .Values.defaultSettings.v2DataEngineCPUMask) }}
+ v2-data-engine-cpu-mask: {{ .Values.defaultSettings.v2DataEngineCPUMask }}
+ {{- end }}
diff --git a/charts/longhorn/templates/deployment-driver.yaml b/charts/longhorn/templates/deployment-driver.yaml
index f162fbf..5683c75 100644
--- a/charts/longhorn/templates/deployment-driver.yaml
+++ b/charts/longhorn/templates/deployment-driver.yaml
@@ -25,6 +25,9 @@
command:
- longhorn-manager
- -d
+ {{- if eq .Values.longhornDriver.log.format "json" }}
+ - -j
+ {{- end }}
- deploy-driver
- --manager-image
- "{{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}"
@@ -87,6 +90,13 @@
- name: CSI_SNAPSHOTTER_REPLICA_COUNT
value: {{ .Values.csi.snapshotterReplicaCount | quote }}
{{- end }}
+ {{- if .Values.enableGoCoverDir }}
+ - name: GOCOVERDIR
+ value: /go-cover-dir/
+ volumeMounts:
+ - name: go-cover-dir
+ mountPath: /go-cover-dir/
+ {{- end }}
{{- if .Values.privateRegistry.registrySecret }}
imagePullSecrets:
@@ -95,24 +105,31 @@
{{- if .Values.longhornDriver.priorityClass }}
priorityClassName: {{ .Values.longhornDriver.priorityClass | quote }}
{{- end }}
- {{- if or .Values.longhornDriver.tolerations .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.tolerations .Values.longhornDriver.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.longhornDriver.tolerations }}
-{{ toYaml .Values.longhornDriver.tolerations | indent 6 }}
+ {{- if or .Values.global.tolerations .Values.longhornDriver.tolerations }}
+{{ default .Values.global.tolerations .Values.longhornDriver.tolerations | toYaml | indent 6 }}
{{- end }}
{{- end }}
- {{- if or .Values.longhornDriver.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.nodeSelector .Values.longhornDriver.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.longhornDriver.nodeSelector }}
-{{ toYaml .Values.longhornDriver.nodeSelector | indent 8 }}
+ {{- if or .Values.global.nodeSelector .Values.longhornDriver.nodeSelector }}
+{{ default .Values.global.nodeSelector .Values.longhornDriver.nodeSelector | toYaml | indent 8 }}
{{- end }}
{{- end }}
serviceAccountName: longhorn-service-account
securityContext:
runAsUser: 0
+ {{- if .Values.enableGoCoverDir }}
+ volumes:
+ - name: go-cover-dir
+ hostPath:
+ path: /go-cover-dir/
+ type: DirectoryOrCreate
+ {{- end }}
diff --git a/charts/longhorn/templates/deployment-ui.yaml b/charts/longhorn/templates/deployment-ui.yaml
index 6bad5cd..e4f3e0f 100644
--- a/charts/longhorn/templates/deployment-ui.yaml
+++ b/charts/longhorn/templates/deployment-ui.yaml
@@ -1,3 +1,41 @@
+{{- if .Values.openshift.enabled }}
+{{- if .Values.openshift.ui.route }}
+# https://github.com/openshift/oauth-proxy/blob/master/contrib/sidecar.yaml
+# Create a proxy service account and ensure it will use the route "proxy"
+# Create a secure connection to the proxy via a route
+apiVersion: route.openshift.io/v1
+kind: Route
+metadata:
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+ app: longhorn-ui
+ name: {{ .Values.openshift.ui.route }}
+ namespace: {{ include "release_namespace" . }}
+spec:
+ to:
+ kind: Service
+ name: longhorn-ui
+ tls:
+ termination: reencrypt
+---
+apiVersion: v1
+kind: Service
+metadata:
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+ app: longhorn-ui
+ name: longhorn-ui
+ namespace: {{ include "release_namespace" . }}
+ annotations:
+ service.alpha.openshift.io/serving-cert-secret-name: longhorn-ui-tls
+spec:
+ ports:
+ - name: longhorn-ui
+ port: {{ .Values.openshift.ui.port | default 443 }}
+ targetPort: {{ .Values.openshift.ui.proxy | default 8443 }}
+ selector:
+ app: longhorn-ui
+---
+{{- end }}
+{{- end }}
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -15,6 +53,7 @@
labels: {{- include "longhorn.labels" . | nindent 8 }}
app: longhorn-ui
spec:
+ serviceAccountName: longhorn-ui-service-account
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
@@ -28,6 +67,32 @@
- longhorn-ui
topologyKey: kubernetes.io/hostname
containers:
+ {{- if .Values.openshift.enabled }}
+ {{- if .Values.openshift.ui.route }}
+ - name: oauth-proxy
+ {{- if .Values.image.openshift.oauthProxy.repository }}
+ image: {{ template "registry_url" . }}{{ .Values.image.openshift.oauthProxy.repository }}:{{ .Values.image.openshift.oauthProxy.tag }}
+ {{- else }}
+ image: ""
+ {{- end }}
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: {{ .Values.openshift.ui.proxy | default 8443 }}
+ name: public
+ args:
+ - --https-address=:{{ .Values.openshift.ui.proxy | default 8443 }}
+ - --provider=openshift
+ - --openshift-service-account=longhorn-ui-service-account
+ - --upstream=http://localhost:8000
+ - --tls-cert=/etc/tls/private/tls.crt
+ - --tls-key=/etc/tls/private/tls.key
+ - --cookie-secret=SECRET
+ - --openshift-sar={"namespace":"{{ include "release_namespace" . }}","group":"longhorn.io","resource":"setting","verb":"delete"}
+ volumeMounts:
+ - mountPath: /etc/tls/private
+ name: longhorn-ui-tls
+ {{- end }}
+ {{- end }}
- name: longhorn-ui
image: {{ template "registry_url" . }}{{ .Values.image.longhorn.ui.repository }}:{{ .Values.image.longhorn.ui.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
@@ -47,6 +112,13 @@
- name: LONGHORN_UI_PORT
value: "8000"
volumes:
+ {{- if .Values.openshift.enabled }}
+ {{- if .Values.openshift.ui.route }}
+ - name: longhorn-ui-tls
+ secret:
+ secretName: longhorn-ui-tls
+ {{- end }}
+ {{- end }}
- emptyDir: {}
name: nginx-cache
- emptyDir: {}
@@ -60,22 +132,22 @@
{{- if .Values.longhornUI.priorityClass }}
priorityClassName: {{ .Values.longhornUI.priorityClass | quote }}
{{- end }}
- {{- if or .Values.longhornUI.tolerations .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.tolerations .Values.longhornUI.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.longhornUI.tolerations }}
-{{ toYaml .Values.longhornUI.tolerations | indent 6 }}
+ {{- if or .Values.global.tolerations .Values.longhornUI.tolerations }}
+{{ default .Values.global.tolerations .Values.longhornUI.tolerations | toYaml | indent 6 }}
{{- end }}
{{- end }}
- {{- if or .Values.longhornUI.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.nodeSelector .Values.longhornUI.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.longhornUI.nodeSelector }}
-{{ toYaml .Values.longhornUI.nodeSelector | indent 8 }}
+ {{- if or .Values.global.nodeSelector .Values.longhornUI.nodeSelector }}
+{{ default .Values.global.nodeSelector .Values.longhornUI.nodeSelector | toYaml | indent 8 }}
{{- end }}
{{- end }}
---
diff --git a/charts/longhorn/templates/ingress.yaml b/charts/longhorn/templates/ingress.yaml
index ee47f8b..61175e8 100644
--- a/charts/longhorn/templates/ingress.yaml
+++ b/charts/longhorn/templates/ingress.yaml
@@ -1,9 +1,5 @@
{{- if .Values.ingress.enabled }}
-{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
-{{- else -}}
-apiVersion: networking.k8s.io/v1beta1
-{{- end }}
kind: Ingress
metadata:
name: longhorn-ingress
@@ -18,7 +14,7 @@
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
- {{- if and .Values.ingress.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
+ {{- if .Values.ingress.ingressClassName }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
{{- end }}
rules:
@@ -26,19 +22,12 @@
http:
paths:
- path: {{ default "" .Values.ingress.path }}
- {{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
- pathType: ImplementationSpecific
- {{- end }}
+ pathType: {{ default "ImplementationSpecific" .Values.ingress.pathType }}
backend:
- {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: longhorn-frontend
port:
number: 80
- {{- else }}
- serviceName: longhorn-frontend
- servicePort: 80
- {{- end }}
{{- if .Values.ingress.tls }}
tls:
- hosts:
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
index cc91054..7204d63 100644
--- 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
@@ -3,7 +3,7 @@
kind: NetworkPolicy
metadata:
name: backing-image-data-source
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
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
index ebc288f..119ebf0 100644
--- a/charts/longhorn/templates/network-policies/backing-image-manager-network-policy.yaml
+++ b/charts/longhorn/templates/network-policies/backing-image-manager-network-policy.yaml
@@ -3,7 +3,7 @@
kind: NetworkPolicy
metadata:
name: backing-image-manager
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
diff --git a/charts/longhorn/templates/network-policies/instance-manager-networking.yaml b/charts/longhorn/templates/network-policies/instance-manager-networking.yaml
index 6f03c6e..332aa2c 100644
--- a/charts/longhorn/templates/network-policies/instance-manager-networking.yaml
+++ b/charts/longhorn/templates/network-policies/instance-manager-networking.yaml
@@ -3,7 +3,7 @@
kind: NetworkPolicy
metadata:
name: instance-manager
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
diff --git a/charts/longhorn/templates/network-policies/manager-network-policy.yaml b/charts/longhorn/templates/network-policies/manager-network-policy.yaml
index c9d763f..6f94029 100644
--- a/charts/longhorn/templates/network-policies/manager-network-policy.yaml
+++ b/charts/longhorn/templates/network-policies/manager-network-policy.yaml
@@ -3,7 +3,7 @@
kind: NetworkPolicy
metadata:
name: longhorn-manager
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
diff --git a/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml b/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml
index cebe485..37bf5f9 100644
--- a/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml
+++ b/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml
@@ -3,11 +3,11 @@
kind: NetworkPolicy
metadata:
name: longhorn-recovery-backend
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
- app: longhorn-manager
+ longhorn.io/recovery-backend: longhorn-recovery-backend
policyTypes:
- Ingress
ingress:
diff --git a/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml b/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml
index 04c8beb..6f37065 100644
--- a/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml
+++ b/charts/longhorn/templates/network-policies/ui-frontend-network-policy.yaml
@@ -3,7 +3,7 @@
kind: NetworkPolicy
metadata:
name: longhorn-ui-frontend
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
diff --git a/charts/longhorn/templates/network-policies/webhook-network-policy.yaml b/charts/longhorn/templates/network-policies/webhook-network-policy.yaml
index c9790f6..3812e0f 100644
--- a/charts/longhorn/templates/network-policies/webhook-network-policy.yaml
+++ b/charts/longhorn/templates/network-policies/webhook-network-policy.yaml
@@ -3,11 +3,11 @@
kind: NetworkPolicy
metadata:
name: longhorn-conversion-webhook
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
- app: longhorn-manager
+ longhorn.io/conversion-webhook: longhorn-conversion-webhook
policyTypes:
- Ingress
ingress:
@@ -19,11 +19,11 @@
kind: NetworkPolicy
metadata:
name: longhorn-admission-webhook
- namespace: longhorn-system
+ namespace: {{ include "release_namespace" . }}
spec:
podSelector:
matchLabels:
- app: longhorn-manager
+ longhorn.io/admission-webhook: longhorn-admission-webhook
policyTypes:
- Ingress
ingress:
diff --git a/charts/longhorn/templates/postupgrade-job.yaml b/charts/longhorn/templates/postupgrade-job.yaml
index bb25a54..56efd38 100644
--- a/charts/longhorn/templates/postupgrade-job.yaml
+++ b/charts/longhorn/templates/postupgrade-job.yaml
@@ -36,21 +36,21 @@
priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
{{- end }}
serviceAccountName: longhorn-service-account
- {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.tolerations .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 }}
+ {{- if or .Values.global.tolerations .Values.longhornManager.tolerations }}
+{{ default .Values.global.tolerations .Values.longhornManager.tolerations | toYaml | indent 6 }}
{{- end }}
{{- end }}
- {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.nodeSelector .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 }}
+ {{- if or .Values.global.nodeSelector .Values.longhornManager.nodeSelector }}
+{{ default .Values.global.nodeSelector .Values.longhornManager.nodeSelector | toYaml | indent 8 }}
{{- end }}
{{- end }}
diff --git a/charts/longhorn/templates/preupgrade-job.yaml b/charts/longhorn/templates/preupgrade-job.yaml
index 357e6d7..9f7a8a6 100644
--- a/charts/longhorn/templates/preupgrade-job.yaml
+++ b/charts/longhorn/templates/preupgrade-job.yaml
@@ -1,4 +1,4 @@
-{{- if .Values.helmPreUpgradeCheckerJob.enabled }}
+{{- if and .Values.preUpgradeChecker.jobEnabled .Values.preUpgradeChecker.upgradeVersionCheck}}
apiVersion: batch/v1
kind: Job
metadata:
@@ -20,39 +20,45 @@
- name: longhorn-pre-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
- pre-upgrade
+ volumeMounts:
+ - name: proc
+ mountPath: /host/proc/
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ volumes:
+ - name: proc
+ hostPath:
+ path: /proc/
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 }}
+ {{- if or .Values.global.tolerations .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 }}
+ {{- if or .Values.global.tolerations .Values.longhornManager.tolerations }}
+{{ default .Values.global.tolerations .Values.longhornManager.tolerations | toYaml | indent 6 }}
{{- end }}
{{- end }}
- {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.nodeSelector .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 }}
+ {{- if or .Values.global.nodeSelector .Values.longhornManager.nodeSelector }}
+{{ default .Values.global.nodeSelector .Values.longhornManager.nodeSelector | toYaml | indent 8 }}
{{- end }}
{{- end }}
-{{- end }}
\ No newline at end of file
+{{- end }}
diff --git a/charts/longhorn/templates/priorityclass.yaml b/charts/longhorn/templates/priorityclass.yaml
new file mode 100644
index 0000000..208adc8
--- /dev/null
+++ b/charts/longhorn/templates/priorityclass.yaml
@@ -0,0 +1,9 @@
+apiVersion: scheduling.k8s.io/v1
+kind: PriorityClass
+metadata:
+ name: "longhorn-critical"
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+description: "Ensure Longhorn pods have the highest priority to prevent any unexpected eviction by the Kubernetes scheduler under node pressure"
+globalDefault: false
+preemptionPolicy: PreemptLowerPriority
+value: 1000000000
diff --git a/charts/longhorn/templates/serviceaccount.yaml b/charts/longhorn/templates/serviceaccount.yaml
index a563d68..b0d6dd5 100644
--- a/charts/longhorn/templates/serviceaccount.yaml
+++ b/charts/longhorn/templates/serviceaccount.yaml
@@ -12,6 +12,25 @@
apiVersion: v1
kind: ServiceAccount
metadata:
+ name: longhorn-ui-service-account
+ namespace: {{ include "release_namespace" . }}
+ labels: {{- include "longhorn.labels" . | nindent 4 }}
+ {{- with .Values.serviceAccount.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if .Values.openshift.enabled }}
+ {{- if .Values.openshift.ui.route }}
+ {{- if not .Values.serviceAccount.annotations }}
+ annotations:
+ {{- end }}
+ serviceaccounts.openshift.io/oauth-redirectreference.primary: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"longhorn-ui"}}'
+ {{- end }}
+ {{- end }}
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
name: longhorn-support-bundle
namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }}
diff --git a/charts/longhorn/templates/servicemonitor.yaml b/charts/longhorn/templates/servicemonitor.yaml
new file mode 100644
index 0000000..3f32961
--- /dev/null
+++ b/charts/longhorn/templates/servicemonitor.yaml
@@ -0,0 +1,40 @@
+{{- if .Values.metrics.serviceMonitor.enabled -}}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: longhorn-prometheus-servicemonitor
+ namespace: {{ include "release_namespace" . }}
+ labels:
+ {{- include "longhorn.labels" . | nindent 4 }}
+ name: longhorn-prometheus-servicemonitor
+ {{- with .Values.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ selector:
+ matchLabels:
+ app: longhorn-manager
+ namespaceSelector:
+ matchNames:
+ - {{ include "release_namespace" . }}
+ endpoints:
+ - port: manager
+ {{- with .Values.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+ {{- with .Values.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/longhorn/templates/services.yaml b/charts/longhorn/templates/services.yaml
index 7da9d18..4c8c6bc 100644
--- a/charts/longhorn/templates/services.yaml
+++ b/charts/longhorn/templates/services.yaml
@@ -7,9 +7,8 @@
namespace: {{ include "release_namespace" . }}
spec:
type: ClusterIP
- sessionAffinity: ClientIP
selector:
- app: longhorn-manager
+ longhorn.io/conversion-webhook: longhorn-conversion-webhook
ports:
- name: conversion-webhook
port: 9501
@@ -24,9 +23,8 @@
namespace: {{ include "release_namespace" . }}
spec:
type: ClusterIP
- sessionAffinity: ClientIP
selector:
- app: longhorn-manager
+ longhorn.io/admission-webhook: longhorn-admission-webhook
ports:
- name: admission-webhook
port: 9502
@@ -41,34 +39,9 @@
namespace: {{ include "release_namespace" . }}
spec:
type: ClusterIP
- sessionAffinity: ClientIP
selector:
- app: longhorn-manager
+ longhorn.io/recovery-backend: longhorn-recovery-backend
ports:
- name: recovery-backend
port: 9503
targetPort: recov-backend
----
-apiVersion: v1
-kind: Service
-metadata:
- labels: {{- include "longhorn.labels" . | nindent 4 }}
- name: longhorn-engine-manager
- namespace: {{ include "release_namespace" . }}
-spec:
- clusterIP: None
- selector:
- longhorn.io/component: instance-manager
- longhorn.io/instance-manager-type: engine
----
-apiVersion: v1
-kind: Service
-metadata:
- labels: {{- include "longhorn.labels" . | nindent 4 }}
- name: longhorn-replica-manager
- namespace: {{ include "release_namespace" . }}
-spec:
- clusterIP: None
- selector:
- longhorn.io/component: instance-manager
- longhorn.io/instance-manager-type: replica
diff --git a/charts/longhorn/templates/storageclass.yaml b/charts/longhorn/templates/storageclass.yaml
index 6832517..884d38d 100644
--- a/charts/longhorn/templates/storageclass.yaml
+++ b/charts/longhorn/templates/storageclass.yaml
@@ -29,6 +29,9 @@
{{- if .Values.persistence.migratable }}
migratable: "{{ .Values.persistence.migratable }}"
{{- end }}
+ {{- if .Values.persistence.nfsOptions }}
+ nfsOptions: "{{ .Values.persistence.nfsOptions }}"
+ {{- end }}
{{- if .Values.persistence.backingImage.enable }}
backingImage: {{ .Values.persistence.backingImage.name }}
backingImageDataSourceType: {{ .Values.persistence.backingImage.dataSourceType }}
@@ -39,6 +42,16 @@
recurringJobSelector: '{{ .Values.persistence.recurringJobSelector.jobList }}'
{{- end }}
dataLocality: {{ .Values.persistence.defaultDataLocality | quote }}
+ {{- if .Values.persistence.defaultDiskSelector.enable }}
+ diskSelector: "{{ .Values.persistence.defaultDiskSelector.selector }}"
+ {{- end }}
{{- if .Values.persistence.defaultNodeSelector.enable }}
nodeSelector: "{{ .Values.persistence.defaultNodeSelector.selector }}"
{{- end }}
+ {{- if .Values.persistence.removeSnapshotsDuringFilesystemTrim }}
+ unmapMarkSnapChainRemoved: "{{ .Values.persistence.removeSnapshotsDuringFilesystemTrim }}"
+ {{- end }}
+ {{- if .Values.persistence.disableRevisionCounter }}
+ disableRevisionCounter: "{{ .Values.persistence.disableRevisionCounter }}"
+ dataEngine: "{{ .Values.persistence.dataEngine }}"
+ {{- end }}
diff --git a/charts/longhorn/templates/uninstall-job.yaml b/charts/longhorn/templates/uninstall-job.yaml
index 968f420..1ab4620 100644
--- a/charts/longhorn/templates/uninstall-job.yaml
+++ b/charts/longhorn/templates/uninstall-job.yaml
@@ -37,21 +37,21 @@
priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
{{- end }}
serviceAccountName: longhorn-service-account
- {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.tolerations .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 }}
+ {{- if or .Values.global.tolerations .Values.longhornManager.tolerations }}
+{{ default .Values.global.tolerations .Values.longhornManager.tolerations | toYaml | indent 6 }}
{{- end }}
{{- end }}
- {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
+ {{- if or .Values.global.nodeSelector .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 or .Values.longhornManager.nodeSelector }}
-{{ toYaml .Values.longhornManager.nodeSelector | indent 8 }}
+ {{- if or .Values.global.nodeSelector .Values.longhornManager.nodeSelector }}
+{{ default .Values.global.nodeSelector .Values.longhornManager.nodeSelector | toYaml | indent 8 }}
{{- end }}
{{- end }}