Generated changes

pull/921/head
actions 2020-12-23 20:09:04 +00:00
parent 6be23e91e6
commit e563bb14c5
27 changed files with 806 additions and 207 deletions

View File

@ -641,6 +641,47 @@ entries:
- assets/fleet-crd/fleet-crd-0.3.0-beta600.tgz - assets/fleet-crd/fleet-crd-0.3.0-beta600.tgz
version: 0.3.0-beta600 version: 0.3.0-beta600
longhorn: longhorn:
- annotations:
catalog.cattle.io/auto-install: longhorn-crd=match
catalog.cattle.io/certified: rancher
catalog.cattle.io/display-name: Longhorn
catalog.cattle.io/namespace: longhorn-system
catalog.cattle.io/os: linux
catalog.cattle.io/provides-gvr: longhorn.io/v1beta1
catalog.cattle.io/release-name: longhorn
catalog.cattle.io/ui-component: longhorn
apiVersion: v1
appVersion: v1.1.0
created: "2020-12-23T20:09:04.09651411Z"
description: Longhorn is a distributed block storage system for Kubernetes.
digest: 4d9c34af5cb6f983649c0da636853dcb363aa6aed1293bffb11ddfd04180d122
home: https://github.com/longhorn/longhorn
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/longhorn/icon/color/longhorn-icon-color.svg
keywords:
- longhorn
- storage
- distributed
- block
- device
- iscsi
kubeVersion: '>=v1.16.0-r0'
maintainers:
- email: maintainers@longhorn.io
name: Longhorn maintainers
- email: sheng@yasker.org
name: Sheng Yang
name: longhorn
sources:
- https://github.com/longhorn/longhorn
- https://github.com/longhorn/longhorn-engine
- https://github.com/longhorn/longhorn-instance-manager
- https://github.com/longhorn/longhorn-share-manager
- https://github.com/longhorn/longhorn-manager
- https://github.com/longhorn/longhorn-ui
- https://github.com/longhorn/longhorn-tests
urls:
- assets/longhorn/longhorn-1.1.000.tgz
version: 1.1.000
- annotations: - annotations:
catalog.cattle.io/auto-install: longhorn-crd=match catalog.cattle.io/auto-install: longhorn-crd=match
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
@ -761,6 +802,20 @@ entries:
- assets/longhorn/longhorn-1.0.200.tgz - assets/longhorn/longhorn-1.0.200.tgz
version: 1.0.200 version: 1.0.200
longhorn-crd: longhorn-crd:
- annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/namespace: longhorn-system
catalog.cattle.io/release-name: longhorn-crd
apiVersion: v1
created: "2020-12-23T20:09:04.097324624Z"
description: Installs the CRDs for longhorn.
digest: 2ca9ca1b7af582f9c0e89684e4624a4d4cfc1484ceee74f3cab9c22c7b4e823f
name: longhorn-crd
type: application
urls:
- assets/longhorn/longhorn-crd-1.1.000.tgz
version: 1.1.000
- annotations: - annotations:
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true" catalog.cattle.io/hidden: "true"
@ -2642,4 +2697,4 @@ entries:
urls: urls:
- assets/rio/rio-0.8.000.tgz - assets/rio/rio-0.8.000.tgz
version: 0.8.000 version: 0.8.000
generated: "2020-12-23T18:26:24.779180385Z" generated: "2020-12-23T20:09:04.094547777Z"

Binary file not shown.

Binary file not shown.

View File

@ -1,8 +1,8 @@
apiVersion: v1 apiVersion: v1
name: longhorn name: longhorn
version: 1.0.202 version: 1.1.000
appVersion: v1.0.2 appVersion: v1.1.0
kubeVersion: ">=v1.14.0-r0" kubeVersion: ">=v1.16.0-r0"
description: Longhorn is a distributed block storage system for Kubernetes. description: Longhorn is a distributed block storage system for Kubernetes.
keywords: keywords:
- longhorn - longhorn
@ -16,6 +16,7 @@ sources:
- https://github.com/longhorn/longhorn - https://github.com/longhorn/longhorn
- https://github.com/longhorn/longhorn-engine - https://github.com/longhorn/longhorn-engine
- https://github.com/longhorn/longhorn-instance-manager - https://github.com/longhorn/longhorn-instance-manager
- https://github.com/longhorn/longhorn-share-manager
- https://github.com/longhorn/longhorn-manager - https://github.com/longhorn/longhorn-manager
- https://github.com/longhorn/longhorn-ui - https://github.com/longhorn/longhorn-ui
- https://github.com/longhorn/longhorn-tests - https://github.com/longhorn/longhorn-tests

View File

