stable/velero: Update Velero to v1.2.0 (#18492)

* Update Velero to v1.2.0

Signed-off-by: Carlisia <carlisia@vmware.com>

* Bump release version

Signed-off-by: Carlisia <carlisia@vmware.com>

* Fix docs

Signed-off-by: Carlisia <carlisia@vmware.com>

* Code reviews

Signed-off-by: Carlisia <carlisia@vmware.com>
This commit is contained in:
Carlisia Campos
2019-12-09 12:22:07 -08:00
committed by Kubernetes Prow Robot
parent d256819ae9
commit 06a9968c95
4 changed files with 82 additions and 119 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ apiVersion: v1
appVersion: 1.2.0
description: A Helm chart for velero
name: velero
version: 2.6.0
version: 2.7.0
home: https://github.com/vmware-tanzu/velero
icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png
sources:
+74 -109
View File
@@ -1,127 +1,92 @@
# Velero-server
# Velero
This helm chart installs Velero version v1.2.0
https://github.com/vmware-tanzu/velero/tree/v1.120
Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.
Velero has two main components: a CLI, and a server-side Kubernetes deployment.
## Upgrading to v1.2.0
## Installing the Velero CLI
As of v1.0.0, Velero is no longer backwards-compatible with Heptio Ark.
See the different options for installing the [Velero CLI](https://velero.io/docs/v1.2.0/install-overview/#install-the-cli).
The [instructions found here](https://velero.io/docs/v1.2.0/upgrade-to-1.2/) will assist you in upgrading from version v1.1.0 to v1.2.0
## Installing the Velero server
## Upgrading to v1.1.0
This helm chart installs Velero version v1.2.0 https://github.com/vmware-tanzu/velero/tree/v1.2.0. See the [#Upgrading](#upgrading) section for information on how to upgrade from other versions.
As of v1.1.0, Velero is no longer backwards-compatible with Heptio Ark.
### Prerequisites
The [instructions found here](https://velero.io/docs/v1.1.0/upgrade-to-1.1/) will assist you in upgrading from version v1.0.0 to v1.1.0
#### Tiller cluster-admin permissions
## Upgrading to v1.0.0
A service account and the role binding prerequisite must be added to Tiller when configuring Helm to install Velero:
As of v1.0.0, Velero is no longer backwards-compatible with Heptio Ark.
The [instructions found here](https://velero.io/docs/v1.0.0/upgrade-to-1.0/) will assist you in upgrading from version v0.11.0 to v1.0.0
## Upgrading to v0.11.0
As of v0.11.0, Heptio Ark has become Velero.
The [instructions found here](https://velero.io/docs/v0.11.0/migrating-to-velero/) will assist you in upgrading from Ark to Velero
## Prerequisites
### Secret for cloud provider credentials
Velero server needs an IAM service account in order to run, if you don't have it you must create it.
Please follow the official documentation: https://velero.io/docs/v1.2.0/install-overview/
Don't forget the step to create the secret
```
kubectl create secret generic cloud-credentials --namespace <VELERO_NAMESPACE> --from-file cloud=credentials-velero
kubectl create sa -n kube-system tiller
kubectl create clusterrolebinding tiller-cluster-admin --clusterrole cluster-admin --serviceaccount kube-system:tiller
helm init --service-account=tiller --wait --upgrade
```
### Configuration
Please change the values.yaml according to your setup
See here for the official documentation https://velero.io/docs/v1.2.0/install-overview/
#### Provider credentials
#### Required Parameters
Parameter | Description | Default | Required
--- | --- | --- | ---
`configuration.provider` | The name of the cloud provider where you are deploying velero to (`aws`, `azure`, `gcp`) | none | yes
`configuration.backupStorageLocation.name` | The name of the cloud provider that will be used to actually store the backups (`aws`, `azure`, `gcp`) | none | yes
`configuration.backupStorageLocation.bucket` | The storage bucket where backups are to be uploaded | none | yes
`configuration.backupStorageLocation.config.region` | The cloud provider region (AWS only) | none | yes, if using AWS
`configuration.backupStorageLocation.config.resourceGroup` | The resource group containing the storage account (Azure only) | none | yes, if using Azure
`configuration.backupStorageLocation.config.storageAccount` | The storage account containing the blob container (Azure only) | none | yes, if using Azure
`configuration.volumeSnapshotLocation.name` | The name of the cloud provider the cluster is using for persistent volumes, if any | none | yes, if using PV snapshots
`configuration.volumeSnapshotLocation.config.region` | The cloud provider region (AWS only) | none | yes, if using AWS
`configuration.volumeSnapshotLocation.config.apitimeout` | The API timeout (Azure only) | none | yes, if using Azure
`credentials.useSecret` | Whether a secret should be used for IAM credentials. Set this to `false` when using `kube2iam` | `true` | yes
`credentials.existingSecret` | If specified and `useSecret` is `true`, uses an existing secret with this name instead of creating one | none | yes, if `useSecret` is `true` and `secretContents` is empty
`credentials.secretContents` | If specified and `useSecret` is `true`, contents for the credentials secret | none | yes, if `useSecret` is `true` and `existingSecret` is empty
When installing using the Helm chart, the provider's credential information will need to be appended into your values. The easiest way to do this is with the `--set-file` argument, available in Helm 2.10 and higher. See your cloud provider's documentation for the contents and creation of the `credentials-velero` file.
#### All Parameters
Parameter | Description | Default
--- | --- | ---
`image.repository` | Image repository | `velero/velero`
`image.tag` | Image tag | `v1.2.0`
`image.pullPolicy` | Image pull policy | `IfNotPresent`
`podAnnotations` | Annotations for the Velero server pod | `{}`
`rbac.create` | If true, create and use RBAC resources | `true`
`rbac.server.serviceAccount.create` | Whether a new service account name that the server will use should be created | `true`
`rbac.server.serviceAccount.name` | Service account to be used for the server. If not set and `rbac.server.serviceAccount.create` is `true` a name is generated using the fullname template | ``
`resources` | Resource requests and limits | `{}`
`initContainers` | InitContainers and their specs to start with the deployment pod | `[]`
`tolerations` | List of node taints to tolerate | `[]`
`priorityClassName` | Pod priority class name to use for the Velero deployment | `{}`
`nodeSelector` | Node labels for pod assignment | `{}`
`extraVolumes` | Extra volumes for the Velero deployment | `[]`
`extraVolumeMounts` | Extra volumeMounts for the Velero deployment | `[]`
`configuration.backupStorageLocation.name` | The name of the cloud provider that will be used to actually store the backups (`aws`, `azure`, `gcp`) | ``
`configuration.backupStorageLocation.bucket` | The storage bucket where backups are to be uploaded | ``
`configuration.backupStorageLocation.config.region` | The cloud provider region (AWS only) | ``
`configuration.backupStorageLocation.config.s3ForcePathStyle` | Set to `true` for a local storage service like Minio | ``
`configuration.backupStorageLocation.config.s3Url` | S3 url (primarily used for local storage services like Minio) | ``
`configuration.backupStorageLocation.config.kmsKeyId` | KMS key for encryption (AWS only) | ``
`configuration.backupStorageLocation.config.resourceGroup` | The resource group containing the storage account (Azure only) | ``
`configuration.backupStorageLocation.config.storageAccount` | The storage account containing the blob container (Azure only) | ``
`configuration.backupStorageLocation.prefix` | The directory inside a storage bucket where backups are to be uploaded | ``
`configuration.backupSyncPeriod` | How frequently Velero queries the object storage to make sure that the appropriate Backup resources have been created for existing backup files | (uses `velero server` default)
`configuration.extraEnvVars` | Key/values for extra environment variables such as AWS_CLUSTER_NAME, etc | `{}`
`configuration.provider` | The name of the cloud provider where you are deploying velero to (`aws`, `azure`, `gcp`) |
`configuration.restoreResourcePriorities` | An ordered list that describes the order in which Kubernetes resource objects should be restored | (uses `velero server` default)
`configuration.resticTimeout` | How long backups/restores of pod volumes should be allowed to run before timing out. | (uses `velero server` default)
`configuration.restoreOnlyMode` | When RestoreOnly mode is on, functionality for backups, schedules, and expired backup deletion is turned off. Restores are made from existing backup files in object storage | (uses `velero server` default)
`configuration.volumeSnapshotLocation.name` | The name of the cloud provider the cluster is using for persistent volumes, if any | `{}`
`configuration.volumeSnapshotLocation.config.region` | The cloud provider region (AWS only) | ``
`configuration.volumeSnapshotLocation.config.apitimeout` | The API timeout (`azure` only) |
`configuration.volumeSnapshotLocation.config.resourceGroup` | The name of the resource group where volume snapshots should be stored, if different from the clusters resource group. (Azure only) |
`configuration.volumeSnapshotLocation.config.project` | The project ID where snapshots should be stored, if different than the project that your IAM account is in. (GCP only) |
`configuration.volumeSnapshotLocation.config.snapshotLocation` | The location where the snapshots will be stored. (GCP only) |
`configuration.logLevel` | Set log-level for Velero pod. Default: info. Other options: debug, warning, error, fatal, panic. |
`configuration.logFormat` | Set log-format for Velero pod. Default: text. Other option: json. |
`credentials.existingSecret` | If specified and `useSecret` is `true`, uses an existing secret with this name instead of creating one | ``
`credentials.useSecret` | Whether a secret should be used. Set this to `false` when using `kube2iam` | `true`
`credentials.secretContents` | Contents for the credentials secret | `{}`
`snapshotsEnabled` | If `true`, create volumesnapshotlocation crd. Set this to `false` to disable snapshot feature | `true`
`deployRestic` | If `true`, enable restic deployment | `false`
`metrics.enabled` | Set this to `true` to enable exporting Prometheus monitoring metrics | `false`
`metrics.scrapeInterval` | Scrape interval for the Prometheus ServiceMonitor | `30s`
`metrics.serviceMonitor.enabled` | Set this to `true` to create ServiceMonitor for Prometheus operator | `false`
`metrics.serviceMonitor.additionalLabels` | Additional labels that can be used so ServiceMonitor will be discovered by Prometheus | `{}`
`schedules` | A dict of schedules | `{}`
`restic.podVolumePath` | Location of pod volumes on the host | `/var/lib/kubelet/pods`
`restic.privileged` | Whether restic should run as a privileged pod. Only necessary in special cases (SELinux) | `false`
`restic.resources` | Restic DaemonSet resource requests and limits | `{}`
`restic.priorityClassName` | Restic DaemonSet pod priority class name | `{}`
`restic.tolerations` | Restic DaemonSet tolerations | `[]`
`restic.extraVolumes` | Extra volumes for the Restic daemonset | `[]`
`restic.extraVolumeMounts` | Extra volumeMounts for the Restic daemonset | `[]`
`configMaps` | Velero ConfigMaps | `[]`
### Installing
## How to
```
helm install --name velero --namespace velero stable/velero
The default configuration values for this chart are listed in values.yaml.
See Velero's full [official documentation](https://velero.io/docs/v1.2.0/install-overview/). More specifically, find your provider in the Velero list of [supported providers](https://velero.io/docs/v1.2.0/supported-providers/) for specific configuration information and examples.
#### Option 1) CLI commands
Specify the necessary values using the --set key=value[,key=value] argument to helm install. For example,
```bash
helm install --namespace <YOUR NAMESPACE> \
--set configuration.provider=<PROVIDER NAME> \
--set-file credentials.secretContents.cloud=<FULL PATH TO FILE> \
--set configuration.backupStorageLocation.name=<PROVIDER NAME> \
--set configuration.backupStorageLocation.bucket=<BUCKET NAME> \
--set configuration.backupStorageLocation.config.region=<REGION> \
--set configuration.volumeSnapshotLocation.name=<PROVIDER NAME> \
--set configuration.volumeSnapshotLocation.config.region=<REGION> \
--set image.repository=velero/velero \
--set image.tag=v1.2.0 \
--set image.pullPolicy=IfNotPresent \
--set initContainers[0].name=velero-plugin-for-aws \
--set initContainers[0].image=velero/velero-plugin-for-aws:v1.0.0 \
--set initContainers[0].volumeMounts[0].mountPath=/target \
--set initContainers[0].volumeMounts[0].name=plugins \
stable/velero
```
## Remove heptio/velero
Remember that when you remove Velero all backups remain untouched
#### Option 2) YAML file
Add/update the necessary values by changing the values.yaml from this repository, then running:
```bash
helm install --namespace <NAMESPACE> -f values.yaml stable/velero
```
#### Upgrade the configuration
If a value needs to be added or changed, you may do so with the `upgrade` command. An example:
```bash
helm upgrade <RELEASE NAME> --set initContainers.backupStorageLocation.name=aws,initContainers.volumeSnapshotLocation.name=aws stable/velero
```
## Upgrading
### Upgrading to v1.2.0
The [instructions found here](https://velero.io/docs/v1.2.0/upgrade-to-1.2/) will assist you in upgrading from version v1.0.0 or v1.1.0 to v1.2.0.
### Upgrading to v1.1.0
The [instructions found here](https://velero.io/docs/v1.1.0/upgrade-to-1.1/) will assist you in upgrading from version v1.0.0 to v1.1.0.
## Uninstall Velero
Note: when you uninstall the Velero server, all backups remain untouched.
```bash
helm delete <RELEASE NAME> --purge
```
+1 -1
View File
@@ -10,4 +10,4 @@ Once velero server is up and running you need the client before you can use it
1. wget https://github.com/vmware-tanzu/velero/releases/download/{{ .Values.image.tag }}/velero-{{ .Values.image.tag }}-darwin-amd64.tar.gz
2. tar -xvf velero-{{ .Values.image.tag }}-darwin-amd64.tar.gz -C velero-client
More info on the official site: https://github.com/vmware-tanzu/velero#install-client
More info on the official site: https://velero.io/docs
+6 -8
View File
@@ -19,16 +19,14 @@ podAnnotations: {}
# Resource requests/limits to specify for the Velero deployment. Optional.
resources: {}
# Pod priority class name to use for the Velero deployment. Optional.
priorityClassName: {}
# Init containers to add to the Velero deployment's pod spec. Optional.
# Init containers to add to the Velero deployment's pod spec. At least one plugin provider image is required.
initContainers: []
# - name:
# image:
# - name: velero-plugin-for-aws
# image: velero/velero-plugin-for-aws:v1.0.0
# imagePullPolicy: IfNotPresent
# volumeMounts:
# - name: plugins
# mountPath: /target
# - mountPath: /target
# name: plugins
# Tolerations to use for the Velero deployment. Optional.
tolerations: []