From 0ba1833708b871ae1b2e9d2e125c1c06f2063288 Mon Sep 17 00:00:00 2001 From: Oliver Michels Date: Tue, 14 Jun 2022 12:16:12 +0200 Subject: [PATCH 01/15] unable to locate ObjectStore plugin named velero.io/azure issue:3333 / helm install Signed-off-by: Oliver Michels --- charts/velero/templates/deployment.yaml | 35 ++++++++++++++++++++++--- charts/velero/values.yaml | 7 +++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/charts/velero/templates/deployment.yaml b/charts/velero/templates/deployment.yaml index cf60d073..1a639442 100644 --- a/charts/velero/templates/deployment.yaml +++ b/charts/velero/templates/deployment.yaml @@ -185,10 +185,39 @@ spec: dnsPolicy: {{ .Values.dnsPolicy }} {{- if .Values.initContainers }} initContainers: - {{- if eq (typeOf .Values.initContainers) "string" }} - {{- tpl .Values.initContainers . | nindent 8 }} + {{- if eq $provider "aws" }} + - name: velero-plugin-for-aws + image: velero/velero-plugin-for-aws:v1.4.1 + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- else if eq $provider "gcp"}} + - name: velero-velero-plugin-for-gcp + image: velero/velero-plugin-for-microsoft-azure:v1.5.0 + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- else if eq $provider "azure" }} + - name: velero-velero-plugin-for-microsoft-azure + image: velero/velero-plugin-for-microsoft-azure:v1.4.0 + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- else if eq $provider "alibabacloud" }} + - name: velero-velero-plugin-for-alibabacloud + image: velero/velero-plugin-for-alibabacloud:latest + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- end }} + {{- if eq (typeOf .Values.initContainers.extraSpec) "string" }} + {{- tpl .Values.initContainers.extraSpec . | nindent 8 }} {{- else }} - {{- toYaml .Values.initContainers | nindent 8 }} + {{- toYaml .Values.initContainers.extraSpec | nindent 8 }} {{- end }} {{- end }} volumes: diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index e23c76a5..86a77a8c 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -52,6 +52,7 @@ dnsPolicy: ClusterFirst # Init containers to add to the Velero deployment's pod spec. At least one plugin provider image is required. # If the value is a string then it is evaluated as a template. initContainers: + extraSpec: {} # - name: velero-plugin-for-csi # image: velero/velero-plugin-for-csi:v0.2.0 # imagePullPolicy: IfNotPresent @@ -64,6 +65,12 @@ initContainers: # volumeMounts: # - mountPath: /target # name: plugins + # - name: velero-velero-plugin-for-microsoft-azure + # image: velero/velero-plugin-for-microsoft-azure:v1.4.0 + # imagePullPolicy: IfNotPresent + # volumeMounts: + # - mountPath: /target + # name: plugins # SecurityContext to use for the Velero deployment. Optional. # Set fsGroup for `AWS IAM Roles for Service Accounts` From 367b78f6c0b7c892e4b18f3b475e0404fb634ee2 Mon Sep 17 00:00:00 2001 From: Oliver Michels Date: Wed, 15 Jun 2022 11:44:13 +0200 Subject: [PATCH 02/15] ensure that the plugin is installed via the initContainer Signed-off-by: Oliver Michels --- charts/velero/templates/deployment.yaml | 45 ++++++++++++------------- charts/velero/values.yaml | 26 ++++---------- 2 files changed, 27 insertions(+), 44 deletions(-) diff --git a/charts/velero/templates/deployment.yaml b/charts/velero/templates/deployment.yaml index 1a639442..537b781a 100644 --- a/charts/velero/templates/deployment.yaml +++ b/charts/velero/templates/deployment.yaml @@ -186,38 +186,35 @@ spec: {{- if .Values.initContainers }} initContainers: {{- if eq $provider "aws" }} - - name: velero-plugin-for-aws - image: velero/velero-plugin-for-aws:v1.4.1 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins + - name: {{ .Values.initContainers.name | default "velero-plugin-for-aws" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-aws:v1.4.1" | quote }} + {{- else if eq $provider "csi"}} + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-csi" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-csi:v0.2.0" | quote }} {{- else if eq $provider "gcp"}} - - name: velero-velero-plugin-for-gcp - image: velero/velero-plugin-for-microsoft-azure:v1.5.0 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-gcp" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-gcp:v1.4.1" | quote }} {{- else if eq $provider "azure" }} - - name: velero-velero-plugin-for-microsoft-azure - image: velero/velero-plugin-for-microsoft-azure:v1.4.0 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-microsoft-azure" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-microsoft-azure:v1.4.1" | quote }} {{- else if eq $provider "alibabacloud" }} - - name: velero-velero-plugin-for-alibabacloud - image: velero/velero-plugin-for-alibabacloud:latest + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-alibabacloud" | quote }} + image: {{ .Values.initContainers.name | default "registry.cn-hangzhou.aliyuncs.com/acs/velero-plugin-alibabacloud:v1.0.0" | quote }} + {{- else }} + - name: {{ .Values.initContainers.name }} + image: {{ .Values.initContainers.image }} + {{- end }} imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /target name: plugins + {{- with .Values.initContainers.resources }} + resources: + {{- toYaml . | nindent 12 }} {{- end }} - {{- if eq (typeOf .Values.initContainers.extraSpec) "string" }} - {{- tpl .Values.initContainers.extraSpec . | nindent 8 }} - {{- else }} - {{- toYaml .Values.initContainers.extraSpec | nindent 8 }} + {{- with .Values.initContainers.containerSecurityContext }} + securityContext: + {{- toYaml . | nindent 12 }} {{- end }} {{- end }} volumes: diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index 86a77a8c..fca23de7 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -50,27 +50,13 @@ resources: dnsPolicy: ClusterFirst # Init containers to add to the Velero deployment's pod spec. At least one plugin provider image is required. -# If the value is a string then it is evaluated as a template. +# see .Values.configuration.provider initContainers: - extraSpec: {} - # - name: velero-plugin-for-csi - # image: velero/velero-plugin-for-csi:v0.2.0 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins - # - name: velero-plugin-for-aws - # image: velero/velero-plugin-for-aws:v1.4.1 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins - # - name: velero-velero-plugin-for-microsoft-azure - # image: velero/velero-plugin-for-microsoft-azure:v1.4.0 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins + name: + image: + containerSecurityContext: {} + resources: {} + # SecurityContext to use for the Velero deployment. Optional. # Set fsGroup for `AWS IAM Roles for Service Accounts` From 7b15da43a13ddc73d87897f67b674431ae3a6665 Mon Sep 17 00:00:00 2001 From: Oliver Michels Date: Wed, 15 Jun 2022 11:49:09 +0200 Subject: [PATCH 03/15] ensure that the plugin is installed via the initContainer Signed-off-by: Oliver Michels --- charts/velero/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/velero/Chart.yaml b/charts/velero/Chart.yaml index 94484b87..8eb07ac5 100644 --- a/charts/velero/Chart.yaml +++ b/charts/velero/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 1.8.1 kubeVersion: ">=1.16.0-0" description: A Helm chart for velero name: velero -version: 2.29.8 +version: 2.29.9 home: https://github.com/vmware-tanzu/velero icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png sources: From 9965712062bfe51e6c0da90d198a4ea9ccae39b5 Mon Sep 17 00:00:00 2001 From: omichels Date: Fri, 15 Jul 2022 08:07:11 +0200 Subject: [PATCH 04/15] linting --- charts/velero/values.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index 650bfd3d..3ebed2ed 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -57,8 +57,6 @@ initContainers: containerSecurityContext: {} resources: {} - - # SecurityContext to use for the Velero deployment. Optional. # Set fsGroup for `AWS IAM Roles for Service Accounts` # see more informations at: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html From 5fd6f938f2eace2f163599842b97cefd98c4d638 Mon Sep 17 00:00:00 2001 From: Oliver Michels Date: Tue, 14 Jun 2022 12:16:12 +0200 Subject: [PATCH 05/15] unable to locate ObjectStore plugin named velero.io/azure issue:3333 / helm install Signed-off-by: Oliver Michels --- charts/velero/templates/deployment.yaml | 35 ++++++++++++++++++++++--- charts/velero/values.yaml | 7 +++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/charts/velero/templates/deployment.yaml b/charts/velero/templates/deployment.yaml index cf60d073..1a639442 100644 --- a/charts/velero/templates/deployment.yaml +++ b/charts/velero/templates/deployment.yaml @@ -185,10 +185,39 @@ spec: dnsPolicy: {{ .Values.dnsPolicy }} {{- if .Values.initContainers }} initContainers: - {{- if eq (typeOf .Values.initContainers) "string" }} - {{- tpl .Values.initContainers . | nindent 8 }} + {{- if eq $provider "aws" }} + - name: velero-plugin-for-aws + image: velero/velero-plugin-for-aws:v1.4.1 + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- else if eq $provider "gcp"}} + - name: velero-velero-plugin-for-gcp + image: velero/velero-plugin-for-microsoft-azure:v1.5.0 + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- else if eq $provider "azure" }} + - name: velero-velero-plugin-for-microsoft-azure + image: velero/velero-plugin-for-microsoft-azure:v1.4.0 + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- else if eq $provider "alibabacloud" }} + - name: velero-velero-plugin-for-alibabacloud + image: velero/velero-plugin-for-alibabacloud:latest + imagePullPolicy: IfNotPresent + volumeMounts: + - mountPath: /target + name: plugins + {{- end }} + {{- if eq (typeOf .Values.initContainers.extraSpec) "string" }} + {{- tpl .Values.initContainers.extraSpec . | nindent 8 }} {{- else }} - {{- toYaml .Values.initContainers | nindent 8 }} + {{- toYaml .Values.initContainers.extraSpec | nindent 8 }} {{- end }} {{- end }} volumes: diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index e23c76a5..86a77a8c 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -52,6 +52,7 @@ dnsPolicy: ClusterFirst # Init containers to add to the Velero deployment's pod spec. At least one plugin provider image is required. # If the value is a string then it is evaluated as a template. initContainers: + extraSpec: {} # - name: velero-plugin-for-csi # image: velero/velero-plugin-for-csi:v0.2.0 # imagePullPolicy: IfNotPresent @@ -64,6 +65,12 @@ initContainers: # volumeMounts: # - mountPath: /target # name: plugins + # - name: velero-velero-plugin-for-microsoft-azure + # image: velero/velero-plugin-for-microsoft-azure:v1.4.0 + # imagePullPolicy: IfNotPresent + # volumeMounts: + # - mountPath: /target + # name: plugins # SecurityContext to use for the Velero deployment. Optional. # Set fsGroup for `AWS IAM Roles for Service Accounts` From 96e3a9df032bcd1d3356d3c4d381c64eac1d87a9 Mon Sep 17 00:00:00 2001 From: Oliver Michels Date: Wed, 15 Jun 2022 11:44:13 +0200 Subject: [PATCH 06/15] ensure that the plugin is installed via the initContainer Signed-off-by: Oliver Michels --- charts/velero/templates/deployment.yaml | 45 ++++++++++++------------- charts/velero/values.yaml | 26 ++++---------- 2 files changed, 27 insertions(+), 44 deletions(-) diff --git a/charts/velero/templates/deployment.yaml b/charts/velero/templates/deployment.yaml index 1a639442..537b781a 100644 --- a/charts/velero/templates/deployment.yaml +++ b/charts/velero/templates/deployment.yaml @@ -186,38 +186,35 @@ spec: {{- if .Values.initContainers }} initContainers: {{- if eq $provider "aws" }} - - name: velero-plugin-for-aws - image: velero/velero-plugin-for-aws:v1.4.1 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins + - name: {{ .Values.initContainers.name | default "velero-plugin-for-aws" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-aws:v1.4.1" | quote }} + {{- else if eq $provider "csi"}} + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-csi" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-csi:v0.2.0" | quote }} {{- else if eq $provider "gcp"}} - - name: velero-velero-plugin-for-gcp - image: velero/velero-plugin-for-microsoft-azure:v1.5.0 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-gcp" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-gcp:v1.4.1" | quote }} {{- else if eq $provider "azure" }} - - name: velero-velero-plugin-for-microsoft-azure - image: velero/velero-plugin-for-microsoft-azure:v1.4.0 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-microsoft-azure" | quote }} + image: {{ .Values.initContainers.name | default "velero/velero-plugin-for-microsoft-azure:v1.4.1" | quote }} {{- else if eq $provider "alibabacloud" }} - - name: velero-velero-plugin-for-alibabacloud - image: velero/velero-plugin-for-alibabacloud:latest + - name: {{ .Values.initContainers.name | default "velero-velero-plugin-for-alibabacloud" | quote }} + image: {{ .Values.initContainers.name | default "registry.cn-hangzhou.aliyuncs.com/acs/velero-plugin-alibabacloud:v1.0.0" | quote }} + {{- else }} + - name: {{ .Values.initContainers.name }} + image: {{ .Values.initContainers.image }} + {{- end }} imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /target name: plugins + {{- with .Values.initContainers.resources }} + resources: + {{- toYaml . | nindent 12 }} {{- end }} - {{- if eq (typeOf .Values.initContainers.extraSpec) "string" }} - {{- tpl .Values.initContainers.extraSpec . | nindent 8 }} - {{- else }} - {{- toYaml .Values.initContainers.extraSpec | nindent 8 }} + {{- with .Values.initContainers.containerSecurityContext }} + securityContext: + {{- toYaml . | nindent 12 }} {{- end }} {{- end }} volumes: diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index 86a77a8c..fca23de7 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -50,27 +50,13 @@ resources: dnsPolicy: ClusterFirst # Init containers to add to the Velero deployment's pod spec. At least one plugin provider image is required. -# If the value is a string then it is evaluated as a template. +# see .Values.configuration.provider initContainers: - extraSpec: {} - # - name: velero-plugin-for-csi - # image: velero/velero-plugin-for-csi:v0.2.0 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins - # - name: velero-plugin-for-aws - # image: velero/velero-plugin-for-aws:v1.4.1 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins - # - name: velero-velero-plugin-for-microsoft-azure - # image: velero/velero-plugin-for-microsoft-azure:v1.4.0 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins + name: + image: + containerSecurityContext: {} + resources: {} + # SecurityContext to use for the Velero deployment. Optional. # Set fsGroup for `AWS IAM Roles for Service Accounts` From 5e8b992fe6b4356af33657d713f0bf67307a62a5 Mon Sep 17 00:00:00 2001 From: Oliver Michels Date: Wed, 15 Jun 2022 11:49:09 +0200 Subject: [PATCH 07/15] ensure that the plugin is installed via the initContainer Signed-off-by: Oliver Michels --- charts/velero/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/velero/Chart.yaml b/charts/velero/Chart.yaml index 94484b87..8eb07ac5 100644 --- a/charts/velero/Chart.yaml +++ b/charts/velero/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 1.8.1 kubeVersion: ">=1.16.0-0" description: A Helm chart for velero name: velero -version: 2.29.8 +version: 2.29.9 home: https://github.com/vmware-tanzu/velero icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png sources: From c623a2e3d981fc8fd9d227db76b1b14dc9e9e77f Mon Sep 17 00:00:00 2001 From: Scott Seago Date: Tue, 24 May 2022 15:12:18 -0400 Subject: [PATCH 08/15] Add Shubham to auto-assignees Signed-off-by: Scott Seago Signed-off-by: Oliver Michels --- .github/auto-assignees.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/auto-assignees.yml b/.github/auto-assignees.yml index 9d095331..9a0649b1 100644 --- a/.github/auto-assignees.yml +++ b/.github/auto-assignees.yml @@ -13,6 +13,7 @@ reviewers: - reasonerjt - sseago - ywk253100 + - shubham-pampattiwar options: ignore_draft: true From f622cc4060f85e75fcdb5b78c70017c994678755 Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Sun, 19 Jun 2022 20:48:04 +0800 Subject: [PATCH 09/15] Run ct install when there is a chart change Signed-off-by: JenTing Hsiao Signed-off-by: Oliver Michels --- .github/workflows/lint-test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 12010e2f..df89c5ed 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -57,3 +57,4 @@ jobs: - name: Run chart-testing (install) run: ct install + if: steps.list-changed.outputs.changed == 'true' From bcca58652ddfd79b2729a4d7ff4936d1585bc1d1 Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Thu, 23 Jun 2022 13:15:49 +0800 Subject: [PATCH 10/15] Bump Velero v1.9.0 CRDs Signed-off-by: JenTing Hsiao Signed-off-by: Oliver Michels --- charts/velero/crds/backups.yaml | 67 ++++++++++++++++ .../velero/crds/backupstoragelocations.yaml | 7 +- charts/velero/crds/deletebackuprequests.yaml | 12 ++- charts/velero/crds/downloadrequests.yaml | 2 - charts/velero/crds/podvolumebackups.yaml | 36 ++++++++- charts/velero/crds/podvolumerestores.yaml | 33 +++++++- charts/velero/crds/resticrepositories.yaml | 7 +- charts/velero/crds/restores.yaml | 80 +++++++++++++++++++ charts/velero/crds/schedules.yaml | 74 ++++++++++++++++- charts/velero/crds/serverstatusrequests.yaml | 2 - 10 files changed, 309 insertions(+), 11 deletions(-) diff --git a/charts/velero/crds/backups.yaml b/charts/velero/crds/backups.yaml index c6cfe7f1..f2e89daf 100644 --- a/charts/velero/crds/backups.yaml +++ b/charts/velero/crds/backups.yaml @@ -316,6 +316,61 @@ spec: type: string type: object type: object + orLabelSelectors: + description: OrLabelSelectors is list of metav1.LabelSelector to filter + with when adding individual objects to the backup. If multiple provided + they will be joined by the OR operator. LabelSelector as well as + OrLabelSelectors cannot co-exist in backup request, only one of + them can be used. + items: + description: A label selector is a label query over a set of resources. + The result of matchLabels and matchExpressions are ANDed. An empty + label selector matches all objects. A null label selector matches + no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: A label selector requirement is a selector that + contains values, a key, and an operator that relates the + key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of string values. If the + operator is In or NotIn, the values array must be non-empty. + If the operator is Exists or DoesNotExist, the values + array must be empty. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single + {key,value} in the matchLabels map is equivalent to an element + of matchExpressions, whose key field is "key", the operator + is "In", and the values array contains only "value". The requirements + are ANDed. + type: object + type: object + nullable: true + type: array orderedResources: additionalProperties: type: string @@ -356,6 +411,14 @@ spec: format: date-time nullable: true type: string + csiVolumeSnapshotsAttempted: + description: CSIVolumeSnapshotsAttempted is the total number of attempted + CSI VolumeSnapshots for this backup. + type: integer + csiVolumeSnapshotsCompleted: + description: CSIVolumeSnapshotsCompleted is the total number of successfully + completed CSI VolumeSnapshots for this backup. + type: integer errors: description: Errors is a count of all error messages that were generated during execution of the backup. The actual errors are in the backup's @@ -366,6 +429,10 @@ spec: format: date-time nullable: true type: string + failureReason: + description: FailureReason is an error that caused the entire backup + to fail. + type: string formatVersion: description: FormatVersion is the backup format version, including major, minor, and patch version. diff --git a/charts/velero/crds/backupstoragelocations.yaml b/charts/velero/crds/backupstoragelocations.yaml index 597db881..ca6a523b 100644 --- a/charts/velero/crds/backupstoragelocations.yaml +++ b/charts/velero/crds/backupstoragelocations.yaml @@ -160,6 +160,10 @@ spec: format: date-time nullable: true type: string + message: + description: Message is a message about the backup storage location's + status. + type: string phase: description: Phase is the current state of the BackupStorageLocation. enum: @@ -170,8 +174,7 @@ spec: type: object served: true storage: true - subresources: - status: {} + subresources: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/deletebackuprequests.yaml b/charts/velero/crds/deletebackuprequests.yaml index af96c2b3..7adb7756 100644 --- a/charts/velero/crds/deletebackuprequests.yaml +++ b/charts/velero/crds/deletebackuprequests.yaml @@ -18,7 +18,16 @@ spec: singular: deletebackuprequest scope: Namespaced versions: - - name: v1 + - additionalPrinterColumns: + - description: The name of the backup to be deleted + jsonPath: .spec.backupName + name: BackupName + type: string + - description: The status of the deletion request + jsonPath: .status.phase + name: Status + type: string + name: v1 schema: openAPIV3Schema: description: DeleteBackupRequest is a request to delete one or more backups. @@ -65,6 +74,7 @@ spec: type: object served: true storage: true + subresources: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/downloadrequests.yaml b/charts/velero/crds/downloadrequests.yaml index 25d90a09..1058e974 100644 --- a/charts/velero/crds/downloadrequests.yaml +++ b/charts/velero/crds/downloadrequests.yaml @@ -87,8 +87,6 @@ spec: type: object served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/podvolumebackups.yaml b/charts/velero/crds/podvolumebackups.yaml index c87baf6a..79b6368d 100644 --- a/charts/velero/crds/podvolumebackups.yaml +++ b/charts/velero/crds/podvolumebackups.yaml @@ -18,7 +18,40 @@ spec: singular: podvolumebackup scope: Namespaced versions: - - name: v1 + - additionalPrinterColumns: + - description: Pod Volume Backup status such as New/InProgress + jsonPath: .status.phase + name: Status + type: string + - description: Time when this backup was started + jsonPath: .status.startTimestamp + name: Created + type: date + - description: Namespace of the pod containing the volume to be backed up + jsonPath: .spec.pod.namespace + name: Namespace + type: string + - description: Name of the pod containing the volume to be backed up + jsonPath: .spec.pod.name + name: Pod + type: string + - description: Name of the volume to be backed up + jsonPath: .spec.volume + name: Volume + type: string + - description: Restic repository identifier for this backup + jsonPath: .spec.repoIdentifier + name: Restic Repo + type: string + - description: Name of the Backup Storage Location where this backup should be + stored + jsonPath: .spec.backupStorageLocation + name: Storage Location + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 schema: openAPIV3Schema: properties: @@ -155,6 +188,7 @@ spec: type: object served: true storage: true + subresources: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/podvolumerestores.yaml b/charts/velero/crds/podvolumerestores.yaml index 44d3cc41..e64d783b 100644 --- a/charts/velero/crds/podvolumerestores.yaml +++ b/charts/velero/crds/podvolumerestores.yaml @@ -18,7 +18,37 @@ spec: singular: podvolumerestore scope: Namespaced versions: - - name: v1 + - additionalPrinterColumns: + - description: Namespace of the pod containing the volume to be restored + jsonPath: .spec.pod.namespace + name: Namespace + type: string + - description: Name of the pod containing the volume to be restored + jsonPath: .spec.pod.name + name: Pod + type: string + - description: Name of the volume to be restored + jsonPath: .spec.volume + name: Volume + type: string + - description: Pod Volume Restore status such as New/InProgress + jsonPath: .status.phase + name: Status + type: string + - description: Pod Volume Restore status such as New/InProgress + format: int64 + jsonPath: .status.progress.totalBytes + name: TotalBytes + type: integer + - description: Pod Volume Restore status such as New/InProgress + format: int64 + jsonPath: .status.progress.bytesDone + name: BytesDone + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 schema: openAPIV3Schema: properties: @@ -138,6 +168,7 @@ spec: type: object served: true storage: true + subresources: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/resticrepositories.yaml b/charts/velero/crds/resticrepositories.yaml index 0685c41b..421efc00 100644 --- a/charts/velero/crds/resticrepositories.yaml +++ b/charts/velero/crds/resticrepositories.yaml @@ -18,7 +18,11 @@ spec: singular: resticrepository scope: Namespaced versions: - - name: v1 + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 schema: openAPIV3Schema: properties: @@ -83,6 +87,7 @@ spec: type: object served: true storage: true + subresources: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/restores.yaml b/charts/velero/crds/restores.yaml index 82c5b53e..b641bbf3 100644 --- a/charts/velero/crds/restores.yaml +++ b/charts/velero/crds/restores.yaml @@ -55,6 +55,11 @@ spec: type: string nullable: true type: array + existingResourcePolicy: + description: ExistingResourcePolicy specifies the restore behaviour + for the kubernetes resource to be restored + nullable: true + type: string hooks: description: Hooks represent custom behaviors that should be executed during or post restore. @@ -1705,6 +1710,61 @@ spec: included in the map will be restored into namespaces of the same name. type: object + orLabelSelectors: + description: OrLabelSelectors is list of metav1.LabelSelector to filter + with when restoring individual objects from the backup. If multiple + provided they will be joined by the OR operator. LabelSelector as + well as OrLabelSelectors cannot co-exist in restore request, only + one of them can be used + items: + description: A label selector is a label query over a set of resources. + The result of matchLabels and matchExpressions are ANDed. An empty + label selector matches all objects. A null label selector matches + no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: A label selector requirement is a selector that + contains values, a key, and an operator that relates the + key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of string values. If the + operator is In or NotIn, the values array must be non-empty. + If the operator is Exists or DoesNotExist, the values + array must be empty. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single + {key,value} in the matchLabels map is equivalent to an element + of matchExpressions, whose key field is "key", the operator + is "In", and the values array contains only "value". The requirements + are ANDed. + type: object + type: object + nullable: true + type: array preserveNodePorts: description: PreserveNodePorts specifies whether to restore old nodePorts from backup. @@ -1715,6 +1775,26 @@ spec: PVs from snapshot (via the cloudprovider). nullable: true type: boolean + restoreStatus: + description: RestoreStatus specifies which resources we should restore + the status field. If nil, no objects are included. Optional. + nullable: true + properties: + excludedResources: + description: ExcludedResources specifies the resources to which + will not restore the status. + items: + type: string + nullable: true + type: array + includedResources: + description: IncludedResources specifies the resources to which + will restore the status. If empty, it applies to all resources. + items: + type: string + nullable: true + type: array + type: object scheduleName: description: ScheduleName is the unique name of the Velero schedule to restore from. If specified, and BackupName is empty, Velero will diff --git a/charts/velero/crds/schedules.yaml b/charts/velero/crds/schedules.yaml index d0424530..cb90c511 100644 --- a/charts/velero/crds/schedules.yaml +++ b/charts/velero/crds/schedules.yaml @@ -18,7 +18,23 @@ spec: singular: schedule scope: Namespaced versions: - - name: v1 + - additionalPrinterColumns: + - description: Status of the schedule + jsonPath: .status.phase + name: Status + type: string + - description: A Cron expression defining when to run the Backup + jsonPath: .spec.schedule + name: Schedule + type: string + - description: The last time a Backup was run for this schedule + jsonPath: .status.lastBackup + name: LastBackup + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 schema: openAPIV3Schema: description: Schedule is a Velero resource that represents a pre-scheduled @@ -329,6 +345,61 @@ spec: type: string type: object type: object + orLabelSelectors: + description: OrLabelSelectors is list of metav1.LabelSelector + to filter with when adding individual objects to the backup. + If multiple provided they will be joined by the OR operator. + LabelSelector as well as OrLabelSelectors cannot co-exist in + backup request, only one of them can be used. + items: + description: A label selector is a label query over a set of + resources. The result of matchLabels and matchExpressions + are ANDed. An empty label selector matches all objects. A + null label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, + Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. + If the operator is In or NotIn, the values array + must be non-empty. If the operator is Exists or + DoesNotExist, the values array must be empty. This + array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. + A single {key,value} in the matchLabels map is equivalent + to an element of matchExpressions, whose key field is + "key", the operator is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + nullable: true + type: array orderedResources: additionalProperties: type: string @@ -395,6 +466,7 @@ spec: type: object served: true storage: true + subresources: {} status: acceptedNames: kind: "" diff --git a/charts/velero/crds/serverstatusrequests.yaml b/charts/velero/crds/serverstatusrequests.yaml index f9ee4f42..520d2ed2 100644 --- a/charts/velero/crds/serverstatusrequests.yaml +++ b/charts/velero/crds/serverstatusrequests.yaml @@ -79,8 +79,6 @@ spec: type: object served: true storage: true - subresources: - status: {} status: acceptedNames: kind: "" From 4b4d0f358089aca19f16bd68ec309b1b15a06b7c Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Thu, 23 Jun 2022 13:16:43 +0800 Subject: [PATCH 11/15] Bump version in values.yaml Signed-off-by: JenTing Hsiao Signed-off-by: Oliver Michels --- charts/velero/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index fca23de7..909df5c3 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -6,7 +6,7 @@ # enabling restic). Required. image: repository: velero/velero - tag: v1.8.1 + tag: v1.9.0 # Digest value example: sha256:d238835e151cec91c6a811fe3a89a66d3231d9f64d09e5f3c49552672d271f38. # If used, it will take precedence over the image.tag. # digest: @@ -418,7 +418,7 @@ schedules: {} # velero.io/plugin-config: "" # velero.io/restic: RestoreItemAction # data: -# image: velero/velero-restic-restore-helper:v1.8.1 +# image: velero/velero-restic-restore-helper:v1.9.0 configMaps: {} ## From 1982d1e898ab84750b551004255c5630fb0016c3 Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Thu, 23 Jun 2022 13:17:01 +0800 Subject: [PATCH 12/15] Add Velero v1.9 in README Signed-off-by: JenTing Hsiao Signed-off-by: Oliver Michels --- charts/velero/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/charts/velero/README.md b/charts/velero/README.md index ac70a121..895bd3c3 100644 --- a/charts/velero/README.md +++ b/charts/velero/README.md @@ -6,7 +6,7 @@ Velero has two main components: a CLI, and a server-side Kubernetes deployment. ## Installing the Velero CLI -See the different options for installing the [Velero CLI](https://velero.io/docs/v1.8/basic-install/#install-the-cli). +See the different options for installing the [Velero CLI](https://velero.io/docs/v1.9/basic-install/#install-the-cli). ## Installing the Velero server @@ -16,7 +16,7 @@ Kubernetes v1.16+, because this helm chart uses CustomResourceDefinition `apiext ### Velero version -This helm chart installs Velero version v1.8 https://velero.io/docs/v1.8/. See the [#Upgrading](#upgrading) section for information on how to upgrade from other versions. +This helm chart installs Velero version v1.9 https://velero.io/docs/v1.9/. See the [#Upgrading](#upgrading) section for information on how to upgrade from other versions. ### Provider credentials @@ -26,7 +26,7 @@ When installing using the Helm chart, the provider's credential information will The default configuration values for this chart are listed in values.yaml. -See Velero's full [official documentation](https://velero.io/docs/v1.8/basic-install/). More specifically, find your provider in the Velero list of [supported providers](https://velero.io/docs/v1.8/supported-providers/) for specific configuration information and examples. +See Velero's full [official documentation](https://velero.io/docs/v1.9/basic-install/). More specifically, find your provider in the Velero list of [supported providers](https://velero.io/docs/v1.9/supported-providers/) for specific configuration information and examples. #### Set up Helm @@ -89,6 +89,10 @@ helm upgrade vmware-tanzu/velero --reuse-values --set configurati ## Upgrading +### Upgrading to v1.9 + +The [instructions found here](https://velero.io/docs/v1.9/upgrade-to-1.9/) will assist you in upgrading from version v1.8.x to v1.9. + ### Upgrading to v1.8 The [instructions found here](https://velero.io/docs/v1.8/upgrade-to-1.8/) will assist you in upgrading from version v1.7.x to v1.8. From f27bd751698bb8a7f9741191435df1be4254110a Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Thu, 23 Jun 2022 13:20:23 +0800 Subject: [PATCH 13/15] Bump plugins version Signed-off-by: JenTing Hsiao --- charts/velero/values.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml index 909df5c3..3ebed2ed 100644 --- a/charts/velero/values.yaml +++ b/charts/velero/values.yaml @@ -57,7 +57,6 @@ initContainers: containerSecurityContext: {} resources: {} - # SecurityContext to use for the Velero deployment. Optional. # Set fsGroup for `AWS IAM Roles for Service Accounts` # see more informations at: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html From c9523fb5371b2c36ee7ac648271e27c528968fd0 Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Thu, 23 Jun 2022 14:38:17 +0800 Subject: [PATCH 14/15] Bump chart version Signed-off-by: JenTing Hsiao --- charts/velero/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/velero/Chart.yaml b/charts/velero/Chart.yaml index 8eb07ac5..0355bed0 100644 --- a/charts/velero/Chart.yaml +++ b/charts/velero/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 1.8.1 kubeVersion: ">=1.16.0-0" description: A Helm chart for velero name: velero -version: 2.29.9 +version: 2.30.1 home: https://github.com/vmware-tanzu/velero icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png sources: From 27e3254071be2dabd4e6a27d224855cdabef95f8 Mon Sep 17 00:00:00 2001 From: JenTing Hsiao Date: Mon, 27 Jun 2022 23:21:59 +0800 Subject: [PATCH 15/15] Bump app version to 1.9.0 Signed-off-by: JenTing Hsiao Signed-off-by: Oliver Michels --- charts/velero/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/velero/Chart.yaml b/charts/velero/Chart.yaml index 0355bed0..f05a655a 100644 --- a/charts/velero/Chart.yaml +++ b/charts/velero/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 1.8.1 +appVersion: 1.9.0 kubeVersion: ">=1.16.0-0" description: A Helm chart for velero name: velero