@ -1,49 +1,32 @@
# Rancher Longhorn Chart # Longhorn Chart
> **Important**: Please install Longhorn chart in `longhorn-system` namespace only. > **Important**: Please install the Longhorn chart in the `longhorn-system` namespace only.
> **Warning**: Longhorn doesn't support downgrading from a higher version to a lower version. > **Warning**: Longhorn doesn't support downgrading from a higher version to a lower version.
The following document pertains to running Longhorn from the Rancher 2.0 chart.
## Source Code ## Source Code
Longhorn is 100% open source software. Project source code is spread across a number of repos: Longhorn is 100% open source software. Project source code is spread across a number of repos:
1. Longhorn Engine -- Core controller/replica logic https://github.com/longhorn/longhorn-engine 1. Longhorn Engine -- Core controller/replica logic https://github.com/longhorn/longhorn-engine
2. Longhorn Instance Manager -- Controller/replica instance lifecycle management https://github.com/longhorn/longhorn-instance-manager 2. Longhorn Instance Manager -- Controller/replica instance lifecycle management https://github.com/longhorn/longhorn-instance-manager
3. Longhorn Manager -- Longhorn orchestration, includes CSI driver for Kubernetes https://github.com/longhorn/longhorn-manager 3. Longhorn Share Manager -- NFS provisioner that exposes Longhorn volumes as ReadWriteMany volumes. https://github.com/longhorn/longhorn-share-manager
4. Longhorn UI -- Dashboard https://github.com/longhorn/longhorn-ui 4. Longhorn Manager -- Longhorn orchestration, includes CSI driver for Kubernetes https://github.com/longhorn/longhorn-manager
5. Longhorn UI -- Dashboard https://github.com/longhorn/longhorn-ui
## Prerequisites ## Prerequisites
1. Rancher v2.1+ 1. Docker v1.13+
2. Docker v1.13+ 2. Kubernetes v1.16+
3. Kubernetes v1.14+ 3. Make sure `curl`, `findmnt`, `grep`, `awk` and `blkid` has been installed in all nodes of the Kubernetes cluster.
4. Make sure `curl`, `findmnt`, `grep`, `awk` and `blkid` has been installed in all nodes of the Kubernetes cluster. 4. Make sure `open-iscsi` has been installed in all nodes of the Kubernetes cluster. For GKE, recommended Ubuntu as guest OS image since it contains `open-iscsi` already.
5. Make sure `open-iscsi` has been installed in all nodes of the Kubernetes cluster. For GKE, recommended Ubuntu as guest OS image since it contains `open-iscsi` already.
## Uninstallation ## Uninstallation
1. To prevent damage to the Kubernetes cluster, we recommend deleting all Kubernetes workloads using Longhorn volumes (PersistentVolume, PersistentVolumeClaim, StorageClass, Deployment, StatefulSet, DaemonSet, etc). To prevent damage to the Kubernetes cluster, we recommend deleting all Kubernetes workloads using Longhorn volumes (PersistentVolume, PersistentVolumeClaim, StorageClass, Deployment, StatefulSet, DaemonSet, etc).
2. From Rancher UI, navigate to `Catalog Apps` tab and delete Longhorn app. From Rancher Cluster Explorer UI, navigate to Apps page, delete app `longhorn` then app `longhorn-crd` in Installed Apps tab.
## Troubleshooting
### I deleted the Longhorn App from Rancher UI instead of following the uninstallation procedure
Redeploy the (same version) Longhorn App. Follow the uninstallation procedure above.
### Problems with CRDs
If your CRD instances or the CRDs themselves can't be deleted for whatever reason, run the commands below to clean up. Caution: this will wipe all Longhorn state!
```
# Delete CRD instances and definitions
curl -s https://raw.githubusercontent.com/longhorn/longhorn/v0.8.1/scripts/cleanup.sh |bash -s v062
curl -s https://raw.githubusercontent.com/longhorn/longhorn/v0.8.1/scripts/cleanup.sh |bash -s v070
```
--- ---
Please see [link](https://github.com/longhorn/longhorn) for more information. Please see [link](https://github.com/longhorn/longhorn) for more information.

View File

@ -1,5 +1,5 @@
apiVersion: v1 apiVersion: v1
version: 1.0.202 version: 1.1.000
description: Installs the CRDs for longhorn. description: Installs the CRDs for longhorn.
name: longhorn-crd name: longhorn-crd
type: application type: application

View File

@ -1,12 +1,12 @@
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: Engine longhorn-manager: Engine
name: engines.longhorn.io name: engines.longhorn.io
spec: spec:
@ -16,22 +16,53 @@ spec:
listKind: EngineList listKind: EngineList
plural: engines plural: engines
shortNames: shortNames:
- lhe - lhe
singular: engine singular: engine
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
subresources: - name: v1beta1
status: {} served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: State
type: string
description: The current state of the engine
jsonPath: .status.currentState
- name: Node
type: string
description: The node that the engine is on
jsonPath: .spec.nodeID
- name: InstanceManager
type: string
description: The instance manager of the engine
jsonPath: .status.instanceManagerName
- name: Image
type: string
description: The current image of the engine
jsonPath: .status.currentImage
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: Replica longhorn-manager: Replica
name: replicas.longhorn.io name: replicas.longhorn.io
spec: spec:
@ -41,22 +72,57 @@ spec:
listKind: ReplicaList listKind: ReplicaList
plural: replicas plural: replicas
shortNames: shortNames:
- lhr - lhr
singular: replica singular: replica
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
subresources: - name: v1beta1
status: {} served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: State
type: string
description: The current state of the replica
jsonPath: .status.currentState
- name: Node
type: string
description: The node that the replica is on
jsonPath: .spec.nodeID
- name: Disk
type: string
description: The disk that the replica is on
jsonPath: .spec.diskID
- name: InstanceManager
type: string
description: The instance manager of the replica
jsonPath: .status.instanceManagerName
- name: Image
type: string
description: The current image of the replica
jsonPath: .status.currentImage
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: Setting longhorn-manager: Setting
name: settings.longhorn.io name: settings.longhorn.io
spec: spec:
@ -66,20 +132,34 @@ spec:
listKind: SettingList listKind: SettingList
plural: settings plural: settings
shortNames: shortNames:
- lhs - lhs
singular: setting singular: setting
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
- name: v1beta1
served: true
storage: true
schema:
openAPIV3Schema:
x-kubernetes-preserve-unknown-fields: true
additionalPrinterColumns:
- name: Value
type: string
description: The value of the setting
jsonPath: .value
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: Volume longhorn-manager: Volume
name: volumes.longhorn.io name: volumes.longhorn.io
spec: spec:
@ -89,22 +169,57 @@ spec:
listKind: VolumeList listKind: VolumeList
plural: volumes plural: volumes
shortNames: shortNames:
- lhv - lhv
singular: volume singular: volume
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
subresources: - name: v1beta1
status: {} served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: State
type: string
description: The state of the volume
jsonPath: .status.state
- name: Robustness
type: string
description: The robustness of the volume
jsonPath: .status.robustness
- name: Scheduled
type: string
description: The scheduled condition of the volume
jsonPath: .status.conditions['scheduled']['status']
- name: Size
type: string
description: The size of the volume
jsonPath: .spec.size
- name: Node
type: string
description: The node that the volume is currently attaching to
jsonPath: .status.currentNodeID
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: EngineImage longhorn-manager: EngineImage
name: engineimages.longhorn.io name: engineimages.longhorn.io
spec: spec:
@ -114,22 +229,53 @@ spec:
listKind: EngineImageList listKind: EngineImageList
plural: engineimages plural: engineimages
shortNames: shortNames:
- lhei - lhei
singular: engineimage singular: engineimage
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
subresources: - name: v1beta1
status: {} served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: State
type: string
description: State of the engine image
jsonPath: .status.state
- name: Image
type: string
description: The Longhorn engine image
jsonPath: .spec.image
- name: RefCount
type: integer
description: Number of volumes are using the engine image
jsonPath: .status.refCount
- name: BuildDate
type: date
description: The build date of the engine image
jsonPath: .status.buildDate
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: Node longhorn-manager: Node
name: nodes.longhorn.io name: nodes.longhorn.io
spec: spec:
@ -139,22 +285,49 @@ spec:
listKind: NodeList listKind: NodeList
plural: nodes plural: nodes
shortNames: shortNames:
- lhn - lhn
singular: node singular: node
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
subresources: - name: v1beta1
status: {} served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: Ready
type: string
description: Indicate whether the node is ready
jsonPath: .status.conditions['Ready']['status']
- name: AllowScheduling
type: boolean
description: Indicate whether the user disabled/enabled replica scheduling for the node
jsonPath: .spec.allowScheduling
- name: Schedulable
type: string
description: Indicate whether Longhorn can schedule replicas on the node
jsonPath: .status.conditions['Schedulable']['status']
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
--- ---
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
labels: labels:
app.kubernetes.io/name: longhorn app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.0.2 helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.0.2 app.kubernetes.io/version: v1.1.0
longhorn-manager: InstanceManager longhorn-manager: InstanceManager
name: instancemanagers.longhorn.io name: instancemanagers.longhorn.io
spec: spec:
@ -164,9 +337,84 @@ spec:
listKind: InstanceManagerList listKind: InstanceManagerList
plural: instancemanagers plural: instancemanagers
shortNames: shortNames:
- lhim - lhim
singular: instancemanager singular: instancemanager
scope: Namespaced scope: Namespaced
version: v1beta1 versions:
subresources: - name: v1beta1
status: {} served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: State
type: string
description: The state of the instance manager
jsonPath: .status.currentState
- name: Type
type: string
description: The type of the instance manager (engine or replica)
jsonPath: .spec.type
- name: Node
type: string
description: The node that the instance manager is running on
jsonPath: .spec.nodeID
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
labels:
app.kubernetes.io/name: longhorn
helm.sh/chart: longhorn-1.1.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: longhorn
app.kubernetes.io/version: v1.1.0
longhorn-manager: ShareManager
name: sharemanagers.longhorn.io
spec:
group: longhorn.io
names:
kind: ShareManager
listKind: ShareManagerList
plural: sharemanagers
shortNames:
- lhsm
singular: sharemanager
scope: Namespaced
versions:
- name: v1beta1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
x-kubernetes-preserve-unknown-fields: true
status:
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
additionalPrinterColumns:
- name: State
type: string
description: The state of the share manager
jsonPath: .status.state
- name: Node
type: string
description: The node that the share manager is owned by
jsonPath: .status.ownerID
- name: Age
type: date
jsonPath: .metadata.creationTimestamp

View File

@ -11,104 +11,128 @@ questions:
group: "Longhorn Images" group: "Longhorn Images"
subquestions: subquestions:
- variable: image.longhorn.manager.repository - variable: image.longhorn.manager.repository
default: longhornio/longhorn-manager default: rancher/longhornio-longhorn-manager
description: "Specify Longhorn Manager Image Repository" description: "Specify Longhorn Manager Image Repository"
type: string type: string
label: Longhorn Manager Image Repository label: Longhorn Manager Image Repository
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.manager.tag - variable: image.longhorn.manager.tag
default: v1.0.2 default: v1.1.0
description: "Specify Longhorn Manager Image Tag" description: "Specify Longhorn Manager Image Tag"
type: string type: string
label: Longhorn Manager Image Tag label: Longhorn Manager Image Tag
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.engine.repository - variable: image.longhorn.engine.repository
default: longhornio/longhorn-engine default: rancher/longhornio-longhorn-engine
description: "Specify Longhorn Engine Image Repository" description: "Specify Longhorn Engine Image Repository"
type: string type: string
label: Longhorn Engine Image Repository label: Longhorn Engine Image Repository
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.engine.tag - variable: image.longhorn.engine.tag
default: v1.0.2 default: v1.1.0
description: "Specify Longhorn Engine Image Tag" description: "Specify Longhorn Engine Image Tag"
type: string type: string
label: Longhorn Engine Image Tag label: Longhorn Engine Image Tag
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.ui.repository - variable: image.longhorn.ui.repository
default: longhornio/longhorn-ui default: rancher/longhornio-longhorn-ui
description: "Specify Longhorn UI Image Repository" description: "Specify Longhorn UI Image Repository"
type: string type: string
label: Longhorn UI Image Repository label: Longhorn UI Image Repository
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.ui.tag - variable: image.longhorn.ui.tag
default: v1.0.2 default: v1.1.0
description: "Specify Longhorn UI Image Tag" description: "Specify Longhorn UI Image Tag"
type: string type: string
label: Longhorn UI Image Tag label: Longhorn UI Image Tag
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.instanceManager.repository - variable: image.longhorn.instanceManager.repository
default: longhornio/longhorn-instance-manager default: rancher/longhornio-longhorn-instance-manager
description: "Specify Longhorn Instance Manager Image Repository" description: "Specify Longhorn Instance Manager Image Repository"
type: string type: string
label: Longhorn Instance Manager Image Repository label: Longhorn Instance Manager Image Repository
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.instanceManager.tag - variable: image.longhorn.instanceManager.tag
default: v1_20200514 default: v1_20201216
description: "Specify Longhorn Instance Manager Image Tag" description: "Specify Longhorn Instance Manager Image Tag"
type: string type: string
label: Longhorn Instance Manager Image Tag label: Longhorn Instance Manager Image Tag
group: "Longhorn Images Settings" group: "Longhorn Images Settings"
- variable: image.longhorn.shareManager.repository
default: rancher/longhornio-longhorn-share-manager
description: "Specify Longhorn Share Manager Image Repository"
type: string
label: Longhorn Share Manager Image Repository
group: "Longhorn Images Settings"
- variable: image.longhorn.shareManager.tag
default: v1_20201204
description: "Specify Longhorn Share Manager Image Tag"
type: string
label: Longhorn Share Manager Image Tag
group: "Longhorn Images Settings"
- variable: image.csi.attacher.repository - variable: image.csi.attacher.repository
default: longhornio/csi-attacher default: rancher/longhornio-csi-attacher
description: "Specify CSI attacher image repository. Leave blank to autodetect." description: "Specify CSI attacher image repository. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Attacher Image Repository label: Longhorn CSI Attacher Image Repository
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.attacher.tag - variable: image.csi.attacher.tag
default: v2.0.0 default: v2.2.1-lh1
description: "Specify CSI attacher image tag. Leave blank to autodetect." description: "Specify CSI attacher image tag. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Attacher Image Tag label: Longhorn CSI Attacher Image Tag
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.provisioner.repository - variable: image.csi.provisioner.repository
default: longhornio/csi-provisioner default: rancher/longhornio-csi-provisioner
description: "Specify CSI provisioner image repository. Leave blank to autodetect." description: "Specify CSI provisioner image repository. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Provisioner Image Repository label: Longhorn CSI Provisioner Image Repository
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.provisioner.tag - variable: image.csi.provisioner.tag
default: v1.4.0 default: v1.6.0-lh1
description: "Specify CSI provisioner image tag. Leave blank to autodetect." description: "Specify CSI provisioner image tag. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Provisioner Image Tag label: Longhorn CSI Provisioner Image Tag
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.nodeDriverRegistrar.repository - variable: image.csi.nodeDriverRegistrar.repository
default: longhornio/csi-node-driver-registrar default: rancher/longhornio-csi-node-driver-registrar
description: "Specify CSI Node Driver Registrar image repository. Leave blank to autodetect." description: "Specify CSI Node Driver Registrar image repository. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Node Driver Registrar Image Repository label: Longhorn CSI Node Driver Registrar Image Repository
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.nodeDriverRegistrar.tag - variable: image.csi.nodeDriverRegistrar.tag
default: v1.2.0 default: v1.2.0-lh1
description: "Specify CSI Node Driver Registrar image tag. Leave blank to autodetect." description: "Specify CSI Node Driver Registrar image tag. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Node Driver Registrar Image Tag label: Longhorn CSI Node Driver Registrar Image Tag
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.resizer.repository - variable: image.csi.resizer.repository
default: longhornio/csi-resizer default: rancher/longhornio-csi-resizer
description: "Specify CSI Driver Resizer image repository. Leave blank to autodetect." description: "Specify CSI Driver Resizer image repository. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Driver Resizer Image Repository label: Longhorn CSI Driver Resizer Image Repository
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.resizer.tag - variable: image.csi.resizer.tag
default: v0.3.0 default: v0.5.1-lh1
description: "Specify CSI Driver Resizer image tag. Leave blank to autodetect." description: "Specify CSI Driver Resizer image tag. Leave blank to autodetect."
type: string type: string
label: Longhorn CSI Driver Resizer Image Tag label: Longhorn CSI Driver Resizer Image Tag
group: "Longhorn CSI Driver Images" group: "Longhorn CSI Driver Images"
- variable: image.csi.snapshotter.repository
default: rancher/longhornio-csi-snapshotter
description: "Specify CSI Driver Snapshotter image repository. Leave blank to autodetect."
type: string
label: Longhorn CSI Driver Snapshotter Image Repository
group: "Longhorn CSI Driver Images"
- variable: image.csi.snapshotter.tag
default: v2.1.1-lh1
description: "Specify CSI Driver Snapshotter image tag. Leave blank to autodetect."
type: string
label: Longhorn CSI Driver Snapshotter Image Tag
group: "Longhorn CSI Driver Images"
- variable: privateRegistry.registryUrl - variable: privateRegistry.registryUrl
label: Private registry URL label: Private registry URL
description: "URL of private registry" description: "URL of private registry. Leave blank to apply system default registry."
group: "Private Registry Settings" group: "Private Registry Settings"
type: string type: string
default: "" default: ""
@ -124,6 +148,12 @@ questions:
group: "Private Registry Settings" group: "Private Registry Settings"
type: password type: password
default: "" default: ""
- variable: privateRegistry.registrySecret
label: Private registry secret name
description: "Longhorn will automatically generate a Kubernetes secret with this name and use it to pull images from your private registry."
group: "Private Registry Settings"
type: string
default: ""
- variable: longhorn.default_setting - variable: longhorn.default_setting
default: "false" default: "false"
description: "Customize the default settings before installing Longhorn for the first time. This option will only work if the cluster hasn't installed Longhorn." description: "Customize the default settings before installing Longhorn for the first time. This option will only work if the cluster hasn't installed Longhorn."
@ -132,12 +162,6 @@ questions:
show_subquestion_if: true show_subquestion_if: true
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
subquestions: subquestions:
- variable: defaultSettings.registrySecret
label: Private registry secret
description: "The Kubernetes Secret name"
group: "Longhorn Default Settings"
type: string
default: ""
- variable: csi.kubeletRootDir - variable: csi.kubeletRootDir
default: default:
description: "Specify kubelet root-dir. Leave blank to autodetect." description: "Specify kubelet root-dir. Leave blank to autodetect."
@ -146,7 +170,7 @@ questions:
group: "Longhorn CSI Driver Settings" group: "Longhorn CSI Driver Settings"
- variable: csi.attacherReplicaCount - variable: csi.attacherReplicaCount
type: int type: int
default: default: 3
min: 1 min: 1
max: 10 max: 10
description: "Specify replica count of CSI Attacher. By default 3." description: "Specify replica count of CSI Attacher. By default 3."
@ -154,27 +178,28 @@ questions:
group: "Longhorn CSI Driver Settings" group: "Longhorn CSI Driver Settings"
- variable: csi.provisionerReplicaCount - variable: csi.provisionerReplicaCount
type: int type: int
default: default: 3
min: 1 min: 1
max: 10 max: 10
description: "Specify replica count of CSI Provisioner. By default 3." description: "Specify replica count of CSI Provisioner. By default 3."
label: Longhorn CSI Provisioner replica count label: Longhorn CSI Provisioner replica count
group: "Longhorn CSI Driver Settings" group: "Longhorn CSI Driver Settings"
- variable: persistence.defaultClass - variable: csi.resizerReplicaCount
default: "true"
description: "Set as default StorageClass"
group: "Longhorn CSI Driver Settings"
type: boolean
required: true
label: Default Storage Class
- variable: persistence.defaultClassReplicaCount
description: "Set replica count for default StorageClass"
group: "Longhorn CSI Driver Settings"
type: int type: int
default: 3 default: 3
min: 1 min: 1
max: 10 max: 10
label: Default Storage Class Replica Count description: "Specify replica count of CSI Resizer. By default 3."
label: Longhorn CSI Resizer replica count
group: "Longhorn CSI Driver Settings"
- variable: csi.snapshotterReplicaCount
type: int
default: 3
min: 1
max: 10
description: "Specify replica count of CSI Snapshotter. By default 3."
label: Longhorn CSI Snapshotter replica count
group: "Longhorn CSI Driver Settings"
- variable: defaultSettings.backupTarget - variable: defaultSettings.backupTarget
label: Backup Target label: Backup Target
description: "The endpoint used to access the backupstore. NFS and S3 are supported." description: "The endpoint used to access the backupstore. NFS and S3 are supported."
@ -187,6 +212,13 @@ questions:
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: string type: string
default: default:
- variable: defaultSettings.allowRecurringJobWhileVolumeDetached
label: Allow Recurring Job While Volume Is Detached
description: 'If this setting is enabled, Longhorn will automatically attaches the volume and takes snapshot/backup when it is the time to do recurring snapshot/backup.
Note that the volume is not ready for workload during the period when the volume was automatically attached. Workload will have to wait until the recurring job finishes.'
group: "Longhorn Default Settings"
type: boolean
default: "false"
- variable: defaultSettings.createDefaultDiskLabeledNodes - variable: defaultSettings.createDefaultDiskLabeledNodes
label: Create Default Disk on Labeled Nodes label: Create Default Disk on Labeled Nodes
description: 'Create default Disk automatically only on Nodes with the label "node.longhorn.io/create-default-disk=true" if no other disks exist. If disabled, the default disk will be created on all new nodes when each node is first added.' description: 'Create default Disk automatically only on Nodes with the label "node.longhorn.io/create-default-disk=true" if no other disks exist. If disabled, the default disk will be created on all new nodes when each node is first added.'
@ -199,6 +231,19 @@ questions:
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: string type: string
default: "/var/lib/longhorn/" default: "/var/lib/longhorn/"
- variable: defaultSettings.defaultDataLocality
label: Default Data Locality
description: 'We say a Longhorn volume has data locality if there is a local replica of the volume on the same node as the pod which is using the volume.
This setting specifies the default data locality when a volume is created from the Longhorn UI. For Kubernetes configuration, update the `dataLocality` in the StorageClass
The available modes are:
- **disabled**. This is the default option. There may or may not be a replica on the same node as the attached volume (workload)
- **best-effort**. This option instructs Longhorn to try to keep a replica on the same node as the attached volume (workload). Longhorn will not stop the volume, even if it cannot keep a replica local to the attached volume (workload) due to environment limitation, e.g. not enough disk space, incompatible disk tags, etc.'
group: "Longhorn Default Settings"
type: enum
options:
- "disabled"
- "best-effort"
default: "disabled"
- variable: defaultSettings.replicaSoftAntiAffinity - variable: defaultSettings.replicaSoftAntiAffinity
label: Replica Node Level Soft Anti-Affinity label: Replica Node Level Soft Anti-Affinity
description: 'Allow scheduling on nodes with existing healthy replicas of the same volume. By default false.' description: 'Allow scheduling on nodes with existing healthy replicas of the same volume. By default false.'
@ -236,10 +281,13 @@ questions:
default: 3 default: 3
- variable: defaultSettings.guaranteedEngineCPU - variable: defaultSettings.guaranteedEngineCPU
label: Guaranteed Engine CPU label: Guaranteed Engine CPU
description: 'Allow Longhorn Instance Managers to have guaranteed CPU allocation. The value is how many CPUs should be reserved for each Engine/Replica Instance Manager Pod created by Longhorn. For example, 0.1 means one-tenth of a CPU. This will help maintain engine stability during high node workload. It only applies to the Engine/Replica Manager Pods created after the setting took effect. description: "Allow Longhorn Instance Managers to have guaranteed CPU allocation. By default 0.25. The value is how many CPUs should be reserved for each Engine/Replica Instance Manager Pod created by Longhorn. For example, 0.1 means one-tenth of a CPU. This will help maintain engine stability during high node workload. It only applies to the Engine/Replica Instance Manager Pods created after the setting took effect.
WARNING: After this setting is changed, all the instance managers on all the nodes will be automatically restarted. In order to prevent unexpected volume crash, you can use the following formula to calculate an appropriate value for this setting:
WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES. 'Guaranteed Engine CPU = The estimated max Longhorn volume/replica count on a node * 0.1'.
By default 0.25.' The result of above calculation doesn't mean that's the maximum CPU resources the Longhorn workloads require. To fully exploit the Longhorn volume I/O performance, you can allocate/guarantee more CPU resources via this setting.
If it's hard to estimate the volume/replica count now, you can leave it with the default value, or allocate 1/8 of total CPU of a node. Then you can tune it when there is no running workload using Longhorn volumes.
WARNING: After this setting is changed, all the instance managers on all the nodes will be automatically restarted
WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES."
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: float type: float
default: 0.25 default: 0.25
@ -258,8 +306,15 @@ By default 0.25.'
default: 300 default: 300
- variable: defaultSettings.taintToleration - variable: defaultSettings.taintToleration
label: Kubernetes Taint Toleration label: Kubernetes Taint Toleration
description: 'To dedicate nodes to store Longhorn replicas and reject other general workloads, set tolerations for Longhorn and add taints for the storage nodes. All Longhorn volumes should be detached before modifying toleration settings. We recommend setting tolerations during Longhorn deployment because the Longhorn system cannot be operated during the update. Multiple tolerations can be set here, and these tolerations are separated by semicolon. For example, `key1=value1:NoSchedule; key2:NoExecute`. Because `kubernetes.io` is used as the key of all Kubernetes default tolerations, it should not be used in the toleration settings. description: "To dedicate nodes to store Longhorn replicas and reject other general workloads, set tolerations for Longhorn and add taints for the storage nodes.
WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES.' All Longhorn volumes should be detached before modifying toleration settings.
We recommend setting tolerations during Longhorn deployment because the Longhorn system cannot be operated during the update.
Multiple tolerations can be set here, and these tolerations are separated by semicolon. For example:
* `key1=value1:NoSchedule; key2:NoExecute`
* `:` this toleration tolerates everything because an empty key with operator `Exists` matches all keys, values and effects
* `key1=value1:` this toleration has empty effect. It matches all effects with key `key1`
Because `kubernetes.io` is used as the key of all Kubernetes default tolerations, it should not be used in the toleration settings.
WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES!"
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: string type: string
default: "" default: ""
@ -275,6 +330,14 @@ WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES.'
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: boolean type: boolean
default: "true" default: "true"
- variable: defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly
label: Automatically Delete Workload Pod when The Volume Is Detached Unexpectedly
description: 'If enabled, Longhorn will automatically delete the workload pod that is managed by a controller (e.g. deployment, statefulset, daemonset, etc...) when Longhorn volume is detached unexpectedly (e.g. during Kubernetes upgrade, Docker reboot, or network disconnect). By deleting the pod, its controller restarts the pod and Kubernetes handles volume reattachment and remount.
If disabled, Longhorn will not delete the workload pod that is managed by a controller. You will have to manually restart the pod to reattach and remount the volume.
**Note:** This setting does not apply to the workload pods that do not have a controller. Longhorn never deletes them.'
group: "Longhorn Default Settings"
type: boolean
default: "true"
- variable: defaultSettings.disableSchedulingOnCordonedNode - variable: defaultSettings.disableSchedulingOnCordonedNode
label: Disable Scheduling On Cordoned Node label: Disable Scheduling On Cordoned Node
description: "Disable Longhorn manager to schedule replica on Kubernetes cordoned node. By default true." description: "Disable Longhorn manager to schedule replica on Kubernetes cordoned node. By default true."
@ -293,15 +356,118 @@ WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES.'
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: enum type: enum
options: options:
- "wait" - "wait"
- "never" - "never"
- "immediate" - "immediate"
default: "wait" default: "wait"
- variable: defaultSettings.nodeDownPodDeletionPolicy
label: Pod Deletion Policy When Node is Down
description: "Defines the Longhorn action when a Volume is stuck with a StatefulSet/Deployment Pod on a node that is down.
- **do-nothing** is the default Kubernetes behavior of never force deleting StatefulSet/Deployment terminating pods. Since the pod on the node that is down isn't removed, Longhorn volumes are stuck on nodes that are down.
- **delete-statefulset-pod** Longhorn will force delete StatefulSet terminating pods on nodes that are down to release Longhorn volumes so that Kubernetes can spin up replacement pods.
- **delete-deployment-pod** Longhorn will force delete Deployment terminating pods on nodes that are down to release Longhorn volumes so that Kubernetes can spin up replacement pods.
- **delete-both-statefulset-and-deployment-pod** Longhorn will force delete StatefulSet/Deployment terminating pods on nodes that are down to release Longhorn volumes so that Kubernetes can spin up replacement pods."
group: "Longhorn Default Settings"
type: enum
options:
- "do-nothing"
- "delete-statefulset-pod"
- "delete-deployment-pod"
- "delete-both-statefulset-and-deployment-pod"
default: "do-nothing"
- variable: defaultSettings.allowNodeDrainWithLastHealthyReplica
label: Allow Node Drain with the Last Healthy Replica
description: "By default, Longhorn will block `kubectl drain` action on a node if the node contains the last healthy replica of a volume.
If this setting is enabled, Longhorn will **not** block `kubectl drain` action on a node even if the node contains the last healthy replica of a volume."
group: "Longhorn Default Settings"
type: boolean
default: "false"
- variable: defaultSettings.mkfsExt4Parameters - variable: defaultSettings.mkfsExt4Parameters
label: Custom mkfs.ext4 parameters label: Custom mkfs.ext4 parameters
description: "Allows setting additional filesystem creation parameters for ext4. For older host kernels it might be necessary to disable the optional ext4 metadata_csum feature by specifying `-O ^64bit,^metadata_csum`." description: "Allows setting additional filesystem creation parameters for ext4. For older host kernels it might be necessary to disable the optional ext4 metadata_csum feature by specifying `-O ^64bit,^metadata_csum`."
group: "Longhorn Default Settings" group: "Longhorn Default Settings"
type: string type: string
- variable: defaultSettings.disableReplicaRebuild
label: Disable Replica Rebuild
description: "This setting disable replica rebuild cross the whole cluster, eviction and data locality feature won't work if this setting is true. But doesn't have any impact to any current replica rebuild and restore disaster recovery volume."
group: "Longhorn Default Settings"
type: boolean
default: "false"
- variable: defaultSettings.replicaReplenishmentWaitInterval
label: Replica Replenishment Wait Interval
description: "In seconds. The interval determines how long Longhorn will wait at least in order to reuse the existing data on a failed replica rather than directly creating a new replica for a degraded volume.
Warning: This option works only when there is a failed replica in the volume. And this option may block the rebuilding for a while in the case."
group: "Longhorn Default Settings"
type: int
min: 0
default: 600
- variable: defaultSettings.disableRevisionCounter
label: Disable Revision Counter
description: "This setting is only for volumes created by UI. By default, this is false meaning there will be a reivision counter file to track every write to the volume. During salvage recovering Longhorn will pick the repica with largest reivision counter as candidate to recover the whole volume. If revision counter is disabled, Longhorn will not track every write to the volume. During the salvage recovering, Longhorn will use the 'volume-head-xxx.img' file last modification time and file size to pick the replica candidate to recover the whole volume."
group: "Longhorn Default Settings"
type: boolean
default: "false"
- variable: defaultSettings.systemManagedPodsImagePullPolicy
label: System Managed Pod Image Pull Policy
description: "This setting defines the Image Pull Policy of Longhorn system managed pods, e.g. instance manager, engine image, CSI driver, etc. The new Image Pull Policy will only apply after the system managed pods restart."
group: "Longhorn Default Settings"
type: enum
options:
- "if-not-present"
- "always"
- "never"
default: "if-not-present"
- variable: defaultSettings.allowVolumeCreationWithDegradedAvailability
label: Allow Volume Creation with Degraded Availability
description: "This setting allows user to create and attach a volume that doesn't have all the replicas scheduled at the time of creation."
group: "Longhorn Default Settings"
type: boolean
default: "true"
- variable: defaultSettings.autoCleanupSystemGeneratedSnapshot
label: Automatically Cleanup System Generated Snapshot
description: "This setting enables Longhorn to automatically cleanup the system generated snapshot after replica rebuild is done."
group: "Longhorn Default Settings"
type: boolean
default: "true"
- variable: persistence.defaultClass
default: "true"
description: "Set as default StorageClass for Longhorn"
label: Default Storage Class
group: "Longhorn Storage Class Settings"
required: true
type: boolean
- variable: persistence.reclaimPolicy
label: Storage Class Retain Policy
description: "Define reclaim policy (Retain or Delete)"
group: "Longhorn Storage Class Settings"
required: true
type: enum
options:
- "Delete"
- "Retain"
default: "Delete"
- variable: persistence.defaultClassReplicaCount
description: "Set replica count for Longhorn StorageClass"
label: Default Storage Class Replica Count
group: "Longhorn Storage Class Settings"
type: int
min: 1
max: 10
default: 3
- variable: persistence.recurringJobs.enable
description: "Enable recurring job for Longhorn StorageClass"
group: "Longhorn Storage Class Settings"
label: Enable Storage Class Recurring Job
type: boolean
default: false
show_subquestion_if: true
subquestions:
- variable: persistence.recurringJobs.jobList
description: 'Recurring job list for Longhorn StorageClass. Please be careful of quotes of input. e.g., [{"name":"backup", "task":"backup", "cron":"*/2 * * * *", "retain":1,"labels": {"interval":"2m"}}]'
label: Storage Class Recurring Job List
group: "Longhorn Storage Class Settings"
type: string
default:
- variable: ingress.enabled - variable: ingress.enabled
default: "false" default: "false"
description: "Expose app using Layer 7 Load Balancer - ingress" description: "Expose app using Layer 7 Load Balancer - ingress"
@ -343,4 +509,4 @@ WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES.'
description: "Setup a pod security policy for Longhorn workloads." description: "Setup a pod security policy for Longhorn workloads."
label: Pod Security Policy label: Pod Security Policy
type: boolean type: boolean
group: "Other Settings" group: "Other Settings"

View File

@ -45,3 +45,22 @@ app.kubernetes.io/version: {{ .Chart.AppVersion }}
{{- "" -}} {{- "" -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- define "registry_url" -}}
{{- if .Values.privateRegistry.registryUrl -}}
{{- printf "%s/" .Values.privateRegistry.registryUrl -}}
{{- else -}}
{{ include "system_default_registry" . }}
{{- end -}}
{{- end -}}
{{- /*
define the longhorn release namespace
*/ -}}
{{- define "release_namespace" -}}
{{- if .Values.namespaceOverride -}}
{{- .Values.namespaceOverride -}}
{{- else -}}
{{- .Release.Namespace -}}
{{- end -}}
{{- end -}}

View File

@ -22,19 +22,26 @@ rules:
- apiGroups: ["batch"] - apiGroups: ["batch"]
resources: ["jobs", "cronjobs"] resources: ["jobs", "cronjobs"]
verbs: ["*"] verbs: ["*"]
- apiGroups: ["policy"]
resources: ["poddisruptionbudgets"]
verbs: ["*"]
- apiGroups: ["scheduling.k8s.io"] - apiGroups: ["scheduling.k8s.io"]
resources: ["priorityclasses"] resources: ["priorityclasses"]
verbs: ["watch", "list"] verbs: ["watch", "list"]
- apiGroups: ["storage.k8s.io"] - apiGroups: ["storage.k8s.io"]
resources: ["storageclasses", "volumeattachments", "csinodes", "csidrivers"] resources: ["storageclasses", "volumeattachments", "csinodes", "csidrivers"]
verbs: ["*"] verbs: ["*"]
- apiGroups: ["coordination.k8s.io"] - apiGroups: ["snapshot.storage.k8s.io"]
resources: ["leases"] resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"]
verbs: ["get", "watch", "list", "delete", "update", "create"] verbs: ["*"]
- apiGroups: ["longhorn.io"] - 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",
"engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status"] "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
"sharemanagers", "sharemanagers/status"]
verbs: ["*"] verbs: ["*"]
- apiGroups: ["coordination.k8s.io"] - apiGroups: ["coordination.k8s.io"]
resources: ["leases"] resources: ["leases"]
verbs: ["*"] verbs: ["*"]
- apiGroups: ["metrics.k8s.io"]
resources: ["pods", "nodes"]
verbs: ["get", "list"]

