Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

velero server flag for default item operation timeout #545

Closed
DreamingRaven opened this issue Feb 8, 2024 · 2 comments · Fixed by #546
Closed

velero server flag for default item operation timeout #545

DreamingRaven opened this issue Feb 8, 2024 · 2 comments · Fixed by #546

Comments

@DreamingRaven
Copy link
Contributor

DreamingRaven commented Feb 8, 2024

Describe the problem/challenge you have
[A description of the current limitation/problem/challenge that you are experiencing.]

Currently, whenever I back up some large volume like Nextcloud, the backup invariably times out, as the default item operation timeout is 4h. In the current helm chart there is no way to modify this default, which has AFAIK existed since vmware-tanzu/velero@2aaa85b. Technically you can work around this by specifically defining a backup with a specific item-operation-timeout time, however this does not work for schedules since there is no apparent way to modify this given the current CRDs for backup-storage-location, volume-snapshot-location or schedule.

Describe the solution you'd like
[A clear and concise description of what you want to happen.]

This can be as simple as adding one more to the existing plethora of overrides:

- server
### Flags
{{- with .Values.configuration }}
- --uploader-type={{ default "restic" .uploaderType }}
{{- with .backupSyncPeriod }}
- --backup-sync-period={{ . }}
{{- end }}
{{- with .fsBackupTimeout }}
- --fs-backup-timeout={{ . }}
{{- end }}
{{- with .clientBurst }}
- --client-burst={{ . }}
{{- end }}
{{- with .clientPageSize }}
- --client-page-size={{ . }}
{{- end }}
{{- with .clientQPS }}
- --client-qps={{ . }}
{{- end }}
{{- with .defaultBackupStorageLocation }}
- --default-backup-storage-location={{ . }}
{{- end }}
{{- with .defaultBackupTTL }}
- --default-backup-ttl={{ . }}
{{- end }}
{{- with .defaultVolumeSnapshotLocations }}
- --default-volume-snapshot-locations={{ . }}
{{- end }}
{{- if .defaultVolumesToFsBackup }}
- --default-volumes-to-fs-backup
{{- end }}
{{- with .defaultRepoMaintainFrequency }}
- --default-repo-maintain-frequency={{ . }}
{{- end }}
{{- with .disableControllers }}
- --disable-controllers={{ . }}
{{- end }}
{{- with .garbageCollectionFrequency }}
- --garbage-collection-frequency={{ . }}
{{- end }}
{{- with .logFormat }}
- --log-format={{ . }}
{{- end }}
{{- with .logLevel }}
- --log-level={{ . }}
{{- end }}
{{- with .metricsAddress }}
- --metrics-address={{ . }}
{{- end }}
{{- with .pluginDir }}
- --plugin-dir={{ . }}
{{- end }}
{{- with .profilerAddress }}
- --profiler-address={{ . }}
{{- end }}
{{- if .restoreOnlyMode }}
- --restore-only
{{- end }}
{{- with .restoreResourcePriorities }}
- --restore-resource-priorities={{ . }}
{{- end }}
{{- with .storeValidationFrequency }}
- --store-validation-frequency={{ . }}
{{- end }}
{{- with .terminatingResourceTimeout }}
- --terminating-resource-timeout={{ . }}
{{- end }}
{{- with .defaultSnapshotMoveData }}
- --default-snapshot-move-data={{ . }}
{{- end }}

And adding a line to the appropriate configuration section:

# These are server-level settings passed as CLI flags to the `velero server` command. Velero
# uses default values if they're not passed in, so they only need to be explicitly specified
# here if using a non-default value. The `velero server` default values are shown in the
# comments below.
# --------------------
# `velero server` default: restic
uploaderType:
# `velero server` default: 1m
backupSyncPeriod:
# `velero server` default: 4h
fsBackupTimeout:
# `velero server` default: 30
clientBurst:
# `velero server` default: 500
clientPageSize:
# `velero server` default: 20.0
clientQPS:
# Name of the default backup storage location. Default: default
defaultBackupStorageLocation:
# How long to wait by default before backups can be garbage collected. Default: 72h
defaultBackupTTL:
# Name of the default volume snapshot location.
defaultVolumeSnapshotLocations:
# `velero server` default: empty
disableControllers:
# `velero server` default: 1h
garbageCollectionFrequency:
# Set log-format for Velero pod. Default: text. Other option: json.
logFormat:
# Set log-level for Velero pod. Default: info. Other options: debug, warning, error, fatal, panic.
logLevel:
# The address to expose prometheus metrics. Default: :8085
metricsAddress:
# Directory containing Velero plugins. Default: /plugins
pluginDir:
# The address to expose the pprof profiler. Default: localhost:6060
profilerAddress:
# `velero server` default: false
restoreOnlyMode:
# `velero server` default: customresourcedefinitions,namespaces,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,persistentvolumes,persistentvolumeclaims,secrets,configmaps,serviceaccounts,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io
restoreResourcePriorities:
# `velero server` default: 1m
storeValidationFrequency:
# How long to wait on persistent volumes and namespaces to terminate during a restore before timing out. Default: 10m
terminatingResourceTimeout:
# Bool flag to configure Velero server to move data by default for all snapshots supporting data movement. Default: false
defaultSnapshotMoveData:
# Comma separated list of velero feature flags. default: empty
# features: EnableCSI
features:
# `velero server` default: velero
namespace:
# additional key/value pairs to be used as environment variables such as "AWS_CLUSTER_NAME: 'yourcluster.domain.tld'"
extraEnvVars: {}
# Set true for backup all pod volumes without having to apply annotation on the pod when used file system backup Default: false.
defaultVolumesToFsBackup:
# How often repository maintain is run for repositories by default.
defaultRepoMaintainFrequency:

Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]

While it is not necessary for this specific feature I note that the current setup is incredibly verbose, is there no way to define an arbitrary set of options to the server as a list? Or is there some application specific reason it was templated in this way?

Environment:

environment agnostic as of 5.3.0 is simply not templated

@DreamingRaven
Copy link
Contributor Author

Hey, just a ping to keep things alive, especially for the PR.

@jenting
Copy link
Collaborator

jenting commented Feb 20, 2024

Thanks for the issue and PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants