Files
k8scd/velero/velero-helm.yaml
T

91 lines
3.2 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: velero-helm
namespace: argocd
spec:
project: default
source:
chart: velero
repoURL: https://vmware-tanzu.github.io/helm-charts
targetRevision: 12.2.1
helm:
values: |
# Velero builds its repository maintenance jobs from a Deployment
# named "velero". Under the default name (velero-helm) every
# maintenance run failed and the kopia repos on the NAS were never
# cleaned up.
fullnameOverride: velero
# No CRD upgrade hook: Argo CD applies the chart's crds/ directory on
# every sync. (Before chart 12 the hook also pulled
# docker.io/bitnami/kubectl, which Bitnami removed, and hung.)
upgradeCRDs: false
initContainers:
- name: velero-plugin-for-aws
image: velero/velero-plugin-for-aws:v1.14.4
volumeMounts:
- mountPath: /target
name: plugins
configuration:
# Garage on the NAS (nas/garage). Until 2026-10-25 this was MinIO on
# the same NAS; the bucket was copied over with rclone, so the
# existing backups and kopia repositories carried on.
backupStorageLocation:
- name: default
bucket: velero-backups
provider: aws
config:
region: garage
s3ForcePathStyle: true
s3Url: http://192.168.1.99:3900
volumeSnapshotLocation:
- name: default
provider: aws
config:
region: garage
features: EnableCSI
# Kopia maintenance ran every hour for each of the 15 repositories,
# and once a day as a full run of several minutes that writes its
# cache to the node's only SSD, which stalls dqlite and makes
# controllers lose their leases (docs/upgrade-k8s-1.33.md). Daily
# and throttled instead. Existing BackupRepositories keep their own
# maintenanceFrequency; they were patched to 24h by hand.
defaultRepoMaintainFrequency: 24h
repositoryMaintenanceJob:
repositoryConfigData:
global:
keepLatestMaintenanceJobs: 3
podResources:
cpuRequest: 100m
cpuLimit: 500m
memoryRequest: 256Mi
memoryLimit: 2Gi
credentials:
# From Vault, velero/external-secret.yaml
existingSecret: velero-s3-credentials
deployNodeAgent: true
nodeAgent:
containerSecurityContext:
privileged: true
resources:
requests:
cpu: 10m
memory: 64Mi
# 512Mi got the server OOMKilled 314 times, including halfway
# through a backup of ~14.7k items.
resources:
requests:
cpu: 100m
memory: 512Mi
limits:
cpu: 500m
memory: 2Gi
destination:
server: https://kubernetes.default.svc
namespace: velero
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: true