Files
storage/velero/helm-values.yaml
Mayne0213 a30d9005d9 REFACTOR(velero): move to master node for stability
- Set replicaCount to 1 (Velero doesn't support multiple replicas)
- Add nodeSelector for master node
- Add toleration for master NoExecute taint
- Remove podAntiAffinity (not needed with single replica)
- Ensures backup availability even if worker nodes fail
2026-01-09 21:46:40 +09:00

118 lines
2.7 KiB
YAML

# Velero Helm Values
# Chart: https://github.com/vmware-tanzu/helm-charts/tree/main/charts/velero
# Skip CRD upgrade job (avoids kubectl image dependency)
upgradeCRDs: false
# Image configuration
image:
repository: velero/velero
tag: v1.17.1
pullPolicy: IfNotPresent
# Replica count (Velero does not support multiple replicas)
replicaCount: 1
# Resource requests (VPA recommendation: 11m CPU)
resources:
requests:
cpu: 11m
memory: 128Mi
limits:
memory: 192Mi
# Init containers for plugins
initContainers:
# AWS plugin for S3-compatible storage (Minio)
- name: velero-plugin-for-aws
image: velero/velero-plugin-for-aws:v1.13.1
volumeMounts:
- mountPath: /target
name: plugins
# Deploy node-agent for file-system backups
deployNodeAgent: true
# Node agent configuration
nodeAgent:
podVolumePath: /var/lib/kubelet/pods
privileged: false
resources:
requests:
cpu: 15m # VPA recommendation: 15m
memory: 256Mi
limits:
memory: 1Gi
# Configuration for backup storage
configuration:
# Use existing BackupStorageLocation and VolumeSnapshotLocation
backupStorageLocation:
- name: default
provider: aws
bucket: velero-backups
config:
region: minio
s3ForcePathStyle: "true"
s3Url: http://minio.minio.svc.cluster.local:9000
publicUrl: https://s3.minio0213.kro.kr
volumeSnapshotLocation:
- name: default
provider: aws
config:
region: minio
# Default backup retention
defaultBackupTTL: 168h # 7 days (reduced for storage efficiency)
# Enable file-system backup by default for all PVs
defaultVolumesToFsBackup: true
# Restore only mode (for disaster recovery)
restoreOnlyMode: false
# Disable BackupStorageLocation validation (user only uses manual backups)
# This prevents status updates that trigger ArgoCD refreshes
storeValidationFrequency: 0s
# Disable backup-sync controller (user only uses manual backups)
# This prevents lastSyncedTime updates that trigger ArgoCD refreshes
disableControllers: backup-sync
# Credentials for S3 access (from Vault via External Secrets)
credentials:
useSecret: true
existingSecret: velero-s3-credentials
secretContents: {}
# Metrics
metrics:
enabled: true
serviceMonitor:
enabled: true
prometheusRule:
enabled: false
# RBAC
serviceAccount:
server:
create: true
name: velero
rbac:
create: true
# Node selector - Run on master node for stability
nodeSelector:
node-role.kubernetes.io/master: "true"
# Tolerations - Allow scheduling on master node
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
# Affinity (disabled - single replica on master)
affinity: {}