View File

@ -10,4 +10,4 @@ roleRef:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: longhorn-service-account name: longhorn-service-account
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}

View File

@ -4,7 +4,7 @@ metadata:
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
app: longhorn-manager app: longhorn-manager
name: longhorn-manager name: longhorn-manager
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -16,7 +16,7 @@ spec:
spec: spec:
containers: containers:
- name: longhorn-manager - name: longhorn-manager
image: {{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }} image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
securityContext: securityContext:
privileged: true privileged: true
@ -25,11 +25,13 @@ spec:
- -d - -d
- daemon - daemon
- --engine-image - --engine-image
- "{{ template "system_default_registry" . }}{{ .Values.image.longhorn.engine.repository }}:{{ .Values.image.longhorn.engine.tag }}" - "{{ template "registry_url" . }}{{ .Values.image.longhorn.engine.repository }}:{{ .Values.image.longhorn.engine.tag }}"
- --instance-manager-image - --instance-manager-image
- "{{ template "system_default_registry" . }}{{ .Values.image.longhorn.instanceManager.repository }}:{{ .Values.image.longhorn.instanceManager.tag }}" - "{{ template "registry_url" . }}{{ .Values.image.longhorn.instanceManager.repository }}:{{ .Values.image.longhorn.instanceManager.tag }}"
- --share-manager-image
- "{{ template "registry_url" . }}{{ .Values.image.longhorn.shareManager.repository }}:{{ .Values.image.longhorn.shareManager.tag }}"
- --manager-image - --manager-image
- "{{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}" - "{{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}"
- --service-account - --service-account
- longhorn-service-account - longhorn-service-account
ports: ports:
@ -82,9 +84,9 @@ spec:
- name: longhorn-default-setting - name: longhorn-default-setting
configMap: configMap:
name: longhorn-default-setting name: longhorn-default-setting
{{- if .Values.defaultSettings.registrySecret }} {{- if .Values.privateRegistry.registrySecret }}
imagePullSecrets: imagePullSecrets:
- name: {{ .Values.defaultSettings.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account
updateStrategy: updateStrategy:
@ -97,7 +99,7 @@ metadata:
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
app: longhorn-manager app: longhorn-manager
name: longhorn-backend name: longhorn-backend
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
spec: spec:
type: {{ .Values.service.manager.type }} type: {{ .Values.service.manager.type }}
sessionAffinity: ClientIP sessionAffinity: ClientIP

View File

@ -2,12 +2,13 @@ apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: longhorn-default-setting name: longhorn-default-setting
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
data: data:
default-setting.yaml: |- default-setting.yaml: |-
backup-target: {{ .Values.defaultSettings.backupTarget }} backup-target: {{ .Values.defaultSettings.backupTarget }}
backup-target-credential-secret: {{ .Values.defaultSettings.backupTargetCredentialSecret }} backup-target-credential-secret: {{ .Values.defaultSettings.backupTargetCredentialSecret }}
allow-recurring-job-while-volume-detached: {{ .Values.defaultSettings.allowRecurringJobWhileVolumeDetached }}
create-default-disk-labeled-nodes: {{ .Values.defaultSettings.createDefaultDiskLabeledNodes }} create-default-disk-labeled-nodes: {{ .Values.defaultSettings.createDefaultDiskLabeledNodes }}
default-data-path: {{ .Values.defaultSettings.defaultDataPath }} default-data-path: {{ .Values.defaultSettings.defaultDataPath }}
replica-soft-anti-affinity: {{ .Values.defaultSettings.replicaSoftAntiAffinity }} replica-soft-anti-affinity: {{ .Values.defaultSettings.replicaSoftAntiAffinity }}
@ -15,14 +16,23 @@ data:
storage-minimal-available-percentage: {{ .Values.defaultSettings.storageMinimalAvailablePercentage }} storage-minimal-available-percentage: {{ .Values.defaultSettings.storageMinimalAvailablePercentage }}
upgrade-checker: {{ .Values.defaultSettings.upgradeChecker }} upgrade-checker: {{ .Values.defaultSettings.upgradeChecker }}
default-replica-count: {{ .Values.defaultSettings.defaultReplicaCount }} default-replica-count: {{ .Values.defaultSettings.defaultReplicaCount }}
default-data-locality: {{ .Values.defaultSettings.defaultDataLocality }}
guaranteed-engine-cpu: {{ .Values.defaultSettings.guaranteedEngineCPU }} guaranteed-engine-cpu: {{ .Values.defaultSettings.guaranteedEngineCPU }}
default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }} default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }}
backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }} backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }}
taint-toleration: {{ .Values.defaultSettings.taintToleration }} taint-toleration: {{ .Values.defaultSettings.taintToleration }}
priority-class: {{ .Values.defaultSettings.priorityClass }} priority-class: {{ .Values.defaultSettings.priorityClass }}
registry-secret: {{ .Values.defaultSettings.registrySecret }}
auto-salvage: {{ .Values.defaultSettings.autoSalvage }} auto-salvage: {{ .Values.defaultSettings.autoSalvage }}
auto-delete-pod-when-volume-detached-unexpectedly: {{ .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly }}
disable-scheduling-on-cordoned-node: {{ .Values.defaultSettings.disableSchedulingOnCordonedNode }} disable-scheduling-on-cordoned-node: {{ .Values.defaultSettings.disableSchedulingOnCordonedNode }}
replica-zone-soft-anti-affinity: {{ .Values.defaultSettings.replicaZoneSoftAntiAffinity }} replica-zone-soft-anti-affinity: {{ .Values.defaultSettings.replicaZoneSoftAntiAffinity }}
volume-attachment-recovery-policy: {{ .Values.defaultSettings.volumeAttachmentRecoveryPolicy }} volume-attachment-recovery-policy: {{ .Values.defaultSettings.volumeAttachmentRecoveryPolicy }}
mkfs-ext4-parameters: {{ .Values.defaultSettings.mkfsExt4Parameters }} node-down-pod-deletion-policy: {{ .Values.defaultSettings.nodeDownPodDeletionPolicy }}
allow-node-drain-with-last-healthy-replica: {{ .Values.defaultSettings.allowNodeDrainWithLastHealthyReplica }}
mkfs-ext4-parameters: {{ .Values.defaultSettings.mkfsExt4Parameters }}
disable-replica-rebuild: {{ .Values.defaultSettings.disableReplicaRebuild }}
replica-replenishment-wait-interval: {{ .Values.defaultSettings.replicaReplenishmentWaitInterval }}
disable-revision-counter: {{ .Values.defaultSettings.disableRevisionCounter }}
system-managed-pods-image-pull-policy: {{ .Values.defaultSettings.systemManagedPodsImagePullPolicy }}
allow-volume-creation-with-degraded-availability: {{ .Values.defaultSettings.allowVolumeCreationWithDegradedAvailability }}
auto-cleanup-system-generated-snapshot: {{ .Values.defaultSettings.autoCleanupSystemGeneratedSnapshot }}

