Skip to content
This repository was archived by the owner on Jan 27, 2026. It is now read-only.

Commit 56326b1

Browse files
josephgorsek8s-ci-robot
authored andcommitted
[stable/velero] Upgrade Ark 0.10.x to Velero 0.11 (helm#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>
1 parent 6570c98 commit 56326b1

30 files changed

+899
-7
lines changed

stable/ark/Chart.yaml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
apiVersion: v1
22
appVersion: 0.10.2
3-
description: A Helm chart for ark
3+
## This Ark chart is deprecated because Ark has been renamed to Velero as of Velero version 0.11.0.
4+
## This chart is no longer maintained. Use the stable/velero chart for future work.
5+
## Please see the Helm deprecation policy in the PROCESSES.md file.
6+
deprecated: true
7+
description: DEPRECATED A Helm chart for ark
48
name: ark
5-
version: 4.2.1
9+
version: 4.2.2
610
home: https://github.com/heptio/ark
711
icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png
812
sources:
913
- https://github.com/heptio/ark
10-
maintainers:
11-
- name: domcar
12-
email: d-caruso@hotmail.it
13-
- name: unguiculus
14-
email: unguiculus@gmail.com
1514
tillerVersion: ">=2.10.0"

stable/ark/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Ark-server
22

3+
# THIS CHART HAS BEEN DEPRECATED. PLEASE MOVE TO THE STABLE/VELERO CHART.
4+
5+
36
This helm chart installs Ark version v0.10.2
47
https://github.com/heptio/ark/tree/v0.10.2
58

stable/ark/templates/NOTES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
THIS CHART HAS BEEN DEPRECATED. PLEASE MOVE TO THE STABLE/VELERO CHART.
2+
13
Check that the ark is up and running:
24

35
Check that the secret has been created:

stable/velero/.helmignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*~
18+
# Various IDEs
19+
.project
20+
.idea/
21+
*.tmproj

stable/velero/Chart.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: v1
2+
appVersion: 0.11.0
3+
description: A Helm chart for velero
4+
name: velero
5+
version: 1.0.0
6+
home: https://github.com/heptio/velero
7+
icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png
8+
sources:
9+
- https://github.com/heptio/velero
10+
maintainers:
11+
- name: domcar
12+
email: d-caruso@hotmail.it
13+
- name: unguiculus
14+
email: unguiculus@gmail.com
15+
tillerVersion: ">=2.10.0"

stable/velero/README.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Velero-server
2+
3+
This helm chart installs Velero version v0.11.0
4+
https://github.com/heptio/velero/tree/v0.11.0
5+
6+
7+
## Upgrading to v0.11.0
8+
9+
As of v0.11.0, Heptio Ark has become Velero.
10+
11+
The [instructions found here](https://heptio.github.io/velero/v0.11.0/migrating-to-velero) will assist you in upgrading from Ark to Velero
12+
13+
## Prerequisites
14+
15+
### Secret for cloud provider credentials
16+
Velero server needs an IAM service account in order to run, if you don't have it you must create it.
17+
Please follow the official documentation: https://heptio.github.io/velero/v0.11.0/install-overview
18+
19+
Don't forget the step to create the secret
20+
```
21+
kubectl create secret generic cloud-credentials --namespace <VELERO_NAMESPACE> --from-file cloud=credentials-velero
22+
```
23+
24+
### Configuration
25+
Please change the values.yaml according to your setup
26+
See here for the official documentation https://heptio.github.io/velero/v0.11.0/install-overview
27+
28+
Parameter | Description | Default | Required
29+
--- | --- | --- | ---
30+
`cloudprovider` | Cloud provider | `nil` | yes
31+
`bucket` | Object storage where to store backups | `nil` | yes
32+
`region` | AWS region | `nil` | only if using AWS
33+
`apitimeout` | Api Timeout | `nil` | only if using Azure
34+
`credentials` | Credentials | `nil` | Yes (not required for kube2iam)
35+
`backupSyncPeriod` | How frequently Velero queries the object storage to make sure that the appropriate Backup resources have been created for existing backup files. | `60m` | yes
36+
`gcSyncPeriod` | How frequently Velero queries the object storage to delete backup files that have passed their TTL. | `60m` | yes
37+
`scheduleSyncPeriod` | How frequently Velero checks its Schedule resource objects to see if a backup needs to be initiated | `1m` | yes
38+
`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
39+
40+
Parameter | Description | Default
41+
--- | --- | ---
42+
`image.repository` | Image repository | `gcr.io/heptio-images/velero`
43+
`image.tag` | Image tag | `v0.11.0`
44+
`image.pullPolicy` | Image pull policy | `IfNotPresent`
45+
`podAnnotations` | Annotations for the Velero server pod | `{}`
46+
`rbac.create` | If true, create and use RBAC resources | `true`
47+
`rbac.server.serviceAccount.create` | Whether a new service account name that the server will use should be created | `true`
48+
`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 | ``
49+
`resources` | Resource requests and limits | `{}`
50+
`initContainers` | InitContainers and their specs to start with the deployment pod | `[]`
51+
`tolerations` | List of node taints to tolerate | `[]`
52+
`nodeSelector` | Node labels for pod assignment | `{}`
53+
`configuration.backupStorageLocation.name` | The name of the cloud provider that will be used to actually store the backups (`aws`, `azure`, `gcp`) | ``
54+
`configuration.backupStorageLocation.bucket` | The storage bucket where backups are to be uploaded | ``
55+
`configuration.backupStorageLocation.config.region` | The cloud provider region (AWS only) | ``
56+
`configuration.backupStorageLocation.config.s3ForcePathStyle` | Set to `true` for a local storage service like Minio | ``
57+
`configuration.backupStorageLocation.config.s3Url` | S3 url (primarily used for local storage services like Minio) | ``
58+
`configuration.backupStorageLocation.config.kmsKeyId` | KMS key for encryption (AWS only) | ``
59+
`configuration.backupStorageLocation.prefix` | The directory inside a storage bucket where backups are to be uploaded | ``
60+
`configuration.backupSyncPeriod` | How frequently Velero queries the object storage to make sure that the appropriate Backup resources have been created for existing backup files | `60m`
61+
`configuration.extraEnvVars` | Key/values for extra environment variables such as AWS_CLUSTER_NAME, etc | `{}`
62+
`configuration.provider` | The name of the cloud provider where you are deploying velero to (`aws`, `azure`, `gcp`) |
63+
`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`
64+
`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`
65+
`configuration.volumeSnapshotLocation.name` | The name of the cloud provider the cluster is using for persistent volumes, if any | `{}`
66+
`configuration.volumeSnapshotLocation.config.region` | The cloud provider region (AWS only) | ``
67+
`configuration.volumeSnapshotLocation.config.apiTimeout` | The API timeout (`azure` only) |
68+
`credentials.existingSecret` | If specified and `useSecret` is `true`, uses an existing secret with this name instead of creating one | ``
69+
`credentials.useSecret` | Whether a secret should be used. Set this to `false` when using `kube2iam` | `true`
70+
`credentials.secretContents` | Contents for the credentials secret | `{}`
71+
`deployRestic` | If `true`, enable restic deployment | `false`
72+
`metrics.enabled` | Set this to `true` to enable exporting Prometheus monitoring metrics | `false`
73+
`metrics.scrapeInterval` | Scrape interval for the Prometheus ServiceMonitor | `30s`
74+
`metrics.serviceMonitor.enabled` | Set this to `true` to create ServiceMonitor for Prometheus operator | `false`
75+
`metrics.serviceMonitor.additionalLabels` | Additional labels that can be used so ServiceMonitor will be discovered by Prometheus | `{}`
76+
`schedules` | A dict of schedules | `{}`
77+
78+
79+
## How to
80+
```
81+
helm install --name velero --namespace velero ./velero
82+
```
83+
84+
## Remove heptio/velero
85+
Remember that when you remove Velero all backups remain untouched

stable/velero/templates/NOTES.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Check that the velero is up and running:
2+
3+
kubectl get deployment/{{ .Release.Name }} -n {{ .Release.Namespace }}
4+
5+
Check that the secret has been created:
6+
7+
kubectl get secret/{{ include "velero.fullname" . }} -n {{ .Release.Namespace }}
8+
9+
Check that the secret has been created:
10+
11+
Once velero server is up and running you need the client before you can use it
12+
1. wget https://github.com/heptio/velero/releases/download/{{ .Values.image.tag }}/velero-{{ .Values.image.tag }}-darwin-amd64.tar.gz
13+
2. tar -xvf velero-{{ .Values.image.tag }}-darwin-amd64.tar.gz -C velero-client
14+
15+
More info on the official site: https://github.com/heptio/velero#install-client
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{{/* vim: set filetype=mustache: */}}
2+
{{/*
3+
Expand the name of the chart.
4+
*/}}
5+
{{- define "velero.name" -}}
6+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7+
{{- end -}}
8+
9+
{{/*
10+
Create a default fully qualified app name.
11+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12+
If release name contains chart name it will be used as a full name.
13+
*/}}
14+
{{- define "velero.fullname" -}}
15+
{{- if .Values.fullnameOverride -}}
16+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17+
{{- else -}}
18+
{{- $name := default .Chart.Name .Values.nameOverride -}}
19+
{{- if contains $name .Release.Name -}}
20+
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21+
{{- else -}}
22+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23+
{{- end -}}
24+
{{- end -}}
25+
{{- end -}}
26+
27+
{{/*
28+
Create chart name and version as used by the chart label.
29+
*/}}
30+
{{- define "velero.chart" -}}
31+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32+
{{- end -}}
33+
34+
{{/*
35+
Create the name of the service account to use for creating or deleting the velero server
36+
*/}}
37+
{{- define "velero.serverServiceAccount" -}}
38+
{{- if .Values.serviceAccount.server.create -}}
39+
{{ default (printf "%s-%s" (include "velero.fullname" .) "server") .Values.serviceAccount.server.name }}
40+
{{- else -}}
41+
{{ default "default" .Values.serviceAccount.server.name }}
42+
{{- end -}}
43+
{{- end -}}
44+
45+
{{/*
46+
Create the name for the credentials secret.
47+
*/}}
48+
{{- define "velero.secretName" -}}
49+
{{- if .Values.credentials.existingSecret -}}
50+
{{- .Values.credentials.existingSecret -}}
51+
{{- else -}}
52+
{{- include "velero.fullname" . -}}
53+
{{- end -}}
54+
{{- end -}}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: apiextensions.k8s.io/v1beta1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
name: backups.velero.io
5+
labels:
6+
app.kubernetes.io/name: {{ include "velero.name" . }}
7+
app.kubernetes.io/instance: {{ .Release.Name }}
8+
app.kubernetes.io/managed-by: {{ .Release.Service }}
9+
helm.sh/chart: {{ include "velero.chart" . }}
10+
annotations:
11+
"helm.sh/hook": crd-install
12+
"helm.sh/hook-delete-policy": "before-hook-creation"
13+
spec:
14+
group: velero.io
15+
version: v1
16+
scope: Namespaced
17+
names:
18+
plural: backups
19+
kind: Backup
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
apiVersion: velero.io/v1
2+
kind: BackupStorageLocation
3+
metadata:
4+
name: default
5+
labels:
6+
app.kubernetes.io/name: {{ include "velero.name" . }}
7+
app.kubernetes.io/instance: {{ .Release.Name }}
8+
app.kubernetes.io/managed-by: {{ .Release.Service }}
9+
helm.sh/chart: {{ include "velero.chart" . }}
10+
spec:
11+
{{- with .Values.configuration }}
12+
{{- with .backupStorageLocation }}
13+
provider: {{ .name }}
14+
objectStorage:
15+
bucket: {{ .bucket }}
16+
{{- with .prefix }}
17+
prefix: {{ . }}
18+
{{- end }}
19+
{{- with .config }}
20+
config:
21+
{{- with .region }}
22+
region: {{ . }}
23+
{{- end }}
24+
{{- with .s3ForcePathStyle }}
25+
s3ForcePathStyle: {{ . | quote }}
26+
{{- end }}
27+
{{- with .s3Url }}
28+
s3Url: {{ . }}
29+
{{- end }}
30+
{{- with .kmsKeyId }}
31+
kmsKeyId: {{ . }}
32+
{{- end }}
33+
{{- with .resourceGroup }}
34+
resourceGroup: {{ . }}
35+
{{- end }}
36+
{{- with .storageAccount }}
37+
storageAccount: {{ . }}
38+
{{- end }}
39+
{{- if .publicUrl }}
40+
{{- with .publicUrl }}
41+
publicUrl: {{ . }}
42+
{{- end }}
43+
{{- end }}
44+
{{- end }}
45+
{{- end }}
46+
{{- end }}

0 commit comments

Comments
 (0)