From 6b990aea63b88863c62cec6e3907560407caeab6 Mon Sep 17 00:00:00 2001 From: meldafrawi Date: Fri, 20 Mar 2020 00:20:09 +0200 Subject: [PATCH 01/14] Add airgap support to chart Signed-off-by: meldafrawi --- chart/questions.yml | 79 +++++++++++++++++++++++++- chart/templates/_helpers.tpl | 5 ++ chart/templates/daemonset-sa.yaml | 4 ++ chart/templates/default-setting.yaml | 1 + chart/templates/deployment-driver.yaml | 8 +++ chart/templates/deployment-ui.yaml | 4 ++ chart/templates/postupgrade-job.yaml | 4 ++ chart/templates/registry-secret.yml | 9 +++ chart/templates/uninstall-job.yaml | 4 ++ chart/values.yaml | 7 +++ 10 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 chart/templates/registry-secret.yml diff --git a/chart/questions.yml b/chart/questions.yml index be7e8b7..4bf0d5d 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -4,6 +4,54 @@ labels: io.rancher.certified: experimental namespace: longhorn-system questions: +- variable: image.longhorn.manager + default: longhornio/longhorn-manager + description: "Specify Longhorn Manager Image Name" + type: string + label: Longhorn Manager Image Name + group: "Longhorn Images Settings" +- variable: image.longhorn.managerTag + default: v0.8.0 + description: "Specify Longhorn Manager Image Tag" + type: string + label: Longhorn Manager Image Tag + group: "Longhorn Images Settings" +- variable: image.longhorn.engine + default: longhornio/longhorn-engine + description: "Specify Longhorn Engine Image Name" + type: string + label: Longhorn Engine Image Name + group: "Longhorn Images Settings" +- variable: image.longhorn.engineTag + default: v0.8.0 + description: "Specify Longhorn Engine Image Tag" + type: string + label: Longhorn Engine Image Tag + group: "Longhorn Images Settings" +- variable: image.longhorn.ui + default: longhornio/longhorn-ui + description: "Specify Longhorn UI Image Name" + type: string + label: Longhorn UI Image Name + group: "Longhorn Images Settings" +- variable: image.longhorn.uiTag + default: v0.8.0 + description: "Specify Longhorn UI Image Tag" + type: string + label: Longhorn UI Image Tag + group: "Longhorn Images Settings" +- variable: image.longhorn.instanceManager + default: longhornio/longhorn-instance-manager + description: "Specify Longhorn Instance Manager Image Name" + type: string + label: Longhorn Instance Manager Image Name + group: "Longhorn Images Settings" +- variable: image.longhorn.instanceManagerTag + default: v1_20200301 + description: "Specify Longhorn Instance Manager Image Tag" + type: string + label: Longhorn Manager Image Tag + group: "Longhorn Images Settings" - variable: csi.attacherImage default: description: "Specify CSI attacher image. Leave blank to autodetect." @@ -22,6 +70,12 @@ questions: type: string label: Longhorn CSI Driver Registrar Image group: "Longhorn CSI Driver Settings" +- variable: csi.resizerImage + default: + description: "Specify CSI Driver Resizer image. Leave blank to autodetect." + type: string + label: Longhorn CSI Driver Resizer Image + group: "Longhorn CSI Driver Settings" - variable: csi.kubeletRootDir default: description: "Specify kubelet root-dir. Leave blank to autodetect." @@ -59,7 +113,6 @@ questions: min: 1 max: 10 label: Default Storage Class Replica Count - - variable: defaultSettings.backupTarget label: Backup Target description: "The target used for backup. Support NFS or S3." @@ -144,6 +197,30 @@ questions: group: "Longhorn Default Settings" type: string default: "" +- variable: defaultSettings.registrySecret + label: Private registry secret + description: "The Kubernetes Secret name" + group: "Longhorn Default Settings" + type: string + default: "" +- variable: privateRegistry.registryUrl + label: Private registry URL + description: "URL of private registry" + group: "Private Registry Settings" + type: string + default: "" +- variable: privateRegistry.registryUser + label: Private registry user + description: "User used to authenticate to private registry" + group: "Private Registry Settings" + type: string + default: "" +- variable: privateRegistry.registryPasswd + label: Private registry password + description: "Password used to authenticate to private registry" + group: "Private Registry Settings" + type: password + default: "" - variable: ingress.enabled default: "false" description: "Expose app using Layer 7 Load Balancer - ingress" diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl index 88d0f45..964b243 100644 --- a/chart/templates/_helpers.tpl +++ b/chart/templates/_helpers.tpl @@ -20,3 +20,8 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- $fullname := (include "longhorn.fullname" .) -}} {{- printf "http://%s-backend:9500" $fullname | trunc 63 | trimSuffix "-" -}} {{- end -}} + + +{{- define "secret" }} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.privateRegistry.registryUrl (printf "%s:%s" .Values.privateRegistry.registryUser .Values.privateRegistry.registryPasswd | b64enc) | b64enc }} +{{- end }} diff --git a/chart/templates/daemonset-sa.yaml b/chart/templates/daemonset-sa.yaml index 0084a21..47fe44b 100644 --- a/chart/templates/daemonset-sa.yaml +++ b/chart/templates/daemonset-sa.yaml @@ -80,6 +80,10 @@ spec: - name: longhorn-default-setting configMap: name: longhorn-default-setting + {{- if .Values.defaultSettings.registrySecret }} + imagePullSecrets: + - name: {{ .Values.defaultSettings.registrySecret }} + {{- end }} serviceAccountName: longhorn-service-account updateStrategy: rollingUpdate: diff --git a/chart/templates/default-setting.yaml b/chart/templates/default-setting.yaml index 1fc48c4..403049b 100644 --- a/chart/templates/default-setting.yaml +++ b/chart/templates/default-setting.yaml @@ -18,3 +18,4 @@ data: default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }} backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }} taint-toleration: {{ .Values.defaultSettings.taintToleration }} + registry-secret: {{ .Values.defaultSettings.registrySecret }} diff --git a/chart/templates/deployment-driver.yaml b/chart/templates/deployment-driver.yaml index 47c7467..2855a1d 100644 --- a/chart/templates/deployment-driver.yaml +++ b/chart/templates/deployment-driver.yaml @@ -58,6 +58,10 @@ spec: - name: CSI_DRIVER_REGISTRAR_IMAGE value: {{ .Values.csi.driverRegistrarImage }} {{- end }} + {{- if .Values.csi.resizerImage }} + - name: CSI_RESIZER_IMAGE + value: {{ .Values.csi.resizerImage }} + {{- end }} {{- if .Values.csi.attacherReplicaCount }} - name: CSI_ATTACHER_REPLICA_COUNT value: "{{ .Values.csi.attacherReplicaCount }}" @@ -66,4 +70,8 @@ spec: - name: CSI_PROVISIONER_REPLICA_COUNT value: "{{ .Values.csi.provisionerReplicaCount }}" {{- end }} + {{- if .Values.defaultSettings.registrySecret }} + imagePullSecrets: + - name: {{ .Values.defaultSettings.registrySecret }} + {{- end }} serviceAccountName: longhorn-service-account diff --git a/chart/templates/deployment-ui.yaml b/chart/templates/deployment-ui.yaml index f91327a..33bfc24 100644 --- a/chart/templates/deployment-ui.yaml +++ b/chart/templates/deployment-ui.yaml @@ -24,6 +24,10 @@ spec: env: - name: LONGHORN_MANAGER_IP value: "http://longhorn-backend:9500" + {{- if .Values.defaultSettings.registrySecret }} + imagePullSecrets: + - name: {{ .Values.defaultSettings.registrySecret }} + {{- end }} --- kind: Service apiVersion: v1 diff --git a/chart/templates/postupgrade-job.yaml b/chart/templates/postupgrade-job.yaml index 695962b..5494aed 100644 --- a/chart/templates/postupgrade-job.yaml +++ b/chart/templates/postupgrade-job.yaml @@ -26,4 +26,8 @@ spec: fieldRef: fieldPath: metadata.namespace restartPolicy: OnFailure + {{- if .Values.defaultSettings.registrySecret }} + imagePullSecrets: + - name: {{ .Values.defaultSettings.registrySecret }} + {{- end }} serviceAccountName: longhorn-service-account diff --git a/chart/templates/registry-secret.yml b/chart/templates/registry-secret.yml new file mode 100644 index 0000000..b327c87 --- /dev/null +++ b/chart/templates/registry-secret.yml @@ -0,0 +1,9 @@ +{{- if .Values.defaultSettings.registrySecret }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.defaultSettings.registrySecret }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ template "secret" . }} +{{- end }} diff --git a/chart/templates/uninstall-job.yaml b/chart/templates/uninstall-job.yaml index 0adc2a4..43488d3 100644 --- a/chart/templates/uninstall-job.yaml +++ b/chart/templates/uninstall-job.yaml @@ -27,4 +27,8 @@ spec: fieldRef: fieldPath: metadata.namespace restartPolicy: OnFailure + {{- if .Values.defaultSettings.registrySecret }} + imagePullSecrets: + - name: {{ .Values.defaultSettings.registrySecret }} + {{- end }} serviceAccountName: longhorn-service-account diff --git a/chart/values.yaml b/chart/values.yaml index 17c7746..63b00a3 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -29,6 +29,7 @@ csi: attacherImage: provisionerImage: driverRegistrarImage: + resizerImage: kubeletRootDir: attacherReplicaCount: provisionerReplicaCount: @@ -47,6 +48,12 @@ defaultSettings: defaultLonghornStaticStorageClass: backupstorePollInterval: taintToleration: + registrySecret: + +privateRegistry: + registryUrl: + registryUser: + registryPasswd: resources: {} # We usually recommend not to specify default resources and to leave this as a conscious From 5b141bcaf94947d4edfd596975b26504e5296c18 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Wed, 15 Apr 2020 20:57:15 -0700 Subject: [PATCH 02/14] Sync with manager and update chart tags commit 83bf32dc586bf99314fcd3efa396da676cb4cd55 Author: Shuo Wu Date: Wed Apr 15 17:19:05 2020 +0800 Add 'FromReplica' for 'RebuildStatus' Longhorn #1167 Signed-off-by: Shuo Wu Signed-off-by: Sheng Yang --- chart/Chart.yaml | 4 ++-- chart/values.yaml | 6 +++--- deploy/longhorn.yaml | 31 ++++++++++++++++++++++++------- uninstall/uninstall.yaml | 2 +- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 3384b92..b2d4c39 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 0.8.0 -appVersion: v0.8.0 +version: 0.8.1-rc1 +appVersion: v0.8.1-rc1 kubeVersion: ">=v1.14.0-r0" description: Longhorn is a distributed block storage system for Kubernetes powered by Rancher Labs. keywords: diff --git a/chart/values.yaml b/chart/values.yaml index 63b00a3..ca148dd 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -4,11 +4,11 @@ image: longhorn: engine: longhornio/longhorn-engine - engineTag: v0.8.0 + engineTag: v0.8.1-rc1 manager: longhornio/longhorn-manager - managerTag: v0.8.0 + managerTag: v0.8.1-rc1 ui: longhornio/longhorn-ui - uiTag: v0.8.0 + uiTag: v0.8.1-rc1 instanceManager: longhornio/longhorn-instance-manager instanceManagerTag: v1_20200301 pullPolicy: IfNotPresent diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 4999cc2..1005511 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -221,6 +221,7 @@ data: default-longhorn-static-storage-class: backupstore-poll-interval: taint-toleration: + registry-secret: --- apiVersion: apps/v1 kind: DaemonSet @@ -240,7 +241,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v0.8.0 + image: longhornio/longhorn-manager:v0.8.1-rc1 imagePullPolicy: Always securityContext: privileged: true @@ -249,11 +250,11 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v0.8.0 + - longhornio/longhorn-engine:v0.8.1-rc1 - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20200301 - --manager-image - - longhornio/longhorn-manager:v0.8.0 + - longhornio/longhorn-manager:v0.8.1-rc1 - --service-account - longhorn-service-account ports: @@ -289,6 +290,8 @@ spec: # Should be: mount path of the volume longhorn-default-setting + the key of the configmap data in 04-default-setting.yaml - name: DEFAULT_SETTING_PATH value: /var/lib/longhorn-setting/default-setting.yaml + #imagePullSecrets: + #- name: volumes: - name: dev hostPath: @@ -344,12 +347,14 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v0.8.0 + image: longhornio/longhorn-ui:v0.8.1-rc1 ports: - containerPort: 8000 env: - name: LONGHORN_MANAGER_IP value: "http://longhorn-backend:9500" + #imagePullSecrets: + #- name: serviceAccountName: longhorn-service-account --- kind: Service @@ -385,18 +390,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v0.8.0 + image: longhornio/longhorn-manager:v0.8.1-rc1 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: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v0.8.0 + image: longhornio/longhorn-manager:v0.8.1-rc1 imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v0.8.0 + - longhornio/longhorn-manager:v0.8.1-rc1 - --manager-url - http://longhorn-backend:9500/v1 # manually set root directory for csi @@ -421,6 +426,18 @@ spec: valueFrom: fieldRef: fieldPath: spec.serviceAccountName + # For AirGap Installation + # Replce PREFIX with your private registery + #- name: CSI_ATTACHER_IMAGE + # value: PREFIX/csi-attacher:v2.0.0 + #- name: CSI_PROVISIONER_IMAGE + # value: PREFIX/csi-provisioner:v1.4.0 + #- name: CSI_NODE_DRIVER_REGISTRAR_IMAGE + # value: PREFIX/csi-node-driver-registrar:v1.2.0 + #- name: CSI_RESIZER_IMAGE + # value: PREFIX/csi-resizer:v0.3.0 + #imagePullSecrets: + #- name: serviceAccountName: longhorn-service-account --- kind: StorageClass diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 957cc11..44037b7 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v0.8.0 + image: longhornio/longhorn-manager:v0.8.1-rc1 imagePullPolicy: Always command: - longhorn-manager From ed571836d7c0e67304c349e7e71147101f7afa54 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Wed, 15 Apr 2020 20:58:35 -0700 Subject: [PATCH 03/14] chart: Update questions.yaml to v0.8.1-rc1 Signed-off-by: Sheng Yang --- chart/questions.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chart/questions.yml b/chart/questions.yml index 4bf0d5d..182e364 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -11,7 +11,7 @@ questions: label: Longhorn Manager Image Name group: "Longhorn Images Settings" - variable: image.longhorn.managerTag - default: v0.8.0 + default: v0.8.1-rc1 description: "Specify Longhorn Manager Image Tag" type: string label: Longhorn Manager Image Tag @@ -23,7 +23,7 @@ questions: label: Longhorn Engine Image Name group: "Longhorn Images Settings" - variable: image.longhorn.engineTag - default: v0.8.0 + default: v0.8.1-rc1 description: "Specify Longhorn Engine Image Tag" type: string label: Longhorn Engine Image Tag @@ -35,7 +35,7 @@ questions: label: Longhorn UI Image Name group: "Longhorn Images Settings" - variable: image.longhorn.uiTag - default: v0.8.0 + default: v0.8.1-rc1 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag From c67fc8060e2c6df86b7182caecdc9c8da2de4797 Mon Sep 17 00:00:00 2001 From: meldafrawi Date: Fri, 17 Apr 2020 18:08:01 +0200 Subject: [PATCH 04/14] add Longhorn and CSI use default image question Signed-off-by: Mohamed Eldafrawi --- chart/questions.yml | 194 +++++++++++++++++++++++--------------------- 1 file changed, 101 insertions(+), 93 deletions(-) diff --git a/chart/questions.yml b/chart/questions.yml index 182e364..eac4faf 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -4,78 +4,110 @@ labels: io.rancher.certified: experimental namespace: longhorn-system questions: -- variable: image.longhorn.manager - default: longhornio/longhorn-manager - description: "Specify Longhorn Manager Image Name" +- variable: image.defaultImage + default: "true" + description: "Use default Longhorn images" + label: Use Default Images + type: boolean + show_subquestion_if: false + group: "Longhorn Images" + subquestions: + - variable: image.longhorn.manager + default: longhornio/longhorn-manager + description: "Specify Longhorn Manager Image Name" + type: string + label: Longhorn Manager Image Name + group: "Longhorn Images Settings" + - variable: image.longhorn.managerTag + default: v0.8.1-rc1 + description: "Specify Longhorn Manager Image Tag" + type: string + label: Longhorn Manager Image Tag + group: "Longhorn Images Settings" + - variable: image.longhorn.engine + default: longhornio/longhorn-engine + description: "Specify Longhorn Engine Image Name" + type: string + label: Longhorn Engine Image Name + group: "Longhorn Images Settings" + - variable: image.longhorn.engineTag + default: v0.8.1-rc1 + description: "Specify Longhorn Engine Image Tag" + type: string + label: Longhorn Engine Image Tag + group: "Longhorn Images Settings" + - variable: image.longhorn.ui + default: longhornio/longhorn-ui + description: "Specify Longhorn UI Image Name" + type: string + label: Longhorn UI Image Name + group: "Longhorn Images Settings" + - variable: image.longhorn.uiTag + default: v0.8.1-rc1 + description: "Specify Longhorn UI Image Tag" + type: string + label: Longhorn UI Image Tag + group: "Longhorn Images Settings" + - variable: image.longhorn.instanceManager + default: longhornio/longhorn-instance-manager + description: "Specify Longhorn Instance Manager Image Name" + type: string + label: Longhorn Instance Manager Image Name + group: "Longhorn Images Settings" + - variable: image.longhorn.instanceManagerTag + default: v1_20200301 + description: "Specify Longhorn Instance Manager Image Tag" + type: string + label: Longhorn Manager Image Tag + group: "Longhorn Images Settings" + - variable: csi.attacherImage + default: + description: "Specify CSI attacher image. Leave blank to autodetect." + type: string + label: Longhorn CSI Attacher Image + group: "Longhorn CSI Driver Images" + - variable: csi.provisionerImage + default: + description: "Specify CSI provisioner image. Leave blank to autodetect." + type: string + label: Longhorn CSI Provisioner Image + group: "Longhorn CSI Driver Images" + - variable: csi.driverRegistrarImage + default: + description: "Specify CSI Driver Registrar image. Leave blank to autodetect." + type: string + label: Longhorn CSI Driver Registrar Image + group: "Longhorn CSI Driver Images" + - variable: csi.resizerImage + default: + description: "Specify CSI Driver Resizer image. Leave blank to autodetect." + type: string + label: Longhorn CSI Driver Resizer Image + group: "Longhorn CSI Driver Images" +- variable: privateRegistry.registryUrl + label: Private registry URL + description: "URL of private registry" + group: "Private Registry Settings" type: string - label: Longhorn Manager Image Name - group: "Longhorn Images Settings" -- variable: image.longhorn.managerTag - default: v0.8.1-rc1 - description: "Specify Longhorn Manager Image Tag" + default: "" +- variable: privateRegistry.registryUser + label: Private registry user + description: "User used to authenticate to private registry" + group: "Private Registry Settings" type: string - label: Longhorn Manager Image Tag - group: "Longhorn Images Settings" -- variable: image.longhorn.engine - default: longhornio/longhorn-engine - description: "Specify Longhorn Engine Image Name" + default: "" +- variable: privateRegistry.registryPasswd + label: Private registry password + description: "Password used to authenticate to private registry" + group: "Private Registry Settings" + type: password + default: "" +- variable: defaultSettings.registrySecret + label: Private registry secret + description: "The Kubernetes Secret name" + group: "Longhorn Default Settings" type: string - label: Longhorn Engine Image Name - group: "Longhorn Images Settings" -- variable: image.longhorn.engineTag - default: v0.8.1-rc1 - description: "Specify Longhorn Engine Image Tag" - type: string - label: Longhorn Engine Image Tag - group: "Longhorn Images Settings" -- variable: image.longhorn.ui - default: longhornio/longhorn-ui - description: "Specify Longhorn UI Image Name" - type: string - label: Longhorn UI Image Name - group: "Longhorn Images Settings" -- variable: image.longhorn.uiTag - default: v0.8.1-rc1 - description: "Specify Longhorn UI Image Tag" - type: string - label: Longhorn UI Image Tag - group: "Longhorn Images Settings" -- variable: image.longhorn.instanceManager - default: longhornio/longhorn-instance-manager - description: "Specify Longhorn Instance Manager Image Name" - type: string - label: Longhorn Instance Manager Image Name - group: "Longhorn Images Settings" -- variable: image.longhorn.instanceManagerTag - default: v1_20200301 - description: "Specify Longhorn Instance Manager Image Tag" - type: string - label: Longhorn Manager Image Tag - group: "Longhorn Images Settings" -- variable: csi.attacherImage - default: - description: "Specify CSI attacher image. Leave blank to autodetect." - type: string - label: Longhorn CSI Attacher Image - group: "Longhorn CSI Driver Settings" -- variable: csi.provisionerImage - default: - description: "Specify CSI provisioner image. Leave blank to autodetect." - type: string - label: Longhorn CSI Provisioner Image - group: "Longhorn CSI Driver Settings" -- variable: csi.driverRegistrarImage - default: - description: "Specify CSI Driver Registrar image. Leave blank to autodetect." - type: string - label: Longhorn CSI Driver Registrar Image - group: "Longhorn CSI Driver Settings" -- variable: csi.resizerImage - default: - description: "Specify CSI Driver Resizer image. Leave blank to autodetect." - type: string - label: Longhorn CSI Driver Resizer Image - group: "Longhorn CSI Driver Settings" + default: "" - variable: csi.kubeletRootDir default: description: "Specify kubelet root-dir. Leave blank to autodetect." @@ -197,30 +229,6 @@ questions: group: "Longhorn Default Settings" type: string default: "" -- variable: defaultSettings.registrySecret - label: Private registry secret - description: "The Kubernetes Secret name" - group: "Longhorn Default Settings" - type: string - default: "" -- variable: privateRegistry.registryUrl - label: Private registry URL - description: "URL of private registry" - group: "Private Registry Settings" - type: string - default: "" -- variable: privateRegistry.registryUser - label: Private registry user - description: "User used to authenticate to private registry" - group: "Private Registry Settings" - type: string - default: "" -- variable: privateRegistry.registryPasswd - label: Private registry password - description: "Password used to authenticate to private registry" - group: "Private Registry Settings" - type: password - default: "" - variable: ingress.enabled default: "false" description: "Expose app using Layer 7 Load Balancer - ingress" From c02f69d6f7457d524c2680ce9cfb615641405ba2 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Tue, 21 Apr 2020 16:55:45 -0700 Subject: [PATCH 05/14] Sync with manager and update chart tags commit 364ff6b1bbb9bd5d3f20757304fd27f3f583feb4 Author: Sheng Yang Date: Tue Apr 21 15:49:31 2020 -0700 Longhorn v0.8.1-rc2 release Signed-off-by: Sheng Yang Signed-off-by: Sheng Yang --- chart/Chart.yaml | 4 ++-- chart/values.yaml | 6 ++--- deploy/longhorn.yaml | 52 +++++++++++++++++++++------------------- uninstall/uninstall.yaml | 2 +- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/chart/Chart.yaml b/chart/Chart.yaml index b2d4c39..7824c64 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 0.8.1-rc1 -appVersion: v0.8.1-rc1 +version: 0.8.1-rc2 +appVersion: v0.8.1-rc2 kubeVersion: ">=v1.14.0-r0" description: Longhorn is a distributed block storage system for Kubernetes powered by Rancher Labs. keywords: diff --git a/chart/values.yaml b/chart/values.yaml index ca148dd..110b0e7 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -4,11 +4,11 @@ image: longhorn: engine: longhornio/longhorn-engine - engineTag: v0.8.1-rc1 + engineTag: v0.8.1-rc2 manager: longhornio/longhorn-manager - managerTag: v0.8.1-rc1 + managerTag: v0.8.1-rc2 ui: longhornio/longhorn-ui - uiTag: v0.8.1-rc1 + uiTag: v0.8.1-rc2 instanceManager: longhornio/longhorn-instance-manager instanceManagerTag: v1_20200301 pullPolicy: IfNotPresent diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 1005511..b5791a1 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -241,7 +241,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v0.8.1-rc1 + image: longhornio/longhorn-manager:v0.8.1-rc2 imagePullPolicy: Always securityContext: privileged: true @@ -250,15 +250,16 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v0.8.1-rc1 + - longhornio/longhorn-engine:v0.8.1-rc2 - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20200301 - --manager-image - - longhornio/longhorn-manager:v0.8.1-rc1 + - longhornio/longhorn-manager:v0.8.1-rc2 - --service-account - longhorn-service-account ports: - containerPort: 9500 + name: manager readinessProbe: tcpSocket: port: 9500 @@ -290,8 +291,6 @@ spec: # Should be: mount path of the volume longhorn-default-setting + the key of the configmap data in 04-default-setting.yaml - name: DEFAULT_SETTING_PATH value: /var/lib/longhorn-setting/default-setting.yaml - #imagePullSecrets: - #- name: volumes: - name: dev hostPath: @@ -308,25 +307,29 @@ spec: - name: longhorn-default-setting configMap: name: longhorn-default-setting +# imagePullSecrets: +# - name: "" serviceAccountName: longhorn-service-account updateStrategy: rollingUpdate: maxUnavailable: "100%" --- -kind: Service apiVersion: v1 +kind: Service metadata: labels: app: longhorn-manager name: longhorn-backend namespace: longhorn-system spec: + type: ClusterIP + sessionAffinity: ClientIP selector: app: longhorn-manager ports: - - port: 9500 - targetPort: 9500 - sessionAffinity: ClientIP + - name: manager + port: 9500 + targetPort: manager --- apiVersion: apps/v1 kind: Deployment @@ -347,14 +350,15 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v0.8.1-rc1 + image: longhornio/longhorn-ui:v0.8.1-rc2 ports: - containerPort: 8000 + name: http env: - name: LONGHORN_MANAGER_IP value: "http://longhorn-backend:9500" - #imagePullSecrets: - #- name: +# imagePullSecrets: +# - name: serviceAccountName: longhorn-service-account --- kind: Service @@ -390,29 +394,20 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v0.8.1-rc1 + image: longhornio/longhorn-manager:v0.8.1-rc2 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: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v0.8.1-rc1 + image: longhornio/longhorn-manager:v0.8.1-rc2 imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v0.8.1-rc1 + - longhornio/longhorn-manager:v0.8.1-rc2 - --manager-url - http://longhorn-backend:9500/v1 - # manually set root directory for csi - #- --kubelet-root-dir - #- /var/lib/rancher/k3s/agent/kubelet - # manually specify number of CSI attacher replicas - #- --csi-attacher-replica-count - #- "3" - # manually specify number of CSI provisioner replicas - #- --csi-provisioner-replica-count - #- "3" env: - name: POD_NAMESPACE valueFrom: @@ -426,6 +421,9 @@ spec: valueFrom: fieldRef: fieldPath: spec.serviceAccountName + # Manually set root directory for csi + #- name: KUBELET_ROOT_DIR + # value: /var/lib/rancher/k3s/agent/kubelet # For AirGap Installation # Replce PREFIX with your private registery #- name: CSI_ATTACHER_IMAGE @@ -436,6 +434,12 @@ spec: # value: PREFIX/csi-node-driver-registrar:v1.2.0 #- name: CSI_RESIZER_IMAGE # value: PREFIX/csi-resizer:v0.3.0 + # Manually specify number of CSI attacher replicas + #- name: CSI_ATTACHER_REPLICA_COUNT + # value: "3" + # Manually specify number of CSI provisioner replicas + #- name: CSI_PROVISIONER_REPLICA_COUNT + # value: "3" #imagePullSecrets: #- name: serviceAccountName: longhorn-service-account diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 44037b7..4ecfc0d 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v0.8.1-rc1 + image: longhornio/longhorn-manager:v0.8.1-rc2 imagePullPolicy: Always command: - longhorn-manager From 340ed789f23685f498de833f594b972a78cfd830 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Tue, 21 Apr 2020 16:57:02 -0700 Subject: [PATCH 06/14] chart: Update questions.yaml to v0.8.1-rc2 Signed-off-by: Sheng Yang --- chart/questions.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chart/questions.yml b/chart/questions.yml index eac4faf..80621f5 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -19,7 +19,7 @@ questions: label: Longhorn Manager Image Name group: "Longhorn Images Settings" - variable: image.longhorn.managerTag - default: v0.8.1-rc1 + default: v0.8.1-rc2 description: "Specify Longhorn Manager Image Tag" type: string label: Longhorn Manager Image Tag @@ -31,7 +31,7 @@ questions: label: Longhorn Engine Image Name group: "Longhorn Images Settings" - variable: image.longhorn.engineTag - default: v0.8.1-rc1 + default: v0.8.1-rc2 description: "Specify Longhorn Engine Image Tag" type: string label: Longhorn Engine Image Tag @@ -43,7 +43,7 @@ questions: label: Longhorn UI Image Name group: "Longhorn Images Settings" - variable: image.longhorn.uiTag - default: v0.8.1-rc1 + default: v0.8.1-rc2 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag From 85ab7c8d9d80e244aa2f78ef1e5a1ec83b909374 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Fri, 24 Apr 2020 13:40:45 -0700 Subject: [PATCH 07/14] Sync with manager commit 91bb47d8095238efc1249153341f8a57a4fd8f92 Author: Sheng Yang Date: Fri Apr 24 13:35:53 2020 -0700 Longhorn v0.8.1-rc3 release Signed-off-by: Sheng Yang --- deploy/longhorn.yaml | 14 +++++------ scripts/lhexec | 7 +++--- scripts/migrate-for-pre-070-volumes.sh | 35 ++++++++++++++++++++++++++ uninstall/uninstall.yaml | 2 +- 4 files changed, 47 insertions(+), 11 deletions(-) create mode 100755 scripts/migrate-for-pre-070-volumes.sh diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index b5791a1..176bf60 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -241,7 +241,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v0.8.1-rc2 + image: longhornio/longhorn-manager:master imagePullPolicy: Always securityContext: privileged: true @@ -250,11 +250,11 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v0.8.1-rc2 + - longhornio/longhorn-engine:master - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20200301 - --manager-image - - longhornio/longhorn-manager:v0.8.1-rc2 + - longhornio/longhorn-manager:master - --service-account - longhorn-service-account ports: @@ -350,7 +350,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v0.8.1-rc2 + image: longhornio/longhorn-ui:master ports: - containerPort: 8000 name: http @@ -394,18 +394,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v0.8.1-rc2 + image: longhornio/longhorn-manager:master 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: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v0.8.1-rc2 + image: longhornio/longhorn-manager:master imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v0.8.1-rc2 + - longhornio/longhorn-manager:master - --manager-url - http://longhorn-backend:9500/v1 env: diff --git a/scripts/lhexec b/scripts/lhexec index 538bdb9..54ea704 100755 --- a/scripts/lhexec +++ b/scripts/lhexec @@ -41,12 +41,13 @@ exec_command() { INSTANCE_MANAGER_NAME_FILTER="{.items[?(@.spec.volumeName==\"${VOLUME_NAME}\")].status.instanceManagerName}" INSTANCE_MANAGER_NAME=`kubectl -n ${NS} get lhe --output=jsonpath="${INSTANCE_MANAGER_NAME_FILTER}"` - + ENGINE_PORT_FILTER="{.items[?(@.spec.volumeName==\"${VOLUME_NAME}\")].status.port}" ENGINE_PORT=`kubectl -n ${NS} get lhe --output=jsonpath="${ENGINE_PORT_FILTER}"` - kubectl -n ${NS} exec -it ${INSTANCE_MANAGER_NAME} -- bash -c "longhorn --url localhost:${ENGINE_PORT} ${COMMAND_ARGS}" - + LONGHORN_BIN_PATH=`kubectl -n ${NS} exec -it ${INSTANCE_MANAGER_NAME} -- bash -c "ps -eo command | grep \" ${VOLUME_NAME} \" | grep -v grep | awk '{ printf(\"%s\", \\$1)}'"` + + kubectl -n ${NS} exec -it ${INSTANCE_MANAGER_NAME} -- bash -c "${LONGHORN_BIN_PATH} --url localhost:${ENGINE_PORT} ${COMMAND_ARGS}" } diff --git a/scripts/migrate-for-pre-070-volumes.sh b/scripts/migrate-for-pre-070-volumes.sh new file mode 100755 index 0000000..0963bb4 --- /dev/null +++ b/scripts/migrate-for-pre-070-volumes.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +NS="longhorn-system" + +print_usage() { + echo "Usage: ${0} [ |-h|--help] [volume_name|--all]" + echo "" + echo "Examples:" + echo " ${0} test-vol" + echo " ${0} --all" + echo "" + echo "Note: Must have Longhorn installed in "longhorn-system" namespace" + echo "" + exit 0 +} + +exec_command() { + COMMAND_ARG="${@}" + LONGHORN_MANAGER=$(kubectl -n ${NS} get po -l "app=longhorn-manager" | tr '\000' '\n' | sed -n '2p' | awk '{print $1}') + kubectl -n ${NS} exec -it ${LONGHORN_MANAGER} -- bash -c "longhorn-manager migrate-for-pre-070-volumes ${COMMAND_ARG}" +} + + +ARG=$1 +case $ARG in + "" | "-h" | "--help") + print_usage + ;; + *) + if [[ $# -ne 1 ]]; then + echo "Command args number shouldn't be greater than 1" + fi + exec_command ${@} + ;; +esac diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 4ecfc0d..028f23a 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v0.8.1-rc2 + image: longhornio/longhorn-manager:master imagePullPolicy: Always command: - longhorn-manager From e39dece7a76b9fce231ca51d50038df700014ef1 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Fri, 24 Apr 2020 13:41:28 -0700 Subject: [PATCH 08/14] Longhorn v0.8.1-rc3 release Update version tags. Signed-off-by: Sheng Yang --- chart/Chart.yaml | 4 ++-- chart/questions.yml | 6 +++--- chart/values.yaml | 6 +++--- deploy/longhorn.yaml | 14 +++++++------- uninstall/uninstall.yaml | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 7824c64..4c621ff 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 0.8.1-rc2 -appVersion: v0.8.1-rc2 +version: 0.8.1-rc3 +appVersion: v0.8.1-rc3 kubeVersion: ">=v1.14.0-r0" description: Longhorn is a distributed block storage system for Kubernetes powered by Rancher Labs. keywords: diff --git a/chart/questions.yml b/chart/questions.yml index 80621f5..0c0cafc 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -19,7 +19,7 @@ questions: label: Longhorn Manager Image Name group: "Longhorn Images Settings" - variable: image.longhorn.managerTag - default: v0.8.1-rc2 + default: v0.8.1-rc3 description: "Specify Longhorn Manager Image Tag" type: string label: Longhorn Manager Image Tag @@ -31,7 +31,7 @@ questions: label: Longhorn Engine Image Name group: "Longhorn Images Settings" - variable: image.longhorn.engineTag - default: v0.8.1-rc2 + default: v0.8.1-rc3 description: "Specify Longhorn Engine Image Tag" type: string label: Longhorn Engine Image Tag @@ -43,7 +43,7 @@ questions: label: Longhorn UI Image Name group: "Longhorn Images Settings" - variable: image.longhorn.uiTag - default: v0.8.1-rc2 + default: v0.8.1-rc3 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag diff --git a/chart/values.yaml b/chart/values.yaml index 110b0e7..a4d5187 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -4,11 +4,11 @@ image: longhorn: engine: longhornio/longhorn-engine - engineTag: v0.8.1-rc2 + engineTag: v0.8.1-rc3 manager: longhornio/longhorn-manager - managerTag: v0.8.1-rc2 + managerTag: v0.8.1-rc3 ui: longhornio/longhorn-ui - uiTag: v0.8.1-rc2 + uiTag: v0.8.1-rc3 instanceManager: longhornio/longhorn-instance-manager instanceManagerTag: v1_20200301 pullPolicy: IfNotPresent diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 176bf60..3a731f7 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -241,7 +241,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1-rc3 imagePullPolicy: Always securityContext: privileged: true @@ -250,11 +250,11 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:master + - longhornio/longhorn-engine:v0.8.1-rc3 - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20200301 - --manager-image - - longhornio/longhorn-manager:master + - longhornio/longhorn-manager:v0.8.1-rc3 - --service-account - longhorn-service-account ports: @@ -350,7 +350,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:master + image: longhornio/longhorn-ui:v0.8.1-rc3 ports: - containerPort: 8000 name: http @@ -394,18 +394,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1-rc3 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: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1-rc3 imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:master + - longhornio/longhorn-manager:v0.8.1-rc3 - --manager-url - http://longhorn-backend:9500/v1 env: diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 028f23a..0d1aade 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1-rc3 imagePullPolicy: Always command: - longhorn-manager From 797869261417d042ec16a8655b83e7bfe9f1c813 Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Mon, 27 Apr 2020 17:23:36 +0800 Subject: [PATCH 09/14] chart: Update links in the docs Longhorn #1229 Signed-off-by: Shuo Wu --- chart/Chart.yaml | 13 +++++++------ chart/README.md | 4 ++-- chart/app-readme.md | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 4c621ff..7355397 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -11,13 +11,14 @@ keywords: - block - device - iscsi -home: https://github.com/rancher/longhorn +home: https://github.com/longhorn/longhorn sources: -- https://github.com/rancher/longhorn -- https://github.com/rancher/longhorn-engine -- https://github.com/rancher/longhorn-manager -- https://github.com/rancher/longhorn-ui -- https://github.com/rancher/longhorn-tests +- https://github.com/longhorn/longhorn +- https://github.com/longhorn/longhorn-engine +- https://github.com/longhorn/longhorn-instance-manager +- https://github.com/longhorn/longhorn-manager +- https://github.com/longhorn/longhorn-ui +- https://github.com/longhorn/longhorn-tests maintainers: - name: rancher email: charts@rancher.com diff --git a/chart/README.md b/chart/README.md index 71ae528..613cfac 100644 --- a/chart/README.md +++ b/chart/README.md @@ -38,8 +38,8 @@ If your CRD instances or the CRDs themselves can't be deleted for whatever reaso ``` # Delete CRD instances and definitions -curl -s https://raw.githubusercontent.com/longhorn/longhorn-manager/master/hack/cleancrds.sh |bash -s v062 -curl -s https://raw.githubusercontent.com/longhorn/longhorn-manager/master/hack/cleancrds.sh |bash -s v070 +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 ``` --- diff --git a/chart/app-readme.md b/chart/app-readme.md index 9094764..682d3c2 100644 --- a/chart/app-readme.md +++ b/chart/app-readme.md @@ -4,4 +4,4 @@ Longhorn is a lightweight, reliable and easy to use distributed block storage sy Longhorn creates a dedicated storage controller for each volume and synchronously replicates the volume across multiple replicas stored on multiple nodes. The storage controller and replicas are themselves orchestrated using Kubernetes. Longhorn supports snapshots, backups and even allows you to schedule recurring snapshots and backups! -[Chart Documentation](https://github.com/rancher/longhorn/blob/master/docs/chart.md) +[Chart Documentation](https://github.com/longhorn/longhorn/blob/master/chart/README.md) From ef1ba9accd3ee0d7e68379c09f36c5bff5947d2d Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Mon, 20 Apr 2020 21:23:18 +0800 Subject: [PATCH 10/14] chart: Update deployment files Longhorn #1163 Signed-off-by: Shuo Wu --- chart/README.md | 5 +- chart/questions.yml | 2 - chart/templates/clusterrole.yaml | 6 +- chart/templates/crds.yaml | 126 ------------------------- chart/templates/daemonset-sa.yaml | 5 +- chart/templates/default-setting.yaml | 2 +- chart/templates/deployment-driver.yaml | 6 +- chart/templates/deployment-ui.yaml | 1 + chart/templates/storageclass.yaml | 1 + chart/values.yaml | 8 +- 10 files changed, 17 insertions(+), 145 deletions(-) diff --git a/chart/README.md b/chart/README.md index 613cfac..fe47e57 100644 --- a/chart/README.md +++ b/chart/README.md @@ -9,8 +9,9 @@ The following document pertains to running Longhorn from the Rancher 2.0 chart. 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 -2. Longhorn Manager -- Longhorn orchestration, includes CSI driver for Kubernetes https://github.com/longhorn/longhorn-manager -3. Longhorn UI -- Dashboard https://github.com/longhorn/longhorn-ui +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 +4. Longhorn UI -- Dashboard https://github.com/longhorn/longhorn-ui ## Prerequisites diff --git a/chart/questions.yml b/chart/questions.yml index 0c0cafc..8691d24 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -1,7 +1,5 @@ categories: - storage -labels: - io.rancher.certified: experimental namespace: longhorn-system questions: - variable: image.defaultImage diff --git a/chart/templates/clusterrole.yaml b/chart/templates/clusterrole.yaml index c6c66fb..3b0a320 100644 --- a/chart/templates/clusterrole.yaml +++ b/chart/templates/clusterrole.yaml @@ -10,7 +10,7 @@ rules: verbs: - "*" - apiGroups: [""] - resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps"] + resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims","persistentvolumeclaims/status", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps"] verbs: ["*"] - apiGroups: [""] resources: ["namespaces"] @@ -34,7 +34,3 @@ rules: - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["*"] -# to be removed after v0.7.0 -- apiGroups: ["longhorn.rancher.io"] - resources: ["volumes", "engines", "replicas", "settings", "engineimages", "nodes", "instancemanagers"] - verbs: ["*"] diff --git a/chart/templates/crds.yaml b/chart/templates/crds.yaml index 29413c1..e7ba471 100644 --- a/chart/templates/crds.yaml +++ b/chart/templates/crds.yaml @@ -135,129 +135,3 @@ spec: version: v1beta1 subresources: status: {} ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: Engine - name: engines.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: Engine - listKind: EngineList - plural: engines - shortNames: - - lhe - singular: engine - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: Replica - name: replicas.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: Replica - listKind: ReplicaList - plural: replicas - shortNames: - - lhr - singular: replica - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: Setting - name: settings.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: Setting - listKind: SettingList - plural: settings - shortNames: - - lhs - singular: setting - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: Volume - name: volumes.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: Volume - listKind: VolumeList - plural: volumes - shortNames: - - lhv - singular: volume - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: EngineImage - name: engineimages.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: EngineImage - listKind: EngineImageList - plural: engineimages - shortNames: - - lhei - singular: engineimage - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: Node - name: nodes.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: Node - listKind: NodeList - plural: nodes - shortNames: - - lhn - singular: node - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - longhorn-manager: InstanceManager - name: instancemanagers.longhorn.rancher.io -spec: - group: longhorn.rancher.io - names: - kind: InstanceManager - listKind: InstanceManagerList - plural: instancemanagers - shortNames: - - lhim - singular: instancemanager - scope: Namespaced - version: v1alpha1 \ No newline at end of file diff --git a/chart/templates/daemonset-sa.yaml b/chart/templates/daemonset-sa.yaml index 47fe44b..3731630 100644 --- a/chart/templates/daemonset-sa.yaml +++ b/chart/templates/daemonset-sa.yaml @@ -35,6 +35,9 @@ spec: ports: - containerPort: 9500 name: manager + readinessProbe: + tcpSocket: + port: 9500 volumeMounts: - name: dev mountPath: /host/dev/ @@ -60,8 +63,6 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName - - name: LONGHORN_BACKEND_SVC - value: longhorn-backend - name: DEFAULT_SETTING_PATH value: /var/lib/longhorn-setting/default-setting.yaml volumes: diff --git a/chart/templates/default-setting.yaml b/chart/templates/default-setting.yaml index 403049b..aa0fc55 100644 --- a/chart/templates/default-setting.yaml +++ b/chart/templates/default-setting.yaml @@ -18,4 +18,4 @@ data: default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }} backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }} taint-toleration: {{ .Values.defaultSettings.taintToleration }} - registry-secret: {{ .Values.defaultSettings.registrySecret }} + registry-secret: {{ .Values.defaultSettings.registrySecret }} diff --git a/chart/templates/deployment-driver.yaml b/chart/templates/deployment-driver.yaml index 2855a1d..3155777 100644 --- a/chart/templates/deployment-driver.yaml +++ b/chart/templates/deployment-driver.yaml @@ -54,9 +54,9 @@ spec: - name: CSI_PROVISIONER_IMAGE value: {{ .Values.csi.provisionerImage }} {{- end }} - {{- if .Values.csi.driverRegistrarImage }} - - name: CSI_DRIVER_REGISTRAR_IMAGE - value: {{ .Values.csi.driverRegistrarImage }} + {{- if .Values.csi.nodeDriverRegistrarImage }} + - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE + value: {{ .Values.csi.nodeDriverRegistrarImage }} {{- end }} {{- if .Values.csi.resizerImage }} - name: CSI_RESIZER_IMAGE diff --git a/chart/templates/deployment-ui.yaml b/chart/templates/deployment-ui.yaml index 33bfc24..830e966 100644 --- a/chart/templates/deployment-ui.yaml +++ b/chart/templates/deployment-ui.yaml @@ -18,6 +18,7 @@ spec: containers: - name: longhorn-ui image: "{{ .Values.image.longhorn.ui }}:{{ .Values.image.longhorn.uiTag }}" + imagePullPolicy: Always ports: - containerPort: 8000 name: http diff --git a/chart/templates/storageclass.yaml b/chart/templates/storageclass.yaml index 0f34ecb..ab1f87b 100644 --- a/chart/templates/storageclass.yaml +++ b/chart/templates/storageclass.yaml @@ -10,6 +10,7 @@ metadata: storageclass.beta.kubernetes.io/is-default-class: "false" {{- end }} provisioner: driver.longhorn.io +allowVolumeExpansion: true parameters: numberOfReplicas: "{{ .Values.persistence.defaultClassReplicaCount }}" staleReplicaTimeout: "30" diff --git a/chart/values.yaml b/chart/values.yaml index a4d5187..9d1b1d5 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -28,7 +28,7 @@ persistence: csi: attacherImage: provisionerImage: - driverRegistrarImage: + nodeDriverRegistrarImage: resizerImage: kubeletRootDir: attacherReplicaCount: @@ -51,9 +51,9 @@ defaultSettings: registrySecret: privateRegistry: - registryUrl: - registryUser: - registryPasswd: + registryUrl: + registryUser: + registryPasswd: resources: {} # We usually recommend not to specify default resources and to leave this as a conscious From dfd438a28c54cf88874af077290a7238698a479d Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Tue, 28 Apr 2020 09:58:39 +0000 Subject: [PATCH 11/14] chart: v0.8.1 release Signed-off-by: Shuo Wu --- chart/Chart.yaml | 4 ++-- chart/questions.yml | 6 +++--- chart/values.yaml | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 7355397..35c44eb 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 0.8.1-rc3 -appVersion: v0.8.1-rc3 +version: 0.8.1 +appVersion: v0.8.1 kubeVersion: ">=v1.14.0-r0" description: Longhorn is a distributed block storage system for Kubernetes powered by Rancher Labs. keywords: diff --git a/chart/questions.yml b/chart/questions.yml index 8691d24..72adeee 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -17,7 +17,7 @@ questions: label: Longhorn Manager Image Name group: "Longhorn Images Settings" - variable: image.longhorn.managerTag - default: v0.8.1-rc3 + default: v0.8.1 description: "Specify Longhorn Manager Image Tag" type: string label: Longhorn Manager Image Tag @@ -29,7 +29,7 @@ questions: label: Longhorn Engine Image Name group: "Longhorn Images Settings" - variable: image.longhorn.engineTag - default: v0.8.1-rc3 + default: v0.8.1 description: "Specify Longhorn Engine Image Tag" type: string label: Longhorn Engine Image Tag @@ -41,7 +41,7 @@ questions: label: Longhorn UI Image Name group: "Longhorn Images Settings" - variable: image.longhorn.uiTag - default: v0.8.1-rc3 + default: v0.8.1 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag diff --git a/chart/values.yaml b/chart/values.yaml index 9d1b1d5..7c0b88d 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -4,11 +4,11 @@ image: longhorn: engine: longhornio/longhorn-engine - engineTag: v0.8.1-rc3 + engineTag: v0.8.1 manager: longhornio/longhorn-manager - managerTag: v0.8.1-rc3 + managerTag: v0.8.1 ui: longhornio/longhorn-ui - uiTag: v0.8.1-rc3 + uiTag: v0.8.1 instanceManager: longhornio/longhorn-instance-manager instanceManagerTag: v1_20200301 pullPolicy: IfNotPresent From c915b1c511aecd4b4abaa229faedd6ccadff063d Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Tue, 28 Apr 2020 17:35:27 -0700 Subject: [PATCH 12/14] Sync with Longhorn manager commit ed3409b4c1bf53bbdda94d7a75399a73a617660e Author: Sheng Yang Date: Tue Apr 28 15:50:17 2020 -0700 Longhorn v0.8.1 release Signed-off-by: Sheng Yang Signed-off-by: Sheng Yang --- deploy/longhorn.yaml | 22 +++++++++------------- uninstall/uninstall.yaml | 2 +- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 3a731f7..5ffa66b 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -45,10 +45,6 @@ rules: - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["*"] -# to be removed after v0.7.0 -- apiGroups: ["longhorn.rancher.io"] - resources: ["volumes", "engines", "replicas", "settings", "engineimages", "nodes", "instancemanagers"] - verbs: ["*"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding @@ -241,7 +237,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v0.8.1-rc3 + image: longhornio/longhorn-manager:master imagePullPolicy: Always securityContext: privileged: true @@ -250,11 +246,11 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v0.8.1-rc3 + - longhornio/longhorn-engine:master - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20200301 - --manager-image - - longhornio/longhorn-manager:v0.8.1-rc3 + - longhornio/longhorn-manager:master - --service-account - longhorn-service-account ports: @@ -350,7 +346,8 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v0.8.1-rc3 + image: longhornio/longhorn-ui:master + imagePullPolicy: Always ports: - containerPort: 8000 name: http @@ -359,7 +356,6 @@ spec: value: "http://longhorn-backend:9500" # imagePullSecrets: # - name: - serviceAccountName: longhorn-service-account --- kind: Service apiVersion: v1 @@ -394,18 +390,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v0.8.1-rc3 + image: longhornio/longhorn-manager:master 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: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v0.8.1-rc3 + image: longhornio/longhorn-manager:master imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v0.8.1-rc3 + - longhornio/longhorn-manager:master - --manager-url - http://longhorn-backend:9500/v1 env: @@ -425,7 +421,7 @@ spec: #- name: KUBELET_ROOT_DIR # value: /var/lib/rancher/k3s/agent/kubelet # For AirGap Installation - # Replce PREFIX with your private registery + # Replace PREFIX with your private registery #- name: CSI_ATTACHER_IMAGE # value: PREFIX/csi-attacher:v2.0.0 #- name: CSI_PROVISIONER_IMAGE diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 0d1aade..028f23a 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v0.8.1-rc3 + image: longhornio/longhorn-manager:master imagePullPolicy: Always command: - longhorn-manager From 673d99a6aaec4509404059f00e29e313eb88a730 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Tue, 28 Apr 2020 17:36:21 -0700 Subject: [PATCH 13/14] deploy: Update version to v0.8.1 Signed-off-by: Sheng Yang --- deploy/longhorn.yaml | 14 +++++++------- uninstall/uninstall.yaml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 5ffa66b..4ed2f20 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -237,7 +237,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1 imagePullPolicy: Always securityContext: privileged: true @@ -246,11 +246,11 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:master + - longhornio/longhorn-engine:v0.8.1 - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20200301 - --manager-image - - longhornio/longhorn-manager:master + - longhornio/longhorn-manager:v0.8.1 - --service-account - longhorn-service-account ports: @@ -346,7 +346,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:master + image: longhornio/longhorn-ui:v0.8.1 imagePullPolicy: Always ports: - containerPort: 8000 @@ -390,18 +390,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1 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: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1 imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:master + - longhornio/longhorn-manager:v0.8.1 - --manager-url - http://longhorn-backend:9500/v1 env: diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 028f23a..79ca6c0 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:master + image: longhornio/longhorn-manager:v0.8.1 imagePullPolicy: Always command: - longhorn-manager From 318fbc347b0639d8c98daca3bfd6e76865779d5c Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Tue, 28 Apr 2020 17:37:09 -0700 Subject: [PATCH 14/14] Longhorn v0.8.1 release Signed-off-by: Sheng Yang --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a6287e3..c1ec8d9 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ You can read more technical details of Longhorn [here](http://rancher.com/micros Longhorn is beta-quality software. We appreciate your willingness to deploy Longhorn and provide feedback. -The latest release of Longhorn is **v0.8.0**. +The latest release of Longhorn is **v0.8.1**. ## Source code Longhorn is 100% open source software. Project source code is spread across a number of repos: