Files
Joseph Gorse 56326b1291 [stable/velero] Upgrade Ark 0.10.x to Velero 0.11 (#12031)
* Change Ark to Velero and upgrade from 0.10.1 to 0.11.0

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Change velero.heptio.com to velero.io

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Add CRD for serverstatusrequest

Fix version number of velero.

Signed-off-by: Aman Wangde <Aman.wangde@emc.com>

* Change namespace to 'velero'

Signed-off-by: Aman Wangde <Aman.wangde@emc.com>

* Fix README for upgrade instructions

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Add Ark back in

Signed-off-by: Ethan Kaley <ethan.kaley@emc.com>

* Deprecate the stable/Ark chart

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Fix version issues

Signed-off-by: Ethan Kaley <ethan.kaley@emc.com>

* Remove references to v0.10.x

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Fix indentation issue and add to restic-daemonset tpl

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Add missing newline

Move commented value example

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Bump Ark chart version for deprecation

Signed-off-by: Ethan Kaley <ethan.kaley@emc.com>

* Fix labels (#1)

* Fix labels

Signed-off-by: Ethan Kaley <ethan.kaley@emc.com>
Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Use include instead of template function

Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>

* Remove  variables

Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>

* Use with and nindent

Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>

* Update API versions

Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>

* Updated Ark chart to a patch bump

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Add comments and fix NOTES template

Signed-off-by: Joe Gorse <joseph.gorseiii@emc.com>

* Fix deployment template for podAnnotations

Signed-off-by: Ethan Kaley <ethan.kaley@emc.com>
2019-04-18 02:34:08 -07:00

102 lines
6.3 KiB
Markdown

# Ark-server
# THIS CHART HAS BEEN DEPRECATED. PLEASE MOVE TO THE STABLE/VELERO CHART.
This helm chart installs Ark version v0.10.2
https://github.com/heptio/ark/tree/v0.10.2
## Upgrading to v0.10
Ark v0.10.1 introduces breaking changes. The below instructions are based on the [official upgrade guide](https://github.com/heptio/ark/blob/master/docs/upgrading-to-v0.10.md).
1. Pull the latest changes in this chart. If you're using Helm dependencies, update the chart version you're using in your `requirements.yaml` and run `helm dependency update`.
2. Scale down
```sh
kubectl scale -n heptio-ark deploy/ark --replicas 0
```
3. Migrate file structure of your backup storage according to [guide](https://github.com/heptio/ark/blob/master/docs/storage-layout-reorg-v0.10.md)
4. Adjust your `values.yaml` to the new structure and naming
5. Upgrade your deployment
```sh
helm upgrade --force --namespace heptio-ark ark ./ark
```
## Prerequisites
### Secret for cloud provider credentials
Ark 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://heptio.github.io/ark/v0.10.0/install-overview
Don't forget the step to create the secret
```
kubectl create secret generic cloud-credentials --namespace <ARK_NAMESPACE> --from-file cloud=credentials-ark
```
### Configuration
Please change the values.yaml according to your setup
See here for the official documentation https://heptio.github.io/ark/v0.10.0/install-overview
Parameter | Description | Default | Required
--- | --- | --- | ---
`cloudprovider` | Cloud provider | `nil` | yes
`bucket` | Object storage where to store backups | `nil` | yes
`region` | AWS region | `nil` | only if using AWS
`apitimeout` | Api Timeout | `nil` | only if using Azure
`credentials` | Credentials | `nil` | Yes (not required for kube2iam)
`backupSyncPeriod` | How frequently Ark queries the object storage to make sure that the appropriate Backup resources have been created for existing backup files. | `60m` | yes
`gcSyncPeriod` | How frequently Ark queries the object storage to delete backup files that have passed their TTL. | `60m` | yes
`scheduleSyncPeriod` | How frequently Ark checks its Schedule resource objects to see if a backup needs to be initiated | `1m` | yes
`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. | `false` | yes
Parameter | Description | Default
--- | --- | ---
`image.repository` | Image repository | `gcr.io/heptio-images/ark`
`image.tag` | Image tag | `v0.9.1`
`image.pullPolicy` | Image pull policy | `IfNotPresent`
`podAnnotations` | Annotations for the Ark 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 | `[]`
`nodeSelector` | Node labels for pod assignment | `{}`
`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.prefix` | The directory inside a storage bucket where backups are to be uploaded | ``
`configuration.backupSyncPeriod` | How frequently Ark queries the object storage to make sure that the appropriate Backup resources have been created for existing backup files | `60m`
`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 ark to (`aws`, `azure`, `gcp`) |
`configuration.restoreResourcePriorities` | An ordered list that describes the order in which Kubernetes resource objects should be restored | `namespaces,persistentvolumes,persistentvolumeclaims,secrets,configmaps,serviceaccounts,limitranges,pods`
`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 | `false`
`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) |
`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 | `{}`
`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 | `{}`
## How to
```
helm install --name ark --namespace heptio-ark ./ark
```
## Remove heptio/ark
Remember that when you remove Ark all backups remain untouched