View File

@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: longhorn-driver-deployer name: longhorn-driver-deployer
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
spec: spec:
replicas: 1 replicas: 1
@ -16,18 +16,18 @@ spec:
spec: spec:
initContainers: initContainers:
- name: wait-longhorn-manager - name: wait-longhorn-manager
image: {{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }} image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done'] command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done']
containers: containers:
- name: longhorn-driver-deployer - name: longhorn-driver-deployer
image: {{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }} image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
command: command:
- longhorn-manager - longhorn-manager
- -d - -d
- deploy-driver - deploy-driver
- --manager-image - --manager-image
- "{{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}" - "{{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}"
- --manager-url - --manager-url
- http://longhorn-backend:9500/v1 - http://longhorn-backend:9500/v1
env: env:
@ -49,19 +49,23 @@ spec:
{{- end }} {{- end }}
{{- if and .Values.image.csi.attacher.repository .Values.image.csi.attacher.tag }} {{- if and .Values.image.csi.attacher.repository .Values.image.csi.attacher.tag }}
- name: CSI_ATTACHER_IMAGE - name: CSI_ATTACHER_IMAGE
value: "{{ template "system_default_registry" . }}{{ .Values.image.csi.attacher.repository }}:{{ .Values.image.csi.attacher.tag }}" value: "{{ template "registry_url" . }}{{ .Values.image.csi.attacher.repository }}:{{ .Values.image.csi.attacher.tag }}"
{{- end }} {{- end }}
{{- if and .Values.image.csi.provisioner.repository .Values.image.csi.provisioner.tag }} {{- if and .Values.image.csi.provisioner.repository .Values.image.csi.provisioner.tag }}
- name: CSI_PROVISIONER_IMAGE - name: CSI_PROVISIONER_IMAGE
value: "{{ template "system_default_registry" . }}{{ .Values.image.csi.provisioner.repository }}:{{ .Values.image.csi.provisioner.tag }}" value: "{{ template "registry_url" . }}{{ .Values.image.csi.provisioner.repository }}:{{ .Values.image.csi.provisioner.tag }}"
{{- end }} {{- end }}
{{- if and .Values.image.csi.nodeDriverRegistrar.repository .Values.image.csi.nodeDriverRegistrar.tag }} {{- if and .Values.image.csi.nodeDriverRegistrar.repository .Values.image.csi.nodeDriverRegistrar.tag }}
- name: CSI_NODE_DRIVER_REGISTRAR_IMAGE - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE
value: "{{ template "system_default_registry" . }}{{ .Values.image.csi.nodeDriverRegistrar.repository }}:{{ .Values.image.csi.nodeDriverRegistrar.tag }}" value: "{{ template "registry_url" . }}{{ .Values.image.csi.nodeDriverRegistrar.repository }}:{{ .Values.image.csi.nodeDriverRegistrar.tag }}"
{{- end }} {{- end }}
{{- if and .Values.image.csi.resizer.repository .Values.image.csi.resizer.tag }} {{- if and .Values.image.csi.resizer.repository .Values.image.csi.resizer.tag }}
- name: CSI_RESIZER_IMAGE - name: CSI_RESIZER_IMAGE
value: "{{ template "system_default_registry" . }}{{ .Values.image.csi.resizer.repository }}:{{ .Values.image.csi.resizer.tag }}" value: "{{ template "registry_url" . }}{{ .Values.image.csi.resizer.repository }}:{{ .Values.image.csi.resizer.tag }}"
{{- end }}
{{- if and .Values.image.csi.snapshotter.repository .Values.image.csi.snapshotter.tag }}
- name: CSI_SNAPSHOTTER_IMAGE
value: "{{ template "registry_url" . }}{{ .Values.image.csi.snapshotter.repository }}:{{ .Values.image.csi.snapshotter.tag }}"
{{- end }} {{- end }}
{{- if .Values.csi.attacherReplicaCount }} {{- if .Values.csi.attacherReplicaCount }}
- name: CSI_ATTACHER_REPLICA_COUNT - name: CSI_ATTACHER_REPLICA_COUNT
@ -75,9 +79,14 @@ spec:
- name: CSI_RESIZER_REPLICA_COUNT - name: CSI_RESIZER_REPLICA_COUNT
value: {{ .Values.csi.resizerReplicaCount | quote }} value: {{ .Values.csi.resizerReplicaCount | quote }}
{{- end }} {{- end }}
{{- if .Values.defaultSettings.registrySecret }} {{- if .Values.csi.snapshotterReplicaCount }}
- name: CSI_SNAPSHOTTER_REPLICA_COUNT
value: {{ .Values.csi.snapshotterReplicaCount | quote }}
{{- end }}
{{- if .Values.privateRegistry.registrySecret }}
imagePullSecrets: imagePullSecrets:
- name: {{ .Values.defaultSettings.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account
securityContext: securityContext:

View File

@ -4,7 +4,7 @@ metadata:
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
app: longhorn-ui app: longhorn-ui
name: longhorn-ui name: longhorn-ui
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
spec: spec:
replicas: 1 replicas: 1
selector: selector:
@ -17,7 +17,7 @@ spec:
spec: spec:
containers: containers:
- name: longhorn-ui - name: longhorn-ui
image: {{ template "system_default_registry" . }}{{ .Values.image.longhorn.ui.repository }}:{{ .Values.image.longhorn.ui.tag }} image: {{ template "registry_url" . }}{{ .Values.image.longhorn.ui.repository }}:{{ .Values.image.longhorn.ui.tag }}
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
securityContext: securityContext:
runAsUser: 0 runAsUser: 0
@ -27,9 +27,9 @@ spec:
env: env:
- name: LONGHORN_MANAGER_IP - name: LONGHORN_MANAGER_IP
value: "http://longhorn-backend:9500" value: "http://longhorn-backend:9500"
{{- if .Values.defaultSettings.registrySecret }} {{- if .Values.privateRegistry.registrySecret }}
imagePullSecrets: imagePullSecrets:
- name: {{ .Values.defaultSettings.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
--- ---
kind: Service kind: Service
@ -41,7 +41,7 @@ metadata:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
{{- end }} {{- end }}
name: longhorn-frontend name: longhorn-frontend
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
spec: spec:
{{- if eq .Values.service.ui.type "Rancher-Proxy" }} {{- if eq .Values.service.ui.type "Rancher-Proxy" }}
type: ClusterIP type: ClusterIP

View File

@ -3,6 +3,7 @@ apiVersion: extensions/v1beta1
kind: Ingress kind: Ingress
metadata: metadata:
name: longhorn-ingress name: longhorn-ingress
namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
app: longhorn-ingress app: longhorn-ingress
annotations: annotations:

View File

@ -5,7 +5,7 @@ metadata:
"helm.sh/hook": post-upgrade "helm.sh/hook": post-upgrade
"helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
name: longhorn-post-upgrade name: longhorn-post-upgrade
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
spec: spec:
activeDeadlineSeconds: 900 activeDeadlineSeconds: 900
@ -17,8 +17,8 @@ spec:
spec: spec:
containers: containers:
- name: longhorn-post-upgrade - name: longhorn-post-upgrade
image: {{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }} image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
imagePullPolicy: Always imagePullPolicy: IfNotPresent
command: command:
- longhorn-manager - longhorn-manager
- post-upgrade - post-upgrade
@ -28,8 +28,8 @@ spec:
fieldRef: fieldRef:
fieldPath: metadata.namespace fieldPath: metadata.namespace
restartPolicy: OnFailure restartPolicy: OnFailure
{{- if .Values.defaultSettings.registrySecret }} {{- if .Values.privateRegistry.registrySecret }}
imagePullSecrets: imagePullSecrets:
- name: {{ .Values.defaultSettings.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account

View File

@ -35,7 +35,7 @@ kind: Role
metadata: metadata:
name: longhorn-psp-role name: longhorn-psp-role
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
rules: rules:
- apiGroups: - apiGroups:
- policy - policy
@ -51,7 +51,7 @@ kind: RoleBinding
metadata: metadata:
name: longhorn-psp-binding name: longhorn-psp-binding
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: Role kind: Role
@ -59,8 +59,8 @@ roleRef:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: longhorn-service-account name: longhorn-service-account
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
- kind: ServiceAccount - kind: ServiceAccount
name: default name: default
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
{{- end }} {{- end }}

View File

@ -1,10 +1,11 @@
{{- if .Values.defaultSettings.registrySecret }} {{- if .Values.privateRegistry.registrySecret }}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: {{ .Values.defaultSettings.registrySecret }} name: {{ .Values.privateRegistry.registrySecret }}
namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
type: kubernetes.io/dockerconfigjson type: kubernetes.io/dockerconfigjson
data: data:
.dockerconfigjson: {{ template "secret" . }} .dockerconfigjson: {{ template "secret" . }}
{{- end }} {{- end }}

View File

@ -2,5 +2,5 @@ apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: longhorn-service-account name: longhorn-service-account
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}

View File

@ -1,14 +1,26 @@
kind: StorageClass apiVersion: v1
apiVersion: storage.k8s.io/v1 kind: ConfigMap
metadata: metadata:
name: longhorn name: longhorn-storageclass
annotations: namespace: {{ include "release_namespace" . }}
storageclass.kubernetes.io/is-default-class: {{ .Values.persistence.defaultClass | quote }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
provisioner: driver.longhorn.io data:
allowVolumeExpansion: true storageclass.yaml: |
parameters: kind: StorageClass
numberOfReplicas: "{{ .Values.persistence.defaultClassReplicaCount }}" apiVersion: storage.k8s.io/v1
staleReplicaTimeout: "30" metadata:
fromBackup: "" name: longhorn
baseImage: "" annotations:
storageclass.kubernetes.io/is-default-class: {{ .Values.persistence.defaultClass | quote }}
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: "{{ .Values.persistence.reclaimPolicy }}"
volumeBindingMode: Immediate
parameters:
numberOfReplicas: "{{ .Values.persistence.defaultClassReplicaCount }}"
staleReplicaTimeout: "30"
fromBackup: ""
baseImage: ""
{{- if .Values.persistence.recurringJobs.enable }}
recurringJobs: '{{ .Values.persistence.recurringJobs.jobList }}'
{{- end }}

View File

@ -4,6 +4,7 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: longhorn name: longhorn
namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
app: longhorn app: longhorn
type: kubernetes.io/tls type: kubernetes.io/tls

View File

@ -5,7 +5,7 @@ metadata:
"helm.sh/hook": pre-delete "helm.sh/hook": pre-delete
"helm.sh/hook-delete-policy": hook-succeeded "helm.sh/hook-delete-policy": hook-succeeded
name: longhorn-uninstall name: longhorn-uninstall
namespace: {{ .Release.Namespace }} namespace: {{ include "release_namespace" . }}
labels: {{- include "longhorn.labels" . | nindent 4 }} labels: {{- include "longhorn.labels" . | nindent 4 }}
spec: spec:
activeDeadlineSeconds: 900 activeDeadlineSeconds: 900
@ -17,8 +17,8 @@ spec:
spec: spec:
containers: containers:
- name: longhorn-uninstall - name: longhorn-uninstall
image: {{ template "system_default_registry" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }} image: {{ template "registry_url" . }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
imagePullPolicy: Always imagePullPolicy: IfNotPresent
command: command:
- longhorn-manager - longhorn-manager
- uninstall - uninstall
@ -29,8 +29,8 @@ spec:
fieldRef: fieldRef:
fieldPath: metadata.namespace fieldPath: metadata.namespace
restartPolicy: OnFailure restartPolicy: OnFailure
{{- if .Values.defaultSettings.registrySecret }} {{- if .Values.privateRegistry.registrySecret }}
imagePullSecrets: imagePullSecrets:
- name: {{ .Values.defaultSettings.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account

View File

@ -6,8 +6,9 @@ metadata:
rbac.authorization.k8s.io/aggregate-to-admin: "true" rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules: rules:
- apiGroups: [ "longhorn.io" ] - 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",
"engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status" ] "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
"sharemanagers", "sharemanagers/status"]
verbs: [ "*" ] verbs: [ "*" ]
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@ -18,8 +19,9 @@ metadata:
rbac.authorization.k8s.io/aggregate-to-edit: "true" rbac.authorization.k8s.io/aggregate-to-edit: "true"
rules: rules:
- apiGroups: [ "longhorn.io" ] - 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",
"engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status" ] "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
"sharemanagers", "sharemanagers/status"]
verbs: [ "*" ] verbs: [ "*" ]
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@ -30,6 +32,7 @@ metadata:
rbac.authorization.k8s.io/aggregate-to-view: "true" rbac.authorization.k8s.io/aggregate-to-view: "true"
rules: rules:
- apiGroups: [ "longhorn.io" ] - 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",
"engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status" ] "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
"sharemanagers", "sharemanagers/status"]
verbs: [ "get", "list", "watch" ] verbs: [ "get", "list", "watch" ]

View File

@ -9,29 +9,35 @@ image:
longhorn: longhorn:
engine: engine:
repository: rancher/longhornio-longhorn-engine repository: rancher/longhornio-longhorn-engine
tag: v1.0.2 tag: v1.1.0
manager: manager:
repository: rancher/longhornio-longhorn-manager repository: rancher/longhornio-longhorn-manager
tag: v1.0.2 tag: v1.1.0
ui: ui:
repository: rancher/longhornio-longhorn-ui repository: rancher/longhornio-longhorn-ui
tag: v1.0.2 tag: v1.1.0
instanceManager: instanceManager:
repository: rancher/longhornio-longhorn-instance-manager repository: rancher/longhornio-longhorn-instance-manager
tag: v1_20200514 tag: v1_20201216
shareManager:
repository: rancher/longhornio-longhorn-share-manager
tag: v1_20201204
csi: csi:
attacher: attacher:
repository: rancher/longhornio-csi-attacher repository: rancher/longhornio-csi-attacher
tag: v2.0.0 tag: v2.2.1-lh1
provisioner: provisioner:
repository: rancher/longhornio-csi-provisioner repository: rancher/longhornio-csi-provisioner
tag: v1.4.0 tag: v1.6.0-lh1
nodeDriverRegistrar: nodeDriverRegistrar:
repository: rancher/longhornio-csi-node-driver-registrar repository: rancher/longhornio-csi-node-driver-registrar
tag: v1.2.0 tag: v1.2.0-lh1
resizer: resizer:
repository: rancher/longhornio-csi-resizer repository: rancher/longhornio-csi-resizer
tag: v0.3.0 tag: v0.5.1-lh1
snapshotter:
repository: rancher/longhornio-csi-snapshotter
tag: v2.1.1-lh1
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
service: service:
@ -45,18 +51,25 @@ service:
persistence: persistence:
defaultClass: true defaultClass: true
defaultClassReplicaCount: 3 defaultClassReplicaCount: 3
reclaimPolicy: Delete
recurringJobs:
enable: false
jobList: []
csi: csi:
kubeletRootDir: ~ kubeletRootDir: ~
attacherReplicaCount: ~ attacherReplicaCount: ~
provisionerReplicaCount: ~ provisionerReplicaCount: ~
resizerReplicaCount: ~ resizerReplicaCount: ~
snapshotterReplicaCount: ~
defaultSettings: defaultSettings:
backupTarget: ~ backupTarget: ~
backupTargetCredentialSecret: ~ backupTargetCredentialSecret: ~
allowRecurringJobWhileVolumeDetached: ~
createDefaultDiskLabeledNodes: ~ createDefaultDiskLabeledNodes: ~
defaultDataPath: ~ defaultDataPath: ~
defaultDataLocality: ~
replicaSoftAntiAffinity: ~ replicaSoftAntiAffinity: ~
storageOverProvisioningPercentage: ~ storageOverProvisioningPercentage: ~
storageMinimalAvailablePercentage: ~ storageMinimalAvailablePercentage: ~
@ -67,17 +80,26 @@ defaultSettings:
backupstorePollInterval: ~ backupstorePollInterval: ~
taintToleration: ~ taintToleration: ~
priorityClass: ~ priorityClass: ~
registrySecret: ~
autoSalvage: ~ autoSalvage: ~
autoDeletePodWhenVolumeDetachedUnexpectedly: ~
disableSchedulingOnCordonedNode: ~ disableSchedulingOnCordonedNode: ~
replicaZoneSoftAntiAffinity: ~ replicaZoneSoftAntiAffinity: ~
volumeAttachmentRecoveryPolicy: ~ volumeAttachmentRecoveryPolicy: ~
nodeDownPodDeletionPolicy: ~
allowNodeDrainWithLastHealthyReplica: ~
mkfsExt4Parameters: ~ mkfsExt4Parameters: ~
disableReplicaRebuild: ~
replicaReplenishmentWaitInterval: ~
disableRevisionCounter: ~
systemManagedPodsImagePullPolicy: ~
allowVolumeCreationWithDegradedAvailability: ~
autoCleanupSystemGeneratedSnapshot: ~
privateRegistry: privateRegistry:
registryUrl: ~ registryUrl: ~
registryUser: ~ registryUser: ~
registryPasswd: ~ registryPasswd: ~
registrySecret: ~
resources: {} resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious # We usually recommend not to specify default resources and to leave this as a conscious
@ -134,3 +156,7 @@ ingress:
# Configure a pod security policy in the Longhorn namespace to allow privileged pods # Configure a pod security policy in the Longhorn namespace to allow privileged pods
enablePSP: true enablePSP: true
## Specify override namespace, specifically this is useful for using longhorn as sub-chart
## and its release namespace is not the `longhorn-system`
namespaceOverride: ""

View File

@ -641,6 +641,47 @@ entries:
- assets/fleet-crd/fleet-crd-0.3.0-beta600.tgz - assets/fleet-crd/fleet-crd-0.3.0-beta600.tgz
version: 0.3.0-beta600 version: 0.3.0-beta600
longhorn: longhorn:
- annotations:
catalog.cattle.io/auto-install: longhorn-crd=match
catalog.cattle.io/certified: rancher
catalog.cattle.io/display-name: Longhorn
catalog.cattle.io/namespace: longhorn-system
catalog.cattle.io/os: linux
catalog.cattle.io/provides-gvr: longhorn.io/v1beta1
catalog.cattle.io/release-name: longhorn
catalog.cattle.io/ui-component: longhorn
apiVersion: v1
appVersion: v1.1.0
created: "2020-12-23T20:09:04.09651411Z"
description: Longhorn is a distributed block storage system for Kubernetes.
digest: 4d9c34af5cb6f983649c0da636853dcb363aa6aed1293bffb11ddfd04180d122
home: https://github.com/longhorn/longhorn
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/longhorn/icon/color/longhorn-icon-color.svg
keywords:
- longhorn
- storage
- distributed
- block
- device
- iscsi
kubeVersion: '>=v1.16.0-r0'
maintainers:
- email: maintainers@longhorn.io
name: Longhorn maintainers
- email: sheng@yasker.org
name: Sheng Yang
name: longhorn
sources:
- https://github.com/longhorn/longhorn
- https://github.com/longhorn/longhorn-engine
- https://github.com/longhorn/longhorn-instance-manager
- https://github.com/longhorn/longhorn-share-manager
- https://github.com/longhorn/longhorn-manager
- https://github.com/longhorn/longhorn-ui
- https://github.com/longhorn/longhorn-tests
urls:
- assets/longhorn/longhorn-1.1.000.tgz
version: 1.1.000
- annotations: - annotations:
catalog.cattle.io/auto-install: longhorn-crd=match catalog.cattle.io/auto-install: longhorn-crd=match
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
@ -761,6 +802,20 @@ entries:
- assets/longhorn/longhorn-1.0.200.tgz - assets/longhorn/longhorn-1.0.200.tgz
version: 1.0.200 version: 1.0.200
longhorn-crd: longhorn-crd:
- annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/namespace: longhorn-system
catalog.cattle.io/release-name: longhorn-crd
apiVersion: v1
created: "2020-12-23T20:09:04.097324624Z"
description: Installs the CRDs for longhorn.
digest: 2ca9ca1b7af582f9c0e89684e4624a4d4cfc1484ceee74f3cab9c22c7b4e823f
name: longhorn-crd
type: application
urls:
- assets/longhorn/longhorn-crd-1.1.000.tgz
version: 1.1.000
- annotations: - annotations:
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true" catalog.cattle.io/hidden: "true"
@ -2642,4 +2697,4 @@ entries:
urls: urls:
- assets/rio/rio-0.8.000.tgz - assets/rio/rio-0.8.000.tgz
version: 0.8.000 version: 0.8.000
generated: "2020-12-23T18:26:24.779180385Z" generated: "2020-12-23T20:09:04.094547777Z"

View File

@ -1,3 +1,3 @@
cb870a74cd8c3041a1de9b38d2c2443bae476c69c4d4f1dfe95b8eef17fbbb11 packages/longhorn/longhorn.patch e59790fbbbfb0bf66784bab3e68c953b0847c2046c3fb95aee1d7a96cf946d80 packages/longhorn/longhorn.patch
da86de88f83918e2eb6fbd79d9f08a2a5e2d4c42f9931aa9c1f113e71438ea60 packages/longhorn/overlay/templates/userroles.yaml 84ea513b9f896199896791c1b0f25b5a297ce10541fef9e63dae3ed7c7f0b547 packages/longhorn/overlay/templates/userroles.yaml
16566f4ca1cf1c8f7dac8a7b245b916ab6fbcacfdc550e6783c0783c0915cef6 packages/longhorn/package.yaml 3077b7bb0f951b30bc39cda4f58d0372b23113addd59fe5e39e14326676fa948 packages/longhorn/package.yaml