Full Code of vmware-tanzu/velero for AI

main bb9a94bebe90 cached
3082 files
19.9 MB
5.4M tokens
8249 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (21,445K chars total). Download the full file to get everything.
Repository: vmware-tanzu/velero
Branch: main
Commit: bb9a94bebe90
Files: 3082
Total size: 19.9 MB

Directory structure:
gitextract_b3viilp2/

├── .dockerignore
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature-enhancement-request.md
│   ├── auto-assignees.yml
│   ├── dependabot.yml
│   ├── labeler.yml
│   ├── labels.yaml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── auto_assign_prs.yml
│       ├── auto_label_prs.yml
│       ├── auto_request_review.yml
│       ├── e2e-test-kind.yaml
│       ├── get-go-version.yaml
│       ├── nightly-trivy-scan.yml
│       ├── pr-changelog-check.yml
│       ├── pr-ci-check.yml
│       ├── pr-codespell.yml
│       ├── pr-containers.yml
│       ├── pr-goreleaser.yml
│       ├── pr-linter-check.yml
│       ├── prow-action.yml
│       ├── push-builder.yml
│       ├── push.yml
│       ├── rebase.yml
│       └── stale-issues.yml
├── .gitignore
├── .golangci.yaml
├── .goreleaser.yml
├── ADOPTERS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── Dockerfile-Windows
├── GOVERNANCE.md
├── LICENSE
├── MAINTAINERS.md
├── Makefile
├── OWNERS
├── README.md
├── ROADMAP.md
├── SECURITY.md
├── SUPPORT.md
├── Tiltfile
├── assets/
│   ├── README.md
│   ├── one-line/
│   │   ├── 199150-vmw-os-lgo-velero-final_gry.eps
│   │   └── 199150-vmw-os-lgo-velero-final_wht.eps
│   └── stacked/
│       ├── 199150-vmw-os-lgo-velero-final_stacked-gry.eps
│       └── 199150-vmw-os-lgo-velero-final_stacked-wht.eps
├── changelogs/
│   ├── CHANGELOG-0.10.md
│   ├── CHANGELOG-0.11.md
│   ├── CHANGELOG-0.3.md
│   ├── CHANGELOG-0.4.md
│   ├── CHANGELOG-0.5.md
│   ├── CHANGELOG-0.6.md
│   ├── CHANGELOG-0.7.md
│   ├── CHANGELOG-0.8.md
│   ├── CHANGELOG-0.9.md
│   ├── CHANGELOG-1.0.md
│   ├── CHANGELOG-1.1.md
│   ├── CHANGELOG-1.10.md
│   ├── CHANGELOG-1.11.md
│   ├── CHANGELOG-1.12.md
│   ├── CHANGELOG-1.13.md
│   ├── CHANGELOG-1.14.md
│   ├── CHANGELOG-1.15.md
│   ├── CHANGELOG-1.16.md
│   ├── CHANGELOG-1.17.md
│   ├── CHANGELOG-1.18.md
│   ├── CHANGELOG-1.2.md
│   ├── CHANGELOG-1.3.md
│   ├── CHANGELOG-1.4.md
│   ├── CHANGELOG-1.5.md
│   ├── CHANGELOG-1.6.md
│   ├── CHANGELOG-1.7.md
│   ├── CHANGELOG-1.8.md
│   ├── CHANGELOG-1.9.md
│   └── unreleased/
│       ├── 9502-Joeavaikath
│       ├── 9508-kaovilai
│       ├── 9532-Lyndon-Li
│       ├── 9533-Lyndon-Li‎‎
│       ├── 9547-blackpiglet
│       ├── 9554-testsabirweb
│       ├── 9560-Lyndon-Li‎‎
│       ├── 9561-Lyndon-Li‎‎
│       ├── 9570-H-M-Quang-Ngo
│       ├── 9574-blackpiglet
│       └── 9581-shubham-pampattiwar
├── cmd/
│   ├── velero/
│   │   └── velero.go
│   ├── velero-helper/
│   │   └── velero-helper.go
│   └── velero-restore-helper/
│       └── velero-restore-helper.go
├── config/
│   ├── crd/
│   │   ├── v1/
│   │   │   ├── bases/
│   │   │   │   ├── velero.io_backuprepositories.yaml
│   │   │   │   ├── velero.io_backups.yaml
│   │   │   │   ├── velero.io_backupstoragelocations.yaml
│   │   │   │   ├── velero.io_deletebackuprequests.yaml
│   │   │   │   ├── velero.io_downloadrequests.yaml
│   │   │   │   ├── velero.io_podvolumebackups.yaml
│   │   │   │   ├── velero.io_podvolumerestores.yaml
│   │   │   │   ├── velero.io_restores.yaml
│   │   │   │   ├── velero.io_schedules.yaml
│   │   │   │   ├── velero.io_serverstatusrequests.yaml
│   │   │   │   └── velero.io_volumesnapshotlocations.yaml
│   │   │   └── crds/
│   │   │       ├── crds.go
│   │   │       └── doc.go
│   │   └── v2alpha1/
│   │       ├── bases/
│   │       │   ├── velero.io_datadownloads.yaml
│   │       │   └── velero.io_datauploads.yaml
│   │       └── crds/
│   │           ├── crds.go
│   │           └── doc.go
│   └── rbac/
│       └── role.yaml
├── design/
│   ├── 2082-bsl-delete-associated-resources_design.md
│   ├── CLI/
│   │   └── PoC/
│   │       ├── base/
│   │       │   ├── CRDs.yaml
│   │       │   ├── backupstoragelocations.yaml
│   │       │   ├── deployment.yaml
│   │       │   ├── kustomization.yaml
│   │       │   ├── minio.yaml
│   │       │   ├── podvolumes.yaml
│   │       │   ├── resticrepository.yaml
│   │       │   └── volumesnapshotlocations.yaml
│   │       └── overlays/
│   │           └── plugins/
│   │               ├── aws-plugin.yaml
│   │               ├── azure-plugin.yaml
│   │               ├── cloud
│   │               ├── kustomization.yaml
│   │               └── node-agent.yaml
│   ├── Implemented/
│   │   ├── AsyncActionFSM.graffle
│   │   ├── Extend-VolumePolicies-to-support-more-actions.md
│   │   ├── apply-flag.md
│   │   ├── backup-performance-improvements.md
│   │   ├── backup-pvc-config.md
│   │   ├── backup-repo-cache-volume.md
│   │   ├── backup-repo-config.md
│   │   ├── backup-resource-list.md
│   │   ├── backup-resources-order.md
│   │   ├── biav2-design.md
│   │   ├── bsl-certificate-support_design.md
│   │   ├── clean_artifacts_in_csi_flow.md
│   │   ├── cluster-scope-resource-filter.md
│   │   ├── concurrent-backup-processing.md
│   │   ├── csi-snapshots.md
│   │   ├── custom-ca-support.md
│   │   ├── delete-item-action.md
│   │   ├── deletion-plugins.md
│   │   ├── existing-resource-policy_design.md
│   │   ├── feature-flags.md
│   │   ├── general-progress-monitoring.md
│   │   ├── generating-velero-crds-with-structural-schema.md
│   │   ├── handle-backup-of-volumes-by-resources-filters.md
│   │   ├── include-exclude-in-resource-policy.md
│   │   ├── json-substitution-action-design.md
│   │   ├── merge-patch-and-strategic-in-resource-modifier.md
│   │   ├── move-gh-org.md
│   │   ├── move-plugin-repos.md
│   │   ├── multiple-arch-build-with-windows.md
│   │   ├── multiple-csi-volumesnapshotclass-support.md
│   │   ├── multiple-label-selectors_design.md
│   │   ├── node-agent-affinity.md
│   │   ├── node-agent-concurrency.md
│   │   ├── node-agent-load-soothing.md
│   │   ├── plugin-backup-and-restore-progress-design.md
│   │   ├── plugin-versioning.md
│   │   ├── priority-class-name-support_design.md
│   │   ├── pv-cloning.md
│   │   ├── pv_backup_info.md
│   │   ├── pv_restore_info.md
│   │   ├── repo_maintenance_job_config.md
│   │   ├── repository-maintenance.md
│   │   ├── resource-status-restore.md
│   │   ├── restic-backup-and-restore-progress.md
│   │   ├── restore-finalizing-phase_design.md
│   │   ├── restore-hooks.md
│   │   ├── restore-with-EnableAPIGroupVersions-feature.md
│   │   ├── retry-patching-configuration_design.md
│   │   ├── riav2-design.md
│   │   ├── schedule-skip-immediately-config_design.md
│   │   ├── secrets.md
│   │   ├── supporting-volumeattributes-resource-policy.md
│   │   ├── unified-repo-and-kopia-integration/
│   │   │   └── unified-repo-and-kopia-integration.md
│   │   ├── velero-debug.md
│   │   ├── velero-uploader-configuration.md
│   │   ├── vgdp-affinity-enhancement.md
│   │   ├── vgdp-micro-service/
│   │   │   └── vgdp-micro-service.md
│   │   ├── vgdp-micro-service-for-fs-backup/
│   │   │   └── vgdp-micro-service-for-fs-backup.md
│   │   ├── volume-group-snapshot.md
│   │   ├── volume-policy-label-selector-criteria.md
│   │   ├── volume-snapshot-data-movement/
│   │   │   └── volume-snapshot-data-movement.md
│   │   ├── wait-for-additional-items.md
│   │   └── wildcard-namespace-support-design.md
│   ├── UploadFSM.graffle
│   ├── _template.md
│   ├── cli-install-changes.md
│   ├── graph-manifest.md
│   ├── new-prepost-backuprestore-plugin-hooks.md
│   ├── restore-progress.md
│   ├── upload-progress.md
│   └── vsv2-design.md
├── examples/
│   ├── README.md
│   ├── minio/
│   │   └── 00-minio-deployment.yaml
│   └── nginx-app/
│       ├── README.md
│       ├── base.yaml
│       └── with-pv.yaml
├── go.mod
├── go.sum
├── hack/
│   ├── boilerplate.go.txt
│   ├── build-image/
│   │   └── Dockerfile
│   ├── build-restic.sh
│   ├── build.sh
│   ├── changelog-check.sh
│   ├── ci-check.sh
│   ├── crd-gen/
│   │   └── v1/
│   │       └── main.go
│   ├── docker-push.sh
│   ├── fix_restic_cve.txt
│   ├── issue-template-gen/
│   │   └── main.go
│   ├── lint.sh
│   ├── release-tools/
│   │   ├── brew-update.sh
│   │   ├── changelog.sh
│   │   ├── chk_version.go
│   │   ├── chk_version_test.go
│   │   ├── gen-docs.sh
│   │   ├── goreleaser.sh
│   │   └── tag-release.sh
│   ├── test.sh
│   ├── update-1fmt.sh
│   ├── update-2proto.sh
│   ├── update-3generated-crd-code.sh
│   ├── update-4generated-issue-template.sh
│   ├── update-all.sh
│   ├── verify-all.sh
│   ├── verify-fmt.sh
│   ├── verify-generated-crd-code.sh
│   └── verify-generated-issue-template.sh
├── internal/
│   ├── credentials/
│   │   ├── file_store.go
│   │   ├── file_store_test.go
│   │   ├── getter.go
│   │   ├── local.go
│   │   ├── mocks/
│   │   │   ├── FileStore.go
│   │   │   └── SecretStore.go
│   │   └── secret_store.go
│   ├── delete/
│   │   ├── actions/
│   │   │   └── csi/
│   │   │       ├── volumesnapshotcontent_action.go
│   │   │       └── volumesnapshotcontent_action_test.go
│   │   ├── delete_item_action_handler.go
│   │   └── delete_item_action_handler_test.go
│   ├── hook/
│   │   ├── hook_tracker.go
│   │   ├── hook_tracker_test.go
│   │   ├── item_hook_handler.go
│   │   ├── item_hook_handler_test.go
│   │   ├── wait_exec_hook_handler.go
│   │   └── wait_exec_hook_handler_test.go
│   ├── resourcemodifiers/
│   │   ├── json_merge_patch.go
│   │   ├── json_merge_patch_test.go
│   │   ├── json_patch.go
│   │   ├── resource_modifiers.go
│   │   ├── resource_modifiers_test.go
│   │   ├── resource_modifiers_validator.go
│   │   ├── resource_modifiers_validator_test.go
│   │   ├── strategic_merge_patch.go
│   │   └── strategic_merge_patch_test.go
│   ├── resourcepolicies/
│   │   ├── resource_policies.go
│   │   ├── resource_policies_test.go
│   │   ├── volume_filter_data.go
│   │   ├── volume_filter_data_test.go
│   │   ├── volume_resources.go
│   │   ├── volume_resources_test.go
│   │   ├── volume_resources_validator.go
│   │   ├── volume_resources_validator_test.go
│   │   ├── volume_types_conditions.go
│   │   └── volume_types_conditions_test.go
│   ├── restartabletest/
│   │   └── restartable_delegate.go
│   ├── storage/
│   │   ├── storagelocation.go
│   │   └── storagelocation_test.go
│   ├── velero/
│   │   ├── images.go
│   │   ├── images_test.go
│   │   └── serverstatusrequest.go
│   ├── volume/
│   │   ├── native_snapshot.go
│   │   ├── snapshotlocation.go
│   │   ├── utils.go
│   │   ├── utils_test.go
│   │   ├── volumes_information.go
│   │   └── volumes_information_test.go
│   └── volumehelper/
│       ├── volume_policy_helper.go
│       └── volume_policy_helper_test.go
├── netlify.toml
├── pkg/
│   ├── apis/
│   │   └── velero/
│   │       ├── shared/
│   │       │   └── data_move_operation_progress.go
│   │       ├── v1/
│   │       │   ├── backup_repository_types.go
│   │       │   ├── backup_types.go
│   │       │   ├── backupstoragelocation_types.go
│   │       │   ├── backupstoragelocation_types_test.go
│   │       │   ├── constants.go
│   │       │   ├── delete_backup_request_types.go
│   │       │   ├── doc.go
│   │       │   ├── download_request_types.go
│   │       │   ├── groupversion_info.go
│   │       │   ├── labels_annotations.go
│   │       │   ├── pod_volume_backup_types.go
│   │       │   ├── pod_volume_restore_type.go
│   │       │   ├── register.go
│   │       │   ├── restore_types.go
│   │       │   ├── schedule_types.go
│   │       │   ├── server_status_request_types.go
│   │       │   ├── volume_snapshot_location_type.go
│   │       │   └── zz_generated.deepcopy.go
│   │       └── v2alpha1/
│   │           ├── data_download_types.go
│   │           ├── data_upload_types.go
│   │           ├── doc.go
│   │           ├── groupversion_info.go
│   │           ├── register.go
│   │           └── zz_generated.deepcopy.go
│   ├── archive/
│   │   ├── extractor.go
│   │   ├── extractor_test.go
│   │   ├── filesystem.go
│   │   ├── filesystem_test.go
│   │   ├── parser.go
│   │   └── parser_test.go
│   ├── backup/
│   │   ├── actions/
│   │   │   ├── backup_pv_action.go
│   │   │   ├── backup_pv_action_test.go
│   │   │   ├── csi/
│   │   │   │   ├── pvc_action.go
│   │   │   │   ├── pvc_action_test.go
│   │   │   │   ├── volumesnapshot_action.go
│   │   │   │   ├── volumesnapshot_action_test.go
│   │   │   │   ├── volumesnapshotclass_action.go
│   │   │   │   ├── volumesnapshotclass_action_test.go
│   │   │   │   ├── volumesnapshotcontent_action.go
│   │   │   │   └── volumesnapshotcontent_action_test.go
│   │   │   ├── pod_action.go
│   │   │   ├── pod_action_test.go
│   │   │   ├── remap_crd_version_action.go
│   │   │   ├── remap_crd_version_action_test.go
│   │   │   ├── service_account_action.go
│   │   │   ├── service_account_action_test.go
│   │   │   └── testdata/
│   │   │       ├── v1/
│   │   │       │   ├── alertmanagers.monitoring.coreos.com.json
│   │   │       │   ├── elasticsearches.elasticsearch.k8s.elastic.co.json
│   │   │       │   ├── gcpsamples.gcp.stacks.crossplane.io.json
│   │   │       │   ├── kibanas.kibana.k8s.elastic.co.json
│   │   │       │   ├── pprometheuses.monitoring.coreos.com.json
│   │   │       │   └── prometheuses.monitoring.coreos.com.json
│   │   │       └── v1beta1/
│   │   │           ├── alertmanagers.monitoring.coreos.com.json
│   │   │           ├── elasticsearches.elasticsearch.k8s.elastic.co.json
│   │   │           ├── gcpsamples.gcp.stacks.crossplane.io.json
│   │   │           ├── kibanas.kibana.k8s.elastic.co.json
│   │   │           └── prometheuses.monitoring.coreos.com.json
│   │   ├── backed_up_items_map.go
│   │   ├── backup.go
│   │   ├── backup_test.go
│   │   ├── delete_helpers.go
│   │   ├── item_backupper.go
│   │   ├── item_backupper_test.go
│   │   ├── item_block_worker_pool.go
│   │   ├── item_collector.go
│   │   ├── item_collector_test.go
│   │   ├── itemblock.go
│   │   ├── pv_skip_tracker.go
│   │   ├── pv_skip_tracker_test.go
│   │   ├── request.go
│   │   ├── request_test.go
│   │   ├── snapshots.go
│   │   └── volume_snapshotter_cache.go
│   ├── builder/
│   │   ├── backup_builder.go
│   │   ├── backup_storage_location_builder.go
│   │   ├── config_map_builder.go
│   │   ├── container_builder.go
│   │   ├── container_builder_test.go
│   │   ├── customresourcedefinition_v1beta1_builder.go
│   │   ├── data_download_builder.go
│   │   ├── data_upload_builder.go
│   │   ├── delete_backup_request_builder.go
│   │   ├── deployment_builder.go
│   │   ├── download_request_builder.go
│   │   ├── item_operation_builder.go
│   │   ├── job_builder.go
│   │   ├── json_schema_props_builder.go
│   │   ├── namespace_builder.go
│   │   ├── node_builder.go
│   │   ├── node_selector_builder.go
│   │   ├── object_meta.go
│   │   ├── persistent_volume_builder.go
│   │   ├── persistent_volume_claim_builder.go
│   │   ├── pod_builder.go
│   │   ├── pod_volume_backup_builder.go
│   │   ├── pod_volume_restore_builder.go
│   │   ├── priority_class_builder.go
│   │   ├── restore_builder.go
│   │   ├── role_builder.go
│   │   ├── schedule_builder.go
│   │   ├── secret_builder.go
│   │   ├── secret_key_selector_builder.go
│   │   ├── server_status_request_builder.go
│   │   ├── service_account_builder.go
│   │   ├── service_builder.go
│   │   ├── statefulset_builder.go
│   │   ├── storage_class_builder.go
│   │   ├── testcr_builder.go
│   │   ├── v1_customresourcedefinition_builder.go
│   │   ├── volume_builder.go
│   │   ├── volume_mount_builder.go
│   │   ├── volume_snapshot_builder.go
│   │   ├── volume_snapshot_class_builder.go
│   │   ├── volume_snapshot_content_builder.go
│   │   └── volume_snapshot_location_builder.go
│   ├── buildinfo/
│   │   ├── buildinfo.go
│   │   └── buildinfo_test.go
│   ├── client/
│   │   ├── auth_providers.go
│   │   ├── client.go
│   │   ├── client_test.go
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── dynamic.go
│   │   ├── factory.go
│   │   ├── factory_test.go
│   │   ├── kubeconfig
│   │   ├── mocks/
│   │   │   └── Factory.go
│   │   └── retry.go
│   ├── cmd/
│   │   ├── cli/
│   │   │   ├── backup/
│   │   │   │   ├── backup.go
│   │   │   │   ├── backup_test.go
│   │   │   │   ├── create.go
│   │   │   │   ├── create_test.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── delete_test.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── describe_test.go
│   │   │   │   ├── download.go
│   │   │   │   ├── download_test.go
│   │   │   │   ├── get.go
│   │   │   │   ├── get_test.go
│   │   │   │   ├── logs.go
│   │   │   │   └── logs_test.go
│   │   │   ├── backuplocation/
│   │   │   │   ├── backup_location.go
│   │   │   │   ├── backup_location_test.go
│   │   │   │   ├── create.go
│   │   │   │   ├── create_test.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── delete_test.go
│   │   │   │   ├── get.go
│   │   │   │   ├── get_test.go
│   │   │   │   ├── set.go
│   │   │   │   └── set_test.go
│   │   │   ├── bug/
│   │   │   │   └── bug.go
│   │   │   ├── client/
│   │   │   │   ├── client.go
│   │   │   │   └── config/
│   │   │   │       ├── config.go
│   │   │   │       ├── get.go
│   │   │   │       └── set.go
│   │   │   ├── completion/
│   │   │   │   └── completion.go
│   │   │   ├── create/
│   │   │   │   └── create.go
│   │   │   ├── datamover/
│   │   │   │   ├── backup.go
│   │   │   │   ├── backup_test.go
│   │   │   │   ├── data_mover.go
│   │   │   │   ├── mocks/
│   │   │   │   │   └── Cache.go
│   │   │   │   ├── restore.go
│   │   │   │   └── restore_test.go
│   │   │   ├── debug/
│   │   │   │   ├── cshd-scripts/
│   │   │   │   │   └── velero.cshd
│   │   │   │   └── debug.go
│   │   │   ├── delete/
│   │   │   │   └── delete.go
│   │   │   ├── delete_options.go
│   │   │   ├── describe/
│   │   │   │   └── describe.go
│   │   │   ├── get/
│   │   │   │   └── get.go
│   │   │   ├── install/
│   │   │   │   ├── install.go
│   │   │   │   └── install_test.go
│   │   │   ├── nodeagent/
│   │   │   │   ├── node_agent.go
│   │   │   │   ├── server.go
│   │   │   │   └── server_test.go
│   │   │   ├── plugin/
│   │   │   │   ├── add.go
│   │   │   │   ├── get.go
│   │   │   │   ├── helpers.go
│   │   │   │   ├── plugin.go
│   │   │   │   └── remove.go
│   │   │   ├── podvolume/
│   │   │   │   ├── backup.go
│   │   │   │   ├── backup_test.go
│   │   │   │   ├── podvolume.go
│   │   │   │   ├── restore.go
│   │   │   │   └── restore_test.go
│   │   │   ├── repo/
│   │   │   │   ├── get.go
│   │   │   │   └── repo.go
│   │   │   ├── repomantenance/
│   │   │   │   └── maintenance.go
│   │   │   ├── restore/
│   │   │   │   ├── create.go
│   │   │   │   ├── create_test.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── delete_test.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── describe_test.go
│   │   │   │   ├── get.go
│   │   │   │   ├── get_test.go
│   │   │   │   ├── logs.go
│   │   │   │   ├── logs_test.go
│   │   │   │   ├── restore.go
│   │   │   │   └── restore_test.go
│   │   │   ├── schedule/
│   │   │   │   ├── create.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── get.go
│   │   │   │   ├── pause.go
│   │   │   │   ├── schedule.go
│   │   │   │   ├── skip_options.go
│   │   │   │   └── unpause.go
│   │   │   ├── select_option.go
│   │   │   ├── select_option_test.go
│   │   │   ├── serverstatus/
│   │   │   │   └── server_status.go
│   │   │   ├── snapshotlocation/
│   │   │   │   ├── create.go
│   │   │   │   ├── get.go
│   │   │   │   ├── set.go
│   │   │   │   └── snapshot_location.go
│   │   │   ├── uninstall/
│   │   │   │   └── uninstall.go
│   │   │   └── version/
│   │   │       ├── version.go
│   │   │       └── version_test.go
│   │   ├── const.go
│   │   ├── errors.go
│   │   ├── server/
│   │   │   ├── config/
│   │   │   │   ├── config.go
│   │   │   │   └── config_test.go
│   │   │   ├── plugin/
│   │   │   │   └── plugin.go
│   │   │   ├── server.go
│   │   │   └── server_test.go
│   │   ├── test/
│   │   │   └── const.go
│   │   ├── util/
│   │   │   ├── cacert/
│   │   │   │   ├── bsl_cacert.go
│   │   │   │   └── bsl_cacert_test.go
│   │   │   ├── confirm/
│   │   │   │   └── confirm.go
│   │   │   ├── downloadrequest/
│   │   │   │   ├── downloadrequest.go
│   │   │   │   └── downloadrequest_test.go
│   │   │   ├── flag/
│   │   │   │   ├── accessors.go
│   │   │   │   ├── accessors_test.go
│   │   │   │   ├── array.go
│   │   │   │   ├── array_test.go
│   │   │   │   ├── enum.go
│   │   │   │   ├── enum_test.go
│   │   │   │   ├── label_selector_test.go
│   │   │   │   ├── labelselector.go
│   │   │   │   ├── map.go
│   │   │   │   ├── map_test.go
│   │   │   │   ├── optional_bool.go
│   │   │   │   ├── optional_bool_test.go
│   │   │   │   ├── orlabelselector.go
│   │   │   │   └── orlabelselector_test.go
│   │   │   ├── output/
│   │   │   │   ├── backup_describer.go
│   │   │   │   ├── backup_describer_test.go
│   │   │   │   ├── backup_printer.go
│   │   │   │   ├── backup_printer_test.go
│   │   │   │   ├── backup_repo_printer.go
│   │   │   │   ├── backup_storage_location_printer.go
│   │   │   │   ├── backup_structured_describer.go
│   │   │   │   ├── backup_structured_describer_test.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── describe_test.go
│   │   │   │   ├── output.go
│   │   │   │   ├── output_test.go
│   │   │   │   ├── plugin_printer.go
│   │   │   │   ├── restore_describer.go
│   │   │   │   ├── restore_describer_test.go
│   │   │   │   ├── restore_printer.go
│   │   │   │   ├── schedule_describe_test.go
│   │   │   │   ├── schedule_describer.go
│   │   │   │   ├── schedule_printer.go
│   │   │   │   └── volume_snapshot_location_printer.go
│   │   │   └── signals/
│   │   │       └── signals.go
│   │   └── velero/
│   │       └── velero.go
│   ├── constant/
│   │   └── constant.go
│   ├── controller/
│   │   ├── backup_controller.go
│   │   ├── backup_controller_test.go
│   │   ├── backup_deletion_controller.go
│   │   ├── backup_deletion_controller_test.go
│   │   ├── backup_finalizer_controller.go
│   │   ├── backup_finalizer_controller_test.go
│   │   ├── backup_operations_controller.go
│   │   ├── backup_operations_controller_test.go
│   │   ├── backup_queue_controller.go
│   │   ├── backup_queue_controller_test.go
│   │   ├── backup_repository_controller.go
│   │   ├── backup_repository_controller_test.go
│   │   ├── backup_storage_location_controller.go
│   │   ├── backup_storage_location_controller_test.go
│   │   ├── backup_sync_controller.go
│   │   ├── backup_sync_controller_test.go
│   │   ├── backup_tracker.go
│   │   ├── backup_tracker_test.go
│   │   ├── data_download_controller.go
│   │   ├── data_download_controller_test.go
│   │   ├── data_upload_controller.go
│   │   ├── data_upload_controller_test.go
│   │   ├── download_request_controller.go
│   │   ├── download_request_controller_test.go
│   │   ├── gc_controller.go
│   │   ├── gc_controller_test.go
│   │   ├── interface.go
│   │   ├── pod_volume_backup_controller.go
│   │   ├── pod_volume_backup_controller_test.go
│   │   ├── pod_volume_restore_controller.go
│   │   ├── pod_volume_restore_controller_legacy.go
│   │   ├── pod_volume_restore_controller_legacy_test.go
│   │   ├── pod_volume_restore_controller_test.go
│   │   ├── restore_controller.go
│   │   ├── restore_controller_test.go
│   │   ├── restore_finalizer_controller.go
│   │   ├── restore_finalizer_controller_test.go
│   │   ├── restore_operations_controller.go
│   │   ├── restore_operations_controller_test.go
│   │   ├── schedule_controller.go
│   │   ├── schedule_controller_test.go
│   │   ├── server_status_request_controller.go
│   │   ├── server_status_request_controller_test.go
│   │   └── suite_test.go
│   ├── datamover/
│   │   ├── backup_micro_service.go
│   │   ├── backup_micro_service_test.go
│   │   ├── dataupload_delete_action.go
│   │   ├── restore_micro_service.go
│   │   ├── restore_micro_service_test.go
│   │   ├── util.go
│   │   └── util_test.go
│   ├── datapath/
│   │   ├── error.go
│   │   ├── error_test.go
│   │   ├── file_system.go
│   │   ├── file_system_test.go
│   │   ├── manager.go
│   │   ├── manager_test.go
│   │   ├── micro_service_watcher.go
│   │   ├── micro_service_watcher_test.go
│   │   ├── mocks/
│   │   │   └── asyncBR.go
│   │   └── types.go
│   ├── discovery/
│   │   ├── helper.go
│   │   ├── helper_test.go
│   │   └── mocks/
│   │       └── Helper.go
│   ├── exposer/
│   │   ├── cache_volume.go
│   │   ├── cache_volume_test.go
│   │   ├── csi_snapshot.go
│   │   ├── csi_snapshot_priority_test.go
│   │   ├── csi_snapshot_test.go
│   │   ├── generic_restore.go
│   │   ├── generic_restore_priority_test.go
│   │   ├── generic_restore_test.go
│   │   ├── host_path.go
│   │   ├── host_path_test.go
│   │   ├── image.go
│   │   ├── image_test.go
│   │   ├── mocks/
│   │   │   ├── GenericRestoreExposer.go
│   │   │   └── PodVolumeExposer.go
│   │   ├── pod_volume.go
│   │   ├── pod_volume_test.go
│   │   ├── snapshot.go
│   │   ├── types.go
│   │   ├── vgdp_counter.go
│   │   └── vgdp_counter_test.go
│   ├── features/
│   │   ├── feature_flags.go
│   │   └── feature_flags_test.go
│   ├── install/
│   │   ├── daemonset.go
│   │   ├── daemonset_test.go
│   │   ├── deployment.go
│   │   ├── deployment_test.go
│   │   ├── doc.go
│   │   ├── import_test.go
│   │   ├── install.go
│   │   ├── install_test.go
│   │   ├── resources.go
│   │   └── resources_test.go
│   ├── itemblock/
│   │   ├── actions/
│   │   │   ├── pod_action.go
│   │   │   ├── pod_action_test.go
│   │   │   ├── pvc_action.go
│   │   │   ├── pvc_action_test.go
│   │   │   ├── service_account_action.go
│   │   │   └── service_account_action_test.go
│   │   └── itemblock.go
│   ├── itemoperation/
│   │   ├── backup_operation.go
│   │   ├── restore_operation.go
│   │   └── shared.go
│   ├── itemoperationmap/
│   │   ├── backup_operation_map.go
│   │   └── restore_operation_map.go
│   ├── kopia/
│   │   ├── kopia_log.go
│   │   └── kopia_log_test.go
│   ├── kuberesource/
│   │   └── kuberesource.go
│   ├── label/
│   │   ├── label.go
│   │   └── label_test.go
│   ├── metrics/
│   │   ├── metrics.go
│   │   └── metrics_test.go
│   ├── nodeagent/
│   │   ├── node_agent.go
│   │   └── node_agent_test.go
│   ├── persistence/
│   │   ├── in_memory_object_store.go
│   │   ├── mocks/
│   │   │   ├── backup_store.go
│   │   │   └── object_store.go
│   │   ├── object_store.go
│   │   ├── object_store_layout.go
│   │   └── object_store_test.go
│   ├── plugin/
│   │   ├── clientmgmt/
│   │   │   ├── backupitemaction/
│   │   │   │   ├── v1/
│   │   │   │   │   ├── restartable_backup_item_action.go
│   │   │   │   │   └── restartable_backup_item_action_test.go
│   │   │   │   └── v2/
│   │   │   │       ├── restartable_backup_item_action.go
│   │   │   │       └── restartable_backup_item_action_test.go
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       ├── restartable_item_block_action.go
│   │   │   │       └── restartable_item_block_action_test.go
│   │   │   ├── manager.go
│   │   │   ├── manager_test.go
│   │   │   ├── process/
│   │   │   │   ├── client_builder.go
│   │   │   │   ├── client_builder_test.go
│   │   │   │   ├── logrus_adapter.go
│   │   │   │   ├── logrus_adapter_test.go
│   │   │   │   ├── process.go
│   │   │   │   ├── process_test.go
│   │   │   │   ├── registry.go
│   │   │   │   ├── registry_test.go
│   │   │   │   └── restartable_process.go
│   │   │   ├── restartable_delete_item_action.go
│   │   │   ├── restartable_delete_item_action_test.go
│   │   │   ├── restartable_object_store.go
│   │   │   ├── restartable_object_store_test.go
│   │   │   ├── restoreitemaction/
│   │   │   │   ├── v1/
│   │   │   │   │   ├── restartable_restore_item_action.go
│   │   │   │   │   └── restartable_restore_item_action_test.go
│   │   │   │   └── v2/
│   │   │   │       ├── restartable_restore_item_action.go
│   │   │   │       └── restartable_restore_item_action_test.go
│   │   │   └── volumesnapshotter/
│   │   │       └── v1/
│   │   │           ├── restartable_volume_snapshotter.go
│   │   │           └── restartable_volume_snapshotter_test.go
│   │   ├── framework/
│   │   │   ├── action_resolver.go
│   │   │   ├── action_resolver_test.go
│   │   │   ├── backup_item_action.go
│   │   │   ├── backup_item_action_client.go
│   │   │   ├── backup_item_action_server.go
│   │   │   ├── backup_item_action_test.go
│   │   │   ├── backupitemaction/
│   │   │   │   └── v2/
│   │   │   │       ├── backup_item_action.go
│   │   │   │       ├── backup_item_action_client.go
│   │   │   │       ├── backup_item_action_server.go
│   │   │   │       └── backup_item_action_test.go
│   │   │   ├── common/
│   │   │   │   ├── client_dispenser.go
│   │   │   │   ├── client_dispenser_test.go
│   │   │   │   ├── client_errors.go
│   │   │   │   ├── handle_panic.go
│   │   │   │   ├── plugin_base.go
│   │   │   │   ├── plugin_base_test.go
│   │   │   │   ├── plugin_config.go
│   │   │   │   ├── plugin_config_test.go
│   │   │   │   ├── plugin_kinds.go
│   │   │   │   ├── server_errors.go
│   │   │   │   ├── server_mux.go
│   │   │   │   └── server_mux_test.go
│   │   │   ├── delete_item_action.go
│   │   │   ├── delete_item_action_client.go
│   │   │   ├── delete_item_action_server.go
│   │   │   ├── doc.go
│   │   │   ├── examples_test.go
│   │   │   ├── handshake.go
│   │   │   ├── import_test.go
│   │   │   ├── interface.go
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       ├── item_block_action.go
│   │   │   │       ├── item_block_action_client.go
│   │   │   │       ├── item_block_action_server.go
│   │   │   │       └── item_block_action_test.go
│   │   │   ├── logger.go
│   │   │   ├── logger_test.go
│   │   │   ├── object_store.go
│   │   │   ├── object_store_client.go
│   │   │   ├── object_store_server.go
│   │   │   ├── plugin_lister.go
│   │   │   ├── plugin_types_test.go
│   │   │   ├── restore_item_action.go
│   │   │   ├── restore_item_action_client.go
│   │   │   ├── restore_item_action_server.go
│   │   │   ├── restoreitemaction/
│   │   │   │   └── v2/
│   │   │   │       ├── restore_item_action.go
│   │   │   │       ├── restore_item_action_client.go
│   │   │   │       └── restore_item_action_server.go
│   │   │   ├── server.go
│   │   │   ├── stream_reader.go
│   │   │   ├── stream_reader_test.go
│   │   │   ├── validation.go
│   │   │   ├── validation_test.go
│   │   │   ├── volume_snapshotter.go
│   │   │   ├── volume_snapshotter_client.go
│   │   │   └── volume_snapshotter_server.go
│   │   ├── generated/
│   │   │   ├── BackupItemAction.pb.go
│   │   │   ├── BackupItemAction_grpc.pb.go
│   │   │   ├── DeleteItemAction.pb.go
│   │   │   ├── DeleteItemAction_grpc.pb.go
│   │   │   ├── ObjectStore.pb.go
│   │   │   ├── ObjectStore_grpc.pb.go
│   │   │   ├── PluginLister.pb.go
│   │   │   ├── PluginLister_grpc.pb.go
│   │   │   ├── RestoreItemAction.pb.go
│   │   │   ├── RestoreItemAction_grpc.pb.go
│   │   │   ├── Shared.pb.go
│   │   │   ├── VolumeSnapshotter.pb.go
│   │   │   ├── VolumeSnapshotter_grpc.pb.go
│   │   │   ├── backupitemaction/
│   │   │   │   └── v2/
│   │   │   │       ├── BackupItemAction.pb.go
│   │   │   │       └── BackupItemAction_grpc.pb.go
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       ├── ItemBlockAction.pb.go
│   │   │   │       └── ItemBlockAction_grpc.pb.go
│   │   │   └── restoreitemaction/
│   │   │       └── v2/
│   │   │           ├── RestoreItemAction.pb.go
│   │   │           └── RestoreItemAction_grpc.pb.go
│   │   ├── mocks/
│   │   │   ├── manager.go
│   │   │   └── process_factory.go
│   │   ├── proto/
│   │   │   ├── BackupItemAction.proto
│   │   │   ├── DeleteItemAction.proto
│   │   │   ├── ObjectStore.proto
│   │   │   ├── PluginLister.proto
│   │   │   ├── RestoreItemAction.proto
│   │   │   ├── Shared.proto
│   │   │   ├── VolumeSnapshotter.proto
│   │   │   ├── backupitemaction/
│   │   │   │   └── v2/
│   │   │   │       └── BackupItemAction.proto
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       └── ItemBlockAction.proto
│   │   │   └── restoreitemaction/
│   │   │       └── v2/
│   │   │           └── RestoreItemAction.proto
│   │   ├── utils/
│   │   │   └── volumehelper/
│   │   │       ├── volume_policy_helper.go
│   │   │       └── volume_policy_helper_test.go
│   │   └── velero/
│   │       ├── backupitemaction/
│   │       │   ├── v1/
│   │       │   │   └── backup_item_action.go
│   │       │   └── v2/
│   │       │       └── backup_item_action.go
│   │       ├── delete_item_action.go
│   │       ├── itemblockaction/
│   │       │   └── v1/
│   │       │       └── item_block_action.go
│   │       ├── mocks/
│   │       │   ├── DeleteItemAction.go
│   │       │   ├── backupitemaction/
│   │       │   │   ├── v1/
│   │       │   │   │   └── BackupItemAction.go
│   │       │   │   └── v2/
│   │       │   │       └── BackupItemAction.go
│   │       │   ├── itemblockaction/
│   │       │   │   └── v1/
│   │       │   │       └── ItemBlockAction.go
│   │       │   ├── object_store.go
│   │       │   ├── restoreitemaction/
│   │       │   │   ├── v1/
│   │       │   │   │   └── RestoreItemAction.go
│   │       │   │   └── v2/
│   │       │   │       └── RestoreItemAction.go
│   │       │   └── volumesnapshotter/
│   │       │       └── v1/
│   │       │           └── VolumeSnapshotter.go
│   │       ├── object_store.go
│   │       ├── restore_item_action_shared.go
│   │       ├── restoreitemaction/
│   │       │   ├── v1/
│   │       │   │   └── restore_item_action.go
│   │       │   └── v2/
│   │       │       └── restore_item_action.go
│   │       ├── shared.go
│   │       └── volumesnapshotter/
│   │           └── v1/
│   │               └── volume_snapshotter.go
│   ├── podexec/
│   │   ├── pod_command_executor.go
│   │   └── pod_command_executor_test.go
│   ├── podvolume/
│   │   ├── backup_micro_service.go
│   │   ├── backup_micro_service_test.go
│   │   ├── backupper.go
│   │   ├── backupper_factory.go
│   │   ├── backupper_test.go
│   │   ├── configs/
│   │   │   └── configs.go
│   │   ├── mocks/
│   │   │   └── restorer.go
│   │   ├── restore_micro_service.go
│   │   ├── restore_micro_service_test.go
│   │   ├── restorer.go
│   │   ├── restorer_factory.go
│   │   ├── restorer_test.go
│   │   ├── snaphost_tracker_test.go
│   │   ├── snapshot_tracker.go
│   │   ├── util.go
│   │   └── util_test.go
│   ├── repository/
│   │   ├── backup_repo_op.go
│   │   ├── backup_repo_op_test.go
│   │   ├── config/
│   │   │   ├── aws.go
│   │   │   ├── aws_test.go
│   │   │   ├── azure.go
│   │   │   ├── azure_test.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── gcp.go
│   │   │   └── gcp_test.go
│   │   ├── ensurer.go
│   │   ├── ensurer_test.go
│   │   ├── keys/
│   │   │   ├── keys.go
│   │   │   └── keys_test.go
│   │   ├── locker.go
│   │   ├── maintenance/
│   │   │   ├── maintenance.go
│   │   │   └── maintenance_test.go
│   │   ├── manager/
│   │   │   ├── manager.go
│   │   │   └── manager_test.go
│   │   ├── mocks/
│   │   │   ├── ConfigManager.go
│   │   │   ├── Manager.go
│   │   │   └── RepositoryWriter.go
│   │   ├── provider/
│   │   │   ├── provider.go
│   │   │   ├── restic.go
│   │   │   ├── unified_repo.go
│   │   │   └── unified_repo_test.go
│   │   ├── restic/
│   │   │   └── repository.go
│   │   ├── types/
│   │   │   └── snapshotidentifier.go
│   │   └── udmrepo/
│   │       ├── kopialib/
│   │       │   ├── backend/
│   │       │   │   ├── azure/
│   │       │   │   │   └── azure_storage_wrapper.go
│   │       │   │   ├── azure.go
│   │       │   │   ├── azure_test.go
│   │       │   │   ├── backend.go
│   │       │   │   ├── common.go
│   │       │   │   ├── common_test.go
│   │       │   │   ├── file_system.go
│   │       │   │   ├── file_system_test.go
│   │       │   │   ├── gcs.go
│   │       │   │   ├── gcs_test.go
│   │       │   │   ├── logging/
│   │       │   │   │   └── context.go
│   │       │   │   ├── mocks/
│   │       │   │   │   ├── Logger.go
│   │       │   │   │   ├── Reader.go
│   │       │   │   │   ├── Storage.go
│   │       │   │   │   ├── Store.go
│   │       │   │   │   ├── Writer.go
│   │       │   │   │   ├── repository.go
│   │       │   │   │   └── repository_writer.go
│   │       │   │   ├── s3.go
│   │       │   │   ├── s3_test.go
│   │       │   │   ├── utils.go
│   │       │   │   └── utils_test.go
│   │       │   ├── lib_repo.go
│   │       │   ├── lib_repo_test.go
│   │       │   ├── repo_init.go
│   │       │   └── repo_init_test.go
│   │       ├── mocks/
│   │       │   ├── BackupRepo.go
│   │       │   ├── BackupRepoService.go
│   │       │   ├── ObjectReader.go
│   │       │   └── ObjectWriter.go
│   │       ├── repo.go
│   │       ├── repo_options.go
│   │       └── service/
│   │           └── service.go
│   ├── restic/
│   │   ├── command.go
│   │   ├── command_factory.go
│   │   ├── command_factory_test.go
│   │   ├── command_test.go
│   │   ├── common.go
│   │   ├── common_test.go
│   │   ├── exec_commands.go
│   │   └── exec_commands_test.go
│   ├── restore/
│   │   ├── actions/
│   │   │   ├── add_pvc_from_pod_action.go
│   │   │   ├── add_pvc_from_pod_action_test.go
│   │   │   ├── admissionwebhook_config_action.go
│   │   │   ├── admissionwebhook_config_action_test.go
│   │   │   ├── apiservice_action.go
│   │   │   ├── apiservice_action_test.go
│   │   │   ├── change_image_name_action.go
│   │   │   ├── change_image_name_action_test.go
│   │   │   ├── change_storageclass_action.go
│   │   │   ├── change_storageclass_action_test.go
│   │   │   ├── clusterrolebinding_action.go
│   │   │   ├── clusterrolebinding_action_test.go
│   │   │   ├── crd_v1_preserve_unknown_fields_action.go
│   │   │   ├── crd_v1_preserve_unknown_fields_action_test.go
│   │   │   ├── csi/
│   │   │   │   ├── pvc_action.go
│   │   │   │   ├── pvc_action_test.go
│   │   │   │   ├── volumesnapshot_action.go
│   │   │   │   ├── volumesnapshot_action_test.go
│   │   │   │   ├── volumesnapshotclass_action.go
│   │   │   │   ├── volumesnapshotclass_action_test.go
│   │   │   │   ├── volumesnapshotcontent_action.go
│   │   │   │   └── volumesnapshotcontent_action_test.go
│   │   │   ├── dataupload_retrieve_action.go
│   │   │   ├── dataupload_retrieve_action_test.go
│   │   │   ├── init_restorehook_pod_action.go
│   │   │   ├── init_restorehook_pod_action_test.go
│   │   │   ├── job_action.go
│   │   │   ├── job_action_test.go
│   │   │   ├── pod_action.go
│   │   │   ├── pod_action_test.go
│   │   │   ├── pod_volume_restore_action.go
│   │   │   ├── pod_volume_restore_action_test.go
│   │   │   ├── pvc_action.go
│   │   │   ├── pvc_action_test.go
│   │   │   ├── rolebinding_action.go
│   │   │   ├── rolebinding_action_test.go
│   │   │   ├── secret_action.go
│   │   │   ├── secret_action_test.go
│   │   │   ├── service_account_action.go
│   │   │   ├── service_account_action_test.go
│   │   │   ├── service_action.go
│   │   │   └── service_action_test.go
│   │   ├── merge_service_account.go
│   │   ├── merge_service_account_test.go
│   │   ├── prioritize_group_version.go
│   │   ├── prioritize_group_version_test.go
│   │   ├── pv_restorer.go
│   │   ├── pv_restorer_test.go
│   │   ├── request.go
│   │   ├── request_test.go
│   │   ├── restore.go
│   │   ├── restore_test.go
│   │   └── restore_wildcard_test.go
│   ├── restorehelper/
│   │   └── util.go
│   ├── test/
│   │   ├── api_server.go
│   │   ├── comparisons.go
│   │   ├── discovery_client.go
│   │   ├── fake_controller_runtime_client.go
│   │   ├── fake_credential_file_store.go
│   │   ├── fake_discovery_helper.go
│   │   ├── fake_dynamic.go
│   │   ├── fake_file_system.go
│   │   ├── fake_mapper.go
│   │   ├── fake_namespace.go
│   │   ├── fake_volume_snapshotter.go
│   │   ├── helpers.go
│   │   ├── mock_pod_command_executor.go
│   │   ├── mocks/
│   │   │   └── VolumeSnapshotLister.go
│   │   ├── mocks.go
│   │   ├── resources.go
│   │   ├── tar_writer.go
│   │   └── test_logger.go
│   ├── types/
│   │   ├── node_agent.go
│   │   ├── priority.go
│   │   ├── priority_test.go
│   │   └── repo_maintenance.go
│   ├── uploader/
│   │   ├── kopia/
│   │   │   ├── block_backup.go
│   │   │   ├── block_backup_windows.go
│   │   │   ├── block_restore.go
│   │   │   ├── block_restore_windows.go
│   │   │   ├── flush_volume_linux.go
│   │   │   ├── flush_volume_other.go
│   │   │   ├── progress.go
│   │   │   ├── progress_test.go
│   │   │   ├── restore_output.go
│   │   │   ├── shim.go
│   │   │   ├── shim_test.go
│   │   │   ├── snapshot.go
│   │   │   └── snapshot_test.go
│   │   ├── mocks/
│   │   │   ├── policy.go
│   │   │   ├── shim.go
│   │   │   ├── snapshot.go
│   │   │   └── uploader.go
│   │   ├── provider/
│   │   │   ├── kopia.go
│   │   │   ├── kopia_test.go
│   │   │   ├── mocks/
│   │   │   │   └── Provider.go
│   │   │   ├── provider.go
│   │   │   ├── provider_test.go
│   │   │   ├── restic.go
│   │   │   └── restic_test.go
│   │   ├── types.go
│   │   ├── types_test.go
│   │   └── util/
│   │       ├── uploader_config.go
│   │       └── uploader_config_test.go
│   └── util/
│       ├── actionhelpers/
│       │   ├── pod_helper.go
│       │   ├── pvc_helper.go
│       │   ├── rbac.go
│       │   └── service_account_helper.go
│       ├── azure/
│       │   ├── credential.go
│       │   ├── credential_test.go
│       │   ├── storage.go
│       │   ├── storage_test.go
│       │   ├── testdata/
│       │   │   └── certificate.pem
│       │   ├── util.go
│       │   └── util_test.go
│       ├── boolptr/
│       │   └── boolptr.go
│       ├── collections/
│       │   ├── includes_excludes.go
│       │   └── includes_excludes_test.go
│       ├── csi/
│       │   ├── util.go
│       │   ├── util_test.go
│       │   ├── volume_snapshot.go
│       │   └── volume_snapshot_test.go
│       ├── encode/
│       │   └── encode.go
│       ├── exec/
│       │   └── exec.go
│       ├── filesystem/
│       │   └── file_system.go
│       ├── kube/
│       │   ├── client.go
│       │   ├── event.go
│       │   ├── event_handler.go
│       │   ├── event_test.go
│       │   ├── list_watch.go
│       │   ├── list_watch_test.go
│       │   ├── mocks/
│       │   │   └── Client.go
│       │   ├── mocks.go
│       │   ├── node.go
│       │   ├── node_test.go
│       │   ├── periodical_enqueue_source.go
│       │   ├── periodical_enqueue_source_test.go
│       │   ├── pod.go
│       │   ├── pod_test.go
│       │   ├── predicate.go
│       │   ├── predicate_test.go
│       │   ├── priority_class.go
│       │   ├── priority_class_test.go
│       │   ├── pvc_pv.go
│       │   ├── pvc_pv_test.go
│       │   ├── resource_deletionstatus_tracker.go
│       │   ├── resource_requirements.go
│       │   ├── resource_requirements_test.go
│       │   ├── secrets.go
│       │   ├── secrets_test.go
│       │   ├── security_context.go
│       │   ├── security_context_test.go
│       │   ├── utils.go
│       │   └── utils_test.go
│       ├── logging/
│       │   ├── default_logger.go
│       │   ├── default_logger_test.go
│       │   ├── dual_mode_logger.go
│       │   ├── dual_mode_logger_test.go
│       │   ├── error_location_hook.go
│       │   ├── error_location_hook_test.go
│       │   ├── format_flag.go
│       │   ├── hclog_level_hook.go
│       │   ├── log_counter_hook.go
│       │   ├── log_counter_hook_test.go
│       │   ├── log_level_flag.go
│       │   ├── log_location_hook.go
│       │   ├── log_location_hook_test.go
│       │   ├── log_merge_hook.go
│       │   └── log_merge_hook_test.go
│       ├── podvolume/
│       │   ├── pod_volume.go
│       │   └── pod_volume_test.go
│       ├── results/
│       │   ├── result.go
│       │   └── result_test.go
│       ├── scheme.go
│       ├── stringptr/
│       │   └── stringptr.go
│       ├── stringslice/
│       │   ├── stringslice.go
│       │   └── stringslice_test.go
│       ├── third_party.go
│       ├── util.go
│       ├── util_test.go
│       ├── velero/
│       │   ├── restore/
│       │   │   ├── util.go
│       │   │   └── util_test.go
│       │   ├── velero.go
│       │   └── velero_test.go
│       └── wildcard/
│           ├── expand.go
│           └── expand_test.go
├── restore-hooks_product-requirements.md
├── site/
│   ├── Dockerfile
│   ├── README-HUGO.md
│   ├── assets/
│   │   ├── _scss/
│   │   │   ├── _styles.scss
│   │   │   ├── bootstrap-4.1.3/
│   │   │   │   ├── _alert.scss
│   │   │   │   ├── _badge.scss
│   │   │   │   ├── _breadcrumb.scss
│   │   │   │   ├── _button-group.scss
│   │   │   │   ├── _buttons.scss
│   │   │   │   ├── _card.scss
│   │   │   │   ├── _carousel.scss
│   │   │   │   ├── _close.scss
│   │   │   │   ├── _code.scss
│   │   │   │   ├── _custom-forms.scss
│   │   │   │   ├── _dropdown.scss
│   │   │   │   ├── _forms.scss
│   │   │   │   ├── _functions.scss
│   │   │   │   ├── _grid.scss
│   │   │   │   ├── _images.scss
│   │   │   │   ├── _input-group.scss
│   │   │   │   ├── _jumbotron.scss
│   │   │   │   ├── _list-group.scss
│   │   │   │   ├── _media.scss
│   │   │   │   ├── _mixins.scss
│   │   │   │   ├── _modal.scss
│   │   │   │   ├── _nav.scss
│   │   │   │   ├── _navbar.scss
│   │   │   │   ├── _pagination.scss
│   │   │   │   ├── _popover.scss
│   │   │   │   ├── _print.scss
│   │   │   │   ├── _progress.scss
│   │   │   │   ├── _reboot.scss
│   │   │   │   ├── _root.scss
│   │   │   │   ├── _tables.scss
│   │   │   │   ├── _tooltip.scss
│   │   │   │   ├── _transitions.scss
│   │   │   │   ├── _type.scss
│   │   │   │   ├── _utilities.scss
│   │   │   │   ├── _variables.scss
│   │   │   │   ├── bootstrap-grid.scss
│   │   │   │   ├── bootstrap-reboot.scss
│   │   │   │   ├── bootstrap.scss
│   │   │   │   ├── mixins/
│   │   │   │   │   ├── _alert.scss
│   │   │   │   │   ├── _background-variant.scss
│   │   │   │   │   ├── _badge.scss
│   │   │   │   │   ├── _border-radius.scss
│   │   │   │   │   ├── _box-shadow.scss
│   │   │   │   │   ├── _breakpoints.scss
│   │   │   │   │   ├── _buttons.scss
│   │   │   │   │   ├── _caret.scss
│   │   │   │   │   ├── _clearfix.scss
│   │   │   │   │   ├── _float.scss
│   │   │   │   │   ├── _forms.scss
│   │   │   │   │   ├── _gradients.scss
│   │   │   │   │   ├── _grid-framework.scss
│   │   │   │   │   ├── _grid.scss
│   │   │   │   │   ├── _hover.scss
│   │   │   │   │   ├── _image.scss
│   │   │   │   │   ├── _list-group.scss
│   │   │   │   │   ├── _lists.scss
│   │   │   │   │   ├── _nav-divider.scss
│   │   │   │   │   ├── _pagination.scss
│   │   │   │   │   ├── _reset-text.scss
│   │   │   │   │   ├── _resize.scss
│   │   │   │   │   ├── _screen-reader.scss
│   │   │   │   │   ├── _size.scss
│   │   │   │   │   ├── _table-row.scss
│   │   │   │   │   ├── _text-emphasis.scss
│   │   │   │   │   ├── _text-hide.scss
│   │   │   │   │   ├── _text-truncate.scss
│   │   │   │   │   ├── _transition.scss
│   │   │   │   │   └── _visibility.scss
│   │   │   │   └── utilities/
│   │   │   │       ├── _align.scss
│   │   │   │       ├── _background.scss
│   │   │   │       ├── _borders.scss
│   │   │   │       ├── _clearfix.scss
│   │   │   │       ├── _display.scss
│   │   │   │       ├── _embed.scss
│   │   │   │       ├── _flex.scss
│   │   │   │       ├── _float.scss
│   │   │   │       ├── _position.scss
│   │   │   │       ├── _screenreaders.scss
│   │   │   │       ├── _shadows.scss
│   │   │   │       ├── _sizing.scss
│   │   │   │       ├── _spacing.scss
│   │   │   │       ├── _text.scss
│   │   │   │       └── _visibility.scss
│   │   │   └── site/
│   │   │       ├── common/
│   │   │       │   ├── _core.scss
│   │   │       │   ├── _fonts.scss
│   │   │       │   └── _type.scss
│   │   │       ├── layouts/
│   │   │       │   ├── _container.scss
│   │   │       │   ├── _docsearch.scss
│   │   │       │   └── _documentation.scss
│   │   │       ├── objects/
│   │   │       │   ├── _alternating-cards.scss
│   │   │       │   ├── _button.scss
│   │   │       │   ├── _card.scss
│   │   │       │   ├── _footer.scss
│   │   │       │   ├── _header.scss
│   │   │       │   ├── _home-hero.scss
│   │   │       │   ├── _post.scss
│   │   │       │   ├── _section.scss
│   │   │       │   └── _thumbnail-grid.scss
│   │   │       ├── settings/
│   │   │       │   └── _variables.scss
│   │   │       └── utilities/
│   │   │           ├── _image.scss
│   │   │           └── _type.scss
│   │   └── styles.scss
│   ├── config.yaml
│   ├── content/
│   │   ├── _index.md
│   │   ├── casestudies/
│   │   │   ├── index.md
│   │   │   ├── sample1.md
│   │   │   ├── sample2.md
│   │   │   └── sample3.md
│   │   ├── community/
│   │   │   └── _index.md
│   │   ├── contributors/
│   │   │   ├── 01-daniel-jiang.md
│   │   │   ├── 02-scott-seago.md
│   │   │   ├── 02-shubham-pampattiwar.md
│   │   │   ├── 02-wenkai-yin.md
│   │   │   ├── 02-xun-jiang.md
│   │   │   ├── 04-pradeep-chaturvedi.md
│   │   │   ├── 06-anshul-ahuja.md
│   │   │   ├── 07-tiger-kaovilai.md
│   │   │   └── index.md
│   │   ├── docs/
│   │   │   ├── main/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-cache-volume.md
│   │   │   │   ├── data-movement-node-selection.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace-glob-patterns.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── node-agent-prepare-queue-length.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-configmaps/
│   │   │   │   │   ├── _index.md
│   │   │   │   │   └── node-agent-configmap.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.18.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── volume-group-snapshots.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v0.10.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── storage-layout-reorg-v0.10.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── upgrading-to-v0.10.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── versions.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v0.11.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── expose-minio.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migrating-to-velero.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── versions.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v0.3.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   └── use-cases.md
│   │   │   ├── v0.4.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.5.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.6.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.7.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.7.1/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-deletes.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.8.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_completion.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-deletes.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.8.1/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_completion.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-deletes.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.9.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_completion.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restic.md
│   │   │   │   │   ├── ark_restic_repo.md
│   │   │   │   │   ├── ark_restic_repo_get.md
│   │   │   │   │   ├── ark_restic_server.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── quickstart.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v1.0.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migrating-to-velero.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── oracle-config.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── upgrade-to-1.0.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.1.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migrating-to-velero.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── oracle-config.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── upgrade-to-1.1.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.10/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.10.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.11/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.11.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.12/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.12.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.13/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.13.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.14/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-node-selection.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.14.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.15/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-node-selection.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.15.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.16/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-node-selection.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.16.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.17/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-node-selection.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── node-agent-prepare-queue-length.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.17.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── volume-group-snapshots.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.18/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-cache-volume.md
│   │   │   │   ├── data-movement-node-selection.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace-glob-patterns.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── node-agent-prepare-queue-length.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-configmaps/
│   │   │   │   │   ├── _index.md
│   │   │   │   │   └── node-agent-configmap.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.18.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── volume-group-snapshots.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.2.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.2.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.3.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.3.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.3.1/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.3.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.3.2/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.3.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.4/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.4.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.7/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.7.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   └── v1.9/
│   │   │       ├── _index.md
│   │   │       ├── api-types/
│   │   │       │   ├── README.md
│   │   │       │   ├── _index.md
│   │   │       │   ├── backup.md
│   │   │       │   ├── backupstoragelocation.md
│   │   │       │   ├── restore.md
│   │   │       │   ├── schedule.md
│   │   │       │   └── volumesnapshotlocation.md
│   │   │       ├── backup-hooks.md
│   │   │       ├── backup-reference.md
│   │   │       ├── basic-install.md
│   │   │       ├── build-from-source.md
│   │   │       ├── code-standards.md
│   │   │       ├── contributions/
│   │   │       │   ├── ibm-config.md
│   │   │       │   ├── minio.md
│   │   │       │   ├── oracle-config.md
│   │   │       │   └── tencent-config.md
│   │   │       ├── csi.md
│   │   │       ├── custom-plugins.md
│   │   │       ├── customize-installation.md
│   │   │       ├── debugging-install.md
│   │   │       ├── debugging-restores.md
│   │   │       ├── development.md
│   │   │       ├── disaster-case.md
│   │   │       ├── enable-api-group-versions-feature.md
│   │   │       ├── examples.md
│   │   │       ├── how-velero-works.md
│   │   │       ├── image-tagging.md
│   │   │       ├── img/
│   │   │       │   └── README.md
│   │   │       ├── locations.md
│   │   │       ├── maintainers.md
│   │   │       ├── manual-testing.md
│   │   │       ├── migration-case.md
│   │   │       ├── namespace.md
│   │   │       ├── on-premises.md
│   │   │       ├── output-file-format.md
│   │   │       ├── overview-plugins.md
│   │   │       ├── plugin-release-instructions.md
│   │   │       ├── rbac.md
│   │   │       ├── release-instructions.md
│   │   │       ├── release-schedule.md
│   │   │       ├── resource-filtering.md
│   │   │       ├── restic.md
│   │   │       ├── restore-hooks.md
│   │   │       ├── restore-reference.md
│   │   │       ├── run-locally.md
│   │   │       ├── self-signed-certificates.md
│   │   │       ├── start-contributing.md
│   │   │       ├── style-guide.md
│   │   │       ├── support-process.md
│   │   │       ├── supported-providers.md
│   │   │       ├── tilt.md
│   │   │       ├── troubleshooting.md
│   │   │       ├── uninstalling.md
│   │   │       ├── upgrade-to-1.9.md
│   │   │       ├── velero-install.md
│   │   │       └── website-guidelines.md
│   │   ├── plugins/
│   │   │   ├── _index.md
│   │   │   └── list/
│   │   │       ├── 01-amazon-web-services.md
│   │   │       ├── 01-google-cloud-platform.md
│   │   │       ├── 01-microsoft-azure.md
│   │   │       ├── 01-vsphere.md
│   │   │       ├── 05-alibaba-cloud.md
│   │   │       ├── 05-digitalocean.md
│   │   │       ├── 05-hpe-storage.md
│   │   │       ├── 05-openebs.md
│   │   │       ├── 05-openshift.md
│   │   │       ├── 05-portworx.md
│   │   │       ├── 05-storj.md
│   │   │       ├── 10-container-storage-interface.md
│   │   │       ├── 10-openstack.md
│   │   │       └── index.md
│   │   ├── posts/
│   │   │   ├── 2019-04-09-Velero-is-an-Open-Source-Tool-to-Back-up-and-Migrate-Kubernetes-Clusters.md
│   │   │   ├── 2019-05-20-velero-1.0-has-arrived.md
│   │   │   ├── 2019-08-22-announcing-velero-1.1.md
│   │   │   ├── 2019-10-01-announcing-gh-move.md
│   │   │   ├── 2019-10-08-Velero-v1-1-on-vSphere.md
│   │   │   ├── 2019-10-10-Velero-v1-1-Stateful-Backup-vSphere.md
│   │   │   ├── 2019-11-07-Velero-1.2-Sets-Sail.md
│   │   │   ├── 2020-03-02-Velero-1.3-Voyage-Continues.md
│   │   │   ├── 2020-05-26-Velero-1.4-Community-Wave.md
│   │   │   ├── 2020-05-27-CSI-integration.md
│   │   │   ├── 2020-09-16-Velero-1.5-For-And-By-Community.md
│   │   │   ├── 2021-04-13-Velero-1.6-Bring-All-Your-Credentials.md
│   │   │   ├── 2023-04-26-Velero-1.11.md
│   │   │   └── _index.md
│   │   └── resources/
│   │       └── _index.md
│   ├── data/
│   │   └── docs/
│   │       ├── default.yml
│   │       ├── main-toc.yml
│   │       ├── toc-mapping.yml
│   │       ├── v010-toc.yml
│   │       ├── v011-toc.yml
│   │       ├── v1-0-0-toc.yml
│   │       ├── v1-1-0-toc.yml
│   │       ├── v1-10-toc.yml
│   │       ├── v1-11-toc.yml
│   │       ├── v1-12-toc.yml
│   │       ├── v1-13-toc.yml
│   │       ├── v1-14-toc.yml
│   │       ├── v1-15-toc.yml
│   │       ├── v1-16-toc.yml
│   │       ├── v1-17-toc.yml
│   │       ├── v1-18-toc.yml
│   │       ├── v1-2-0-toc.yml
│   │       ├── v1-3-0-toc.yml
│   │       ├── v1-3-1-toc.yml
│   │       ├── v1-3-2-toc.yml
│   │       ├── v1-4-toc.yml
│   │       ├── v1-5-toc.yml
│   │       ├── v1-6-toc.yml
│   │       ├── v1-7-toc.yml
│   │       ├── v1-8-toc.yml
│   │       ├── v1-9-toc.yml
│   │       ├── v7-1-toc.yml
│   │       ├── v7-toc.yml
│   │       ├── v8-1-toc.yml
│   │       ├── v8-toc.yml
│   │       └── v9-toc.yml
│   ├── layouts/
│   │   ├── 404.html
│   │   ├── _default/
│   │   │   ├── _markup/
│   │   │   │   ├── render-image.html
│   │   │   │   └── render-link.html
│   │   │   ├── baseof.html
│   │   │   ├── footer.html
│   │   │   ├── section.html
│   │   │   ├── site-header.html
│   │   │   └── tag.html
│   │   ├── docs/
│   │   │   ├── docs.html
│   │   │   ├── nav.html
│   │   │   ├── version-warning.html
│   │   │   └── versions.html
│   │   ├── index.html
│   │   ├── index.redirects
│   │   ├── partials/
│   │   │   ├── blog-post-card.html
│   │   │   ├── blog-posts.html
│   │   │   ├── case-studies-alternating.html
│   │   │   ├── contributors.html
│   │   │   ├── head-docs.html
│   │   │   ├── plugins.html
│   │   │   └── related-posts.html
│   │   ├── plugins/
│   │   │   └── list.html
│   │   ├── posts/
│   │   │   ├── section.html
│   │   │   └── single.html
│   │   ├── robots.txt
│   │   └── shortcodes/
│   │       ├── table.html
│   │       └── youtube.html
│   └── static/
│       ├── fonts/
│       │   └── Metropolis/
│       │       ├── Open Font License.md
│       │       └── README.md
│       └── js/
│           ├── jquery.matchHeight.js
│           └── scripts.js
├── test/
│   ├── Makefile
│   ├── e2e/
│   │   ├── README.md
│   │   ├── backup/
│   │   │   └── backup.go
│   │   ├── backups/
│   │   │   ├── deletion.go
│   │   │   ├── sync_backups.go
│   │   │   └── ttl.go
│   │   ├── basic/
│   │   │   ├── api-group/
│   │   │   │   ├── enable_api_group_extentions.go
│   │   │   │   └── enable_api_group_versions.go
│   │   │   ├── backup-volume-info/
│   │   │   │   ├── base.go
│   │   │   │   ├── csi_data_mover.go
│   │   │   │   ├── csi_snapshot.go
│   │   │   │   ├── filesystem_upload.go
│   │   │   │   ├── native_snapshot.go
│   │   │   │   └── skipped_volumes.go
│   │   │   ├── namespace-mapping.go
│   │   │   ├── nodeport.go
│   │   │   ├── resources-check/
│   │   │   │   ├── namespaces.go
│   │   │   │   ├── namespaces_annotation.go
│   │   │   │   ├── rbac.go
│   │   │   │   └── resources_check.go
│   │   │   ├── restore_exec_hooks.go
│   │   │   └── storage-class-changing.go
│   │   ├── bsl-mgmt/
│   │   │   └── deletion.go
│   │   ├── e2e_suite_test.go
│   │   ├── migration/
│   │   │   └── migration.go
│   │   ├── nodeagentconfig/
│   │   │   └── node-agent-config.go
│   │   ├── parallelfilesdownload/
│   │   │   └── parallel_files_download.go
│   │   ├── parallelfilesupload/
│   │   │   └── parallel_files_upload.go
│   │   ├── privilegesmgmt/
│   │   │   └── ssr.go
│   │   ├── pv-backup/
│   │   │   └── pv-backup-filter.go
│   │   ├── repomaintenance/
│   │   │   └── repo_maintenance_config.go
│   │   ├── resource-filtering/
│   │   │   ├── base.go
│   │   │   ├── exclude_label.go
│   │   │   ├── exclude_namespaces.go
│   │   │   ├── exclude_resources.go
│   │   │   ├── include_namespaces.go
│   │   │   ├── include_resources.go
│   │   │   ├── label_selector.go
│   │   │   └── wildcard_namespaces.go
│   │   ├── resourcemodifiers/
│   │   │   └── resource_modifiers.go
│   │   ├── resourcepolicies/
│   │   │   └── resource_policies.go
│   │   ├── scale/
│   │   │   └── multiple_namespaces.go
│   │   ├── schedule/
│   │   │   ├── in_progress.go
│   │   │   ├── ordered_resources.go
│   │   │   └── periodical.go
│   │   ├── test/
│   │   │   └── test.go
│   │   └── upgrade/
│   │       └── upgrade.go
│   ├── perf/
│   │   ├── README.md
│   │   ├── backup/
│   │   │   └── backup.go
│   │   ├── basic/
│   │   │   └── basic.go
│   │   ├── e2e_suite_test.go
│   │   ├── metrics/
│   │   │   ├── minio.go
│   │   │   ├── monitor.go
│   │   │   ├── nfs.go
│   │   │   ├── pod.go
│   │   │   └── time.go
│   │   ├── restore/
│   │   │   └── restore.go
│   │   └── test/
│   │       └── test.go
│   ├── pkg/
│   │   └── client/
│   │       ├── auth_providers.go
│   │       ├── client.go
│   │       ├── client_test.go
│   │       ├── config.go
│   │       ├── config_test.go
│   │       ├── dynamic.go
│   │       ├── factory.go
│   │       └── factory_test.go
│   ├── testdata/
│   │   ├── enable_api_group_versions/
│   │   │   ├── README.md
│   │   │   ├── case-a-source-v1beta1.yaml
│   │   │   ├── case-a-source.yaml
│   │   │   ├── case-a-target.yaml
│   │   │   ├── case-b-source-manually-added-mutations.yaml
│   │   │   ├── case-b-target-manually-added-mutations.yaml
│   │   │   ├── case-c-target-manually-added-mutations.yaml
│   │   │   ├── case-d-target-manually-added-mutations.yaml
│   │   │   ├── music_v1_rockband.yaml
│   │   │   ├── music_v1alpha1_rockband.yaml
│   │   │   ├── music_v2_rockband.yaml
│   │   │   ├── music_v2beta1_rockband.yaml
│   │   │   └── music_v2beta2_rockband.yaml
│   │   ├── storage-class/
│   │   │   ├── README.md
│   │   │   ├── aws-legecy.yaml
│   │   │   ├── aws.yaml
│   │   │   ├── azure-legacy.yaml
│   │   │   ├── azure.yaml
│   │   │   ├── gcp-legacy.yaml
│   │   │   ├── gcp.yaml
│   │   │   ├── kind.yaml
│   │   │   ├── vanilla-zfs.yaml
│   │   │   ├── vsphere-legacy.yaml
│   │   │   └── vsphere.yaml
│   │   └── volume-snapshot-class/
│   │       ├── aws.yaml
│   │       ├── azure.yaml
│   │       ├── gcp.yaml
│   │       ├── vanilla-zfs.yaml
│   │       └── vsphere.yaml
│   ├── types.go
│   └── util/
│       ├── common/
│       │   └── common.go
│       ├── csi/
│       │   └── common.go
│       ├── eks/
│       │   └── eks.go
│       ├── k8s/
│       │   ├── client.go
│       │   ├── clusterrolebinding.go
│       │   ├── common.go
│       │   ├── configmap.go
│       │   ├── crd.go
│       │   ├── deployment.go
│       │   ├── namespace.go
│       │   ├── node.go
│       │   ├── persistentvolumes.go
│       │   ├── pod.go
│       │   ├── pvc.go
│       │   ├── rbac.go
│       │   ├── sc.go
│       │   ├── secret.go
│       │   ├── service.go
│       │   ├── serviceaccount.go
│       │   └── statefulset.go
│       ├── kibishii/
│       │   ├── kibishii_utils.go
│       │   └── kibishii_utils_test.go
│       ├── metrics/
│       │   ├── minio.go
│       │   ├── nfs.go
│       │   └── pod.go
│       ├── providers/
│       │   ├── aws_utils.go
│       │   ├── azure_utils.go
│       │   ├── common.go
│       │   └── gcloud_utils.go
│       ├── report/
│       │   └── report.go
│       └── velero/
│           ├── install.go
│           ├── install_test.go
│           ├── velero_utils.go
│           └── velero_utils_test.go
├── third_party/
│   └── kubernetes/
│       └── pkg/
│           └── kubectl/
│               └── cmd/
│                   ├── completion.go
│                   └── util/
│                       └── shortcut_expander.go
└── tilt-resources/
    ├── examples/
    │   ├── cloud
    │   ├── deployment.yaml
    │   ├── node-agent.yaml
    │   ├── tilt-settings.json
    │   └── velero_v1_backupstoragelocation.yaml
    └── kustomization.yaml

================================================
FILE CONTENTS
================================================

================================================
FILE: .dockerignore
================================================
.go/
.go.std/
site/


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Tell us about a problem you are experiencing

---

**What steps did you take and what happened:**
<!--A clear and concise description of what the bug is, and what commands you ran.-->


**What did you expect to happen:**

**The following information will help us better understand what's going on**:

_If you are using velero v1.7.0+:_  
Please use `velero debug  --backup <backupname> --restore <restorename>` to generate the support bundle, and attach to this issue, more options please refer to `velero debug --help` 

_If you are using earlier versions:_  
Please provide the output of the following commands (Pasting long output into a [GitHub gist](https://gist.github.com) or other pastebin is fine.)
- `kubectl logs deployment/velero -n velero`
- `velero backup describe <backupname>` or `kubectl get backup/<backupname> -n velero -o yaml`
- `velero backup logs <backupname>`
- `velero restore describe <restorename>` or `kubectl get restore/<restorename> -n velero -o yaml`
- `velero restore logs <restorename>`


**Anything else you would like to add:**
<!--Miscellaneous information that will assist in solving the issue.-->


**Environment:**

- Velero version (use `velero version`): 
- Velero features (use `velero client config get features`): 
- Kubernetes version (use `kubectl version`):
- Kubernetes installer & version:
- Cloud provider or hardware configuration:
- OS (e.g. from `/etc/os-release`):


**Vote on this issue!**

This is an invitation to the Velero community to vote on issues, you can see the project's [top voted issues listed here](https://github.com/vmware-tanzu/velero/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc).  
Use the "reaction smiley face" up to the right of this comment to vote.

- :+1: for "I would like to see this bug fixed as soon as possible"
- :-1: for "There are more important bugs to focus on right now"


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Velero Q&A
    url: https://github.com/vmware-tanzu/velero/discussions/categories/community-support-q-a 
    about: Have questions about Velero? Please ask them here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature-enhancement-request.md
================================================
---
name: Feature enhancement request
about: Suggest an idea for this project

---

**Describe the problem/challenge you have**
<!--A description of the current limitation/problem/challenge that you are experiencing.-->


**Describe the solution you'd like**
<!--A clear and concise description of what you want to happen.-->


**Anything else you would like to add:**
<!--Miscellaneous information that will assist in solving the issue.-->


**Environment:**

- Velero version (use `velero version`):
- Kubernetes version (use `kubectl version`):
- Kubernetes installer & version:
- Cloud provider or hardware configuration:
- OS (e.g. from `/etc/os-release`):

**Vote on this issue!**

This is an invitation to the Velero community to vote on issues, you can see the project's [top voted issues listed here](https://github.com/vmware-tanzu/velero/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc).  
Use the "reaction smiley face" up to the right of this comment to vote.

- :+1: for "The project would be better with this feature added"
- :-1: for "This feature will not enhance the project in a meaningful way"


================================================
FILE: .github/auto-assignees.yml
================================================
---
# This assigns a PR to its author
addAssignees: author

reviewers:
  # The default reviewers
  defaults:
    - maintainers

  groups:
    maintainers:
      - sseago
      - reasonerjt
      - ywk253100
      - blackpiglet
      - shubham-pampattiwar
      - Lyndon-Li
      - anshulahuja98
      - kaovilai

    tech-writer:
      - sseago
      - reasonerjt
      - ywk253100
      - Lyndon-Li

files:
  'site/**':
    - tech-writer
  '**/*.md':
    - tech-writer
  # Technical design requests are ".md" files but should
  # be reviewed by maintainers
  '/design/**':
    - maintainers

options:
  ignore_draft: true
  ignored_keywords:
    - WIP
    - wip
    - DO NOT MERGE
  enable_group_assignment: true
  number_of_reviewers: 2


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  # Dependencies listed in .github/workflows
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    labels:
      - "Dependencies"
      - "github_actions"
      - "kind/changelog-not-required"
  # Dependencies listed in go.mod
  - package-ecosystem: "gomod"
    directory: "/" # Location of package manifests
    schedule:
      interval: "weekly"
    labels:
      - "kind/changelog-not-required"
    ignore:
      - dependency-name: "*"
        update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]


================================================
FILE: .github/labeler.yml
================================================
# This file is used by Auto Label PRs action.
# Works with https://github.com/actions/labeler/
# Below this line, the keys are labels to be applied, and the values are the file globs to match against.
# Anything in the `design` directory gets the `Design` label.
Area/Design:
  - changed-files:
      - any-glob-to-any-file: design/*
# Anything that has plugin infra will be labeled.
# Individual plugins don't necessarily live here, though
Area/Plugins:
  - changed-files:
      - any-glob-to-any-file: pkg/plugins/**/*
Dependencies:
  - changed-files:
      - any-glob-to-any-file: go.mod
Documentation:
  - changed-files:
      - any-glob-to-any-file: site/content/docs/**/*
# Anything in the site directory gets the website label *EXCEPT* docs
Website:
  - all:
      - changed-files:
          - any-glob-to-any-file: site/**/*
          - all-globs-to-all-files: '!site/content/docs/**/*'
has-changelog:
  - changed-files:
      - any-glob-to-any-file: changelogs/**
has-e2e-2tests:
  - changed-files:
      - any-glob-to-any-file: test/e2e/**/*
has-unit-tests:
  - changed-files:
      - any-glob-to-any-file: pkg/**/*_test.go


================================================
FILE: .github/labels.yaml
================================================
# This file is used by [prow github action](https://github.com/jpmcb/prow-github-actions/) in .github/workflows/prow-action.yml.
# This file only has values for kind and area commands.
area:
  - CLI
  - CSI
  - Cloud/AWS
  - Cloud/Azure
  - Cloud/DigitalOcean
  - Cloud/GCP
  - Cloud/vSphere
  - Design
  - Documentation
  - Filters
  - Plugins
  - Process
  - Storage/Minio
  - Storage/Cinder
  - WindowsSupport
  - datamover
  - fs-backup
  - fs-backup/deletion
  - fs-backup/file-selectable
  - fs-uploader
  - kopia-integration
  - migration
  - multi-tenancy
  - progress-monitoring
  - resilience
  - schedule
  - storage/IBM-ObjectStorage
  - upgrade
  - volume-snapshot-dm
kind:
  - changelog-not-required
  - question
  - refactor
  - requirement
  - release-note
  - release-blocker
  - spike
  - tech-debt
  - usage-error
  - voting


================================================
FILE: .github/pull_request_template.md
================================================
Thank you for contributing to Velero!

# Please add a summary of your change

# Does your change fix a particular issue?

Fixes #(issue)

# Please indicate you've done the following:

- [ ] [Accepted the DCO](https://velero.io/docs/v1.5/code-standards/#dco-sign-off). Commits without the DCO will delay acceptance.
- [ ] [Created a changelog file (`make new-changelog`)](https://velero.io/docs/main/code-standards/#adding-a-changelog) or comment `/kind changelog-not-required` on this PR.
- [ ] Updated the corresponding documentation in `site/content/docs/main`.


================================================
FILE: .github/workflows/auto_assign_prs.yml
================================================
---
name: "Auto Assign Author"

# pull_request_target means that this will run on pull requests, but in
# the context of the base repo. This should mean PRs from forks are supported.
on:
  pull_request_target:
    types: [opened, reopened, ready_for_review]

jobs:
  # Automatically assigns reviewers and owner
  add-reviews:
    runs-on: ubuntu-latest
    steps:
      - name: Set the author of a PR as the assignee
        uses: kentaro-m/auto-assign-action@v2.0.0
        with:
          configuration-path: ".github/auto-assignees.yml"
          repo-token: "${{ secrets.GITHUB_TOKEN }}"


================================================
FILE: .github/workflows/auto_label_prs.yml
================================================
name: "Auto Label PRs"
# pull_request_target means that this will run on pull requests, but in the context of the base repo.
# This should mean PRs from forks are supported. 
# Because it includes the `synchronize` parameter, any push of a new commit to the HEAD ref of a pull request
# will trigger this process.

on:
  pull_request_target:
    types: [opened, reopened, synchronize, ready_for_review]

jobs:
  # Automatically labels PRs based on file globs in the change.
  triage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/labeler@v5
        with:
          repo-token: "${{ secrets.GITHUB_TOKEN }}"
          configuration-path: .github/labeler.yml


================================================
FILE: .github/workflows/auto_request_review.yml
================================================
---
name: "Auto Request Review"

on:
  pull_request_target:
    types: [opened, ready_for_review, reopened]

jobs:
  auto-request-review:
    name: Auto Request Review
    runs-on: ubuntu-latest
    steps:
      - name: Request a PR review based on files types/paths, and/or groups the author belongs to
        uses: necojackarc/auto-request-review@v0.13.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          config: .github/auto-assignees.yml


================================================
FILE: .github/workflows/e2e-test-kind.yaml
================================================
name: "Run the E2E test on kind"
on:
  push:
  pull_request:
    # Do not run when the change only includes these directories.
    paths-ignore:
      - "site/**"
      - "design/**"
      - "**/*.md"
jobs:
  get-go-version:
    uses: ./.github/workflows/get-go-version.yaml
    with:
      ref: ${{ github.event.pull_request.base.ref }}

  # Build the Velero CLI and image once for all Kubernetes versions, and cache it so the fan-out workers can get it.
  build:
    runs-on: ubuntu-latest
    needs: get-go-version
    outputs:
      minio-dockerfile-sha: ${{ steps.minio-version.outputs.dockerfile_sha }}
    steps:
      - name: Check out the code
        uses: actions/checkout@v6
      
      - name: Set up Go version
        uses: actions/setup-go@v6
        with:
          go-version: ${{ needs.get-go-version.outputs.version }}

      # Look for a CLI that's made for this PR
      - name: Fetch built CLI
        id: cli-cache
        uses: actions/cache@v4
        with:
          path: ./_output/bin/linux/amd64/velero
          # The cache key a combination of the current PR number and the commit SHA
          key: velero-cli-${{ github.event.pull_request.number }}-${{ github.sha }}
      - name: Fetch built image
        id: image-cache
        uses: actions/cache@v4
        with:
          path: ./velero.tar
          # The cache key a combination of the current PR number and the commit SHA
          key: velero-image-${{ github.event.pull_request.number }}-${{ github.sha }}
      # If no binaries were built for this PR, build it now.
      - name: Build Velero CLI
        if: steps.cli-cache.outputs.cache-hit != 'true'
        run: |
          make local
      # If no image were built for this PR, build it now.
      - name: Build Velero Image
        if: steps.image-cache.outputs.cache-hit != 'true'
        run: |
          IMAGE=velero VERSION=pr-test BUILD_OUTPUT_TYPE=docker make container
          docker save velero:pr-test-linux-amd64 -o ./velero.tar
      # Check and build MinIO image once for all e2e tests
      - name: Check Bitnami MinIO Dockerfile version
        id: minio-version
        run: |
          DOCKERFILE_SHA=$(curl -s https://api.github.com/repos/bitnami/containers/commits?path=bitnami/minio/2025/debian-12/Dockerfile\&per_page=1 | jq -r '.[0].sha')
          echo "dockerfile_sha=${DOCKERFILE_SHA}" >> $GITHUB_OUTPUT
      - name: Cache MinIO Image
        uses: actions/cache@v4
        id: minio-cache
        with:
          path: ./minio-image.tar
          key: minio-bitnami-${{ steps.minio-version.outputs.dockerfile_sha }}
      - name: Build MinIO Image from Bitnami Dockerfile
        if: steps.minio-cache.outputs.cache-hit != 'true'
        run: |
          echo "Building MinIO image from Bitnami Dockerfile..."
          git clone --depth 1 https://github.com/bitnami/containers.git /tmp/bitnami-containers
          cd /tmp/bitnami-containers/bitnami/minio/2025/debian-12
          docker build -t bitnami/minio:local .
          docker save bitnami/minio:local > ${{ github.workspace }}/minio-image.tar
  # Create json of k8s versions to test
  # from guide: https://stackoverflow.com/a/65094398/4590470
  setup-test-matrix:
    runs-on: ubuntu-latest
    env:
      GH_TOKEN: ${{ github.token }}
    outputs:
      matrix: ${{ steps.set-matrix.outputs.matrix }}
    steps:
      - name: Set k8s versions
        id: set-matrix
        # everything excluding older tags. limits needs to be high enough to cover all latest versions
        # and test labels
        # grep -E "v[1-9]\.(2[5-9]|[3-9][0-9])" filters for v1.25 to v9.99
        # and removes older patches of the same minor version
        # awk -F. '{if(!a[$1"."$2]++)print $1"."$2"."$NF}'
        run: |
          echo "matrix={\
            \"k8s\":$(wget -q -O - "https://hub.docker.com/v2/namespaces/kindest/repositories/node/tags?page_size=50" | grep -o '"name": *"[^"]*' | grep -o '[^"]*$' | grep -v -E "alpha|beta" | grep -E "v[1-9]\.(2[5-9]|[3-9][0-9])" | awk -F. '{if(!a[$1"."$2]++)print $1"."$2"."$NF}' | sort -r | sed s/v//g | jq -R -c -s 'split("\n")[:-1]'),\
            \"labels\":[\
              \"Basic && (ClusterResource || NodePort || StorageClass)\", \
              \"ResourceFiltering && !Restic\", \
              \"ResourceModifier || (Backups && BackupsSync) || PrivilegesMgmt || OrderedResources\", \
              \"(NamespaceMapping && Single && Restic) || (NamespaceMapping && Multiple && Restic)\"\
            ]}" >> $GITHUB_OUTPUT

  # Run E2E test against all Kubernetes versions on kind
  run-e2e-test:
    needs:
      - build
      - setup-test-matrix
      - get-go-version
    runs-on: ubuntu-latest
    strategy:
      matrix: ${{fromJson(needs.setup-test-matrix.outputs.matrix)}}
      fail-fast: false
    steps:
      - name: Check out the code
        uses: actions/checkout@v6

      - name: Set up Go version
        uses: actions/setup-go@v6
        with:
          go-version: ${{ needs.get-go-version.outputs.version }}

      # Fetch the pre-built MinIO image from the build job
      - name: Fetch built MinIO Image
        uses: actions/cache@v4
        id: minio-cache
        with:
          path: ./minio-image.tar
          key: minio-bitnami-${{ needs.build.outputs.minio-dockerfile-sha }}
      - name: Load MinIO Image
        run: |
          echo "Loading MinIO image..."
          docker load < ./minio-image.tar
      - name: Install MinIO
        run: |
          docker run -d --rm -p 9000:9000 -e "MINIO_ROOT_USER=minio" -e "MINIO_ROOT_PASSWORD=minio123" -e "MINIO_DEFAULT_BUCKETS=bucket,additional-bucket" bitnami/minio:local
      - uses: engineerd/setup-kind@v0.6.2
        with:
          skipClusterLogsExport: true
          version: "v0.27.0"
          image: "kindest/node:v${{ matrix.k8s }}"
      - name: Fetch built CLI
        id: cli-cache
        uses: actions/cache@v4
        with:
          path: ./_output/bin/linux/amd64/velero
          key: velero-cli-${{ github.event.pull_request.number }}-${{ github.sha }}
      - name: Fetch built Image
        id: image-cache
        uses: actions/cache@v4
        with:
          path: ./velero.tar
          key: velero-image-${{ github.event.pull_request.number }}-${{ github.sha }}
      - name: Load Velero Image
        run:
          kind load image-archive velero.tar
      - name: Run E2E test
        run: |
          cat << EOF > /tmp/credential
          [default]
          aws_access_key_id=minio
          aws_secret_access_key=minio123
          EOF

          # Match kubectl version to k8s server version
          curl -LO https://dl.k8s.io/release/v${{ matrix.k8s }}/bin/linux/amd64/kubectl
          sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

          git clone https://github.com/vmware-tanzu-experiments/distributed-data-generator.git -b main /tmp/kibishii

          GOPATH=~/go \
              CLOUD_PROVIDER=kind \
              OBJECT_STORE_PROVIDER=aws \
              BSL_CONFIG=region=minio,s3ForcePathStyle="true",s3Url=http://$(hostname -i):9000 \
              CREDS_FILE=/tmp/credential \
              BSL_BUCKET=bucket \
              ADDITIONAL_OBJECT_STORE_PROVIDER=aws \
              ADDITIONAL_BSL_CONFIG=region=minio,s3ForcePathStyle="true",s3Url=http://$(hostname -i):9000 \
              ADDITIONAL_CREDS_FILE=/tmp/credential \
              ADDITIONAL_BSL_BUCKET=additional-bucket \
              VELERO_IMAGE=velero:pr-test-linux-amd64 \
              PLUGINS=velero/velero-plugin-for-aws:latest \
              GINKGO_LABELS="${{ matrix.labels }}" \
              KIBISHII_DIRECTORY=/tmp/kibishii/kubernetes/yaml/ \
              make -C test/ run-e2e
        timeout-minutes: 30
      - name: Upload debug bundle
        if: ${{ failure() }}
        uses: actions/upload-artifact@v5
        with:
          name: DebugBundle-k8s-${{ matrix.k8s }}-job-${{ strategy.job-index }}
          path: /home/runner/work/velero/velero/test/e2e/debug-bundle*


================================================
FILE: .github/workflows/get-go-version.yaml
================================================
on:
  workflow_call:
    inputs:
      ref:
        description: "The target branch's ref"
        required: true
        type: string
    outputs:
      version: 
        description: "The expected Go version"
        value: ${{ jobs.extract.outputs.version }}

jobs:
  extract:
      runs-on: ubuntu-latest
      outputs:
        version: ${{ steps.pick-version.outputs.version }}
      steps:
        - name: Check out the code
          uses: actions/checkout@v6

        - id: pick-version
          run: |
            if [ "${{ inputs.ref }}" == "main" ]; then
              version=$(grep '^go ' go.mod | awk '{print $2}' | cut -d. -f1-2)
            else
              goDirectiveVersion=$(grep '^go ' go.mod | awk '{print $2}')
              toolChainVersion=$(grep '^toolchain ' go.mod | awk '{print $2}')
              version=$(printf "%s\n%s\n" "$goDirectiveVersion" "$toolChainVersion" | sort -V | tail -n1)
            fi

            echo "version=$version"
            echo "version=$version" >> $GITHUB_OUTPUT


================================================
FILE: .github/workflows/nightly-trivy-scan.yml
================================================
name: Trivy Nightly Scan
on:
  schedule:
    - cron: '0 2 * * *' # run at 2 AM UTC

jobs:
  nightly-scan:
    name: Trivy nightly scan
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        # maintain the versions of Velero those need security scan
        versions: [main]
        # list of images that need scan
        images: [velero, velero-plugin-for-aws, velero-plugin-for-gcp, velero-plugin-for-microsoft-azure]
    permissions:
      security-events: write  # for github/codeql-action/upload-sarif to upload SARIF results

    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/trivy-action@master
        with:
          image-ref: 'docker.io/velero/${{ matrix.images }}:${{ matrix.versions }}'
          severity: 'CRITICAL,HIGH,MEDIUM'
          format: 'template'
          template: '@/contrib/sarif.tpl'
          output: 'trivy-results.sarif'

      - name: Upload Trivy scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: 'trivy-results.sarif'

================================================
FILE: .github/workflows/pr-changelog-check.yml
================================================
name: Pull Request Changelog Check
# by setting `on: [pull_request]`, that means action will be trigger when PR is opened, synchronize, reopened.
# Add labeled and unlabeled events too.
on:
  pull_request:
    types: [opened, synchronize, reopened, labeled, unlabeled]
jobs:

  build:
    name: Run Changelog Check
    runs-on: ubuntu-latest
    steps:

    - name: Check out the code
      uses: actions/checkout@v6

    - name: Changelog check
      if: ${{ !(contains(github.event.pull_request.labels.*.name, 'kind/changelog-not-required') || contains(github.event.pull_request.labels.*.name, 'Design') || contains(github.event.pull_request.labels.*.name, 'Website') || contains(github.event.pull_request.labels.*.name, 'Documentation'))}}
      run: ./hack/changelog-check.sh


================================================
FILE: .github/workflows/pr-ci-check.yml
================================================
name: Pull Request CI Check
on: [pull_request]
jobs:
  get-go-version:
    uses: ./.github/workflows/get-go-version.yaml
    with:
      ref: ${{ github.event.pull_request.base.ref }}

  build:
    name: Run CI
    needs: get-go-version
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - name: Check out the code
        uses: actions/checkout@v6

      - name: Set up Go version
        uses: actions/setup-go@v6
        with:
          go-version: ${{ needs.get-go-version.outputs.version }}      

      - name: Make ci
        run: make ci
      - name: Upload test coverage
        uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: coverage.out
          verbose: true
          fail_ci_if_error: true


================================================
FILE: .github/workflows/pr-codespell.yml
================================================
name: Pull Request Codespell Check
on: [pull_request]
jobs:

  codespell:
    name: Run Codespell
    runs-on: ubuntu-latest
    steps:

    - name: Check out the code
      uses: actions/checkout@v6

    - name: Codespell
      uses: codespell-project/actions-codespell@master
      with:
        # ignore the config/.../crd.go file as it's generated binary data that is edited elsewhere.
        skip: .git,*.png,*.jpg,*.woff,*.ttf,*.gif,*.ico,./config/crd/v1beta1/crds/crds.go,./config/crd/v1/crds/crds.go,./config/crd/v2alpha1/crds/crds.go,./go.sum,./LICENSE
        ignore_words_list: iam,aks,ist,bridget,ue,shouldnot,atleast,notin,sme,optin,sie
        check_filenames: true
        check_hidden: true

    - name: Velero.io word list check
      shell: bash {0}
      run: |
        IGNORE_COMMENT="Velero.io word list : ignore"
        FILES_TO_CHECK=$(find . -type f \
          ! -path "./.git/*" \
          ! -path "./site/content/docs/v*" \
          ! -path "./changelogs/CHANGELOG-*" \
          ! -path "./.github/workflows/pr-codespell.yml" \
          ! -path "./site/static/fonts/Metropolis/Open Font License.md" \
          ! -regex '.*\.\(png\|jpg\|woff\|ttf\|gif\|ico\|svg\)'
        )
        function check_word_in_files() {
            local word=$1

            xargs grep -Iinr "$word" <<< "$FILES_TO_CHECK" | \
            grep -v "$IGNORE_COMMENT" | \
            grep -i --color=always "$word" && \
            EXIT_STATUS=1
        }
        function check_word_case_sensitive_in_files() {
            local word=$1

            xargs grep -Inr "$word" <<< "$FILES_TO_CHECK" | \
            grep -v "$IGNORE_COMMENT" | \
            grep --color=always "$word" && \
            EXIT_STATUS=1
        }
        EXIT_STATUS=0
        check_word_case_sensitive_in_files ' kubernetes '
        check_word_in_files 'on-premise\b'
        check_word_in_files 'back-up'
        check_word_in_files 'plug-in'
        check_word_in_files 'whitelist'
        check_word_in_files 'blacklist'
        exit $EXIT_STATUS


================================================
FILE: .github/workflows/pr-containers.yml
================================================
name: build Velero containers on Dockerfile change

on:
  pull_request:
    branches:
      - 'main'
      - 'release-**'
    paths:
      - 'Dockerfile'

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
      name: Checkout

    - name: Set up QEMU
      id: qemu
      uses: docker/setup-qemu-action@v3
      with:
        platforms: all

    - name: Set up Docker Buildx
      id: buildx
      uses: docker/setup-buildx-action@v3
      with:
        version: latest

    # Although this action also calls docker-push.sh, it is not triggered
    # by push, so BRANCH and TAG are empty by default. docker-push.sh will
    # only build Velero image without pushing.
    - name: Make Velero container without pushing to registry.
      if: github.repository == 'vmware-tanzu/velero'
      run: |
        ./hack/docker-push.sh

================================================
FILE: .github/workflows/pr-goreleaser.yml
================================================
name: Verify goreleaser change

on:
  pull_request:
    branches:
      - 'main'
      - 'release-**'
    paths:
      - '.goreleaser.yml'
      - 'hack/release-tools/goreleaser.sh'

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
      name: Checkout

    - name: Verify .goreleaser.yml and try a dryrun release.
      if: github.repository == 'vmware-tanzu/velero'
      run: |
        CHANGELOG=$(ls changelogs | sort -V -r | head -n 1)
        GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} \
        REGISTRY=velero \
        RELEASE_NOTES_FILE=changelogs/$CHANGELOG \
        PUBLISH=false \
        make release



================================================
FILE: .github/workflows/pr-linter-check.yml
================================================
name: Pull Request Linter Check
on:
  pull_request:
    # Do not run when the change only includes these directories.
    paths-ignore:
      - "site/**"
      - "design/**"
      - "**/*.md"
jobs:
  get-go-version:
    uses: ./.github/workflows/get-go-version.yaml
    with:
      ref: ${{ github.event.pull_request.base.ref }}

  build:
    name: Run Linter Check
    runs-on: ubuntu-latest
    needs: get-go-version
    steps:
      - name: Check out the code
        uses: actions/checkout@v6

      - name: Set up Go version
        uses: actions/setup-go@v6
        with:
          go-version: ${{ needs.get-go-version.outputs.version }}

      - name: Linter check
        uses: golangci/golangci-lint-action@v9
        with:
          version: v2.5.0
          args: --verbose


================================================
FILE: .github/workflows/prow-action.yml
================================================
# Adds support for prow-like commands
# Uses .github/labels.yaml to define areas and kinds
name: "Prow github actions"
on:
  issue_comment:
    types: [created]

jobs:
  execute:
    runs-on: ubuntu-latest
    steps:
      - uses: jpmcb/prow-github-actions@v1.1.3
        with:
          # TODO: before allowing the /lgtm command, see if we can block merging if changelog labels are missing.
          prow-commands: |
            /approve
            /area
            /assign
            /cc
            /close
            /hold
            /kind
            /milestone
            /retitle
            /remove
            /reopen
            /uncc
            /unassign
          github-token: "${{ secrets.GITHUB_TOKEN }}"


================================================
FILE: .github/workflows/push-builder.yml
================================================
name: build-image

on:
  push:
    branches: [ main ]
    paths:
    - 'hack/build-image/Dockerfile'

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:

    - uses: actions/checkout@v6
      with:
        # The default value is "1" which fetches only a single commit. If we merge PR without squash or rebase,
        # there are at least two commits: the first one is the merge commit and the second one is the real commit
        # contains the changes.
        # As we use the Dockerfile's commit ID as the tag of the build-image, fetching only 1 commit causes the merge
        # commit ID to be the tag.
        # While when running make commands locally, as the local git repository usually contains all commits, the Dockerfile's
        # commit ID is the second one. This is mismatch with the images in Dockerhub
        fetch-depth: 2

    - name: Build
      run: make build-image

    # Only try to publish the container image from the root repo; forks don't have permission to do so and will always get failures.
    - name: Publish container image
      if: github.repository == 'vmware-tanzu/velero'
      run: |
        docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }}
       
        make push-build-image


================================================
FILE: .github/workflows/push.yml
================================================
name: Main CI

on:
  push:
    branches:
      - 'main'
      - 'release-**'
    tags:
      - '*'

jobs:
  get-go-version:
    uses: ./.github/workflows/get-go-version.yaml
    with:
      ref: ${{ github.ref_name }}

  build:
    name: Build
    runs-on: ubuntu-latest
    needs: get-go-version
    steps:
      - name: Check out the code
        uses: actions/checkout@v6

      - name: Set up Go version
        uses: actions/setup-go@v6
        with:
          go-version: ${{ needs.get-go-version.outputs.version }}

      - name: Set up QEMU
        id: qemu
        uses: docker/setup-qemu-action@v3
        with:
          platforms: all
      - name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@v3
        with:
          version: latest
      - name: Build
        run: |
          make local
          # Clean go cache to ease the build environment storage pressure.
          go clean -modcache -cache
      - name: Test
        run: make test
      - name: Upload test coverage
        uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: coverage.out
          verbose: true
      # Only try to publish the container image from the root repo; forks don't have permission to do so and will always get failures.
      - name: Publish container image
        if: github.repository == 'vmware-tanzu/velero'
        run: |
          sudo swapoff -a
          sudo rm -f /mnt/swapfile
          docker system prune -a --force
              
          # Build and push Velero image to docker registry
          docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }}
          ./hack/docker-push.sh


================================================
FILE: .github/workflows/rebase.yml
================================================
on: 
  issue_comment:
    types: [created]
name: Automatic Rebase
jobs:
  rebase:
    name: Rebase
    if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
    runs-on: ubuntu-latest
    steps:
    - name: Checkout the latest code
      uses: actions/checkout@v6
      with:
        fetch-depth: 0
    - name: Automatic Rebase
      uses: cirrus-actions/rebase@1.8
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/stale-issues.yml
================================================
name: "Close stale issues and PRs"
on:
  schedule:
    - cron: "30 1 * * *" # Every day at 1:30 UTC

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v10.1.1
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          stale-issue-message: "This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days. If a Velero team member has requested log or more information, please provide the output of the shared commands."
          close-issue-message: "This issue was closed because it has been stalled for 14 days with no activity."
          days-before-issue-stale: 60
          days-before-issue-close: 14
          stale-issue-label: staled
          # Disable stale PRs for now; they can remain open.
          days-before-pr-stale: -1
          days-before-pr-close: -1
          # Only issues made after Feb 09 2021.
          start-date: "2021-09-02T00:00:00"
          exempt-issue-labels: "Epic,Area/CLI,Area/Cloud/AWS,Area/Cloud/Azure,Area/Cloud/GCP,Area/Cloud/vSphere,Area/CSI,Area/Design,Area/Documentation,Area/Plugins,Bug,Enhancement/User,kind/requirement,kind/refactor,kind/tech-debt,limitation,Needs investigation,Needs triage,Needs Product,P0 - Hair on fire,P1 - Important,P2 - Long-term important,P3 - Wouldn't it be nice if...,Product Requirements,Restic - GA,Restic,release-blocker,Security,backlog"


================================================
FILE: .gitignore
================================================
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so

# Folders
_obj
_test
_output

# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out

*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*

_testmain.go

*.exe
*.test
*.prof

/velero
.idea/

.container-*
.vimrc
.go
.DS_Store
.push-*
.vscode
*.diff

# Hugo compiled data
site/public
site/resources
site/.hugo_build.lock

.vs

# these are files for local Tilt development:
_tiltbuild
tilt-resources/tilt-settings.json
tilt-resources/velero_v1_backupstoragelocation.yaml
tilt-resources/deployment.yaml
tilt-resources/node-agent.yaml
tilt-resources/cloud

# test generated files
test/e2e/report.xml
coverage.out
__debug_bin*
debug.test*

# make lint cache
.cache/

# Go telemetry directory created when container sets HOME to working directory
# This happens because Makefile uses 'docker run -w /github.com/vmware-tanzu/velero'
# and Go's os.UserConfigDir() falls back to $HOME/.config when XDG_CONFIG_HOME is unset
.config/


================================================
FILE: .golangci.yaml
================================================
# This file contains all available configuration options
# with their default values.

# options for analysis running
run:
  # default concurrency is a available CPU number
  concurrency: 4

  # timeout for analysis, e.g. 30s, 5m, default is 0
  timeout: 20m

  # exit code when at least one issue was found, default is 1
  issues-exit-code: 1

  # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules":
  # If invoked with -mod=readonly, the go command is disallowed from the implicit
  # automatic updating of go.mod described above. Instead, it fails when any changes
  # to go.mod are needed. This setting is most useful to check that go.mod does
  # not need updates, such as in a continuous integration and testing system.
  # If invoked with -mod=vendor, the go command assumes that the vendor
  # directory holds the correct copies of dependencies and ignores
  # the dependency descriptions in go.mod.
  # modules-download-mode: readonly|release|vendor
  modules-download-mode: readonly

  # Allow multiple parallel golangci-lint instances running.
  # If false (default) - golangci-lint acquires file lock on start.
  allow-parallel-runners: false

# output configuration options
output:
  formats:
    text:
      path: stdout

      # print lines of code with issue, default is true
      print-issued-lines: true

      # print linter name in the end of issue text, default is true
      print-linter-name: true

  # Show statistics per linter.      
  show-stats: false

linters:
  # all available settings of specific linters
  settings:
    depguard:
      rules:
        main:
          deny:
            # specify an error message to output when a denylisted package is used
            - pkg: github.com/sirupsen/logrus
              desc: "logging is allowed only by logutils.Log"

    dogsled:
      # checks assignments with too many blank identifiers; default is 2
      max-blank-identifiers: 2

    dupl:
      # tokens count to trigger issue, 150 by default
      threshold: 100

    errcheck:
      # report about not checking of errors in type assertions: `a := b.(MyStruct)`;
      # default is false: such cases aren't reported by default.
      check-type-assertions: false

      # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
      # default is false: such cases aren't reported by default.
      check-blank: false


    exhaustive:
      # indicates that switch statements are to be considered exhaustive if a
      # 'default' case is present, even if all enum members aren't listed in the
      # switch
      default-signifies-exhaustive: false

    funlen:
      lines: 60
      statements: 40

    gocognit:
      # minimal code complexity to report, 30 by default (but we recommend 10-20)
      min-complexity: 10

    nestif:
      # minimal complexity of if statements to report, 5 by default
      min-complexity: 4

    goconst:
      # minimal length of string constant, 3 by default
      min-len: 3
      # minimal occurrences count to trigger, 3 by default
      min-occurrences: 5

    gocritic:
      # Which checks should be enabled; can't be combined with 'disabled-checks';
      # See https://go-critic.github.io/overview#checks-overview
      # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run`
      # By default list of stable checks is used.
      settings: # settings passed to gocritic
        captLocal: # must be valid enabled check name
          paramsOnly: true

    gocyclo:
      # minimal code complexity to report, 30 by default (but we recommend 10-20)
      min-complexity: 10

    godot:
      # check all top-level comments, not only declarations
      check-all: false

    godox:
      # report any comments starting with keywords, this is useful for TODO or FIXME comments that
      # might be left in the code accidentally and should be resolved before merging
      keywords: # default keywords are TODO, BUG, and FIXME, these can be overwritten by this setting
        - NOTE
        - OPTIMIZE # marks code that should be optimized before merging
        - HACK # marks hack-arounds that should be removed before merging

    gosec:
      excludes:
        - G115

    govet:
      # enable or disable analyzers by name
      enable:
        - atomicalign
      enable-all: false
      disable:
        - shadow
      disable-all: false
  
    importas:
       alias:
        - alias: appsv1api
          pkg: k8s.io/api/apps/v1
        - alias: corev1api
          pkg: k8s.io/api/core/v1
        - alias: rbacv1
          pkg: k8s.io/api/rbac/v1
        - alias: apierrors
          pkg: k8s.io/apimachinery/pkg/api/errors
        - alias: apiextv1
          pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
        - alias: metav1
          pkg: k8s.io/apimachinery/pkg/apis/meta/v1
        - alias: storagev1api
          pkg: k8s.io/api/storage/v1
        - alias: batchv1api
          pkg: k8s.io/api/batch/v1

    lll:
    # max line length, lines longer will be reported. Default is 120.
    # '\t' is counted as 1 character by default, and can be changed with the tab-width option
      line-length: 120
      # tab width in spaces. Default to 1.
      tab-width: 1

    misspell:
      # Correct spellings using locale preferences for US or UK.
      # Default is to use a neutral variety of English.
      # Setting locale to US will correct the British spelling of 'colour' to 'color'.
      locale: US
      ignore-rules:
        - someword

    nakedret:
      # make an issue if func has more lines of code than this setting and it has naked returns; default is 30
      max-func-lines: 30

    prealloc:
      # XXX: we don't recommend using this linter before doing performance profiling.
      # For most programs usage of prealloc will be a premature optimization.

      # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
      # True by default.
      simple: true
      range-loops: true # Report preallocation suggestions on range loops, true by default
      for-loops: false # Report preallocation suggestions on for loops, false by default

    nolintlint:
      # Enable to ensure that nolint directives are all used. Default is true.
      allow-unused: false
      # Exclude following linters from requiring an explanation.  Default is [].
      allow-no-explanation: []
      # Enable to require an explanation of nonzero length after each nolint directive. Default is false.
      require-explanation: true
      # Enable to require nolint directives to mention the specific linter being suppressed. Default is false.
      require-specific: true

    perfsprint:
      strconcat: false
      sprintf1: false
      errorf: false
      int-conversion: true

    revive:
      rules:
        - name: blank-imports
          disabled: true
        - name: context-as-argument
          disabled: true
        - name: context-keys-type
        - name: dot-imports
          disabled: true
        - name: early-return
          disabled: true
          arguments:
            - "preserveScope"
        - name: empty-block
          disabled: true
        - name: error-naming
          disabled: true
        - name: error-return
          disabled: true
        - name: error-strings
          disabled: true
        - name: errorf
          disabled: true
        - name: increment-decrement
        - name: indent-error-flow
          disabled: true
        - name: range
        - name: receiver-naming
          disabled: true
        - name: redefines-builtin-id
          disabled: true
        - name: superfluous-else
          disabled: true
          arguments:
            - "preserveScope"
        - name: time-naming
        - name: unexported-return
          disabled: true
        - name: unnecessary-stmt
        - name: unreachable-code
        - name: unused-parameter
          disabled: true
        - name: use-any
        - name: var-declaration
        - name: var-naming
          disabled: true

    rowserrcheck:
      packages:
        - github.com/jmoiron/sqlx

    staticcheck:
      checks:
        - all
        - -QF1001 # FIXME
        - -QF1003 # FIXME
        - -QF1004 # FIXME
        - -QF1007 # FIXME
        - -QF1008 # FIXME
        - -QF1009 # FIXME
        - -QF1012 # FIXME

    testifylint:
      # TODO: enable them all
      disable:
        - float-compare
        - go-require
      enable-all: true

    testpackage:
      # regexp pattern to skip files
      skip-regexp: (export|internal)_test\.go
    unparam:
      # Inspect exported functions, default is false. Set to true if no external program/library imports your code.
      # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
      # if it's called for subdir of a project it can't find external interfaces. All text editor integrations
      # with golangci-lint call it on a directory with the changed file.
      check-exported: false

    usetesting:
      os-setenv: false

    whitespace:
      multi-if: false # Enforces newlines (or comments) after every multi-line if statement
      multi-func: false # Enforces newlines (or comments) after every multi-line function signature

    wsl:
      # If true append is only allowed to be cuddled if appending value is
      # matching variables, fields or types on line above. Default is true.
      strict-append: true
      # Allow calls and assignments to be cuddled as long as the lines have any
      # matching variables, fields or types. Default is true.
      allow-assign-and-call: true
      # Allow multiline assignments to be cuddled. Default is true.
      allow-multiline-assign: true
      # Allow declarations (var) to be cuddled.
      allow-cuddle-declarations: false
      # Allow trailing comments in ending of blocks
      allow-trailing-comment: false
      # Force newlines in end of case at this limit (0 = never).
      force-case-trailing-whitespace: 0
      # Force cuddling of err checks with err var assignment
      force-err-cuddling: false
      # Allow leading comments to be separated with empty lines
      allow-separated-leading-comment: false

  default: none
  enable:
    - asasalint
    - asciicheck
    - bidichk
    - bodyclose
    - copyloopvar
    - dogsled
    - dupword
    - durationcheck
    - errcheck
    - errchkjson
    - exptostd
    - ginkgolinter
    - goconst
    - goheader
    - goprintffuncname
    - gosec
    - govet
    - importas
    - ineffassign
    - misspell
    - nakedret
    - nilerr
    - noctx
    - nolintlint
    - nosprintfhostport
    - perfsprint
    - revive
    - staticcheck
    - testifylint
    - thelper
    - unconvert
    - unparam
    - unused
    - usestdlibvars
    - usetesting
    - whitespace

  exclusions:
    # which dirs to skip: issues from them won't be reported;
    # can use regexp here: generated.*, regexp is applied on full path;
    # default value is empty list, but default dirs are skipped independently
    # from this option's value (see skip-dirs-use-default).
    # "/" will be replaced by current OS file path separator to properly work
    # on Windows.
    paths:
      - pkg/plugin/generated/*
      - third_party

    rules:
      - linters:
          - staticcheck
        text: "DefaultVolumesToRestic" # No need to report deprecate for DefaultVolumesToRestic.
      - path: ".*_test.go$"
        linters:
          - errcheck
          - goconst
          - gosec
          - govet
          - staticcheck
          - unparam
          - unused
      - path: test/
        linters:
          - errcheck
          - goconst
          - gosec
          - nilerr
          - staticcheck
          - unparam
          - unused
      - path: ".*data_upload_controller_test.go$"
        linters:
          - dupword
        text: "type"
      - path: ".*config_test.go$"
        linters:
          - dupword
        text: "bucket"

    generated: lax
    presets:
      - comments
      - common-false-positives
      - legacy
      - std-error-handling

issues:
  # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
  max-issues-per-linter: 0

  # Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
  max-same-issues: 0

  # make issues output unique by line, default is true
  uniq-by-line: true

# This file contains all available configuration options
# with their default values.
formatters:
  enable:
    - gofmt
    - goimports

  exclusions:
    generated: lax
    paths:
      - pkg/plugin/generated/*
      - third_party

  settings:
    gofmt:
      # simplify code: gofmt with `-s` option, true by default
      simplify: true
    goimports:
      local-prefixes:
        - github.com/vmware-tanzu/velero

severity:
  default: error

  # Default value is empty list.
  # When a list of severity rules are provided, severity information will be added to lint
  # issues. Severity rules have the same filtering capability as exclude rules except you 
  # are allowed to specify one matcher per severity rule.
  # Only affects out formats that support setting severity information.
  rules:
    - linters:
        - dupl
      severity: info

version: "2"


================================================
FILE: .goreleaser.yml
================================================
# Copyright 2018 the Velero contributors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

dist: _output
builds:
  - main: ./cmd/velero/velero.go
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - darwin
      - windows
    goarch:
      - amd64
      - arm
      - arm64
      - ppc64le
      - s390x
    ignore:
      # don't build arm for darwin and arm/arm64 for windows
      - goos: darwin
        goarch: arm
      - goos: darwin
        goarch: ppc64le
      - goos: darwin
        goarch: s390x
      - goos: windows
        goarch: arm
      - goos: windows
        goarch: arm64
      - goos: windows
        goarch: ppc64le
      - goos: windows
        goarch: s390x
    ldflags:
      - -X "github.com/vmware-tanzu/velero/pkg/buildinfo.Version={{ .Tag }}" -X "github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA={{ .FullCommit }}" -X "github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState={{ .Env.GIT_TREE_STATE }}" -X "github.com/vmware-tanzu/velero/pkg/buildinfo.ImageRegistry={{ .Env.REGISTRY }}"
archives:
  - name_template: "{{ .ProjectName }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
    wrap_in_directory: true
    files:
      - LICENSE
      - examples/**/*
checksum:
  name_template: 'CHECKSUM'
release:
  github:
    owner: vmware-tanzu
    name: velero
  draft: true
  prerelease: auto

git:
  # What should be used to sort tags when gathering the current and previous
  # tags if there are more than one tag in the same commit.
  #
  # Default: `-version:refname`
  tag_sort: -version:creatordate


================================================
FILE: ADOPTERS.md
================================================
# Velero Adopters

If you're using Velero and want to add your organization to this list, 
[follow these directions][1]!

<a href="https://www.pitsdatarecovery.net/" border="0" target="_blank"><img alt="pitsdatarecovery.net" src="site/static/img/adopters/PITSGlobalDataRecoveryServices.svg" height="50"></a>
<a href="https://www.bitgo.com" border="0" target="_blank"><img alt="bitgo.com" src="site/static/img/adopters/BitGo.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://www.nirmata.com" border="0" target="_blank"><img alt="nirmata.com" src="site/static/img/adopters/nirmata.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://kyma-project.io/" border="0" target="_blank"><img alt="kyma-project.io" src="site/static/img/adopters/kyma.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://redhat.com/" border="0" target="_blank"><img alt="redhat.com" src="site/static/img/adopters/redhat.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://dellemc.com/" border="0" target="_blank"><img alt="dellemc.com" src="site/static/img/adopters/DellEMC.png" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://bugsnag.com/" border="0" target="_blank"><img alt="bugsnag.com" src="site/static/img/adopters/bugsnag.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://okteto.com/" border="0" target="_blank"><img alt="okteto.com" src="site/static/img/adopters/okteto.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://banzaicloud.com/" border="0" target="_blank"><img alt="banzaicloud.com" src="site/static/img/adopters/banzaicloud.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://sighup.io/" border="0" target="_blank"><img alt="sighup.io" src="site/static/img/adopters/sighup.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://mayadata.io/" border="0" target="_blank"><img alt="mayadata.io" src="site/static/img/adopters/mayadata.svg" height="50"></a>&nbsp; &nbsp; &nbsp;
<a href="https://www.replicated.com/" border="0" target="_blank"><img alt="replicated.com" src="site/static/img/adopters/replicated-logo-red.svg" height="50"></a>
<a href="https://cloudcasa.io/" border="0" target="_blank"><img alt="cloudcasa.io" src="site/static/img/adopters/cloudcasa.svg" height="50"></a>
<a href="https://azure.microsoft.com/" border="0" target="_blank"><img alt="azure.com" src="site/static/img/adopters/azure.svg" height="50"></a>
<a href="https://www.broadcom.com/" border="0" target="_blank"><img alt="broadcom.com" src="site/static/img/adopters/broadcom.svg" height="50"></a>
## Success Stories

Below is a list of adopters of Velero in **production environments** that have
publicly shared the details of how they use it.

**[BitGo][20]**  
BitGo uses Velero backup and restore capabilities to seamlessly provision and scale fullnode statefulsets on the fly as well as having it serve an integral piece for our Kubernetes disaster-recovery story.

**[Bugsnag][30]**  
We use Velero for managing backups of an internal instance of our on-premise clustered solution. We also recommend our users of [on-premise Bugsnag installations](https://www.bugsnag.com/on-premise) use Velero for [managing their own backups](https://docs.bugsnag.com/on-premise/clustered/backup-restore/). <!-- Velero.io word list : ignore -->

**[Banzai Cloud][60]**  
[Banzai Cloud Pipeline][61] is a Kubernetes-based microservices platform that integrates services needed for Day-1 and Day-2 operations along with first-class support both for on-prem and hybrid multi-cloud deployments. We use Velero to periodically [backup and restore these clusters in case of disasters][62].

## Solutions built with Velero

Below is a list of solutions where Velero is being used as a component.

**[Nirmata][10]**  
We have integrated our [solution with Velero][11] to provide our customers with out of box backup/DR.

**[Kyma][40]**  
Kyma [integrates with Velero][41] to effortlessly back up and restore Kyma clusters with all its resources. Velero capabilities allow Kyma users to define and run manual and scheduled backups in order to successfully handle a disaster-recovery scenario.

**[Red Hat][50]**  
Red Hat has developed 2 operators for the OpenShift platform:
- [Migration Toolkit for Containers][51] (Crane): This operator uses [Velero and Restic][52] to drive the migration of applications between OpenShift clusters.
- [OADP (OpenShift API for Data Protection) Operator][53]: This operator sets up and installs Velero on the OpenShift platform, allowing users to backup and restore applications.

**[Dell EMC][70]**  
For Kubernetes environments, [PowerProtect Data Manager][71] leverages the Container Storage Interface (CSI) framework to take snapshots to back up the persistent data or the data that the application creates e.g. databases. [Dell EMC leverages Velero][72] to backup the namespace configuration files (also known as Namespace meta data) for enterprise grade data protection.

**[SIGHUP][80]**  
SIGHUP integrates Velero in its [Fury Kubernetes Distribution][81] providing predefined schedules and configurations to ensure an optimized disaster recovery experience.
[Fury Kubernetes Disaster Recovery Module][82] is ready to be deployed into any Kubernetes cluster running anywhere.

**[MayaData][90]**  
MayaData is a large user of Velero as well as a contributor. MayaData offers a Data Agility platform called [OpenEBS Director][91], that helps customers confidently and easily manage stateful workloads in Kubernetes. Velero is one of the core software building block of the OpenEBS Director's [DMaaS or data migration as a service offering][92] used to enable data protection strategies.

**[Okteto][93]**  
Okteto integrates Velero in [Okteto Cloud][94] and [Okteto Enterprise][95] to periodically backup and restore our clusters for disaster recovery. Velero is also a core software building block to provide namespace cloning capabilities, a feature that allows our users cloning staging environments into their personal development namespace for providing production-like development environments.

**[Replicated][100]**<br>
Replicated uses the Velero open source project to enable snapshots in [KOTS][101] to backup Kubernetes manifests & persistent volumes. In addition to the default functionality that Velero provides, [KOTS][101] provides a detailed interface in the [Admin Console][102] that can be used to manage the storage destination and schedule, and to perform and monitor the backup and restore process.<br>

**[CloudCasa][103]**<br>
[Catalogic Software][104] integrates Velero with [CloudCasa][103] - A Smart Home in the Cloud for Backups. CloudCasa is a full-featured, scalable, cloud-native solution providing Kubernetes data protection, disaster recovery, and migration as a service. An option to manage existing Velero instances and an enterprise self-hosted option are also available.<br>

**[Microsoft Azure][105]**<br>
[Azure Backup for AKS][106] is an Azure native, Kubernetes aware, Enterprise ready backup for containerized applications deployed on Azure Kubernetes Service (AKS). AKS Backup utilizes Velero to perform backup and restore operations to protect stateful applications in AKS clusters.<br>

**[Broadcom][107]**<br>
[VMware Cloud Foundation][108] (VCF) offers built-in [vSphere Kubernetes Service][109] (VKS),  a Kubernetes runtime that includes a CNCF certified Kubernetes distribution, to deploy and manage containerized workloads. VCF empowers platform engineers with native [Kubernetes multi-cluster management][110] capability for managing Kubernetes (K8s) infrastructure at scale. VCF utilizes Velero for Kubernetes data protection enabling platform engineers to back up and restore containerized workloads manifests & persistent volumes, helping to increase the resiliency of stateful applications in VKS cluster.

## Adding your organization to the list of Velero Adopters

If you are using Velero and would like to be included in the list of `Velero Adopters`, add an SVG version of your logo to the `site/static/img/adopters` directory in this repo and submit a [pull request][3] with your change. Name the image file something that reflects your company (e.g., if your company is called Acme, name the image acme.png). See this for an example [PR][4].

### Adding a logo to velero.io

If you would like to add your logo to a future `Adopters of Velero` section on [velero.io][2], follow the steps above to add your organization to the list of Velero Adopters. Our community will follow up and publish it to the [velero.io][2] website.

[1]: #adding-a-logo-to-veleroio
[2]: https://velero.io
[3]: https://github.com/vmware-tanzu/velero/pulls
[4]: https://github.com/vmware-tanzu/velero/pull/2242

[10]: https://www.nirmata.com/2019/08/14/kubernetes-disaster-recovery-using-velero-and-nirmata/
[11]: https://nirmata.com

[20]: https://bitgo.com

[30]: https://bugsnag.com

[40]: https://kyma-project.io
[41]: https://kyma-project.io/docs/components/backup/#overview-overview

[50]: https://redhat.com
[51]: https://github.com/fusor/mig-operator
[52]: https://github.com/fusor/mig-operator/blob/master/docs/usage/2.md
[53]: https://github.com/openshift/oadp-operator

[60]: https://banzaicloud.com
[61]: https://banzaicloud.com/products/pipeline/
[62]: https://banzaicloud.com/blog/vault-backup-velero/

[70]: https://dellemc.com
[71]: https://dellemc.com/dataprotection
[72]: https://www.dellemc.com/resources/en-us/asset/briefs-handouts/solutions/h18141-dellemc-dpd-kubernetes.pdf

[80]: https://sighup.io
[81]: https://github.com/sighupio/fury-distribution
[82]: https://github.com/sighupio/fury-kubernetes-dr

[90]: https://mayadata.io
[91]: https://director.mayadata.io/
[92]: https://help.mayadata.io/hc/en-us/articles/360033401591-DMaaS

[93]: https://okteto.com
[94]: https://cloud.okteto.com
[95]: https://okteto.com/enterprise/

[100]: https://www.replicated.com
[101]: https://kots.io
[102]: https://kots.io/kotsadm/snapshots/overview/

[103]: https://cloudcasa.io/
[104]: https://www.catalogicsoftware.com/

[105]: https://azure.microsoft.com/
[106]: https://learn.microsoft.com/azure/backup/backup-overview

[107]: https://www.broadcom.com/
[108]: https://www.vmware.com/products/cloud-infrastructure/vmware-cloud-foundation
[109]: https://www.vmware.com/products/cloud-infrastructure/vsphere-kubernetes-service
[110]: https://blogs.vmware.com/cloud-foundation/2025/09/29/empowering-platform-engineers-with-native-kubernetes-multi-cluster-management-in-vmware-cloud-foundation/

================================================
FILE: CHANGELOG.md
================================================
## Current release:
  * [CHANGELOG-1.15.md][25]

## Older releases:
  * [CHANGELOG-1.14.md][24]
  * [CHANGELOG-1.13.md][23]
  * [CHANGELOG-1.12.md][22]
  * [CHANGELOG-1.11.md][21]
  * [CHANGELOG-1.10.md][20]
  * [CHANGELOG-1.9.md][19]
  * [CHANGELOG-1.8.md][18]
  * [CHANGELOG-1.7.md][17]
  * [CHANGELOG-1.6.md][16]
  * [CHANGELOG-1.5.md][15]
  * [CHANGELOG-1.4.md][14]
  * [CHANGELOG-1.3.md][13]
  * [CHANGELOG-1.2.md][12]
  * [CHANGELOG-1.1.md][11]
  * [CHANGELOG-1.0.md][10]
  * [CHANGELOG-0.11.md][9]
  * [CHANGELOG-0.10.md][8]
  * [CHANGELOG-0.9.md][7]
  * [CHANGELOG-0.8.md][6]
  * [CHANGELOG-0.7.md][5]
  * [CHANGELOG-0.6.md][4]
  * [CHANGELOG-0.5.md][3]
  * [CHANGELOG-0.4.md][2]
  * [CHANGELOG-0.3.md][1]


[25]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.15.md
[24]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.14.md
[23]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.13.md
[22]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.12.md
[21]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.11.md
[20]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.10.md
[19]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.9.md
[18]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.8.md
[17]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.7.md
[16]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.6.md
[15]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.5.md
[14]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.4.md
[13]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.3.md
[12]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.2.md
[11]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.1.md
[10]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-1.0.md
[9]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.11.md
[8]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.10.md
[7]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.9.md
[6]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.8.md
[5]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.7.md
[4]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.6.md
[3]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.5.md
[2]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.4.md
[1]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/CHANGELOG-0.3.md
[0]: https://github.com/vmware-tanzu/velero/blob/main/changelogs/unreleased


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in the Velero project and our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socioeconomic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
  advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
  address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at oss-coc@vmware.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior,  harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

Authors are expected to follow some guidelines when submitting PRs. Please see [our documentation](https://velero.io/docs/main/code-standards/) for details.


================================================
FILE: Dockerfile
================================================
# Copyright 2020 the Velero contributors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Velero binary build section
FROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS velero-builder

ARG GOPROXY
ARG BIN
ARG PKG
ARG VERSION
ARG REGISTRY
ARG GIT_SHA
ARG GIT_TREE_STATE
ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT

ENV CGO_ENABLED=0 \
    GO111MODULE=on \
    GOPROXY=${GOPROXY} \
    GOOS=${TARGETOS} \
    GOARCH=${TARGETARCH} \
    GOARM=${TARGETVARIANT} \
    LDFLAGS="-X ${PKG}/pkg/buildinfo.Version=${VERSION} -X ${PKG}/pkg/buildinfo.GitSHA=${GIT_SHA} -X ${PKG}/pkg/buildinfo.GitTreeState=${GIT_TREE_STATE} -X ${PKG}/pkg/buildinfo.ImageRegistry=${REGISTRY}"

WORKDIR /go/src/github.com/vmware-tanzu/velero

COPY . /go/src/github.com/vmware-tanzu/velero

RUN mkdir -p /output/usr/bin && \
    export GOARM=$( echo "${GOARM}" | cut -c2-) && \
    go build -o /output/${BIN} \
    -ldflags "${LDFLAGS}" ${PKG}/cmd/${BIN} && \
    go build -o /output/velero-restore-helper \
    -ldflags "${LDFLAGS}" ${PKG}/cmd/velero-restore-helper && \
    go build -o /output/velero-helper \
    -ldflags "${LDFLAGS}" ${PKG}/cmd/velero-helper && \
    go clean -modcache -cache

# Restic binary build section
FROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS restic-builder

ARG GOPROXY
ARG BIN
ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT
ARG RESTIC_VERSION

ENV CGO_ENABLED=0 \
    GO111MODULE=on \
    GOPROXY=${GOPROXY} \
    GOOS=${TARGETOS} \
    GOARCH=${TARGETARCH} \
    GOARM=${TARGETVARIANT}

COPY . /go/src/github.com/vmware-tanzu/velero

RUN mkdir -p /output/usr/bin && \
    export GOARM=$(echo "${GOARM}" | cut -c2-) && \
    /go/src/github.com/vmware-tanzu/velero/hack/build-restic.sh && \
    go clean -modcache -cache

# Velero image packing section
FROM paketobuildpacks/run-jammy-tiny:latest

LABEL maintainer="Xun Jiang <jxun@vmware.com>"

COPY --from=velero-builder /output /

COPY --from=restic-builder /output /

USER cnb:cnb



================================================
FILE: Dockerfile-Windows
================================================
# Copyright the Velero contributors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ARG OS_VERSION=1809

# Velero binary build section
FROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS velero-builder

ARG GOPROXY
ARG BIN
ARG PKG
ARG VERSION
ARG REGISTRY
ARG GIT_SHA
ARG GIT_TREE_STATE
ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT

ENV CGO_ENABLED=0 \
    GO111MODULE=on \
    GOPROXY=${GOPROXY} \
    GOOS=${TARGETOS} \
    GOARCH=${TARGETARCH} \
    GOARM=${TARGETVARIANT} \
    LDFLAGS="-X ${PKG}/pkg/buildinfo.Version=${VERSION} -X ${PKG}/pkg/buildinfo.GitSHA=${GIT_SHA} -X ${PKG}/pkg/buildinfo.GitTreeState=${GIT_TREE_STATE} -X ${PKG}/pkg/buildinfo.ImageRegistry=${REGISTRY}"

WORKDIR /go/src/github.com/vmware-tanzu/velero

COPY . /go/src/github.com/vmware-tanzu/velero

RUN mkdir -p /output/usr/bin && \
    export GOARM=$( echo "${GOARM}" | cut -c2-) && \
    go build -o /output/${BIN}.exe \
    -ldflags "${LDFLAGS}" ${PKG}/cmd/${BIN} && \
    go build -o /output/velero-restore-helper.exe \
    -ldflags "${LDFLAGS}" ${PKG}/cmd/velero-restore-helper && \    
    go build -o /output/velero-helper.exe \
    -ldflags "${LDFLAGS}" ${PKG}/cmd/velero-helper && \
    go clean -modcache -cache

# Velero image packing section
FROM mcr.microsoft.com/windows/nanoserver:${OS_VERSION}
COPY --from=velero-builder /output /

USER ContainerUser

================================================
FILE: GOVERNANCE.md
================================================
# Velero Governance

This document defines the project governance for Velero.

## Overview

**Velero**, an open source project, is committed to building an open, inclusive, productive and self-governing open source community focused on building a high quality tool that enables users to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes. The community is governed by this document with the goal of defining how community should work together to achieve this goal.

## Code Repositories

The following code repositories are governed by Velero community and maintained under the `vmware-tanzu\Velero` organization.

* **[Velero](https://github.com/vmware-tanzu/velero):** Main Velero codebase
* **[Helm Chart](https://github.com/vmware-tanzu/helm-charts/tree/main/charts/velero):** The Helm chart for the Velero server component
* **[Velero CSI Plugin](https://github.com/vmware-tanzu/velero-plugin-for-csi):** This repository contains Velero plugins for snapshotting CSI backed PVCs using the CSI beta snapshot APIs
* **[Velero Plugin for vSphere](https://github.com/vmware-tanzu/velero-plugin-for-vsphere):** This repository contains the Velero Plugin for vSphere. This plugin is a volume snapshotter plugin that provides crash-consistent snapshots of vSphere block volumes and backup of volume data into S3 compatible storage.
* **[Velero Plugin for AWS](https://github.com/vmware-tanzu/velero-plugin-for-aws):** This repository contains the plugins to support running Velero on AWS, including the object store plugin and the volume snapshotter plugin
* **[Velero Plugin for GCP](https://github.com/vmware-tanzu/velero-plugin-for-gcp):** This repository contains the plugins to support running Velero on GCP, including the object store plugin and the volume snapshotter plugin
* **[Velero Plugin for Azure](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure):** This repository contains the plugins to support running Velero on Azure, including the object store plugin and the volume snapshotter plugin
* **[Velero Plugin Example](https://github.com/vmware-tanzu/velero-plugin-example):** This repository contains example plugins for Velero


## Community Roles

* **Users:** Members that engage with the Velero community via any medium (Slack, GitHub, mailing lists, etc.).
* **Contributors:** Regular contributions to projects (documentation, code reviews, responding to issues, participation in proposal discussions, contributing code, etc.). 
* **Maintainers**: The Velero project leaders. They are responsible for the overall health and direction of the project; final reviewers of PRs and responsible for releases. Some Maintainers are responsible for one or more components within a project, acting as technical leads for that component. Maintainers are expected to contribute code and documentation, review PRs including ensuring quality of code, triage issues, proactively fix bugs, and perform maintenance tasks for these components.

### Maintainers

New maintainers must be nominated by an existing maintainer and must be elected by a supermajority of existing maintainers. Likewise, maintainers can be removed by a supermajority of the existing maintainers or can resign by notifying one of the maintainers.

### Supermajority

A supermajority is defined as two-thirds of members in the group.
A supermajority of [Maintainers](#maintainers) is required for certain
decisions as outlined above. A supermajority vote is equivalent to the number of votes in favor being at least twice the number of votes against. For example, if you have 5 maintainers, a supermajority vote is 4 votes. Voting on decisions can happen on the mailing list, GitHub, Slack, email, or via a voting service, when appropriate. Maintainers can either vote "agree, yes, +1", "disagree, no, -1", or "abstain". A vote passes when supermajority is met. An abstain vote equals not voting at all.

### Decision Making

Ideally, all project decisions are resolved by consensus. If impossible, any
maintainer may call a vote. Unless otherwise specified in this document, any
vote will be decided by a supermajority of maintainers.

Votes by maintainers belonging to the same company
will count as one vote; e.g., 4 maintainers employed by fictional company **Valerium** will
only have **one** combined vote. If voting members from a given company do not
agree, the company's vote is determined by a supermajority of voters from that
company. If no supermajority is achieved, the company is considered to have
abstained.

## Proposal Process

One of the most important aspects in any open source community is the concept
of proposals. Large changes to the codebase and / or new features should be
preceded by a proposal in our community repo. This process allows for all
members of the community to weigh in on the concept (including the technical
details), share their comments and ideas, and offer to help. It also ensures
that members are not duplicating work or inadvertently stepping on toes by
making large conflicting changes.

The project roadmap is defined by accepted proposals.

Proposals should cover the high-level objectives, use cases, and technical
recommendations on how to implement. In general, the community member(s)
interested in implementing the proposal should be either deeply engaged in the
proposal process or be an author of the proposal.

The proposal should be documented as a separated markdown file pushed to the root of the 
`design` folder in the [Velero](https://github.com/vmware-tanzu/velero/tree/main/design)
repository via PR. The name of the file should follow the name pattern `<short
meaningful words joined by '-'>_design.md`, e.g:
`restore-hooks-design.md`.

Use the [Proposal Template](https://github.com/vmware-tanzu/velero/blob/main/design/_template.md) as a starting point.

### Proposal Lifecycle

The proposal PR can follow the GitHub lifecycle of the PR to indicate its status:

* **Open**: Proposal is created and under review and discussion.
* **Merged**: Proposal has been reviewed and is accepted (either by consensus or through a vote).
* **Closed**: Proposal has been reviewed and was rejected (either by consensus or through a vote).

## Lazy Consensus

To maintain velocity in a project as busy as Velero, the concept of [Lazy
Consensus](http://en.osswiki.info/concepts/lazy_consensus) is practiced. Ideas
and / or proposals should be shared by maintainers via
GitHub with the appropriate maintainer groups (e.g.,
`@vmware-tanzu/velero-maintainers`) tagged. Out of respect for other contributors,
major changes should also be accompanied by a ping on Slack or a note on the
Velero mailing list as appropriate. Author(s) of proposal, Pull Requests,
issues, etc.  will give a time period of no less than five (5) working days for
comment and remain cognizant of popular observed world holidays.

Other maintainers may chime in and request additional time for review, but
should remain cognizant of blocking progress and abstain from delaying
progress unless absolutely needed. The expectation is that blocking progress
is accompanied by a guarantee to review and respond to the relevant action(s)
(proposals, PRs, issues, etc.) in short order.

Lazy Consensus is practiced for all projects in the `Velero` org, including
the main project repository and the additional repositories.

Lazy consensus does _not_ apply to the process of:

* Removal of maintainers from Velero

## Deprecation Policy

### Deprecation Process

Any contributor may introduce a request to deprecate a feature or an option of a feature by opening a feature request issue in the vmware-tanzu/velero GitHub project. The issue should describe why the feature is no longer needed or has become detrimental to Velero, as well as whether and how it has been superseded. The submitter should give as much detail as possible.

Once the issue is filed, a one-month discussion period begins. Discussions take place within the issue itself as well as in the community meetings. The person who opens the issue, or a maintainer, should add the date and time marking the end of the discussion period in a comment on the issue as soon as possible after it is opened. A decision on the issue needs to be made within this one-month period.

The feature will be deprecated by a supermajority vote of 50% plus one of the project maintainers at the time of the vote tallying, which is 72 hours after the end of the community meeting that is the end of the comment period. (Maintainers are permitted to vote in advance of the deadline, but should hold their votes until as close as possible to hear all possible discussion.) Votes will be tallied in comments on the issue. 

Non-maintainers may add non-binding votes in comments to the issue as well; these are opinions to be taken into consideration by maintainers, but they do not count as votes. 

If the vote passes, the deprecation window takes effect in the subsequent release, and the removal follows the schedule. 

### Schedule
If depreciation proposal passes by supermajority votes, the feature is deprecated in the next minor release and the feature can be removed completely after two minor version or equivalent major version e.g., if feature gets deprecated in Nth minor version, then feature can be removed after N+2 minor version or its equivalent if the major version number changes.

### Deprecation Window

The deprecation window is the period from the release in which the deprecation takes effect through the release in which the feature is removed. During this period, only critical security vulnerabilities and catastrophic bugs should be fixed.

**Note:** If a backup relies on a deprecated feature, then backups made with the last Velero release before this feature is removed must still be restorable in version `n+2`. For instance, something like restic feature support, that might mean that restic is removed from the list of supported uploader types in version `n` but the underlying implementation required to restore from a restic backup won't be removed until release `n+2`.

## Updating Governance

All substantive changes in Governance require a supermajority agreement by all maintainers.


================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!)  The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright {yyyy} {name of copyright owner}

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


================================================
FILE: MAINTAINERS.md
================================================
# Velero Maintainers

[GOVERNANCE.md](https://github.com/vmware-tanzu/velero/blob/main/GOVERNANCE.md) describes governance guidelines and maintainer responsibilities.

## Maintainers

| Maintainer          | GitHub ID                                                     | Affiliation                                      |
|---------------------|---------------------------------------------------------------|--------------------------------------------------|
| Scott Seago         | [sseago](https://github.com/sseago)                           | [OpenShift](https://github.com/openshift)        |
| Daniel Jiang        | [reasonerjt](https://github.com/reasonerjt)                   | Broadcom                                         |
| Wenkai Yin          | [ywk253100](https://github.com/ywk253100)                     | Broadcom                                         |
| Xun Jiang           | [blackpiglet](https://github.com/blackpiglet)                 | Broadcom                                         |
| Shubham Pampattiwar | [shubham-pampattiwar](https://github.com/shubham-pampattiwar) | [OpenShift](https://github.com/openshift)        |
| Yonghui Li          | [Lyndon-Li](https://github.com/Lyndon-Li)                     | Broadcom                                         |
| Anshul Ahuja        | [anshulahuja98](https://github.com/anshulahuja98)             | [Microsoft Azure](https://www.github.com/azure/) |
| Tiger Kaovilai      | [kaovilai](https://github.com/kaovilai)                       | [OpenShift](https://github.com/openshift)        |

## Emeritus Maintainers
* Adnan Abdulhussein ([prydonius](https://github.com/prydonius))
* Andy Goldstein ([ncdc](https://github.com/ncdc))
* Steve Kriss ([skriss](https://github.com/skriss))
* Carlos Panato ([cpanato](https://github.com/cpanato))
* Nolan Brubaker ([nrb](https://github.com/nrb))
* Ashish Amarnath ([ashish-amarnath](https://github.com/ashish-amarnath))
* Carlisia Thompson ([carlisia](https://github.com/carlisia))
* Bridget McErlean ([zubron](https://github.com/zubron))
* JenTing Hsiao ([jenting](https://github.com/jenting))
* Dave Smith-Uchida ([dsu-igeek](https://github.com/dsu-igeek))
* Ming Qiu ([qiuming-best](https://github.com/qiuming-best))


================================================
FILE: Makefile
================================================
# Copyright 2016 The Kubernetes Authors.
#
# Modifications Copyright 2020 the Velero contributors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# The binary to build (just the basename).
BIN ?= velero

# This repo's root import path (under GOPATH).
PKG := github.com/vmware-tanzu/velero

# Where to push the docker image.
REGISTRY ?= velero
# In order to push images to an insecure registry, follow the two steps:
#   1. Set "INSECURE_REGISTRY=true" 
#   2. Provide your own buildx builder instance by setting "BUILDX_INSTANCE=your-own-builder-instance"
#      The builder can be created with the following command:
#        cat << EOF > buildkitd.toml
#        [registry."insecure-registry-ip:port"]
#        http = true
#        insecure = true
#        EOF
#        docker buildx create --name=velero-builder --driver=docker-container --bootstrap --use --config ./buildkitd.toml
#      Refer to https://github.com/docker/buildx/issues/1370#issuecomment-1288516840 for more details
INSECURE_REGISTRY ?= false

# Image name
IMAGE ?= $(REGISTRY)/$(BIN)

# We allow the Dockerfile to be configurable to enable the use of custom Dockerfiles
# that pull base images from different registries.
VELERO_DOCKERFILE ?= Dockerfile
VELERO_DOCKERFILE_WINDOWS ?= Dockerfile-Windows
BUILDER_IMAGE_DOCKERFILE ?= hack/build-image/Dockerfile

# Calculate the realpath of the build-image Dockerfile as we `cd` into the hack/build
# directory before this Dockerfile is used and any relative path will not be valid.
BUILDER_IMAGE_DOCKERFILE_REALPATH := $(shell realpath $(BUILDER_IMAGE_DOCKERFILE))

# Build image handling. We push a build image for every changed version of
# /hack/build-image/Dockerfile. We tag the dockerfile with the short commit hash
# of the commit that changed it. When determining if there is a build image in
# the registry to use we look for one that matches the current "commit" for the
# Dockerfile else we make one.
# In the case where the Dockerfile for the build image has been overridden using
# the BUILDER_IMAGE_DOCKERFILE variable, we always force a build.

ifneq "$(origin BUILDER_IMAGE_DOCKERFILE)" "file"
	BUILDER_IMAGE_TAG := "custom"
else
	BUILDER_IMAGE_TAG := $(shell git log -1 --pretty=%h $(BUILDER_IMAGE_DOCKERFILE))
endif

BUILDER_IMAGE := $(REGISTRY)/build-image:$(BUILDER_IMAGE_TAG)
BUILDER_IMAGE_CACHED := $(shell docker images -q ${BUILDER_IMAGE} 2>/dev/null )

HUGO_IMAGE := ghcr.io/gohugoio/hugo

# Which architecture to build - see $(ALL_ARCH) for options.
# if the 'local' rule is being run, detect the ARCH from 'go env'
# if it wasn't specified by the caller.
local : ARCH ?= $(shell go env GOOS)-$(shell go env GOARCH)
ARCH ?= linux-amd64

VERSION ?= main

TAG_LATEST ?= false

ifeq ($(TAG_LATEST), true)
	IMAGE_TAGS ?= $(IMAGE):$(VERSION) $(IMAGE):latest
else
	IMAGE_TAGS ?= $(IMAGE):$(VERSION)
endif

# check buildx is enabled only if docker is in path
# macOS/Windows docker cli without Docker Desktop license: https://github.com/abiosoft/colima
# To add buildx to docker cli: https://github.com/abiosoft/colima/discussions/273#discussioncomment-2684502
ifeq ($(shell which docker 2>/dev/null 1>&2 && docker buildx inspect 2>/dev/null | awk '/Status/ { print $$2 }'), running)
	BUILDX_ENABLED ?= true
# if emulated docker cli from podman, assume enabled
# emulated docker cli from podman: https://podman-desktop.io/docs/migrating-from-docker/emulating-docker-cli-with-podman
# podman known issues:
# - on remote podman, such as on macOS,
#   --output issue: https://github.com/containers/podman/issues/15922
else ifeq ($(shell which docker 2>/dev/null 1>&2 && cat $(shell which docker) | grep -c "exec podman"), 1)
	BUILDX_ENABLED ?= true
else
	BUILDX_ENABLED ?= false
endif

define BUILDX_ERROR
buildx not enabled, refusing to run this recipe
see: https://velero.io/docs/main/build-from-source/#making-images-and-updating-velero for more info
endef
# comma cannot be escaped and can only be used in Make function arguments by putting into variable
comma=,
# The version of restic binary to be downloaded
RESTIC_VERSION ?= 0.15.0

CLI_PLATFORMS ?= linux-amd64 linux-arm linux-arm64 darwin-amd64 darwin-arm64 windows-amd64 linux-ppc64le linux-s390x
BUILD_OUTPUT_TYPE ?= docker
BUILD_OS ?= linux
BUILD_ARCH ?= amd64
BUILD_WINDOWS_VERSION ?= ltsc2022

ifeq ($(BUILD_OUTPUT_TYPE), docker)
	ALL_OS = linux
	ALL_ARCH.linux = $(word 2, $(subst -, ,$(shell go env GOOS)-$(shell go env GOARCH)))
else
	ALL_OS = $(subst $(comma), ,$(BUILD_OS))
	ALL_ARCH.linux = $(subst $(comma), ,$(BUILD_ARCH))
endif

ALL_ARCH.windows = $(if $(filter windows,$(ALL_OS)),amd64,)
ALL_OSVERSIONS.windows = $(if $(filter windows,$(ALL_OS)),$(BUILD_WINDOWS_VERSION),)
ALL_OS_ARCH.linux =  $(foreach os, $(filter linux,$(ALL_OS)), $(foreach arch, ${ALL_ARCH.linux}, ${os}-$(arch)))
ALL_OS_ARCH.windows = $(foreach os, $(filter windows,$(ALL_OS)), $(foreach arch, $(ALL_ARCH.windows), $(foreach osversion, ${ALL_OSVERSIONS.windows}, ${os}-${osversion}-${arch})))
ALL_OS_ARCH = $(ALL_OS_ARCH.linux)$(ALL_OS_ARCH.windows)

ALL_IMAGE_TAGS = $(IMAGE_TAGS)

# set git sha and tree state
GIT_SHA = $(shell git rev-parse HEAD)
ifneq ($(shell git status --porcelain 2> /dev/null),)
	GIT_TREE_STATE ?= dirty
else
	GIT_TREE_STATE ?= clean
endif

###
### These variables should not need tweaking.
###

platform_temp = $(subst -, ,$(ARCH))
GOOS = $(word 1, $(platform_temp))
GOARCH = $(word 2, $(platform_temp))
GOPROXY ?= https://proxy.golang.org
GOBIN=$$(pwd)/.go/bin

# If you want to build all binaries, see the 'all-build' rule.
# If you want to build all containers, see the 'all-containers' rule.
all:
	@$(MAKE) build

build-%:
	@$(MAKE) --no-print-directory ARCH=$* build

all-build: $(addprefix build-, $(CLI_PLATFORMS))

all-containers:
	@$(MAKE) --no-print-directory container

local: build-dirs
# Add DEBUG=1 to enable debug locally
	GOOS=$(GOOS) \
	GOARCH=$(GOARCH) \
	GOBIN=$(GOBIN) \
	VERSION=$(VERSION) \
	REGISTRY=$(REGISTRY) \
	PKG=$(PKG) \
	BIN=$(BIN) \
	GIT_SHA=$(GIT_SHA) \
	GIT_TREE_STATE=$(GIT_TREE_STATE) \
	OUTPUT_DIR=$$(pwd)/_output/bin/$(GOOS)/$(GOARCH) \
	./hack/build.sh

build: _output/bin/$(GOOS)/$(GOARCH)/$(BIN)

_output/bin/$(GOOS)/$(GOARCH)/$(BIN): build-dirs
	@echo "building: $@"
	$(MAKE) shell CMD="-c '\
		GOOS=$(GOOS) \
		GOARCH=$(GOARCH) \
		GOBIN=$(GOBIN) \
		VERSION=$(VERSION) \
		REGISTRY=$(REGISTRY) \
		PKG=$(PKG) \
		BIN=$(BIN) \
		GIT_SHA=$(GIT_SHA) \
		GIT_TREE_STATE=$(GIT_TREE_STATE) \
		OUTPUT_DIR=/output/$(GOOS)/$(GOARCH) \
		./hack/build.sh'"

TTY := $(shell tty -s && echo "-t")

# Example: make shell CMD="date > datefile"
shell: build-dirs build-env
	@# bind-mount the Velero root dir in at /github.com/vmware-tanzu/velero
	@# because the Kubernetes code-generator tools require the project to
	@# exist in a directory hierarchy ending like this (but *NOT* necessarily
	@# under $GOPATH).
	@docker run \
		-e GOFLAGS \
		-e GOPROXY \
		-i $(TTY) \
		--rm \
		-u $$(id -u):$$(id -g) \
		-v "$$(pwd):/github.com/vmware-tanzu/velero:delegated" \
		-v "$$(pwd)/_output/bin:/output:delegated" \
		-v "$$(pwd)/.go/pkg:/go/pkg:delegated" \
		-v "$$(pwd)/.go/std:/go/std:delegated" \
		-v "$$(pwd)/.go/std/$(GOOS)/$(GOARCH):/usr/local/go/pkg/$(GOOS)_$(GOARCH)_static:delegated" \
		-v "$$(pwd)/.go/go-build:/.cache/go-build:delegated" \
		-v "$$(pwd)/.go/golangci-lint:/.cache/golangci-lint:delegated" \
		-w /github.com/vmware-tanzu/velero \
		$(BUILDER_IMAGE) \
		/bin/sh $(CMD)

container:
ifneq ($(BUILDX_ENABLED), true)
	$(error $(BUILDX_ERROR))
endif

ifeq ($(BUILDX_INSTANCE),)
	@echo creating a buildx instance
	-docker buildx rm velero-builder || true
	@docker buildx create --use --name=velero-builder
else
	@echo using a specified buildx instance $(BUILDX_INSTANCE)
	@docker buildx use $(BUILDX_INSTANCE)
endif

	@mkdir -p _output

	@for osarch in $(ALL_OS_ARCH); do \
		$(MAKE) container-$${osarch}; \
	done

ifeq ($(BUILD_OUTPUT_TYPE), registry)
	@for tag in $(ALL_IMAGE_TAGS); do \
		IMAGE_TAG=$${tag} $(MAKE) push-manifest; \
	done
endif

container-linux-%:
	@BUILDX_ARCH=$* $(MAKE) container-linux

container-linux:
	@echo "building container: $(IMAGE):$(VERSION)-linux-$(BUILDX_ARCH)"

	@docker buildx build --pull \
	--output="type=$(BUILD_OUTPUT_TYPE)$(if $(findstring tar, $(BUILD_OUTPUT_TYPE)),$(comma)dest=_output/$(BIN)-$(VERSION)-linux-$(BUILDX_ARCH).tar,)" \
	--platform="linux/$(BUILDX_ARCH)" \
	$(addprefix -t , $(addsuffix "-linux-$(BUILDX_ARCH)",$(ALL_IMAGE_TAGS))) \
	--build-arg=GOPROXY=$(GOPROXY) \
	--build-arg=PKG=$(PKG) \
	--build-arg=BIN=$(BIN) \
	--build-arg=VERSION=$(VERSION) \
	--build-arg=GIT_SHA=$(GIT_SHA) \
	--build-arg=GIT_TREE_STATE=$(GIT_TREE_STATE) \
	--build-arg=REGISTRY=$(REGISTRY) \
	--build-arg=RESTIC_VERSION=$(RESTIC_VERSION) \
	--provenance=false \
	--sbom=false \
	-f $(VELERO_DOCKERFILE) .

	@echo "built container: $(IMAGE):$(VERSION)-linux-$(BUILDX_ARCH)"

container-windows-%:
	@BUILDX_OSVERSION=$(firstword $(subst -, ,$*)) BUILDX_ARCH=$(lastword $(subst -, ,$*)) $(MAKE) container-windows

container-windows:
	@echo "building container: $(IMAGE):$(VERSION)-windows-$(BUILDX_OSVERSION)-$(BUILDX_ARCH)"

	@docker buildx build --pull \
	--output="type=$(BUILD_OUTPUT_TYPE)$(if $(findstring tar, $(BUILD_OUTPUT_TYPE)),$(comma)dest=_output/$(BIN)-$(VERSION)-windows-$(BUILDX_OSVERSION)-$(BUILDX_ARCH).tar,)" \
	--platform="windows/$(BUILDX_ARCH)" \
	$(addprefix -t , $(addsuffix "-windows-$(BUILDX_OSVERSION)-$(BUILDX_ARCH)",$(ALL_IMAGE_TAGS))) \
	--build-arg=GOPROXY=$(GOPROXY) \
	--build-arg=PKG=$(PKG) \
	--build-arg=BIN=$(BIN) \
	--build-arg=VERSION=$(VERSION) \
	--build-arg=OS_VERSION=$(BUILDX_OSVERSION) \
	--build-arg=GIT_SHA=$(GIT_SHA) \
    --build-arg=GIT_TREE_STATE=$(GIT_TREE_STATE) \
	--build-arg=REGISTRY=$(REGISTRY) \
	--provenance=false \
	--sbom=false \
	-f $(VELERO_DOCKERFILE_WINDOWS) .

	@echo "built container: $(IMAGE):$(VERSION)-windows-$(BUILDX_OSVERSION)-$(BUILDX_ARCH)"

push-manifest:
	@echo "building manifest: $(IMAGE_TAG) for $(foreach osarch, $(ALL_OS_ARCH), $(IMAGE_TAG)-${osarch})"
	@docker manifest create --amend --insecure=$(INSECURE_REGISTRY) $(IMAGE_TAG) $(foreach osarch, $(ALL_OS_ARCH), $(IMAGE_TAG)-${osarch})

	@set -x; \
	for arch in $(ALL_ARCH.windows); do \
		for osversion in $(ALL_OSVERSIONS.windows); do \
			BASEIMAGE=mcr.microsoft.com/windows/nanoserver:$${osversion}; \
			full_version=`docker manifest inspect --insecure=$(INSECURE_REGISTRY) $${BASEIMAGE} | jq -r '.manifests[0].platform["os.version"]'`; \
			docker manifest annotate --os windows --arch $${arch} --os-version $${full_version} $(IMAGE_TAG) $(IMAGE_TAG)-windows-$${osversion}-$${arch}; \
		done; \
	done

	@echo "pushing manifest $(IMAGE_TAG)"
	@docker manifest push --purge --insecure=$(INSECURE_REGISTRY) $(IMAGE_TAG)

	@echo "pushed manifest $(IMAGE_TAG):"
	@docker manifest inspect --insecure=$(INSECURE_REGISTRY) $(IMAGE_TAG)

SKIP_TESTS ?=
test: build-dirs
ifneq ($(SKIP_TESTS), 1)
	@$(MAKE) shell CMD="-c 'hack/test.sh $(WHAT)'"
endif

test-local: build-dirs
ifneq ($(SKIP_TESTS), 1)
	hack/test.sh $(WHAT)
endif

verify:
ifneq ($(SKIP_TESTS), 1)
	@$(MAKE) shell CMD="-c 'hack/verify-all.sh'"
endif

lint:
ifneq ($(SKIP_TESTS), 1)
	@$(MAKE) shell CMD="-c 'hack/lint.sh'"
endif

local-lint:
ifneq ($(SKIP_TESTS), 1)
	@hack/lint.sh
endif

update:
	@$(MAKE) shell CMD="-c 'hack/update-all.sh'"

# update-crd is for development purpose only, it is faster than update, so is a shortcut when you want to generate CRD changes only
update-crd:
	@$(MAKE) shell CMD="-c 'hack/update-3generated-crd-code.sh'"	

build-dirs:
	@mkdir -p _output/bin/$(GOOS)/$(GOARCH)
	@mkdir -p .go/src/$(PKG) .go/pkg .go/bin .go/std/$(GOOS)/$(GOARCH) .go/go-build .go/golangci-lint

build-env:
	@# if we have overridden the value for the build-image Dockerfile,
	@# force a build using that Dockerfile
	@# if we detect changes in dockerfile force a new build-image
	@# else if we dont have a cached image make one
	@# finally use the cached image
ifneq "$(origin BUILDER_IMAGE_DOCKERFILE)" "file"
	@echo "Dockerfile for builder image has been overridden to $(BUILDER_IMAGE_DOCKERFILE)"
	@echo "Preparing a new builder-image"
	$(MAKE) build-image
else ifneq ($(shell git diff --quiet HEAD -- $(BUILDER_IMAGE_DOCKERFILE); echo $$?), 0)
	@echo "Local changes detected in $(BUILDER_IMAGE_DOCKERFILE)"
	@echo "Preparing a new builder-image"
	$(MAKE) build-image
else ifneq ($(BUILDER_IMAGE_CACHED),)
	@echo "Using Cached Image: $(BUILDER_IMAGE)"
else
	@echo "Trying to pull build-image: $(BUILDER_IMAGE)"
	docker pull -q $(BUILDER_IMAGE) || $(MAKE) build-image
endif

build-image:
	@# When we build a new image we just untag the old one.
	@# This makes sure we don't leave the orphaned image behind.
	$(eval old_id=$(shell docker image inspect  --format '{{ .ID }}' ${BUILDER_IMAGE} 2>/dev/null))
ifeq ($(BUILDX_ENABLED), true)
	@cd hack/build-image && docker buildx build --build-arg=GOPROXY=$(GOPROXY) --output=type=docker --pull -t $(BUILDER_IMAGE) -f $(BUILDER_IMAGE_DOCKERFILE_REALPATH) .
else
	@cd hack/build-image && docker build --build-arg=GOPROXY=$(GOPROXY) --pull -t $(BUILDER_IMAGE) -f $(BUILDER_IMAGE_DOCKERFILE_REALPATH) .
endif
	$(eval new_id=$(shell docker image inspect  --format '{{ .ID }}' ${BUILDER_IMAGE} 2>/dev/null))
	@if [ "$(old_id)" != "" ] && [ "$(old_id)" != "$(new_id)" ]; then \
		docker rmi -f $$id || true; \
	fi

push-build-image:
	@# this target will push the build-image it assumes you already have docker
	@# credentials needed to accomplish this.
	@# Pushing will be skipped if a custom Dockerfile was used to build the image.
ifneq "$(origin BUILDER_IMAGE_DOCKERFILE)" "file"
	@echo "Dockerfile for builder image has been overridden"
	@echo "Skipping push of custom image"
else
	docker push $(BUILDER_IMAGE)
endif

build-image-hugo:
	cd site && docker build --pull -t $(HUGO_IMAGE) .

clean:
# if we have a cached image then use it to run go clean --modcache
# this test checks if we there is an image id in the BUILDER_IMAGE_CACHED variable.
ifneq ($(strip $(BUILDER_IMAGE_CACHED)),)
	$(MAKE) shell CMD="-c 'go clean --modcache'"
	docker rmi -f $(BUILDER_IMAGE) || true
endif
	rm -rf .go _output
	docker rmi $(HUGO_IMAGE)


.PHONY: modules
modules:
	go mod tidy


.PHONY: verify-modules
verify-modules: modules
	@if !(git diff --quiet HEAD -- go.sum go.mod); then \
		echo "go module files are out of date, please commit the changes to go.mod and go.sum"; exit 1; \
	fi


ci: verify-modules verify all test


changelog:
	hack/release-tools/changelog.sh

# release builds a GitHub release using goreleaser within the build container.
#
# To dry-run the release, which will build the binaries/artifacts locally but
# will *not* create a GitHub release:
#		GITHUB_TOKEN=an-invalid-token-so-you-dont-accidentally-push-release \
#		RELEASE_NOTES_FILE=changelogs/CHANGELOG-1.2.md \
#		PUBLISH=false \
#		make release
#
# To run the release, which will publish a *DRAFT* GitHub release in github.com/vmware-tanzu/velero
# (you still need to review/publish the GitHub release manually):
#		GITHUB_TOKEN=your-github-token \
#		RELEASE_NOTES_FILE=changelogs/CHANGELOG-1.2.md \
#		PUBLISH=true \
#		make release
release:
	$(MAKE) shell CMD="-c '\
		GITHUB_TOKEN=$(GITHUB_TOKEN) \
		RELEASE_NOTES_FILE=$(RELEASE_NOTES_FILE) \
		PUBLISH=$(PUBLISH) \
		REGISTRY=$(REGISTRY) \
		./hack/release-tools/goreleaser.sh'"

serve-docs: build-image-hugo
	docker run \
	--rm \
	-v "$$(pwd)/site:/project" \
	-it -p 1313:1313 \
	$(HUGO_IMAGE) \
	server --bind=0.0.0.0 --enableGitInfo=false
# gen-docs generates a new versioned docs directory under site/content/docs.
# Please read the documentation in the script for instructions on how to use it.
gen-docs:
	@hack/release-tools/gen-docs.sh

.PHONY: test-e2e
test-e2e: local
	$(MAKE) -e VERSION=$(VERSION) -C test/ run-e2e

.PHONY: test-perf
test-perf: local
	$(MAKE) -e VERSION=$(VERSION) -C test/ run-perf

go-generate:
	go generate ./pkg/...

# requires an authenticated gh cli
# gh: https://cli.github.com/
# First create a PR
# gh pr create --title 'Title name' --body 'PR body'
# by default uses PR title as changelog body but can be overwritten like so
# make new-changelog CHANGELOG_BODY="Changes you have made"
new-changelog: GH_LOGIN ?= $(shell gh pr view --json author --jq .author.login 2> /dev/null)
new-changelog: GH_PR_NUMBER ?= $(shell gh pr view --json number --jq .number 2> /dev/null)
new-changelog: CHANGELOG_BODY ?= '$(shell gh pr view --json title --jq .title)'
new-changelog:
	@if [ "$(GH_LOGIN)" = "" ]; then \
		echo "branch does not have PR or cli not logged in, try 'gh auth login' or 'gh pr create'"; \
		exit 1; \
	fi
	@mkdir -p ./changelogs/unreleased/ && \
	echo $(CHANGELOG_BODY) > ./changelogs/unreleased/$(GH_PR_NUMBER)-$(GH_LOGIN) && \
	echo \"$(CHANGELOG_BODY)\" added to "./changelogs/unreleased/$(GH_PR_NUMBER)-$(GH_LOGIN)"

================================================
FILE: OWNERS
================================================
# This file is used by the [PROW action](https://github.com/jpmcb/prow-github-actions) to approve and merge PRs.
# The file's format follows the [OWNERS SPEC](https://www.kubernetes.dev/docs/guide/owners/#owners-spec).

# List of usernames who may use /lgtm
reviewers:
- @Lyndon-Li
- @anshulahuja98
- @blackpiglet
- @qiuming-best
- @reasonerjt
- @shubham-pampattiwar
- @sseago
- @ywk253100

# List of usernames who may use /approve
approvers:
- @Lyndon-Li
- @anshulahuja98
- @blackpiglet
- @qiuming-best
- @reasonerjt
- @shubham-pampattiwar
- @sseago
- @ywk253100


================================================
FILE: README.md
================================================
![100]

[![Build Status][1]][2] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3811/badge)](https://bestpractices.coreinfrastructure.org/projects/3811)
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/vmware-tanzu/velero)

## Overview

Velero (formerly Heptio Ark) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes. You can run Velero with a public cloud platform or on-premises. 

Velero lets you:

* Take backups of your cluster and restore in case of loss.
* Migrate cluster resources to other clusters.
* Replicate your production cluster to development and testing clusters.

Velero consists of:

* A server that runs on your cluster
* A command-line client that runs locally

## Documentation

[The documentation][29] provides a getting started guide and information about building from source, architecture, extending Velero and more.

Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of Velero.

## Troubleshooting

If you encounter issues, review the [troubleshooting docs][30], [file an issue][4], or talk to us on the [#velero channel][25] on the Kubernetes Slack server.

## Contributing

If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our [Start contributing][31] documentation for guidance on how to setup Velero for development.

## Changelog

See [the list of releases][6] to find out about feature changes.

### Velero compatibility matrix

The following is a list of the supported Kubernetes versions for each Velero version.

| Velero version | Expected Kubernetes version compatibility | Tested on Kubernetes version        |
|----------------|-------------------------------------------|-------------------------------------|
| 1.18           | 1.18-latest                               | 1.33.7, 1.34.1, and 1.35.0          |
| 1.17           | 1.18-latest                               | 1.31.7, 1.32.3, 1.33.1, and 1.34.0  |
| 1.16           | 1.18-latest                               | 1.31.4, 1.32.3, and 1.33.0          |
| 1.15           | 1.18-latest                               | 1.28.8, 1.29.8, 1.30.4 and 1.31.1   |
| 1.14           | 1.18-latest                               | 1.27.9, 1.28.9, and 1.29.4          |

Velero supports IPv4, IPv6, and dual stack environments. Support for this was tested against Velero v1.8.

The Velero maintainers are continuously working to expand testing coverage, but are not able to test every combination of Velero and supported Kubernetes versions for each Velero release. The table above is meant to track the current testing coverage and the expected supported Kubernetes versions for each Velero version.

If you are interested in using a different version of Kubernetes with a given Velero version, we'd recommend that you perform testing before installing or upgrading your environment. For full information around capabilities within a release, also see the Velero [release notes](https://github.com/vmware-tanzu/velero/releases) or Kubernetes [release notes](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG). See the Velero [support page](https://velero.io/docs/latest/support-process/) for information about supported versions of Velero.

For each release, Velero maintainers run the test to ensure the upgrade path from n-2 minor release.  For example, before the release of v1.10.x, the test will verify that the backup created by v1.9.x and v1.8.x can be restored using the build to be tagged as v1.10.x.

[1]: https://github.com/vmware-tanzu/velero/workflows/Main%20CI/badge.svg
[2]: https://github.com/vmware-tanzu/velero/actions?query=workflow%3A"Main+CI"
[4]: https://github.com/vmware-tanzu/velero/issues
[6]: https://github.com/vmware-tanzu/velero/releases
[9]: https://kubernetes.io/docs/setup/
[10]: https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-with-homebrew-on-macos
[11]: https://kubernetes.io/docs/tasks/tools/install-kubectl/#tabset-1
[12]: https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/README.md
[14]: https://github.com/kubernetes/kubernetes
[24]: https://groups.google.com/forum/#!forum/projectvelero
[25]: https://kubernetes.slack.com/messages/velero
[29]: https://velero.io/docs/
[30]: https://velero.io/docs/troubleshooting
[31]: https://velero.io/docs/start-contributing
[100]: https://velero.io/docs/main/img/velero.png


================================================
FILE: ROADMAP.md
================================================
# Please go to the [Velero Wiki](https://github.com/vmware-tanzu/velero/wiki/) to see our latest roadmap, archived roadmaps and roadmap guidance.

================================================
FILE: SECURITY.md
================================================
# Security Release Process

Velero is an open source tool with a growing community devoted to safe backup and restore, disaster recovery, and data migration of Kubernetes resources and persistent volumes. The community has adopted this security disclosure and response policy to ensure we responsibly handle critical issues.


## Supported Versions

The Velero project maintains the following [governance document](https://github.com/vmware-tanzu/velero/blob/main/GOVERNANCE.md), [release document](https://github.com/vmware-tanzu/velero/blob/f42c63af1b9af445e38f78a7256b1c48ef79c10e/site/docs/main/release-instructions.md), and [support document](https://velero.io/docs/main/support-process/). Please refer to these for release and related details. Only the most recent version of Velero is supported. Each [release](https://github.com/vmware-tanzu/velero/releases) includes information about upgrading to the latest version.


## Reporting a Vulnerability - Private Disclosure Process

Security is of the highest importance and all security vulnerabilities or suspected security vulnerabilities should be reported to Velero privately, to minimize attacks against current users of Velero before they are fixed. Vulnerabilities will be investigated and patched on the next patch (or minor) release as soon as possible. This information could be kept entirely internal to the project.  

If you know of a publicly disclosed security vulnerability for Velero, please **IMMEDIATELY** contact the Security Team (velero-security.pdl@broadcom.com).

 

**IMPORTANT: Do not file public issues on GitHub for security vulnerabilities**

To report a vulnerability or a security-related issue, please contact the email address with the details of the vulnerability. The email will be fielded by the Security Team and then shared with the Velero maintainers who have committer and release permissions. Emails will be addressed within 3 business days, including a detailed plan to investigate the issue and any potential workarounds to perform in the meantime. Do not report non-security-impacting bugs through this channel. Use [GitHub issues](https://github.com/vmware-tanzu/velero/issues/new/choose) instead.


## Proposed Email Content

Provide a descriptive subject line and in the body of the email include the following information:



*   Basic identity information, such as your name and your affiliation or company.
*   Detailed steps to reproduce the vulnerability  (POC scripts, screenshots, and logs are all helpful to us).
*   Description of the effects of the vulnerability on Velero and the related hardware and software configurations, so that the Security Team can reproduce it.
*   How the vulnerability affects Velero usage and an estimation of the attack surface, if there is one.
*   List other projects or dependencies that were used in conjunction with Velero to produce the vulnerability.

 


## When to report a vulnerability



*   When you think Velero has a potential security vulnerability.
*   When you suspect a potential vulnerability but you are unsure that it impacts Velero.
*   When you know of or suspect a potential vulnerability on another project that is used by Velero.

  


## Patch, Release, and Disclosure

The Security Team will respond to vulnerability reports as follows:

 



1. The Security Team will investigate the vulnerability and determine its effects and criticality.
2. If the issue is not deemed to be a vulnerability, the Security Team will follow up with a detailed reason for rejection.
3. The Security Team will initiate a conversation with the reporter within 3 business days.
4. If a vulnerability is acknowledged and the timeline for a fix is determined, the Security Team will work on a plan to communicate with the appropriate community, including identifying mitigating steps that affected users can take to protect themselves until the fix is rolled out.
5. The Security Team will also create a [CVSS](https://www.first.org/cvss/specification-document) using the [CVSS Calculator](https://www.first.org/cvss/calculator/3.0). The Security Team makes the final call on the calculated CVSS; it is better to move quickly than making the CVSS perfect. Issues may also be reported to [Mitre](https://cve.mitre.org/) using this [scoring calculator](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator). The CVE will initially be set to private.
6. The Security Team will work on fixing the vulnerability and perform internal testing before preparing to roll out the fix.
7. The Security Team will provide early disclosure of the vulnerability by emailing the [Velero Distributors](https://groups.google.com/u/1/g/projectvelero-distributors) mailing list. Distributors can initially plan for the vulnerability patch ahead of the fix, and later can test the fix and provide feedback to the Velero team. See the section **Early Disclosure to Velero Distributors List** for details about how to join this mailing list. 
8. A public disclosure date is negotiated by the SecurityTeam, the bug submitter, and the distributors list. We prefer to fully disclose the bug as soon as possible once a user mitigation or patch is available. It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for distributor coordination. The timeframe for disclosure is from immediate (especially if it’s already publicly known) to a few weeks. For a critical vulnerability with a straightforward mitigation, we expect the report date for the public disclosure date to be on the order of 14 business days. The Security Team holds the final say when setting a public disclosure date.
9. Once the fix is confirmed, the Security Team will patch the vulnerability in the next patch or minor release, and backport a patch release into all earlier supported releases. Upon release of the patched version of Velero, we will follow the **Public Disclosure Process**.


## Public Disclosure Process

The Security Team publishes a [public advisory](https://github.com/vmware-tanzu/velero/security/advisories) to the Velero community via GitHub. In most cases, additional communication via Slack, Twitter, mailing lists, blog and other channels will assist in educating Velero users and rolling out the patched release to affected users. 

The Security Team will also publish any mitigating steps users can take until the fix can be applied to their Velero instances. Velero distributors will handle creating and publishing their own security advisories.

 


## Mailing lists



*   Use velero-security.pdl@broadcom.com to report security concerns to the Security Team, who uses the list to privately discuss security issues and fixes prior to disclosure.
*   Join the [Velero Distributors](https://groups.google.com/u/1/g/projectvelero-distributors) mailing list for early private information and vulnerability disclosure. Early disclosure may include mitigating steps and additional information on security patch releases. See below for information on how Velero distributors or vendors can apply to join this list.


## Early Disclosure to Velero Distributors List

The private list is intended to be used primarily to provide actionable information to multiple distributor projects at once. This list is not intended to inform individuals about security issues. 


## Membership Criteria

To be eligible to join the [Velero Distributors](https://groups.google.com/u/1/g/projectvelero-distributors) mailing list, you should:



1. Be an active distributor of Velero.
2. Have a user base that is not limited to your own organization.
3. Have a publicly verifiable track record up to the present day of fixing security issues.
4. Not be a downstream or rebuild of another distributor.
5. Be a participant and active contributor in the Velero community.
6. Accept the Embargo Policy that is outlined below. 
7. Have someone who is already on the list vouch for the person requesting membership on behalf of your distribution.

**The terms and conditions of the Embargo Policy apply to all members of this mailing list. A request for membership represents your acceptance to the terms and conditions of the Embargo Policy.**


## Embargo Policy

The information that members receive on the Velero Distributors mailing list must not be made public, shared, or even hinted at anywhere beyond those who need to know within your specific team, unless you receive explicit approval to do so from the Security Team. This remains true until the public disclosure date/time agreed upon by the list. Members of the list and others cannot use the information for any reason other than to get the issue fixed for your respective distribution's users.

Before you share any information from the list with members of your team who are required to fix the issue, these team members must agree to the same terms, and only be provided with information on a need-to-know basis.

In the unfortunate event that you share information beyond what is permitted by this policy, you must urgently inform the Security Team (velero-security.pdl@broadcom.com) of exactly what information was leaked and to whom. If you continue to leak information and break the policy outlined here, you will be permanently removed from the list.

 


## Requesting to Join

Send new membership requests to projectvelero-distributors@googlegroups.com. In the body of your request please specify how you qualify for membership and fulfill each criterion listed in the Membership Criteria section above.


## Confidentiality, integrity and availability

We consider vulnerabilities leading to the compromise of data confidentiality, elevation of privilege, or integrity to be our highest priority concerns. Availability, in particular in areas relating to DoS and resource exhaustion, is also a serious security concern. The Security Team takes all vulnerabilities, potential vulnerabilities, and suspected vulnerabilities seriously and will investigate them in an urgent and expeditious manner.

Note that we do not currently consider the default settings for Velero to be secure-by-default. It is necessary for operators to explicitly configure settings, role based access control, and other resource related features in Velero to provide a hardened Velero environment. We will not act on any security disclosure that relates to a lack of safe defaults. Over time, we will work towards improved safe-by-default configuration, taking into account backwards compatibility.


================================================
FILE: SUPPORT.md
================================================
# Velero Support

Thanks for trying out Velero! We welcome all feedback, find all the ways to connect with us on our Community page:

- [Velero Community](https://velero.io/community/)

You can find details on the Velero maintainers' support process [here](https://velero.io/docs/main/support-process/).


================================================
FILE: Tiltfile
================================================
# -*- mode: Python -*-

k8s_yaml([
    'config/crd/v1/bases/velero.io_backups.yaml',
    'config/crd/v1/bases/velero.io_backupstoragelocations.yaml',
    'config/crd/v1/bases/velero.io_deletebackuprequests.yaml',
    'config/crd/v1/bases/velero.io_downloadrequests.yaml',
    'config/crd/v1/bases/velero.io_podvolumebackups.yaml',
    'config/crd/v1/bases/velero.io_podvolumerestores.yaml',
    'config/crd/v1/bases/velero.io_backuprepositories.yaml',
    'config/crd/v1/bases/velero.io_restores.yaml',
    'config/crd/v1/bases/velero.io_schedules.yaml',
    'config/crd/v1/bases/velero.io_serverstatusrequests.yaml',
    'config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml',
    'config/crd/v2alpha1/bases/velero.io_datauploads.yaml',
    'config/crd/v2alpha1/bases/velero.io_datadownloads.yaml',    
])

# default values
settings = {
    "default_registry": "docker.io/velero",
    "use_node_agent": False,
    "enable_debug": False,
    "debug_continue_on_start": True,  # Continue the velero process by default when in debug mode
    "create_backup_locations": False,
    "setup-minio": False,
}

# global settings
settings.update(read_json(
    "tilt-resources/tilt-settings.json",
    default = {},
))

k8s_yaml(kustomize('tilt-resources'))
k8s_yaml('tilt-resources/deployment.yaml')
if settings.get("enable_debug"):
    k8s_resource('velero', port_forwards = '2345')
    # TODO: Need to figure out how to apply port forwards for all node-agent pods
if settings.get("use_node_agent"):
    k8s_yaml('tilt-resources/node-agent.yaml')
if settings.get("create_backup_locations"):
    k8s_yaml('tilt-resources/velero_v1_backupstoragelocation.yaml')
if settings.get("setup-minio"):
    k8s_yaml('examples/minio/00-minio-deployment.yaml', allow_duplicates = True)

# By default, Tilt automatically allows Minikube, Docker for Desktop, Microk8s, Red Hat CodeReady Containers, Kind, K3D, and Krucible.
allow_k8s_contexts(settings.get("allowed_contexts"))
default_registry(settings.get("default_registry"))
local_goos = str(local("go env GOOS", quiet = True, echo_off = True)).strip()
git_sha = str(local("git rev-parse HEAD", quiet = True, echo_off = True)).strip()

tilt_helper_dockerfile_header = """
# Tilt image
FROM golang:1.25 as tilt-helper

# Support live reloading with Tilt
RUN wget --output-document /restart.sh --quiet https://raw.githubusercontent.com/windmilleng/rerun-process-wrapper/master/restart.sh  && \
    wget --output-document /start.sh --quiet https://raw.githubusercontent.com/windmilleng/rerun-process-wrapper/master/start.sh && \
    chmod +x /start.sh && chmod +x /restart.sh
"""

additional_docker_helper_commands = """
# Install delve to allow debugging
RUN go install github.com/go-delve/delve/cmd/dlv@latest

RUN wget -qO- https://dl.k8s.io/v1.25.2/kubernetes-client-linux-amd64.tar.gz | tar xvz
RUN wget -qO- https://get.docker.com | sh
"""

additional_docker_build_commands = """
COPY --from=tilt-helper /go/bin/dlv /usr/bin/dlv
COPY --from=tilt-helper /usr/bin/docker /usr/bin/docker
COPY --from=tilt-helper /go/kubernetes/client/bin/kubectl /usr/bin/kubectl
"""

##############################
# Setup Velero
##############################

def get_debug_flag():
    """
    Returns the flag to enable debug building of Velero if debug
    mode is enabled.
    """

    if settings.get('enable_debug'):
        return "DEBUG=1"
    return ""


# Set up a local_resource build of the Velero binary. The binary is written to _tiltbuild/velero.
local_resource(
    "velero_server_binary",
    cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild;PKG=. BIN=velero GOOS=linux GOARCH=amd64 GIT_SHA=' + git_sha + ' VERSION=main GIT_TREE_STATE=dirty OUTPUT_DIR=_tiltbuild ' + get_debug_flag() + ' REGISTRY=' + settings.get("default_registry") + ' ./hack/build.sh',
    deps = ["cmd", "internal", "pkg"],
    ignore = ["pkg/cmd"],
)

local_resource(
    "velero_local_binary",
    cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild/local;PKG=. BIN=velero GOOS=' + local_goos + ' GOARCH=amd64 GIT_SHA=' + git_sha + ' VERSION=main GIT_TREE_STATE=dirty OUTPUT_DIR=_tiltbuild/local ' + get_debug_flag() + ' REGISTRY=' + settings.get("default_registry") + ' ./hack/build.sh',
    deps = ["internal", "pkg/cmd"],
)

local_resource(
    "restic_binary",
    cmd = 'cd ' + '.' + ';mkdir -p _tiltbuild/restic; BIN=velero GOOS=linux GOARCH=amd64 GOARM="" RESTIC_VERSION=0.13.1 OUTPUT_DIR=_tiltbuild/restic ./hack/build-restic.sh',
)

# Note: we need a distro with a bash shell to exec into the Velero container
tilt_dockerfile_header = """
FROM ubuntu:22.04 as tilt

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y ca-certificates tzdata && rm -rf /var/lib/apt/lists/*

WORKDIR /
COPY --from=tilt-helper /start.sh .
COPY --from=tilt-helper /restart.sh .
COPY velero .
COPY restic/restic /usr/bin/restic
"""

dockerfile_contents = "\n".join([
    tilt_helper_dockerfile_header,
    additional_docker_helper_commands,
    tilt_dockerfile_header,
    additional_docker_build_commands,
])

def get_velero_entrypoint():
    """
    Returns the entrypoint for the Velero container image.
    """

    entrypoint = ["sh", "/start.sh"]

    if settings.get("enable_debug"):
        # If debug mode is enabled, start the velero process using Delve
        entrypoint.extend(
            ["dlv", "--listen=:2345", "--headless=true", "--api-version=2", "--accept-multiclient", "exec"])

        # Set whether or not to continue the debugged process on start
        # See https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_exec.md
        if settings.get("debug_continue_on_start"):
            entrypoint.append("--continue")

        entrypoint.append("--")

    entrypoint.append("/velero")

    return entrypoint


# Set up an image build for Velero. The live update configuration syncs the output from the local_resource
# build into the container.
docker_build(
    ref = "velero/velero",
    context = "_tiltbuild",
    dockerfile_contents = dockerfile_contents,
    target = "tilt",
    entrypoint = get_velero_entrypoint(),
    live_update = [
        sync("./_tiltbuild/velero", "/velero"),
        run("sh /restart.sh"),
    ])


##############################
# Setup plugins
##############################

def load_provider_tiltfiles():
    all_providers = settings.get("providers", {})
    enable_providers = settings.get("enable_providers", [])
    providers = []

    ## Load settings only for providers to enable
    for name in enable_providers:
        repo = all_providers.get(name)
        if not repo:
            print("Enabled provider '{}' does not exist in list of supported providers".format(name))
            continue
        file = repo + "/tilt-provider.json"
        if not os.path.exists(file):
            print("Provider settings not found for \"{}\". Please ensure this plugin repository has a tilt-provider.json file included.".format(name))
            continue
        provider_details = read_json(file, default = {})
        if type(provider_details) == "dict":
            provider_details["name"] = name
            if "context" in provider_details:
                provider_details["context"] = os.path.join(repo, "/", provider_details["context"])
            else:
                provider_details["context"] = repo
            if "go_main" not in provider_details:
                provider_details["go_main"] = "main.go"
            providers.append(provider_details)

    return providers


# Enable each provider
def enable_providers(providers):
    if not providers:
        print("No providers to enable.")
        return
    for p in providers:
        enable_provider(p)


# Configures a provider by doing the following:
#
# 1. Enables a local_resource go build of the provider's local binary
# 2. Configures a docker build for the provider, with live updating of the local binary
def enable_provider(provider):
    name = provider.get("name")
    plugin_name = provider.get("plugin_name")

    # Note: we need a distro with a shell to do a copy of the plugin binary
    tilt_dockerfile_header = """
    FROM ubuntu:22.04 as tilt
    WORKDIR /
    COPY --from=tilt-helper /start.sh .
    COPY --from=tilt-helper /restart.sh .
    COPY """ + plugin_name + """ .
    """

    dockerfile_contents = "\n".join([
        tilt_helper_dockerfile_header,
        additional_docker_helper_commands,
        tilt_dockerfile_header,
        additional_docker_build_commands,
    ])

    context = provider.get("context")
    go_main = provider.get("go_main", "main.go")

    live_reload_deps = []
    for d in provider.get("live_reload_deps", []):
        live_reload_deps.append(os.path.join(context, "/", d))

    # Set up a local_resource build of the plugin binary. The main.go path must be provided via go_main option. The binary is written to _tiltbuild/<NAME>.
    local_resource(
        name + "_plugin",
        cmd = 'cd ' + context + ';mkdir -p _tiltbuild;PKG=' + context + ' BIN=' + go_main + ' GOOS=linux GOARCH=amd64 OUTPUT_DIR=_tiltbuild ./hack/build.sh',
        deps = live_reload_deps,
    )

    # Set up an image build for the plugin. The live update configuration syncs the output from the local_resource
    # build into the init container, and that restarts the Velero container.
    docker_build(
        ref = provider.get("image"),
        context = os.path.join(context, "/_tiltbuild/"),
        dockerfile_contents = dockerfile_contents,
        target = "tilt",
        entrypoint = ["/bin/bash", "-c", "cp /" + plugin_name + " /target/."],
        live_update = [
            sync(os.path.join(context, "/_tiltbuild/", plugin_name), os.path.join("/", plugin_name))
        ]
    )


##############################
# Start
#############################

enable_providers(load_provider_tiltfiles())


================================================
FILE: assets/README.md
================================================
# Velero Assets

This folder contains logo images for Velero in gray (for light backgrounds) and white (for dark backgrounds like black t-shirts or dark mode!) – horizontal and stacked… in .eps and .svg.

## Some general guidelines for usage

• Don’t alter the logos/graphics: resize, reformat, recolor. Keep them intact.

• Don’t separate the word mark (Velero) from the icon) – we are still building a strong name and identity – and the logo by itself doesn’t have any strong recognition or association with as yet: so best practice keep the two together. Nike kept its name with the swoosh for quite some time before the swoosh became iconic.

• Don’t append the name to another brand – let it stand alone!

================================================
FILE: changelogs/CHANGELOG-0.10.md
================================================
  - [v0.10.2](#v0102)
  - [v0.10.1](#v0101)
  - [v0.10.0](#v0100)

## v0.10.2
#### 2019-02-28

### Download
- https://github.com/heptio/ark/releases/tag/v0.10.2

### Changes
  * upgrade restic to v0.9.4 & replace --hostname flag with --host (#1156, @skriss)
  * use 'restic stats' instead of 'restic check' to determine if repo exists (#1171, @skriss)
  * Fix concurrency bug in code ensuring restic repository exists (#1235, @skriss)

## v0.10.1
#### 2019-01-10

### Download
- https://github.com/heptio/ark/releases/tag/v0.10.1

### Changes
  * Fix minio setup job command (#1118, @acbramley)
  * Add debugging-install link in doc get-started.md (#1131, @hex108)
  * `ark version`: show full git SHA & combine git tree state indicator with git SHA line (#1124, @skriss)
  * Delete spec.priority in pod restore action (#879, @mwieczorek)
  * Allow to use AWS Signature v1 for creating signed AWS urls (#811, @bashofmann)
  * add multizone/regional support to gcp (#765, @wwitzel3)
  * Fixed the newline output when deleting a schedule. (#1120, @jwhitcraft)
  * Remove obsolete make targets and rename 'make goreleaser' to 'make release' (#1114, @skriss)
  * Update to go 1.11 (#1069, @gliptak)
  * Update CHANGELOGs (#1063, @wwitzel3)
  * Initialize empty schedule metrics on server init (#1054, @cbeneke)
  * Added brew reference (#1051, @omerlh)
  * Remove default token from all service accounts (#1048, @ncdc)
  * Add pprof support to the Ark server (#234, @ncdc)

## v0.10.0
#### 2018-11-15

### Download
- https://github.com/heptio/ark/releases/tag/v0.10.0

### Highlights
- We've introduced two new custom resource definitions, `BackupStorageLocation` and `VolumeSnapshotLocation`, that replace the `Config` CRD from
previous versions. As part of this, you may now configure more than one possible location for where backups and snapshots are stored, and when you
create a `Backup` you can select the location where you'd like that particular backup to be stored. See the [Locations documentation][2] for an overview
of this feature.
- Ark's plugin system has been significantly refactored to improve robustness and ease of development. Plugin processes are now automatically restarted
if they unexpectedly terminate. Additionally, plugin binaries can now contain more than one plugin implementation (e.g. and object store *and* a block store,
or many backup item actions).
- The sync process, which ensures that Backup custom resources exist for each backup in object storage, has been revamped to run much more frequently (once
per minute rather than once per hour), to use significantly fewer cloud provider API calls, and to not generate spurious Kubernetes API errors.
- Ark can now be configured to store all data under a prefix within an object storage bucket. This means that you no longer need a separate bucket per Ark
instance; you can now have all of your clusters' Ark backups go into a single bucket, with each cluster having its own prefix/subdirectory
within that bucket.
- Restic backup data is now automatically stored within the same bucket/prefix as the rest of the Ark data. A separate bucket is no longer required (or allowed).
- Ark resources (backups, restores, schedules) can now be bulk-deleted through the `ark` CLI, using the `--all` or `--selector` flags, or by specifying 
multiple resource names as arguments to the `delete` commands.
- The `ark` CLI now supports waiting for backups and restores to complete with the `--wait` flag for `ark backup create` and `ark restore create`
- Restores can be created directly from the most recent backup for a schedule, using `ark restore create --from-schedule SCHEDULE_NAME`

### Breaking Changes

Heptio Ark v0.10 contains a number of breaking changes.  Upgrading will require some additional steps beyond just updating your client binary and your
container image tag. We've provided a [detailed set of instructions][1] to help you with the upgrade process. **Please read and follow these instructions 
carefully to ensure a successful upgrade!**

- The `Config` CRD has been replaced by `BackupStorageLocation` and `VolumeSnapshotLocation` CRDs. 
- The interface for external plugins (object/block stores, backup/restore item actions) has changed. If you have authored any custom plugins, they'll 
need to be updated for v0.10.
    - The [`ObjectStore.ListCommonPrefixes`](https://github.com/vmware-tanzu/velero/blob/main/pkg/cloudprovider/object_store.go#L50) signature has changed to add a `prefix` parameter.
    - Registering plugins has changed. Create a new plugin server with the `NewServer` function, and register plugins with the appropriate functions. See the [`Server`](https://github.com/vmware-tanzu/velero/blob/main/pkg/plugin/server.go#L37) interface for details.
- The organization of Ark data in object storage has changed. Existing data will need to be moved around to conform to the new layout.

### All Changes
-   [b9de44ff](https://github.com/heptio/ark/commit/b9de44ff)	update docs to reference config/ dir within release tarballs
-   [eace0255](https://github.com/heptio/ark/commit/eace0255)	goreleaser: update example image tags to match version being released
-   [cff02159](https://github.com/heptio/ark/commit/cff02159)	add rbac content, rework get-started for NodePort and publicUrl, add versioning information
-   [fa14255e](https://github.com/heptio/ark/commit/fa14255e)	add content for docs issue 819
-   [22959071](https://github.com/heptio/ark/commit/22959071)	add doc explaining locations
-   [e5556fe6](https://github.com/heptio/ark/commit/e5556fe6)	Added qps and burst to server's client
-   [9ae861c9](https://github.com/heptio/ark/commit/9ae861c9)	Support a separate URL base for pre-signed URLs
-   [698420b6](https://github.com/heptio/ark/commit/698420b6)	Update storage-layout-reorg-v0.10.md
-   [6c9e1f18](https://github.com/heptio/ark/commit/6c9e1f18)	lower some noisy logs to debug level
-   [318fd8a8](https://github.com/heptio/ark/commit/318fd8a8)	add troubleshooting for loadbalancer restores
-   [defb8aa8](https://github.com/heptio/ark/commit/defb8aa8)	remove code that checks directly for a backup from restore controller
-   [7abe1156](https://github.com/heptio/ark/commit/7abe1156)	Move clearing up of metadata before plugin's actions
-   [ec013e6f](https://github.com/heptio/ark/commit/ec013e6f)	Document upgrading plugins in the deployment
-   [d6162e94](https://github.com/heptio/ark/commit/d6162e94)	fix goreleaser bugs
-   [a15df276](https://github.com/heptio/ark/commit/a15df276)	Add correct link and change role
-   [46bed015](https://github.com/heptio/ark/commit/46bed015)	add 0.10 breaking changes warning to readme in main
-   [e3a7d6a2](https://github.com/heptio/ark/commit/e3a7d6a2)	add content for issue 994
-   [400911e9](https://github.com/heptio/ark/commit/400911e9)	address docs issue #978
-   [b818cc27](https://github.com/heptio/ark/commit/b818cc27)	don't require a default provider VSL if there's only 1
-   [90638086](https://github.com/heptio/ark/commit/90638086)	v0.10 changelog
-   [6e2166c4](https://github.com/heptio/ark/commit/6e2166c4)	add docs page on versions and upgrading
-   [18b434cb](https://github.com/heptio/ark/commit/18b434cb)	goreleaser scripts for building/creating a release on a workstation
-   [bb65d67a](https://github.com/heptio/ark/commit/bb65d67a)	update restic prerequisite with min k8s version
-   [b5a2ccd5](https://github.com/heptio/ark/commit/b5a2ccd5)	Silence git detached HEAD advice in build container
-   [67749141](https://github.com/heptio/ark/commit/67749141)	instructions for upgrading to v0.10
-   [516422c2](https://github.com/heptio/ark/commit/516422c2)	sync controller: fill in missing .spec.storageLocation
- 	[195e6aaf](https://github.com/heptio/ark/commit/195e6aaf)	fix bug preventing PV snapshots from v0.10 backups from restoring
- 	[bca58516](https://github.com/heptio/ark/commit/bca58516)	Run 'make update' to update formatting
- 	[573ce7d0](https://github.com/heptio/ark/commit/573ce7d0)	Update formatting script
- 	[90d9be59](https://github.com/heptio/ark/commit/90d9be59)	support restoring/deleting legacy backups with .status.volumeBackups
- 	[ef194972](https://github.com/heptio/ark/commit/ef194972)	rename variables #967
- 	[6d4e702c](https://github.com/heptio/ark/commit/6d4e702c)	fix broken link
- 	[596eea1b](https://github.com/heptio/ark/commit/596eea1b)	restore storageclasses before pvs and pvcs
- 	[f014cab1](https://github.com/heptio/ark/commit/f014cab1)	backup describer: show snapshot summary by default, details optionally
- 	[8acc66d0](https://github.com/heptio/ark/commit/8acc66d0)	remove pvProviderExists param from NewRestoreController
- 	[57ce590f](https://github.com/heptio/ark/commit/57ce590f)	create a struct for multiple return of same type in restore_contoroller #967
- 	[028fafb6](https://github.com/heptio/ark/commit/028fafb6)	Corrected grammatical  error
- 	[db856aff](https://github.com/heptio/ark/commit/db856aff)	Specify return arguments
- 	[9952dfb0](https://github.com/heptio/ark/commit/9952dfb0)	Address #424: Add CRDs to list of prioritized resources
- 	[cf2c2714](https://github.com/heptio/ark/commit/cf2c2714)	fix bugs in GetBackupVolumeSnapshots and add test
- 	[ec124673](https://github.com/heptio/ark/commit/ec124673)	remove all references to Config from docs/examples
- 	[c36131a0](https://github.com/heptio/ark/commit/c36131a0)	remove Config-related code
- 	[406b50a7](https://github.com/heptio/ark/commit/406b50a7)	update restore process using snapshot locations
- 	[268080ad](https://github.com/heptio/ark/commit/268080ad)	avoid panics if can't get block store during deletion
- 	[4a03370f](https://github.com/heptio/ark/commit/4a03370f)	update backup deletion controller for snapshot locations
- 	[38c72b8c](https://github.com/heptio/ark/commit/38c72b8c)	include snapshot locations in created schedule's backup spec
- 	[0ec2de55](https://github.com/heptio/ark/commit/0ec2de55)	azure: update blockstore to allow storing snaps in different resource group
- 	[35bb533c](https://github.com/heptio/ark/commit/35bb533c)	close gzip writer before uploading volumesnapshots file
- 	[da9ed38c](https://github.com/heptio/ark/commit/da9ed38c)	store volume snapshot info as JSON in backup storage
- 	[e24248e0](https://github.com/heptio/ark/commit/e24248e0)	add --volume-snapshot-locations flag to ark backup create
- 	[df07b7dc](https://github.com/heptio/ark/commit/df07b7dc)	update backup code to work with volume snapshot locations
- 	[4af89fa8](https://github.com/heptio/ark/commit/4af89fa8)	add unit test for getDefaultVolumeSnapshotLocations
- 	[02f50b9c](https://github.com/heptio/ark/commit/02f50b9c)	add default-volume-snapshot-locations to server cmd
- 	[1aa712d2](https://github.com/heptio/ark/commit/1aa712d2)	Default and validate VolumeSnapshotLocations
- 	[bbf76985](https://github.com/heptio/ark/commit/bbf76985)	add create CLI command for snapshot locations
- 	[aeb221ea](https://github.com/heptio/ark/commit/aeb221ea)	Add printer for snapshot locations
- 	[ffc612ac](https://github.com/heptio/ark/commit/ffc612ac)	Add volume snapshot CLI get command
- 	[f20342aa](https://github.com/heptio/ark/commit/f20342aa)	Add VolumeLocation and Snapshot.
- 	[7172db8a](https://github.com/heptio/ark/commit/7172db8a)	upgrade to restic v0.9.3
- 	[99adc4fa](https://github.com/heptio/ark/commit/99adc4fa)	Remove broken references to docs that are not existing
- 	[474efde6](https://github.com/heptio/ark/commit/474efde6)	Fixed relative link for image
- 	[41735154](https://github.com/heptio/ark/commit/41735154)	don't require a default backup storage location to exist
- 	[0612c5de](https://github.com/heptio/ark/commit/0612c5de)	templatize error message in DeleteOptions
- 	[66bcbc05](https://github.com/heptio/ark/commit/66bcbc05)	add support for bulk deletion to ark schedule delete
- 	[3af43b49](https://github.com/heptio/ark/commit/3af43b49)	add azure-specific code to support multi-location restic
- 	[d009163b](https://github.com/heptio/ark/commit/d009163b)	update restic to support multiple backup storage locations
- 	[f4c99c77](https://github.com/heptio/ark/commit/f4c99c77)	Change link for the support matrix
- 	[91e45d56](https://github.com/heptio/ark/commit/91e45d56)	Fix broken storage providers link
- 	[ed0eb865](https://github.com/heptio/ark/commit/ed0eb865)	fix backup storage location example YAMLs
- 	[eb709b8f](https://github.com/heptio/ark/commit/eb709b8f)	only sync a backup location if it's changed since last sync
- 	[af3af1b5](https://github.com/heptio/ark/commit/af3af1b5)	clarify Azure resource group usage in docs
- 	[9fdf8513](https://github.com/heptio/ark/commit/9fdf8513)	Minor code cleanup
- 	[2073e15a](https://github.com/heptio/ark/commit/2073e15a)	Fix formatting for live site
- 	[0fc3e8d8](https://github.com/heptio/ark/commit/0fc3e8d8)	add documentation on running Ark on-premises
- 	[e46e89cb](https://github.com/heptio/ark/commit/e46e89cb)	have restic share main Ark bucket
- 	[42b54586](https://github.com/heptio/ark/commit/42b54586)	refactor to make valid dirs part of an object store layout
- 	[8bc7e4f6](https://github.com/heptio/ark/commit/8bc7e4f6)	store backups & restores in backups/, restores/ subdirs in obj storage
- 	[e3232b7e](https://github.com/heptio/ark/commit/e3232b7e)	add support for bulk deletion to ark restore delete
- 	[17be71e1](https://github.com/heptio/ark/commit/17be71e1)	remove deps used for docs gen
- 	[20635106](https://github.com/heptio/ark/commit/20635106)	remove script for generating docs
- 	[6fd9ea9d](https://github.com/heptio/ark/commit/6fd9ea9d)	remove cli reference docs and related scripts
- 	[4833607a](https://github.com/heptio/ark/commit/4833607a)	Fix infinite sleep in fsfreeze container
- 	[7668bfd4](https://github.com/heptio/ark/commit/7668bfd4)	Add links for Portworx plugin support
- 	[468006e6](https://github.com/heptio/ark/commit/468006e6)	Fix Portworx name in doc
- 	[e6b44539](https://github.com/heptio/ark/commit/e6b44539)	Make fsfreeze image building consistent
- 	[fcd27a13](https://github.com/heptio/ark/commit/fcd27a13)	get a new metadata accessor after calling backup item actions
- 	[ffef86e3](https://github.com/heptio/ark/commit/ffef86e3)	Adding support for the AWS_CLUSTER_NAME env variable allowing to claim volumes ownership
- 	[cda3dff8](https://github.com/heptio/ark/commit/cda3dff8)	Document single binary plugins
- 	[f049e078](https://github.com/heptio/ark/commit/f049e078)	Remove ROADMAP.md, update ZenHub link to Ark board
- 	[94617b30](https://github.com/heptio/ark/commit/94617b30)	convert all controllers to use genericController, logContext -> log
- 	[779cb428](https://github.com/heptio/ark/commit/779cb428)	Document SignatureDoesNotMatch error and triaging
- 	[7d8813a9](https://github.com/heptio/ark/commit/7d8813a9)	move ObjectStore mock into pkg/cloudprovider/mocks
- 	[f0edf733](https://github.com/heptio/ark/commit/f0edf733)	add a BackupStore to pkg/persistence that supports prefixes
- 	[af64069d](https://github.com/heptio/ark/commit/af64069d)	create pkg/persistence and move relevant code from pkg/cloudprovider into it
- 	[29d75d72](https://github.com/heptio/ark/commit/29d75d72)	move object and block store interfaces to their own files
- 	[211aa7b7](https://github.com/heptio/ark/commit/211aa7b7)	Set schedule labels to subsequent backups
- 	[d34994cb](https://github.com/heptio/ark/commit/d34994cb)	set azure restic env vars based on default backup location's config
- 	[a50367f1](https://github.com/heptio/ark/commit/a50367f1)	Regenerate CLI docs
- 	[7bc27bbb](https://github.com/heptio/ark/commit/7bc27bbb)	Pin cobra version
- 	[e94277ac](https://github.com/heptio/ark/commit/e94277ac)	Update pflag version
- 	[df69b274](https://github.com/heptio/ark/commit/df69b274)	azure: update documentation and examples
- 	[cb321db2](https://github.com/heptio/ark/commit/cb321db2)	azure: refactor to not use helpers/ pkg, validate all env/config inputs
- 	[9d7ea748](https://github.com/heptio/ark/commit/9d7ea748)	azure: support different RGs/storage accounts per backup location
- 	[cd4e9f53](https://github.com/heptio/ark/commit/cd4e9f53)	azure: fix for breaking change in blob.GetSASURI
- 	[a440029c](https://github.com/heptio/ark/commit/a440029c)	bump Azure SDK version and include storage mgmt package
- 	[b31e25bf](https://github.com/heptio/ark/commit/b31e25bf)	server: remove unused code, replace deprecated func
- 	[729d7339](https://github.com/heptio/ark/commit/729d7339)	controllers: take a newPluginManager func in constructors
- 	[6445dbf1](https://github.com/heptio/ark/commit/6445dbf1)	Update examples and docs for backup locations
- 	[133dc185](https://github.com/heptio/ark/commit/133dc185)	backup sync: process the default location first
- 	[7a1e6d16](https://github.com/heptio/ark/commit/7a1e6d16)	generic controller: allow controllers with only a resync func
- 	[6f7bfe54](https://github.com/heptio/ark/commit/6f7bfe54)	remove Config CRD's BackupStorageProvider & other obsolete code
- 	[bd4d97b9](https://github.com/heptio/ark/commit/bd4d97b9)	move server's defaultBackupLocation into config struct
- 	[0e94fa37](https://github.com/heptio/ark/commit/0e94fa37)	update sync controller for backup locations
- 	[2750aa71](https://github.com/heptio/ark/commit/2750aa71)	Use backup storage location during restore
- 	[20f89fbc](https://github.com/heptio/ark/commit/20f89fbc)	use the default backup storage location for restic
- 	[833a6307](https://github.com/heptio/ark/commit/833a6307)	Add storage location to backup get/describe
- 	[cf7c8587](https://github.com/heptio/ark/commit/cf7c8587)	download request: fix setting of log level for plugin manager
- 	[3234124a](https://github.com/heptio/ark/commit/3234124a)	backup deletion: fix setting of log level in plugin manager
- 	[74043ab4](https://github.com/heptio/ark/commit/74043ab4)	download request controller: fix bug in determining expiration
- 	[7007f198](https://github.com/heptio/ark/commit/7007f198)	refactor download request controller test and add test cases
- 	[8f534615](https://github.com/heptio/ark/commit/8f534615)	download request controller: use backup location for object store
- 	[bab08ed1](https://github.com/heptio/ark/commit/bab08ed1)	backup deletion controller: use backup location for object store
- 	[c6f488f7](https://github.com/heptio/ark/commit/c6f488f7)	Use backup location in the backup controller
- 	[06b5af44](https://github.com/heptio/ark/commit/06b5af44)	add create and get CLI commands for backup locations
- 	[adbcd370](https://github.com/heptio/ark/commit/adbcd370)	add --default-backup-storage-location flag to server cmd
- 	[2a34772e](https://github.com/heptio/ark/commit/2a34772e)	Add --storage-location argument to create commands
- 	[56f16170](https://github.com/heptio/ark/commit/56f16170)	Correct metadata for BackupStorageLocationList
- 	[345c3c39](https://github.com/heptio/ark/commit/345c3c39)	Generate clients for BackupStorageLocation
- 	[a25eb032](https://github.com/heptio/ark/commit/a25eb032)	Add BackupStorageLocation API type
- 	[575c4ddc](https://github.com/heptio/ark/commit/575c4ddc)	apply annotations on single line, no restore mode
- 	[030ea6c0](https://github.com/heptio/ark/commit/030ea6c0)	minor word updates and command wrapping
- 	[d32f8dbb](https://github.com/heptio/ark/commit/d32f8dbb)	Update hooks/fsfreeze example
- 	[342a1c64](https://github.com/heptio/ark/commit/342a1c64)	add an ark bug command
- 	[9c11ba90](https://github.com/heptio/ark/commit/9c11ba90)	Add DigitalOcean to S3-compatible backup providers
- 	[ea50ebf2](https://github.com/heptio/ark/commit/ea50ebf2)	Fix map merging logic
- 	[9508e4a2](https://github.com/heptio/ark/commit/9508e4a2)	Switch Config CRD elements to server flags
- 	[0c3ac67b](https://github.com/heptio/ark/commit/0c3ac67b)	start using a namespaced label on restored objects, deprecate old label
- 	[6e53aa03](https://github.com/heptio/ark/commit/6e53aa03)	Bring back 'make local'
- 	[5acccaa7](https://github.com/heptio/ark/commit/5acccaa7)	add bulk deletion support to ark backup delete
- 	[3aa241a7](https://github.com/heptio/ark/commit/3aa241a7)	Preserve node ports during restore when annotations hold specification.
- 	[c5f5862c](https://github.com/heptio/ark/commit/c5f5862c)	Add --wait support to ark backup create
- 	[eb6f742b](https://github.com/heptio/ark/commit/eb6f742b)	Document CRD not found errors
- 	[fb4d507c](https://github.com/heptio/ark/commit/fb4d507c)	Extend doc about synchronization
- 	[e7bb5926](https://github.com/heptio/ark/commit/e7bb5926)	Add --wait support to `ark restore create`
- 	[8ce513ac](https://github.com/heptio/ark/commit/8ce513ac)	Only delete unused backup if they are complete
- 	[1c26fbde](https://github.com/heptio/ark/commit/1c26fbde)	remove SnapshotService, replace with direct BlockStore usage
- 	[13051218](https://github.com/heptio/ark/commit/13051218)	Refactor plugin management
- 	[74dbf387](https://github.com/heptio/ark/commit/74dbf387)	Add restore failed phase and metrics
- 	[8789ae5c](https://github.com/heptio/ark/commit/8789ae5c)	update testify to latest released version
- 	[fe9d61a9](https://github.com/heptio/ark/commit/fe9d61a9)	Add schedule command info to quickstart
- 	[ca5656c2](https://github.com/heptio/ark/commit/ca5656c2)	fix bug preventing backup item action item updates from saving
- 	[d2e629f5](https://github.com/heptio/ark/commit/d2e629f5)	Delete backups from etcd if they're not in storage
- 	[625ba481](https://github.com/heptio/ark/commit/625ba481)	Fix ZenHub link on Readme.md
- 	[dcae6eb0](https://github.com/heptio/ark/commit/dcae6eb0)	Update gcp-config.md
- 	[06d6665a](https://github.com/heptio/ark/commit/06d6665a)	check s3URL scheme upon AWS ObjectStore Init()
- 	[cc359f6e](https://github.com/heptio/ark/commit/cc359f6e)	Add contributor docs for our ZenHub usage
- 	[f6204562](https://github.com/heptio/ark/commit/f6204562)	cleanup service account action log statement
- 	[450fa72f](https://github.com/heptio/ark/commit/450fa72f)	Initialize schedule Prometheus metrics to have them created beforehand (see https://prometheus.io/docs/practices/instrumentation/#avoid-missing-metrics)
- 	[39c4267a](https://github.com/heptio/ark/commit/39c4267a)	Clarify that object storage should per-cluster
- 	[78cbdf95](https://github.com/heptio/ark/commit/78cbdf95)	delete old deletion requests for backup when processing a new one
- 	[85a61b8e](https://github.com/heptio/ark/commit/85a61b8e)	return nil error if 404 encountered when deleting snapshots
- 	[a2a7dbda](https://github.com/heptio/ark/commit/a2a7dbda)	fix tagging latest by using make's ifeq
- 	[b4a52e45](https://github.com/heptio/ark/commit/b4a52e45)	Add commands for context to the bug template
- 	[3efe6770](https://github.com/heptio/ark/commit/3efe6770)	Update Ark library code to work with Kubernetes 1.11
- 	[7e8c8c69](https://github.com/heptio/ark/commit/7e8c8c69)	Add some basic troubleshooting commands
- 	[d1955120](https://github.com/heptio/ark/commit/d1955120)	require namespace for backups/etc. to exist at server startup
- 	[683f7afc](https://github.com/heptio/ark/commit/683f7afc)	switch to using .status.startTimestamp for sorting backups
- 	[b71a37db](https://github.com/heptio/ark/commit/b71a37db)	Record backup completion time before uploading
- 	[217084cd](https://github.com/heptio/ark/commit/217084cd)	Add example ark version command to issue templates
- 	[040788bb](https://github.com/heptio/ark/commit/040788bb)	Add minor improvements and aws example<Plug>delimitMateCR
- 	[5b89f7b6](https://github.com/heptio/ark/commit/5b89f7b6)	Skip backup sync if it already exists in k8s
- 	[c6050845](https://github.com/heptio/ark/commit/c6050845)	restore controller: switch to 'c' for receiver name
- 	[706ae07d](https://github.com/heptio/ark/commit/706ae07d)	enable a schedule to be provided as the source for a restore
- 	[aea68414](https://github.com/heptio/ark/commit/aea68414)	fix up Slack link in troubleshooting on main branch
- 	[bb8e2e91](https://github.com/heptio/ark/commit/bb8e2e91)	Document how to run the Ark server locally
- 	[dc84e591](https://github.com/heptio/ark/commit/dc84e591)	Remove outdated namespace deletion content
- 	[23abbc9a](https://github.com/heptio/ark/commit/23abbc9a)	fix paths
- 	[f0426538](https://github.com/heptio/ark/commit/f0426538)	use posix-compliant conditional for checking TAG_LATEST
- 	[cf336d80](https://github.com/heptio/ark/commit/cf336d80)	Added new templates
- 	[795dc262](https://github.com/heptio/ark/commit/795dc262)	replace pkg/restore's osFileSystem with pkg/util/filesystem's
- 	[eabef085](https://github.com/heptio/ark/commit/eabef085)	Update generated Ark code based on the 1.11 k8s.io/code-generator script
- 	[f5eac0b4](https://github.com/heptio/ark/commit/f5eac0b4)	Update vendored library code for Kubernetes 1.11

[1]: https://heptio.github.io/velero/v0.10.0/upgrading-to-v0.10
[2]: locations.md


================================================
FILE: changelogs/CHANGELOG-0.11.md
================================================
## v0.11.1
#### 2019-05-17

### Download
- https://github.com/heptio/velero/releases/tag/v0.11.1

### Highlights
* Added the `velero migrate-backups` command to migrate legacy Ark backup metadata to the current Velero format in object storage. This command needs to be run in preparation for upgrading to v1.0, **if** you have backups that were originally created prior to v0.11 (i.e. when the project was named Ark).

## v0.11.0
#### 2019-02-28

### Download
- https://github.com/heptio/velero/releases/tag/v0.11.0

### Highlights
* Heptio Ark is now Velero! This release is the first one to use the new name. For details on the changes and how to migrate to v0.11, see the [migration instructions][1]. **Please follow the instructions to ensure a successful upgrade to v0.11.**
* Restic has been upgraded to v0.9.4, which brings significantly faster restores thanks to a new multi-threaded restorer.
* Velero now waits for terminating namespaces and persistent volumes to delete before attempting to restore them, rather than trying and failing to restore them while they're being deleted.

### All Changes
* Fix concurrency bug in code ensuring restic repository exists (#1235, @skriss)
* Wait for PVs and namespaces to delete before attempting to restore them. (#826, @nrb)
* Set the zones for GCP regional disks on restore. This requires the `compute.zones.get` permission on the GCP serviceaccount in order to work correctly. (#1200, @nrb)
* Renamed Heptio Ark to Velero. Changed internal imports, environment variables, and binary name. (#1184, @nrb)
* use 'restic stats' instead of 'restic check' to determine if repo exists (#1171, @skriss)
* upgrade restic to v0.9.4 & replace --hostname flag with --host (#1156, @skriss)
* Clarify restore log when object unchanged (#1153, @daved)
* Add backup-version file in backup tarball. (#1117, @wwitzel3)
* add ServerStatusRequest CRD and show server version in `ark version` output (#1116, @skriss)

[1]: https://heptio.github.io/velero/v0.11.0/migrating-to-velero


================================================
FILE: changelogs/CHANGELOG-0.3.md
================================================
- [v0.3.3](#v033)
- [v0.3.2](#v032)
- [v0.3.1](#v031)
- [v0.3.0](#v030)

## v0.3.3
#### 2017-08-10
### Download
  - https://github.com/heptio/ark/tree/v0.3.3

### Bug Fixes
  * Treat the first field in a schedule's cron expression as minutes, not seconds


## v0.3.2
#### 2017-08-07
### Download
  - https://github.com/heptio/ark/tree/v0.3.2

### New Features
  * Add client-go auth provider plugins for Azure, GCP, OIDC


## v0.3.1
#### 2017-08-03
### Download
  - https://github.com/heptio/ark/tree/v0.3.1

### Bug Fixes
  * Fix Makefile VERSION


## v0.3.0
#### 2017-08-03
### Download
  - https://github.com/heptio/ark/tree/v0.3.0

### All New Features
  *  Initial Release


================================================
FILE: changelogs/CHANGELOG-0.4.md
================================================
- [v0.4.0](#v040)

## v0.4.0
#### 2017-09-14
### Download
  - https://github.com/heptio/ark/tree/v0.4.0

### Breaking changes
  * Snapshotting and restoring volumes is now enabled by default
  * The --namespaces flag for 'ark restore create' has been replaced by --include-namespaces and
    --exclude-namespaces

### New features
  * Support for S3 SSE with KMS
  * Cloud provider configurations are validated at startup
  * The persistentVolumeProvider is now optional
  * Restore objects are garbage collected
  * Each backup now has an associated log file, viewable via 'ark backup logs'
  * Each restore now has an associated log file, viewable via 'ark restore logs'
  * Add --include-resources/--exclude-resources for restores

### Bug fixes
  * Only save/use iops for io1 volumes on AWS
  * When restoring, try to retrieve the Backup directly from object storage if it's not found
  * When syncing Backups from object storage to Kubernetes, don't return at the first error
    encountered
  * More closely match how kubectl performs kubeconfig resolution
  * Increase default Azure API request timeout to 2 minutes
  * Update Azure diskURI to match diskName


================================================
FILE: changelogs/CHANGELOG-0.5.md
================================================
- [v0.5.1](#v051)
- [v0.5.0](#v050)

## v0.5.1
#### 2017-11-06
### Download
  - https://github.com/heptio/ark/tree/v0.5.1

### Bug fixes
  * If a Service is headless, retain ClusterIP = None when backing up and restoring.
  * Use the specified --label-selector when listing backups, schedules, and restores.
  * Restore namespace mapping functionality that was accidentally broken in 0.5.0.
  * Always include namespaces in the backup, regardless of the --include-cluster-resources setting.


## v0.5.0
#### 2017-10-26
### Download
  - https://github.com/heptio/ark/tree/v0.5.0

### Breaking changes
  * The backup tar file format has changed. Backups created using previous versions of Ark cannot be restored using v0.5.0.
  * When backing up one or more specific namespaces, cluster-scoped resources are no longer backed up by default, with the exception of PVs that are used within the target namespace(s). Cluster-scoped resources can still be included by explicitly specifying `--include-cluster-resources`.

### New features
  * Add customized user-agent string for Ark CLI
  * Switch from glog to logrus
  * Exclude nodes from restoration
  * Add a FAQ
  * Record PV availability zone and use it when restoring volumes from snapshots
  * Back up the PV associated with a PVC
  * Add `--include-cluster-resources` flag to `ark backup create`
  * Add `--include-cluster-resources` flag to `ark restore create`
  * Properly support resource restore priorities across cluster-scoped and namespace-scoped resources
  * Support `ark create ...` and `ark get ...`
  * Make ark run as cluster-admin
  * Add pod exec backup hooks
  * Support cross-compilation & upgrade to go 1.9
  
### Bug fixes
  * Make config change detection more robust


================================================
FILE: changelogs/CHANGELOG-0.6.md
================================================
- [v0.6.0](#v060)

## v0.6.0
#### 2017-11-30
### Download
  - https://github.com/heptio/ark/tree/v0.6.0

### Highlights
  * **Plugins** - We now support user-defined plugins that can extend Ark functionality to meet your custom backup/restore needs without needing to be compiled into the core binary. We support pluggable block and object stores as well as per-item backup and restore actions that can execute arbitrary logic, including modifying the items being backed up or restored. For more information see the [documentation](docs/plugins.md), which includes a reference to a fully-functional sample plugin repository. (#174 #188 #206 #213 #215 #217 #223 #226)
  * **Describers** - The Ark CLI now includes `describe` commands for `backups`, `restores`, and `schedules` that provide human-friendly representations of the relevant API objects.

### Breaking Changes
  * The config object format has changed. In order to upgrade to v0.6.0, the config object will have to be updated to match the new format. See the [examples](examples) and [documentation](docs/config-definition.md) for more information.
  * The restore object format has changed. The `warnings` and `errors` fields are now ints containing the counts, while full warnings and errors are now stored in the object store instead of etcd. Restore objects created prior to v.0.6.0 should be deleted, or a new bucket used, and the old restore objects deleted from Kubernetes (`kubectl -n heptio-ark delete restore --all`).

### All New Features
  * Add `ark plugin add` and `ark plugin remove` commands #217, @skriss
  * Add plugin support for block/object stores, backup/restore item actions #174 #188 #206 #213 #215 #223 #226, @skriss @ncdc
  * Improve Azure deployment instructions #216, @ncdc
  * Change default TTL for backups to 30 days #204, @nrb
  * Improve logging for backups and restores #199, @ncdc
  * Add `ark backup describe`, `ark schedule describe` #196, @ncdc
  * Add `ark restore describe` and move restore warnings/errors to object storage #173 #201 #202, @ncdc
  * Upgrade to client-go v5.0.1, kubernetes v1.8.2 #157, @ncdc
  * Add Travis CI support #165 #166, @ncdc

### Bug Fixes
  * Fix log location hook prefix stripping #222, @ncdc
  * When running `ark backup download`, remove file if there's an error #154, @ncdc
  * Update documentation for AWS KMS Key alias support #163, @lli-hiya
  * Remove clock from `volume_snapshot_action` #137, @athampy


================================================
FILE: changelogs/CHANGELOG-0.7.md
================================================
- [v0.7.1](#v071)
- [v0.7.0](#v070)

## v0.7.1
#### 2018-02-22
### Download
  - https://github.com/heptio/ark/releases/tag/v0.7.1

### Bug Fixes:
  * Run the Ark server in its own namespace, separate from backups/schedules/restores/config (#322, @ncdc)


## v0.7.0
#### 2018-02-15
### Download
  - https://github.com/heptio/ark/releases/tag/v0.7.0

### New Features:
  * Run the Ark server in any namespace (#272, @ncdc)
  * Add ability to delete backups and their associated data (#252, @skriss)
  * Support both pre and post backup hooks (#243, @ncdc)

### Bug Fixes / Other Changes:
  * Switch from Update() to Patch() when updating Ark resources (#241, @skriss)
  * Don't fail the backup if a PVC is not bound to a PV (#256, @skriss)
  * Restore serviceaccounts prior to workload controllers (#258, @ncdc)
  * Stop removing annotations from PVs when restoring them (#263, @skriss)
  * Update GCP client libraries (#249, @skriss)
  * Clarify backup and restore creation messages (#270, @nrb)
  * Update S3 bucket creation docs for us-east-1 (#285, @lypht)


================================================
FILE: changelogs/CHANGELOG-0.8.md
================================================
- [v0.8.3](#v083)
- [v0.8.2](#v082)
- [v0.8.1](#v081)
- [v0.8.0](#v080)

## v0.8.3
#### 2018-06-29
### Download
  - https://github.com/heptio/ark/releases/tag/v0.8.3

### Bug Fixes:
  * Don't restore backup and restore resources to avoid possible data corruption (#622, @ncdc)


## v0.8.2
#### 2018-06-01
### Download
  - https://github.com/heptio/ark/releases/tag/v0.8.2

### Bug Fixes:
  * Don't crash when a persistent volume claim is missing spec.volumeName (#520, @ncdc)


## v0.8.1
#### 2018-04-23
### Download
  - https://github.com/heptio/ark/releases/tag/v0.8.1

### Bug Fixes:
  * Azure: allow pre-v0.8.0 backups with disk snapshots to be restored and deleted (#446 #449, @skriss)


## v0.8.0
#### 2018-04-19
### Download
  - https://github.com/heptio/ark/releases/tag/v0.8.0

### Highlights:
  * Backup deletion has been completely revamped to make it simpler and less error-prone. As a user, you still use the `ark backup delete` command to request deletion of a backup and its associated cloud
  resources; behind the scenes, we've switched to using a new `DeleteBackupRequest` Custom Resource and associated controller for processing deletion requests.
  * We've reduced the number of required fields in the Ark config. For Azure, `location` is no longer required, and for GCP, `project` is not needed.
  * Ark now copies tags from volumes to snapshots during backup, and from snapshots to new volumes during restore. 

### Breaking Changes:
  * Ark has moved back to a single namespace (`heptio-ark` by default) as part of #383.

### All New Features:
  * Add global `--kubecontext` flag to Ark CLI (#296, @blakebarnett)
  * Azure: support cross-resource group restores of volumes (#356 #378, @skriss)
  * AWS/Azure/GCP: copy tags from volumes to snapshots, and from snapshots to volumes (#341, @skriss)
  * Replace finalizer for backup deletion with `DeleteBackupRequest` custom resource & controller (#383 #431, @ncdc @nrb)
  * Don't log warnings during restore if an identical object already exists in the cluster (#405, @nrb)
  * Add bash & zsh completion support (#384, @containscafeine)
  
### Bug Fixes / Other Changes:
  * Error from the Ark CLI if attempting to restore a non-existent backup (#302, @ncdc)
  * Enable running the Ark server locally for development purposes (#334, @ncdc)
  * Add examples to `ark schedule create` documentation (#331, @lypht)
  * GCP: Remove `project` requirement from Ark config (#345, @skriss)
  * Add `--from-backup` flag to `ark restore create` and allow custom restore names (#342 #409, @skriss)
  * Azure: remove `location` requirement from Ark config (#344, @skriss)
  * Add documentation/examples for storing backups in IBM Cloud Object Storage (#321, @roytman)
  * Reduce verbosity of hooks logging (#362, @skriss)
  * AWS: Add minimal IAM policy to documentation (#363 #419, @hopkinsth)
  * Don't restore events (#374, @sanketjpatel)
  * Azure: reduce API polling interval from 60s to 5s (#359, @skriss)
  * Switch from hostPath to emptyDir volume type for minio example (#386, @containscafeine)
  * Add limit ranges as a prioritized resource for restores (#392, @containscafeine)
  * AWS: Add documentation on using Ark with kube2iam (#402, @domderen)
  * Azure: add node selector so Ark pod is scheduled on a linux node (#415, @ffd2subroutine)
  * Error from the Ark CLI if attempting to get logs for a non-existent restore (#391, @containscafeine)
  * GCP: Add minimal IAM policy to documentation (#429, @skriss @jody-frankowski)

### Upgrading from v0.7.1:
  Ark v0.7.1 moved the Ark server deployment into a separate namespace, `heptio-ark-server`. As of v0.8.0 we've
  returned to a single namespace, `heptio-ark`, for all Ark-related resources. If you're currently running v0.7.1,
  here are the steps you can take to upgrade:

1. Execute the steps from the **Credentials and configuration** section for your cloud:
    * [AWS](https://heptio.github.io/velero/v0.8.0/aws-config#credentials-and-configuration)
    * [Azure](https://heptio.github.io/velero/v0.8.0/azure-config#credentials-and-configuration)
    * [GCP](https://heptio.github.io/velero/v0.8.0/gcp-config#credentials-and-configuration)

    When you get to the secret creation step, if you don't have your `credentials-ark` file handy, 
    you can copy the existing secret from your `heptio-ark-server` namespace into the `heptio-ark` namespace:
    ```bash
    kubectl get secret/cloud-credentials -n heptio-ark-server --export -o json | \
      jq '.metadata.namespace="heptio-ark"' | \
      kubectl apply -f -
    ```

2. You can now safely delete the `heptio-ark-server` namespace:
    ```bash
    kubectl delete namespace heptio-ark-server
    ```

3. Execute the commands from the **Start the server** section for your cloud:
    * [AWS](https://heptio.github.io/velero/v0.8.0/aws-config#start-the-server)
    * [Azure](https://heptio.github.io/velero/v0.8.0/azure-config#start-the-server)
    * [GCP](https://heptio.github.io/velero/v0.8.0/gcp-config#start-the-server)


================================================
FILE: changelogs/CHANGELOG-0.9.md
================================================
  - [v0.9.11](#v0911)
  - [v0.9.10](#v0910)
  - [v0.9.9](#v099)
  - [v0.9.8](#v098)
  - [v0.9.7](#v097)
  - [v0.9.6](#v096)
  - [v0.9.5](#v095)
  - [v0.9.4](#v094)
  - [v0.9.3](#v093)
  - [v0.9.2](#v092)
  - [v0.9.1](#v091)
  - [v0.9.0](#v090)

## v0.9.11
#### 2018-11-08
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.11

### Bug Fixes
  * Fix bug preventing PV snapshots from being restored (#1040, @ncdc)


## v0.9.10
#### 2018-11-01
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.10

### Bug Fixes
  * restore storageclasses before pvs and pvcs (#594, @shubheksha)
  * AWS: Ensure that the order returned by ListObjects is consistent (#999, @bashofmann)
  * Add CRDs to list of prioritized resources (#424, @domenicrosati)
  * Verify PV doesn't exist before creating new volume (#609, @nrb)
  * Update README.md - Grammar mistake corrected (#1018, @midhunbiju)


## v0.9.9
#### 2018-10-24
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.9

### Bug Fixes
  * Check if initContainers key exists before attempting to remove volume mounts. (#927, @skriss)


## v0.9.8
#### 2018-10-18
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.8

### Bug Fixes
  * Discard service account token volume mounts from init containers on restore (#910, @james-powis)
  * Support --include-cluster-resources flag when creating schedule (#942, @captjt)
  * Remove logic to get a GCP project (#926, @shubheksha)
  * Only try to back up PVCs linked PV if the PVC's phase is Bound (#920, @skriss)
  * Claim ownership of new AWS volumes on Kubernetes cluster being restored into (#801, @ljakimczuk)
  * Remove timeout check when taking snapshots (#928, @carlisia)


## v0.9.7
#### 2018-10-04
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.7

### Bug Fixes
  * Preserve explicitly-specified node ports during restore (#712, @timoreimann)
  * Enable restoring resources with ownerReference set (#837, @mwieczorek)
  * Fix error when restoring ExternalName services (#869, @shubheksha)
  * remove restore log helper for accurate line numbers (#891, @skriss)
  * Display backup StartTimestamp in `ark backup get` output (#894, @marctc)
  * Fix restic restores when using namespace mappings (#900, @skriss)


## v0.9.6
#### 2018-09-21
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.6

### Bug Fixes
  * Discard service account tokens from non-default service accounts on restore (#843, @james-powis)
  * Update Docker images to use `alpine:3.8` (#852, @nrb)


## v0.9.5
#### 2018-09-17
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.5

### Bug Fixes
  * Fix issue causing restic restores not to work (#834, @skriss)


## v0.9.4
#### 20180-09-05
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.4

### Bug Fixes
  * Terminate plugin clients to resolve memory leaks (#797, @skriss)
  * Fix nil map errors when merging annotations (#812, @nrb)


## v0.9.3
#### 2018-08-10
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.3
### Bug Fixes
  * Initialize Prometheus metrics when creating a new schedule (#689, @lemaral)


## v0.9.2
#### 2018-07-26
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.2) - 2018-07-26

### Bug Fixes:
  * Fix issue where modifications made by backup item actions were not being saved to backup tarball (#704, @skriss)


## v0.9.1
#### 2018-07-23
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.1

### Bug Fixes:
  * Require namespace for Ark's CRDs to already exist at server startup (#676, @skriss)
  * Require all Ark CRDs to exist at server startup (#683, @skriss)
  * Fix `latest` tagging in Makefile (#690, @skriss)
  * Make Ark compatible with clusters that don't have the `rbac.authorization.k8s.io/v1` API group (#682, @nrb)
  * Don't consider missing snapshots an error during backup deletion, limit backup deletion requests per backup to 1 (#687, @skriss)


## v0.9.0
#### 2018-07-06
### Download
  - https://github.com/heptio/ark/releases/tag/v0.9.0

### Highlights:
  * Ark now has support for backing up and restoring Kubernetes volumes using a free open-source backup tool called [restic](https://github.com/restic/restic).
    This provides users an out-of-the-box solution for backing up and restoring almost any type of Kubernetes volume, whether or not it has snapshot support
    integrated with Ark. For more information, see the [documentation](https://github.com/vmware-tanzu/velero/blob/main/docs/restic.md).
  * Support for Prometheus metrics has been added! View total number of backup attempts (including success or failure), total backup size in bytes, and backup
    durations. More metrics coming in future releases!

### All New Features:
  * Add restic support (#508 #532 #533 #534 #535 #537 #540 #541 #545 #546 #547 #548 #555 #557 #561 #563 #569 #570 #571 #606 #608 #610 #621 #631 #636, @skriss)
  * Add prometheus metrics (#531 #551 #564, @ashish-amarnath @nrb)
  * When backing up a service account, include cluster roles/cluster role bindings that reference it (#470, @skriss)
  * When restoring service accounts, copy secrets/image pull secrets into the target cluster even if the service account already exists (#403, @nrb)

### Bug Fixes / Other Changes:
  * Upgrade to Kubernetes 1.10 dependencies (#417, @skriss)
  * Upgrade to go 1.10 and alpine 3.7 (#456, @skriss)
  * Display no excluded resources/namespaces as `<none>` rather than `*` (#453, @nrb)
  * Skip completed jobs and pods when restoring (#463, @nrb)
  * Set namespace correctly when syncing backups from object storage (#472, @skriss)
  * When building on macOS, bind-mount volumes with delegated config (#478, @skriss)
  * Add replica sets and daemonsets to cohabiting resources so they're not backed up twice (#482 #485, @skriss)
  * Shut down the Ark server gracefully on SIGINT/SIGTERM (#483, @skriss)
  * Only back up resources that support GET and DELETE in addition to LIST and CREATE (#486, @nrb)
  * Show a better error message when trying to get an incomplete restore's logs (#496, @nrb)
  * Stop processing when setting a backup deletion request's phase to `Deleting` fails (#500, @nrb)
  * Add library code to install Ark's server components (#437 #506, @marpaia)
  * Properly handle errors when backing up additional items (#512, @carlpett)
  * Run post hooks even if backup actions fail (#514, @carlpett)
  * GCP: fail backup if upload to object storage fails (#510, @nrb)
  * AWS: don't require `region` as part of backup storage provider config (#455, @skriss)
  * Ignore terminating resources while doing a backup (#526, @yastij)
  * Log to stdout instead of stderr (#553, @ncdc)
  * Move sample minio deployment's config to an emptyDir (#566, @runyontr)
  * Add `omitempty` tag to optional API fields (@580, @nikhita)
  * Don't restore PVs with a reclaim policy of `Delete` and no snapshot (#613, @ncdc)
  * Don't restore mirror pods (#619, @ncdc)

### Docs Contributors:
  * @gianrubio
  * @castrojo
  * @dhananjaysathe
  * @c-knowles
  * @mattkelly
  * @ae-v
  * @hamidzr


================================================
FILE: changelogs/CHANGELOG-1.0.md
================================================
## v1.0.0
#### 2019-05-20

### Highlights
- We've added a new command, `velero install`, to make it easier to get up and running with Velero. This CLI command replaces the static YAML installation files that were previously part of release tarballs. See the updated [install instructions][3] for more information.
- We've made a number of improvements to the plugin framework:
    - we've reorganized the relevant packages to minimize the import surface for plugin authors
    - all plugins are now wrapped in panic handlers that will report information on panics back to Velero
    - Velero's `--log-level` flag is now passed to plugin implementations
    - Errors logged within plugins are now annotated with the file/line of where the error occurred
    - Restore item actions can now optionally return a list of additional related items that should be restored
    - Restore item actions can now indicate that an item *should not* be restored
- For Azure installation, the `cloud-credentials` secret can now be created from a file containing a list of environment variables. Note that `velero install` always uses this method of providing credentials for Azure. For more details, see [Run on Azure][0].
- We've added a new phase, `PartiallyFailed`, for both backups and restores. This new phase is used for backups/restores that successfully process some but not all of their items.
- We removed all legacy Ark references, including API types, prometheus metrics, restic & hook annotations, etc.
- The restic integration remains a **beta feature**. Please continue to try it out and provide feedback, and we'll be working over the next couple of releases to bring it to GA.

### Breaking Changes

#### API
* All legacy Ark data types and pre-1.0 compatibility code has been removed. Users should migrate any backups created pre-v0.11.0 with the `velero migrate-backups` command, available in [v0.11.1][2].

#### Image
* The base container image has been switched to `ubuntu:bionic`

#### Labels/Annotations/Metrics
* The "ark" annotations for specifying hooks are no longer supported, and have been replaced with "velero"-based equivalents.
* The "ark" annotation for specifying restic backups is no longer supported, and has been replaced with a "velero"-based equivalent.
* The "ark" prometheus metrics no longer exist, and have been replaced with "velero"-based equivalents.

#### Plugin Development
* `BlockStore` plugins are now named `VolumeSnapshotter` plugins
* Plugin APIs have moved to reduce the import surface:
    * Plugin gRPC servers live in `github.com/heptio/velero/pkg/plugin/framework`
    * Plugin interface types live in `github.com/heptio/velero/pkg/plugin/velero`
* RestoreItemAction interface now takes the original item from the backup as a parameter
* RestoreItemAction plugins can now return additional items to restore
* RestoreItemAction plugins can now skip restoring an item
* Plugins may now send stack traces with errors to the Velero server, so that the errors may be put into the server log
* Plugins must now be "namespaced," using `example.domain.com/plugin-name` format
    * For external ObjectStore and VolumeSnapshotter plugins. this name will also be the provider name in BackupStorageLoction and VolumeSnapshotLocation objects
* `--log-level` flag is now passed to all plugins

#### Validation
* Configs for Azure, AWS, and GCP are now checked for invalid or extra keys, and the server is halted if any are found

### Download
- https://github.com/heptio/velero/releases/tag/v1.0.0

### Container Image
`gcr.io/heptio-images/velero:v1.0.0`

### Documentation
https://velero.io/docs/v1.0.0/

### Upgrading
To upgrade from a previous version of Velero, see our [upgrade instructions][1].

### All Changes
* Change base images to ubuntu:bionic (#1488, @skriss)
* Expose the timestamp of the last successful backup in a gauge (#1448, @fabito)
* check backup existence before download (#1447, @fabito)
* Use `latest` image tag if no version information is provided at build time (#1439, @nrb)
* switch from `restic stats` to `restic snapshots` for checking restic repository existence (#1416, @skriss)
* GCP: add optional 'project' config to volume snapshot location for if snapshots are in a different project than the IAM account (#1405, @skriss)
* Disallow bucket names starting with '-' (#1407, @nrb)
* Shorten label values when they're longer than 63 characters (#1392, @anshulc)
* Fail backup if it already exists in object storage. (#1390, @ncdc,carlisia)
* Add PartiallyFailed phase for backups, log + continue on errors during backup process (#1386, @skriss)
* Remove deprecated "hooks" for backups (they've been replaced by "pre hooks") (#1384, @skriss)
* Restic repo ensurer: return error if new repository does not become ready within a minute, and fix channel closing/deletion (#1367, @skriss)
* Support non-namespaced names for built-in plugins (#1366, @nrb)
* Change container base images to debian:stretch-slim and upgrade to go 1.12 (#1365, @skriss)
* Azure: allow credentials to be provided in a .env file (path specified by $AZURE_CREDENTIALS_FILE), formatted like (#1364, @skriss):
    ```
    AZURE_TENANT_ID=${AZURE_TENANT_ID}
    AZURE_SUBSCRIPTION_ID=${AZURE_SUBSCRIPTION_ID}
    AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
    AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}
    AZURE_RESOURCE_GROUP=${AZURE_RESOURCE_GROUP} 
    ```
* Instantiate the plugin manager with the per-restore logger so plugin logs are captured in the per-restore log (#1358, @skriss)
* Add gauge metrics for number of existing backups and restores (#1353, @fabito)
* Set default TTL for backups (#1352, @vorar)
* Validate that there can't be any duplicate plugin name, and that the name format is `example.io/name`. (#1339, @carlisia)
* AWS/Azure/GCP: fail fast if unsupported keys are provided in BackupStorageLocation/VolumeSnapshotLocation config (#1338, @skriss)
* `velero backup logs` & `velero restore logs`: show helpful error message if backup/restore does not exist or is not finished processing (#1337, @skriss)
* Add support for allowing a RestoreItemAction to skip item restore. (#1336, @sseago)
* Improve error message around invalid S3 URLs, and gracefully handle trailing backslashes. (#1331, @skriss)
* Set backup's start timestamp before patching it to InProgress so start times display in `velero backup get` while in progress (#1330, @skriss)
* Added ability to dynamically disable controllers (#1326, @amanw)
* Remove deprecated code in preparation for v1.0 release (#1323, @skriss):
    - remove ark.heptio.com API group
    - remove support for reading ark-backup.json files from object storage
    - remove Ark field from RestoreResult type
    - remove support for "hook.backup.ark.heptio.com/..." annotations for specifying hooks
    - remove support for $HOME/.config/ark/ client config directory
    - remove support for restoring Azure snapshots using short snapshot ID formats in backup metadata
    - stop applying "velero-restore" label to restored resources and remove it from the API pkg
    - remove code that strips the "gc.ark.heptio.com" finalizer from backups
    - remove support for "backup.ark.heptio.com/..." annotations for requesting restic backups
    - remove "ark"-prefixed prometheus metrics
    - remove VolumeBackups field and related code from Backup's status
* Rename BlockStore plugin to VolumeSnapshotter (#1321, @skriss)
* Bump plugin ProtocolVersion to version 2 (#1319, @carlisia)
* Remove Warning field from restore item action output (#1318, @skriss)
* Fix for #1312, use describe to determine if AWS EBS snapshot is encrypted and explicitly pass that value in EC2 CreateVolume call. (#1316, @mstump)
* Allow restic restore helper image name to be optionally specified via ConfigMap (#1311, @skriss)
* Compile only once to lower the initialization cost for regexp.MustCompile. (#1306, @pei0804)
* Enable restore item actions to return additional related items to be restored; have pods return PVCs and PVCs return PVs (#1304, @skriss)
* Log error locations from plugin logger, and don't overwrite them in the client logger if they exist already (#1301, @skriss)
* Send stack traces from plugin errors to Velero via gRPC so error location info can be logged (#1300, @skriss)
* Azure: restore volumes in the original region's zone (#1298, @sylr)
* Check for and exclude hostPath-based persistent volumes from restic backup (#1297, @skriss)
* Make resticrepositories non-restorable resources (#1296, @skriss)
* Gracefully handle failed API groups from the discovery API (#1293, @fabito)
* Add `velero install` command for basic use cases. (#1287, @nrb)
* Collect 3 new metrics: backup_deletion_{attempt|failure|success}_total (#1280, @fabito)
* Pass --log-level flag to internal/external plugins, matching Velero server's log level (#1278, @skriss)
* AWS EBS Volume IDs now contain AZ (#1274, @tsturzl)
* Add panic handlers to all server-side plugin methods (#1270, @skriss)
* Move all the interfaces and associated types necessary to implement all of the Velero plugins to under the new package `velero`. (#1264, @carlisia)
* Update `velero restore` to not open every single file open during extraction of the data (#1261, @asaf)
* Remove restore code that waits for a PV to become Available (#1254, @skriss)
* Improve `describe` output
* Move Phase to right under Metadata(name/namespace/label/annotations)
* Move Validation errors: section right after Phase: section and only show it if the item has a phase of FailedValidation
* For restores move Warnings and Errors under Validation errors. Leave their display as is. (#1248, @DheerajSShetty)
* Don't remove storage class from a persistent volume when restoring it (#1246, @skriss)
* Need to defer closing the the ReadCloser in ObjectStoreGRPCServer.GetObject (#1236, @DheerajSShetty)
* Update Ku
Download .txt
gitextract_b3viilp2/

├── .dockerignore
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature-enhancement-request.md
│   ├── auto-assignees.yml
│   ├── dependabot.yml
│   ├── labeler.yml
│   ├── labels.yaml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── auto_assign_prs.yml
│       ├── auto_label_prs.yml
│       ├── auto_request_review.yml
│       ├── e2e-test-kind.yaml
│       ├── get-go-version.yaml
│       ├── nightly-trivy-scan.yml
│       ├── pr-changelog-check.yml
│       ├── pr-ci-check.yml
│       ├── pr-codespell.yml
│       ├── pr-containers.yml
│       ├── pr-goreleaser.yml
│       ├── pr-linter-check.yml
│       ├── prow-action.yml
│       ├── push-builder.yml
│       ├── push.yml
│       ├── rebase.yml
│       └── stale-issues.yml
├── .gitignore
├── .golangci.yaml
├── .goreleaser.yml
├── ADOPTERS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── Dockerfile-Windows
├── GOVERNANCE.md
├── LICENSE
├── MAINTAINERS.md
├── Makefile
├── OWNERS
├── README.md
├── ROADMAP.md
├── SECURITY.md
├── SUPPORT.md
├── Tiltfile
├── assets/
│   ├── README.md
│   ├── one-line/
│   │   ├── 199150-vmw-os-lgo-velero-final_gry.eps
│   │   └── 199150-vmw-os-lgo-velero-final_wht.eps
│   └── stacked/
│       ├── 199150-vmw-os-lgo-velero-final_stacked-gry.eps
│       └── 199150-vmw-os-lgo-velero-final_stacked-wht.eps
├── changelogs/
│   ├── CHANGELOG-0.10.md
│   ├── CHANGELOG-0.11.md
│   ├── CHANGELOG-0.3.md
│   ├── CHANGELOG-0.4.md
│   ├── CHANGELOG-0.5.md
│   ├── CHANGELOG-0.6.md
│   ├── CHANGELOG-0.7.md
│   ├── CHANGELOG-0.8.md
│   ├── CHANGELOG-0.9.md
│   ├── CHANGELOG-1.0.md
│   ├── CHANGELOG-1.1.md
│   ├── CHANGELOG-1.10.md
│   ├── CHANGELOG-1.11.md
│   ├── CHANGELOG-1.12.md
│   ├── CHANGELOG-1.13.md
│   ├── CHANGELOG-1.14.md
│   ├── CHANGELOG-1.15.md
│   ├── CHANGELOG-1.16.md
│   ├── CHANGELOG-1.17.md
│   ├── CHANGELOG-1.18.md
│   ├── CHANGELOG-1.2.md
│   ├── CHANGELOG-1.3.md
│   ├── CHANGELOG-1.4.md
│   ├── CHANGELOG-1.5.md
│   ├── CHANGELOG-1.6.md
│   ├── CHANGELOG-1.7.md
│   ├── CHANGELOG-1.8.md
│   ├── CHANGELOG-1.9.md
│   └── unreleased/
│       ├── 9502-Joeavaikath
│       ├── 9508-kaovilai
│       ├── 9532-Lyndon-Li
│       ├── 9533-Lyndon-Li‎‎
│       ├── 9547-blackpiglet
│       ├── 9554-testsabirweb
│       ├── 9560-Lyndon-Li‎‎
│       ├── 9561-Lyndon-Li‎‎
│       ├── 9570-H-M-Quang-Ngo
│       ├── 9574-blackpiglet
│       └── 9581-shubham-pampattiwar
├── cmd/
│   ├── velero/
│   │   └── velero.go
│   ├── velero-helper/
│   │   └── velero-helper.go
│   └── velero-restore-helper/
│       └── velero-restore-helper.go
├── config/
│   ├── crd/
│   │   ├── v1/
│   │   │   ├── bases/
│   │   │   │   ├── velero.io_backuprepositories.yaml
│   │   │   │   ├── velero.io_backups.yaml
│   │   │   │   ├── velero.io_backupstoragelocations.yaml
│   │   │   │   ├── velero.io_deletebackuprequests.yaml
│   │   │   │   ├── velero.io_downloadrequests.yaml
│   │   │   │   ├── velero.io_podvolumebackups.yaml
│   │   │   │   ├── velero.io_podvolumerestores.yaml
│   │   │   │   ├── velero.io_restores.yaml
│   │   │   │   ├── velero.io_schedules.yaml
│   │   │   │   ├── velero.io_serverstatusrequests.yaml
│   │   │   │   └── velero.io_volumesnapshotlocations.yaml
│   │   │   └── crds/
│   │   │       ├── crds.go
│   │   │       └── doc.go
│   │   └── v2alpha1/
│   │       ├── bases/
│   │       │   ├── velero.io_datadownloads.yaml
│   │       │   └── velero.io_datauploads.yaml
│   │       └── crds/
│   │           ├── crds.go
│   │           └── doc.go
│   └── rbac/
│       └── role.yaml
├── design/
│   ├── 2082-bsl-delete-associated-resources_design.md
│   ├── CLI/
│   │   └── PoC/
│   │       ├── base/
│   │       │   ├── CRDs.yaml
│   │       │   ├── backupstoragelocations.yaml
│   │       │   ├── deployment.yaml
│   │       │   ├── kustomization.yaml
│   │       │   ├── minio.yaml
│   │       │   ├── podvolumes.yaml
│   │       │   ├── resticrepository.yaml
│   │       │   └── volumesnapshotlocations.yaml
│   │       └── overlays/
│   │           └── plugins/
│   │               ├── aws-plugin.yaml
│   │               ├── azure-plugin.yaml
│   │               ├── cloud
│   │               ├── kustomization.yaml
│   │               └── node-agent.yaml
│   ├── Implemented/
│   │   ├── AsyncActionFSM.graffle
│   │   ├── Extend-VolumePolicies-to-support-more-actions.md
│   │   ├── apply-flag.md
│   │   ├── backup-performance-improvements.md
│   │   ├── backup-pvc-config.md
│   │   ├── backup-repo-cache-volume.md
│   │   ├── backup-repo-config.md
│   │   ├── backup-resource-list.md
│   │   ├── backup-resources-order.md
│   │   ├── biav2-design.md
│   │   ├── bsl-certificate-support_design.md
│   │   ├── clean_artifacts_in_csi_flow.md
│   │   ├── cluster-scope-resource-filter.md
│   │   ├── concurrent-backup-processing.md
│   │   ├── csi-snapshots.md
│   │   ├── custom-ca-support.md
│   │   ├── delete-item-action.md
│   │   ├── deletion-plugins.md
│   │   ├── existing-resource-policy_design.md
│   │   ├── feature-flags.md
│   │   ├── general-progress-monitoring.md
│   │   ├── generating-velero-crds-with-structural-schema.md
│   │   ├── handle-backup-of-volumes-by-resources-filters.md
│   │   ├── include-exclude-in-resource-policy.md
│   │   ├── json-substitution-action-design.md
│   │   ├── merge-patch-and-strategic-in-resource-modifier.md
│   │   ├── move-gh-org.md
│   │   ├── move-plugin-repos.md
│   │   ├── multiple-arch-build-with-windows.md
│   │   ├── multiple-csi-volumesnapshotclass-support.md
│   │   ├── multiple-label-selectors_design.md
│   │   ├── node-agent-affinity.md
│   │   ├── node-agent-concurrency.md
│   │   ├── node-agent-load-soothing.md
│   │   ├── plugin-backup-and-restore-progress-design.md
│   │   ├── plugin-versioning.md
│   │   ├── priority-class-name-support_design.md
│   │   ├── pv-cloning.md
│   │   ├── pv_backup_info.md
│   │   ├── pv_restore_info.md
│   │   ├── repo_maintenance_job_config.md
│   │   ├── repository-maintenance.md
│   │   ├── resource-status-restore.md
│   │   ├── restic-backup-and-restore-progress.md
│   │   ├── restore-finalizing-phase_design.md
│   │   ├── restore-hooks.md
│   │   ├── restore-with-EnableAPIGroupVersions-feature.md
│   │   ├── retry-patching-configuration_design.md
│   │   ├── riav2-design.md
│   │   ├── schedule-skip-immediately-config_design.md
│   │   ├── secrets.md
│   │   ├── supporting-volumeattributes-resource-policy.md
│   │   ├── unified-repo-and-kopia-integration/
│   │   │   └── unified-repo-and-kopia-integration.md
│   │   ├── velero-debug.md
│   │   ├── velero-uploader-configuration.md
│   │   ├── vgdp-affinity-enhancement.md
│   │   ├── vgdp-micro-service/
│   │   │   └── vgdp-micro-service.md
│   │   ├── vgdp-micro-service-for-fs-backup/
│   │   │   └── vgdp-micro-service-for-fs-backup.md
│   │   ├── volume-group-snapshot.md
│   │   ├── volume-policy-label-selector-criteria.md
│   │   ├── volume-snapshot-data-movement/
│   │   │   └── volume-snapshot-data-movement.md
│   │   ├── wait-for-additional-items.md
│   │   └── wildcard-namespace-support-design.md
│   ├── UploadFSM.graffle
│   ├── _template.md
│   ├── cli-install-changes.md
│   ├── graph-manifest.md
│   ├── new-prepost-backuprestore-plugin-hooks.md
│   ├── restore-progress.md
│   ├── upload-progress.md
│   └── vsv2-design.md
├── examples/
│   ├── README.md
│   ├── minio/
│   │   └── 00-minio-deployment.yaml
│   └── nginx-app/
│       ├── README.md
│       ├── base.yaml
│       └── with-pv.yaml
├── go.mod
├── go.sum
├── hack/
│   ├── boilerplate.go.txt
│   ├── build-image/
│   │   └── Dockerfile
│   ├── build-restic.sh
│   ├── build.sh
│   ├── changelog-check.sh
│   ├── ci-check.sh
│   ├── crd-gen/
│   │   └── v1/
│   │       └── main.go
│   ├── docker-push.sh
│   ├── fix_restic_cve.txt
│   ├── issue-template-gen/
│   │   └── main.go
│   ├── lint.sh
│   ├── release-tools/
│   │   ├── brew-update.sh
│   │   ├── changelog.sh
│   │   ├── chk_version.go
│   │   ├── chk_version_test.go
│   │   ├── gen-docs.sh
│   │   ├── goreleaser.sh
│   │   └── tag-release.sh
│   ├── test.sh
│   ├── update-1fmt.sh
│   ├── update-2proto.sh
│   ├── update-3generated-crd-code.sh
│   ├── update-4generated-issue-template.sh
│   ├── update-all.sh
│   ├── verify-all.sh
│   ├── verify-fmt.sh
│   ├── verify-generated-crd-code.sh
│   └── verify-generated-issue-template.sh
├── internal/
│   ├── credentials/
│   │   ├── file_store.go
│   │   ├── file_store_test.go
│   │   ├── getter.go
│   │   ├── local.go
│   │   ├── mocks/
│   │   │   ├── FileStore.go
│   │   │   └── SecretStore.go
│   │   └── secret_store.go
│   ├── delete/
│   │   ├── actions/
│   │   │   └── csi/
│   │   │       ├── volumesnapshotcontent_action.go
│   │   │       └── volumesnapshotcontent_action_test.go
│   │   ├── delete_item_action_handler.go
│   │   └── delete_item_action_handler_test.go
│   ├── hook/
│   │   ├── hook_tracker.go
│   │   ├── hook_tracker_test.go
│   │   ├── item_hook_handler.go
│   │   ├── item_hook_handler_test.go
│   │   ├── wait_exec_hook_handler.go
│   │   └── wait_exec_hook_handler_test.go
│   ├── resourcemodifiers/
│   │   ├── json_merge_patch.go
│   │   ├── json_merge_patch_test.go
│   │   ├── json_patch.go
│   │   ├── resource_modifiers.go
│   │   ├── resource_modifiers_test.go
│   │   ├── resource_modifiers_validator.go
│   │   ├── resource_modifiers_validator_test.go
│   │   ├── strategic_merge_patch.go
│   │   └── strategic_merge_patch_test.go
│   ├── resourcepolicies/
│   │   ├── resource_policies.go
│   │   ├── resource_policies_test.go
│   │   ├── volume_filter_data.go
│   │   ├── volume_filter_data_test.go
│   │   ├── volume_resources.go
│   │   ├── volume_resources_test.go
│   │   ├── volume_resources_validator.go
│   │   ├── volume_resources_validator_test.go
│   │   ├── volume_types_conditions.go
│   │   └── volume_types_conditions_test.go
│   ├── restartabletest/
│   │   └── restartable_delegate.go
│   ├── storage/
│   │   ├── storagelocation.go
│   │   └── storagelocation_test.go
│   ├── velero/
│   │   ├── images.go
│   │   ├── images_test.go
│   │   └── serverstatusrequest.go
│   ├── volume/
│   │   ├── native_snapshot.go
│   │   ├── snapshotlocation.go
│   │   ├── utils.go
│   │   ├── utils_test.go
│   │   ├── volumes_information.go
│   │   └── volumes_information_test.go
│   └── volumehelper/
│       ├── volume_policy_helper.go
│       └── volume_policy_helper_test.go
├── netlify.toml
├── pkg/
│   ├── apis/
│   │   └── velero/
│   │       ├── shared/
│   │       │   └── data_move_operation_progress.go
│   │       ├── v1/
│   │       │   ├── backup_repository_types.go
│   │       │   ├── backup_types.go
│   │       │   ├── backupstoragelocation_types.go
│   │       │   ├── backupstoragelocation_types_test.go
│   │       │   ├── constants.go
│   │       │   ├── delete_backup_request_types.go
│   │       │   ├── doc.go
│   │       │   ├── download_request_types.go
│   │       │   ├── groupversion_info.go
│   │       │   ├── labels_annotations.go
│   │       │   ├── pod_volume_backup_types.go
│   │       │   ├── pod_volume_restore_type.go
│   │       │   ├── register.go
│   │       │   ├── restore_types.go
│   │       │   ├── schedule_types.go
│   │       │   ├── server_status_request_types.go
│   │       │   ├── volume_snapshot_location_type.go
│   │       │   └── zz_generated.deepcopy.go
│   │       └── v2alpha1/
│   │           ├── data_download_types.go
│   │           ├── data_upload_types.go
│   │           ├── doc.go
│   │           ├── groupversion_info.go
│   │           ├── register.go
│   │           └── zz_generated.deepcopy.go
│   ├── archive/
│   │   ├── extractor.go
│   │   ├── extractor_test.go
│   │   ├── filesystem.go
│   │   ├── filesystem_test.go
│   │   ├── parser.go
│   │   └── parser_test.go
│   ├── backup/
│   │   ├── actions/
│   │   │   ├── backup_pv_action.go
│   │   │   ├── backup_pv_action_test.go
│   │   │   ├── csi/
│   │   │   │   ├── pvc_action.go
│   │   │   │   ├── pvc_action_test.go
│   │   │   │   ├── volumesnapshot_action.go
│   │   │   │   ├── volumesnapshot_action_test.go
│   │   │   │   ├── volumesnapshotclass_action.go
│   │   │   │   ├── volumesnapshotclass_action_test.go
│   │   │   │   ├── volumesnapshotcontent_action.go
│   │   │   │   └── volumesnapshotcontent_action_test.go
│   │   │   ├── pod_action.go
│   │   │   ├── pod_action_test.go
│   │   │   ├── remap_crd_version_action.go
│   │   │   ├── remap_crd_version_action_test.go
│   │   │   ├── service_account_action.go
│   │   │   ├── service_account_action_test.go
│   │   │   └── testdata/
│   │   │       ├── v1/
│   │   │       │   ├── alertmanagers.monitoring.coreos.com.json
│   │   │       │   ├── elasticsearches.elasticsearch.k8s.elastic.co.json
│   │   │       │   ├── gcpsamples.gcp.stacks.crossplane.io.json
│   │   │       │   ├── kibanas.kibana.k8s.elastic.co.json
│   │   │       │   ├── pprometheuses.monitoring.coreos.com.json
│   │   │       │   └── prometheuses.monitoring.coreos.com.json
│   │   │       └── v1beta1/
│   │   │           ├── alertmanagers.monitoring.coreos.com.json
│   │   │           ├── elasticsearches.elasticsearch.k8s.elastic.co.json
│   │   │           ├── gcpsamples.gcp.stacks.crossplane.io.json
│   │   │           ├── kibanas.kibana.k8s.elastic.co.json
│   │   │           └── prometheuses.monitoring.coreos.com.json
│   │   ├── backed_up_items_map.go
│   │   ├── backup.go
│   │   ├── backup_test.go
│   │   ├── delete_helpers.go
│   │   ├── item_backupper.go
│   │   ├── item_backupper_test.go
│   │   ├── item_block_worker_pool.go
│   │   ├── item_collector.go
│   │   ├── item_collector_test.go
│   │   ├── itemblock.go
│   │   ├── pv_skip_tracker.go
│   │   ├── pv_skip_tracker_test.go
│   │   ├── request.go
│   │   ├── request_test.go
│   │   ├── snapshots.go
│   │   └── volume_snapshotter_cache.go
│   ├── builder/
│   │   ├── backup_builder.go
│   │   ├── backup_storage_location_builder.go
│   │   ├── config_map_builder.go
│   │   ├── container_builder.go
│   │   ├── container_builder_test.go
│   │   ├── customresourcedefinition_v1beta1_builder.go
│   │   ├── data_download_builder.go
│   │   ├── data_upload_builder.go
│   │   ├── delete_backup_request_builder.go
│   │   ├── deployment_builder.go
│   │   ├── download_request_builder.go
│   │   ├── item_operation_builder.go
│   │   ├── job_builder.go
│   │   ├── json_schema_props_builder.go
│   │   ├── namespace_builder.go
│   │   ├── node_builder.go
│   │   ├── node_selector_builder.go
│   │   ├── object_meta.go
│   │   ├── persistent_volume_builder.go
│   │   ├── persistent_volume_claim_builder.go
│   │   ├── pod_builder.go
│   │   ├── pod_volume_backup_builder.go
│   │   ├── pod_volume_restore_builder.go
│   │   ├── priority_class_builder.go
│   │   ├── restore_builder.go
│   │   ├── role_builder.go
│   │   ├── schedule_builder.go
│   │   ├── secret_builder.go
│   │   ├── secret_key_selector_builder.go
│   │   ├── server_status_request_builder.go
│   │   ├── service_account_builder.go
│   │   ├── service_builder.go
│   │   ├── statefulset_builder.go
│   │   ├── storage_class_builder.go
│   │   ├── testcr_builder.go
│   │   ├── v1_customresourcedefinition_builder.go
│   │   ├── volume_builder.go
│   │   ├── volume_mount_builder.go
│   │   ├── volume_snapshot_builder.go
│   │   ├── volume_snapshot_class_builder.go
│   │   ├── volume_snapshot_content_builder.go
│   │   └── volume_snapshot_location_builder.go
│   ├── buildinfo/
│   │   ├── buildinfo.go
│   │   └── buildinfo_test.go
│   ├── client/
│   │   ├── auth_providers.go
│   │   ├── client.go
│   │   ├── client_test.go
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── dynamic.go
│   │   ├── factory.go
│   │   ├── factory_test.go
│   │   ├── kubeconfig
│   │   ├── mocks/
│   │   │   └── Factory.go
│   │   └── retry.go
│   ├── cmd/
│   │   ├── cli/
│   │   │   ├── backup/
│   │   │   │   ├── backup.go
│   │   │   │   ├── backup_test.go
│   │   │   │   ├── create.go
│   │   │   │   ├── create_test.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── delete_test.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── describe_test.go
│   │   │   │   ├── download.go
│   │   │   │   ├── download_test.go
│   │   │   │   ├── get.go
│   │   │   │   ├── get_test.go
│   │   │   │   ├── logs.go
│   │   │   │   └── logs_test.go
│   │   │   ├── backuplocation/
│   │   │   │   ├── backup_location.go
│   │   │   │   ├── backup_location_test.go
│   │   │   │   ├── create.go
│   │   │   │   ├── create_test.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── delete_test.go
│   │   │   │   ├── get.go
│   │   │   │   ├── get_test.go
│   │   │   │   ├── set.go
│   │   │   │   └── set_test.go
│   │   │   ├── bug/
│   │   │   │   └── bug.go
│   │   │   ├── client/
│   │   │   │   ├── client.go
│   │   │   │   └── config/
│   │   │   │       ├── config.go
│   │   │   │       ├── get.go
│   │   │   │       └── set.go
│   │   │   ├── completion/
│   │   │   │   └── completion.go
│   │   │   ├── create/
│   │   │   │   └── create.go
│   │   │   ├── datamover/
│   │   │   │   ├── backup.go
│   │   │   │   ├── backup_test.go
│   │   │   │   ├── data_mover.go
│   │   │   │   ├── mocks/
│   │   │   │   │   └── Cache.go
│   │   │   │   ├── restore.go
│   │   │   │   └── restore_test.go
│   │   │   ├── debug/
│   │   │   │   ├── cshd-scripts/
│   │   │   │   │   └── velero.cshd
│   │   │   │   └── debug.go
│   │   │   ├── delete/
│   │   │   │   └── delete.go
│   │   │   ├── delete_options.go
│   │   │   ├── describe/
│   │   │   │   └── describe.go
│   │   │   ├── get/
│   │   │   │   └── get.go
│   │   │   ├── install/
│   │   │   │   ├── install.go
│   │   │   │   └── install_test.go
│   │   │   ├── nodeagent/
│   │   │   │   ├── node_agent.go
│   │   │   │   ├── server.go
│   │   │   │   └── server_test.go
│   │   │   ├── plugin/
│   │   │   │   ├── add.go
│   │   │   │   ├── get.go
│   │   │   │   ├── helpers.go
│   │   │   │   ├── plugin.go
│   │   │   │   └── remove.go
│   │   │   ├── podvolume/
│   │   │   │   ├── backup.go
│   │   │   │   ├── backup_test.go
│   │   │   │   ├── podvolume.go
│   │   │   │   ├── restore.go
│   │   │   │   └── restore_test.go
│   │   │   ├── repo/
│   │   │   │   ├── get.go
│   │   │   │   └── repo.go
│   │   │   ├── repomantenance/
│   │   │   │   └── maintenance.go
│   │   │   ├── restore/
│   │   │   │   ├── create.go
│   │   │   │   ├── create_test.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── delete_test.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── describe_test.go
│   │   │   │   ├── get.go
│   │   │   │   ├── get_test.go
│   │   │   │   ├── logs.go
│   │   │   │   ├── logs_test.go
│   │   │   │   ├── restore.go
│   │   │   │   └── restore_test.go
│   │   │   ├── schedule/
│   │   │   │   ├── create.go
│   │   │   │   ├── delete.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── get.go
│   │   │   │   ├── pause.go
│   │   │   │   ├── schedule.go
│   │   │   │   ├── skip_options.go
│   │   │   │   └── unpause.go
│   │   │   ├── select_option.go
│   │   │   ├── select_option_test.go
│   │   │   ├── serverstatus/
│   │   │   │   └── server_status.go
│   │   │   ├── snapshotlocation/
│   │   │   │   ├── create.go
│   │   │   │   ├── get.go
│   │   │   │   ├── set.go
│   │   │   │   └── snapshot_location.go
│   │   │   ├── uninstall/
│   │   │   │   └── uninstall.go
│   │   │   └── version/
│   │   │       ├── version.go
│   │   │       └── version_test.go
│   │   ├── const.go
│   │   ├── errors.go
│   │   ├── server/
│   │   │   ├── config/
│   │   │   │   ├── config.go
│   │   │   │   └── config_test.go
│   │   │   ├── plugin/
│   │   │   │   └── plugin.go
│   │   │   ├── server.go
│   │   │   └── server_test.go
│   │   ├── test/
│   │   │   └── const.go
│   │   ├── util/
│   │   │   ├── cacert/
│   │   │   │   ├── bsl_cacert.go
│   │   │   │   └── bsl_cacert_test.go
│   │   │   ├── confirm/
│   │   │   │   └── confirm.go
│   │   │   ├── downloadrequest/
│   │   │   │   ├── downloadrequest.go
│   │   │   │   └── downloadrequest_test.go
│   │   │   ├── flag/
│   │   │   │   ├── accessors.go
│   │   │   │   ├── accessors_test.go
│   │   │   │   ├── array.go
│   │   │   │   ├── array_test.go
│   │   │   │   ├── enum.go
│   │   │   │   ├── enum_test.go
│   │   │   │   ├── label_selector_test.go
│   │   │   │   ├── labelselector.go
│   │   │   │   ├── map.go
│   │   │   │   ├── map_test.go
│   │   │   │   ├── optional_bool.go
│   │   │   │   ├── optional_bool_test.go
│   │   │   │   ├── orlabelselector.go
│   │   │   │   └── orlabelselector_test.go
│   │   │   ├── output/
│   │   │   │   ├── backup_describer.go
│   │   │   │   ├── backup_describer_test.go
│   │   │   │   ├── backup_printer.go
│   │   │   │   ├── backup_printer_test.go
│   │   │   │   ├── backup_repo_printer.go
│   │   │   │   ├── backup_storage_location_printer.go
│   │   │   │   ├── backup_structured_describer.go
│   │   │   │   ├── backup_structured_describer_test.go
│   │   │   │   ├── describe.go
│   │   │   │   ├── describe_test.go
│   │   │   │   ├── output.go
│   │   │   │   ├── output_test.go
│   │   │   │   ├── plugin_printer.go
│   │   │   │   ├── restore_describer.go
│   │   │   │   ├── restore_describer_test.go
│   │   │   │   ├── restore_printer.go
│   │   │   │   ├── schedule_describe_test.go
│   │   │   │   ├── schedule_describer.go
│   │   │   │   ├── schedule_printer.go
│   │   │   │   └── volume_snapshot_location_printer.go
│   │   │   └── signals/
│   │   │       └── signals.go
│   │   └── velero/
│   │       └── velero.go
│   ├── constant/
│   │   └── constant.go
│   ├── controller/
│   │   ├── backup_controller.go
│   │   ├── backup_controller_test.go
│   │   ├── backup_deletion_controller.go
│   │   ├── backup_deletion_controller_test.go
│   │   ├── backup_finalizer_controller.go
│   │   ├── backup_finalizer_controller_test.go
│   │   ├── backup_operations_controller.go
│   │   ├── backup_operations_controller_test.go
│   │   ├── backup_queue_controller.go
│   │   ├── backup_queue_controller_test.go
│   │   ├── backup_repository_controller.go
│   │   ├── backup_repository_controller_test.go
│   │   ├── backup_storage_location_controller.go
│   │   ├── backup_storage_location_controller_test.go
│   │   ├── backup_sync_controller.go
│   │   ├── backup_sync_controller_test.go
│   │   ├── backup_tracker.go
│   │   ├── backup_tracker_test.go
│   │   ├── data_download_controller.go
│   │   ├── data_download_controller_test.go
│   │   ├── data_upload_controller.go
│   │   ├── data_upload_controller_test.go
│   │   ├── download_request_controller.go
│   │   ├── download_request_controller_test.go
│   │   ├── gc_controller.go
│   │   ├── gc_controller_test.go
│   │   ├── interface.go
│   │   ├── pod_volume_backup_controller.go
│   │   ├── pod_volume_backup_controller_test.go
│   │   ├── pod_volume_restore_controller.go
│   │   ├── pod_volume_restore_controller_legacy.go
│   │   ├── pod_volume_restore_controller_legacy_test.go
│   │   ├── pod_volume_restore_controller_test.go
│   │   ├── restore_controller.go
│   │   ├── restore_controller_test.go
│   │   ├── restore_finalizer_controller.go
│   │   ├── restore_finalizer_controller_test.go
│   │   ├── restore_operations_controller.go
│   │   ├── restore_operations_controller_test.go
│   │   ├── schedule_controller.go
│   │   ├── schedule_controller_test.go
│   │   ├── server_status_request_controller.go
│   │   ├── server_status_request_controller_test.go
│   │   └── suite_test.go
│   ├── datamover/
│   │   ├── backup_micro_service.go
│   │   ├── backup_micro_service_test.go
│   │   ├── dataupload_delete_action.go
│   │   ├── restore_micro_service.go
│   │   ├── restore_micro_service_test.go
│   │   ├── util.go
│   │   └── util_test.go
│   ├── datapath/
│   │   ├── error.go
│   │   ├── error_test.go
│   │   ├── file_system.go
│   │   ├── file_system_test.go
│   │   ├── manager.go
│   │   ├── manager_test.go
│   │   ├── micro_service_watcher.go
│   │   ├── micro_service_watcher_test.go
│   │   ├── mocks/
│   │   │   └── asyncBR.go
│   │   └── types.go
│   ├── discovery/
│   │   ├── helper.go
│   │   ├── helper_test.go
│   │   └── mocks/
│   │       └── Helper.go
│   ├── exposer/
│   │   ├── cache_volume.go
│   │   ├── cache_volume_test.go
│   │   ├── csi_snapshot.go
│   │   ├── csi_snapshot_priority_test.go
│   │   ├── csi_snapshot_test.go
│   │   ├── generic_restore.go
│   │   ├── generic_restore_priority_test.go
│   │   ├── generic_restore_test.go
│   │   ├── host_path.go
│   │   ├── host_path_test.go
│   │   ├── image.go
│   │   ├── image_test.go
│   │   ├── mocks/
│   │   │   ├── GenericRestoreExposer.go
│   │   │   └── PodVolumeExposer.go
│   │   ├── pod_volume.go
│   │   ├── pod_volume_test.go
│   │   ├── snapshot.go
│   │   ├── types.go
│   │   ├── vgdp_counter.go
│   │   └── vgdp_counter_test.go
│   ├── features/
│   │   ├── feature_flags.go
│   │   └── feature_flags_test.go
│   ├── install/
│   │   ├── daemonset.go
│   │   ├── daemonset_test.go
│   │   ├── deployment.go
│   │   ├── deployment_test.go
│   │   ├── doc.go
│   │   ├── import_test.go
│   │   ├── install.go
│   │   ├── install_test.go
│   │   ├── resources.go
│   │   └── resources_test.go
│   ├── itemblock/
│   │   ├── actions/
│   │   │   ├── pod_action.go
│   │   │   ├── pod_action_test.go
│   │   │   ├── pvc_action.go
│   │   │   ├── pvc_action_test.go
│   │   │   ├── service_account_action.go
│   │   │   └── service_account_action_test.go
│   │   └── itemblock.go
│   ├── itemoperation/
│   │   ├── backup_operation.go
│   │   ├── restore_operation.go
│   │   └── shared.go
│   ├── itemoperationmap/
│   │   ├── backup_operation_map.go
│   │   └── restore_operation_map.go
│   ├── kopia/
│   │   ├── kopia_log.go
│   │   └── kopia_log_test.go
│   ├── kuberesource/
│   │   └── kuberesource.go
│   ├── label/
│   │   ├── label.go
│   │   └── label_test.go
│   ├── metrics/
│   │   ├── metrics.go
│   │   └── metrics_test.go
│   ├── nodeagent/
│   │   ├── node_agent.go
│   │   └── node_agent_test.go
│   ├── persistence/
│   │   ├── in_memory_object_store.go
│   │   ├── mocks/
│   │   │   ├── backup_store.go
│   │   │   └── object_store.go
│   │   ├── object_store.go
│   │   ├── object_store_layout.go
│   │   └── object_store_test.go
│   ├── plugin/
│   │   ├── clientmgmt/
│   │   │   ├── backupitemaction/
│   │   │   │   ├── v1/
│   │   │   │   │   ├── restartable_backup_item_action.go
│   │   │   │   │   └── restartable_backup_item_action_test.go
│   │   │   │   └── v2/
│   │   │   │       ├── restartable_backup_item_action.go
│   │   │   │       └── restartable_backup_item_action_test.go
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       ├── restartable_item_block_action.go
│   │   │   │       └── restartable_item_block_action_test.go
│   │   │   ├── manager.go
│   │   │   ├── manager_test.go
│   │   │   ├── process/
│   │   │   │   ├── client_builder.go
│   │   │   │   ├── client_builder_test.go
│   │   │   │   ├── logrus_adapter.go
│   │   │   │   ├── logrus_adapter_test.go
│   │   │   │   ├── process.go
│   │   │   │   ├── process_test.go
│   │   │   │   ├── registry.go
│   │   │   │   ├── registry_test.go
│   │   │   │   └── restartable_process.go
│   │   │   ├── restartable_delete_item_action.go
│   │   │   ├── restartable_delete_item_action_test.go
│   │   │   ├── restartable_object_store.go
│   │   │   ├── restartable_object_store_test.go
│   │   │   ├── restoreitemaction/
│   │   │   │   ├── v1/
│   │   │   │   │   ├── restartable_restore_item_action.go
│   │   │   │   │   └── restartable_restore_item_action_test.go
│   │   │   │   └── v2/
│   │   │   │       ├── restartable_restore_item_action.go
│   │   │   │       └── restartable_restore_item_action_test.go
│   │   │   └── volumesnapshotter/
│   │   │       └── v1/
│   │   │           ├── restartable_volume_snapshotter.go
│   │   │           └── restartable_volume_snapshotter_test.go
│   │   ├── framework/
│   │   │   ├── action_resolver.go
│   │   │   ├── action_resolver_test.go
│   │   │   ├── backup_item_action.go
│   │   │   ├── backup_item_action_client.go
│   │   │   ├── backup_item_action_server.go
│   │   │   ├── backup_item_action_test.go
│   │   │   ├── backupitemaction/
│   │   │   │   └── v2/
│   │   │   │       ├── backup_item_action.go
│   │   │   │       ├── backup_item_action_client.go
│   │   │   │       ├── backup_item_action_server.go
│   │   │   │       └── backup_item_action_test.go
│   │   │   ├── common/
│   │   │   │   ├── client_dispenser.go
│   │   │   │   ├── client_dispenser_test.go
│   │   │   │   ├── client_errors.go
│   │   │   │   ├── handle_panic.go
│   │   │   │   ├── plugin_base.go
│   │   │   │   ├── plugin_base_test.go
│   │   │   │   ├── plugin_config.go
│   │   │   │   ├── plugin_config_test.go
│   │   │   │   ├── plugin_kinds.go
│   │   │   │   ├── server_errors.go
│   │   │   │   ├── server_mux.go
│   │   │   │   └── server_mux_test.go
│   │   │   ├── delete_item_action.go
│   │   │   ├── delete_item_action_client.go
│   │   │   ├── delete_item_action_server.go
│   │   │   ├── doc.go
│   │   │   ├── examples_test.go
│   │   │   ├── handshake.go
│   │   │   ├── import_test.go
│   │   │   ├── interface.go
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       ├── item_block_action.go
│   │   │   │       ├── item_block_action_client.go
│   │   │   │       ├── item_block_action_server.go
│   │   │   │       └── item_block_action_test.go
│   │   │   ├── logger.go
│   │   │   ├── logger_test.go
│   │   │   ├── object_store.go
│   │   │   ├── object_store_client.go
│   │   │   ├── object_store_server.go
│   │   │   ├── plugin_lister.go
│   │   │   ├── plugin_types_test.go
│   │   │   ├── restore_item_action.go
│   │   │   ├── restore_item_action_client.go
│   │   │   ├── restore_item_action_server.go
│   │   │   ├── restoreitemaction/
│   │   │   │   └── v2/
│   │   │   │       ├── restore_item_action.go
│   │   │   │       ├── restore_item_action_client.go
│   │   │   │       └── restore_item_action_server.go
│   │   │   ├── server.go
│   │   │   ├── stream_reader.go
│   │   │   ├── stream_reader_test.go
│   │   │   ├── validation.go
│   │   │   ├── validation_test.go
│   │   │   ├── volume_snapshotter.go
│   │   │   ├── volume_snapshotter_client.go
│   │   │   └── volume_snapshotter_server.go
│   │   ├── generated/
│   │   │   ├── BackupItemAction.pb.go
│   │   │   ├── BackupItemAction_grpc.pb.go
│   │   │   ├── DeleteItemAction.pb.go
│   │   │   ├── DeleteItemAction_grpc.pb.go
│   │   │   ├── ObjectStore.pb.go
│   │   │   ├── ObjectStore_grpc.pb.go
│   │   │   ├── PluginLister.pb.go
│   │   │   ├── PluginLister_grpc.pb.go
│   │   │   ├── RestoreItemAction.pb.go
│   │   │   ├── RestoreItemAction_grpc.pb.go
│   │   │   ├── Shared.pb.go
│   │   │   ├── VolumeSnapshotter.pb.go
│   │   │   ├── VolumeSnapshotter_grpc.pb.go
│   │   │   ├── backupitemaction/
│   │   │   │   └── v2/
│   │   │   │       ├── BackupItemAction.pb.go
│   │   │   │       └── BackupItemAction_grpc.pb.go
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       ├── ItemBlockAction.pb.go
│   │   │   │       └── ItemBlockAction_grpc.pb.go
│   │   │   └── restoreitemaction/
│   │   │       └── v2/
│   │   │           ├── RestoreItemAction.pb.go
│   │   │           └── RestoreItemAction_grpc.pb.go
│   │   ├── mocks/
│   │   │   ├── manager.go
│   │   │   └── process_factory.go
│   │   ├── proto/
│   │   │   ├── BackupItemAction.proto
│   │   │   ├── DeleteItemAction.proto
│   │   │   ├── ObjectStore.proto
│   │   │   ├── PluginLister.proto
│   │   │   ├── RestoreItemAction.proto
│   │   │   ├── Shared.proto
│   │   │   ├── VolumeSnapshotter.proto
│   │   │   ├── backupitemaction/
│   │   │   │   └── v2/
│   │   │   │       └── BackupItemAction.proto
│   │   │   ├── itemblockaction/
│   │   │   │   └── v1/
│   │   │   │       └── ItemBlockAction.proto
│   │   │   └── restoreitemaction/
│   │   │       └── v2/
│   │   │           └── RestoreItemAction.proto
│   │   ├── utils/
│   │   │   └── volumehelper/
│   │   │       ├── volume_policy_helper.go
│   │   │       └── volume_policy_helper_test.go
│   │   └── velero/
│   │       ├── backupitemaction/
│   │       │   ├── v1/
│   │       │   │   └── backup_item_action.go
│   │       │   └── v2/
│   │       │       └── backup_item_action.go
│   │       ├── delete_item_action.go
│   │       ├── itemblockaction/
│   │       │   └── v1/
│   │       │       └── item_block_action.go
│   │       ├── mocks/
│   │       │   ├── DeleteItemAction.go
│   │       │   ├── backupitemaction/
│   │       │   │   ├── v1/
│   │       │   │   │   └── BackupItemAction.go
│   │       │   │   └── v2/
│   │       │   │       └── BackupItemAction.go
│   │       │   ├── itemblockaction/
│   │       │   │   └── v1/
│   │       │   │       └── ItemBlockAction.go
│   │       │   ├── object_store.go
│   │       │   ├── restoreitemaction/
│   │       │   │   ├── v1/
│   │       │   │   │   └── RestoreItemAction.go
│   │       │   │   └── v2/
│   │       │   │       └── RestoreItemAction.go
│   │       │   └── volumesnapshotter/
│   │       │       └── v1/
│   │       │           └── VolumeSnapshotter.go
│   │       ├── object_store.go
│   │       ├── restore_item_action_shared.go
│   │       ├── restoreitemaction/
│   │       │   ├── v1/
│   │       │   │   └── restore_item_action.go
│   │       │   └── v2/
│   │       │       └── restore_item_action.go
│   │       ├── shared.go
│   │       └── volumesnapshotter/
│   │           └── v1/
│   │               └── volume_snapshotter.go
│   ├── podexec/
│   │   ├── pod_command_executor.go
│   │   └── pod_command_executor_test.go
│   ├── podvolume/
│   │   ├── backup_micro_service.go
│   │   ├── backup_micro_service_test.go
│   │   ├── backupper.go
│   │   ├── backupper_factory.go
│   │   ├── backupper_test.go
│   │   ├── configs/
│   │   │   └── configs.go
│   │   ├── mocks/
│   │   │   └── restorer.go
│   │   ├── restore_micro_service.go
│   │   ├── restore_micro_service_test.go
│   │   ├── restorer.go
│   │   ├── restorer_factory.go
│   │   ├── restorer_test.go
│   │   ├── snaphost_tracker_test.go
│   │   ├── snapshot_tracker.go
│   │   ├── util.go
│   │   └── util_test.go
│   ├── repository/
│   │   ├── backup_repo_op.go
│   │   ├── backup_repo_op_test.go
│   │   ├── config/
│   │   │   ├── aws.go
│   │   │   ├── aws_test.go
│   │   │   ├── azure.go
│   │   │   ├── azure_test.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── gcp.go
│   │   │   └── gcp_test.go
│   │   ├── ensurer.go
│   │   ├── ensurer_test.go
│   │   ├── keys/
│   │   │   ├── keys.go
│   │   │   └── keys_test.go
│   │   ├── locker.go
│   │   ├── maintenance/
│   │   │   ├── maintenance.go
│   │   │   └── maintenance_test.go
│   │   ├── manager/
│   │   │   ├── manager.go
│   │   │   └── manager_test.go
│   │   ├── mocks/
│   │   │   ├── ConfigManager.go
│   │   │   ├── Manager.go
│   │   │   └── RepositoryWriter.go
│   │   ├── provider/
│   │   │   ├── provider.go
│   │   │   ├── restic.go
│   │   │   ├── unified_repo.go
│   │   │   └── unified_repo_test.go
│   │   ├── restic/
│   │   │   └── repository.go
│   │   ├── types/
│   │   │   └── snapshotidentifier.go
│   │   └── udmrepo/
│   │       ├── kopialib/
│   │       │   ├── backend/
│   │       │   │   ├── azure/
│   │       │   │   │   └── azure_storage_wrapper.go
│   │       │   │   ├── azure.go
│   │       │   │   ├── azure_test.go
│   │       │   │   ├── backend.go
│   │       │   │   ├── common.go
│   │       │   │   ├── common_test.go
│   │       │   │   ├── file_system.go
│   │       │   │   ├── file_system_test.go
│   │       │   │   ├── gcs.go
│   │       │   │   ├── gcs_test.go
│   │       │   │   ├── logging/
│   │       │   │   │   └── context.go
│   │       │   │   ├── mocks/
│   │       │   │   │   ├── Logger.go
│   │       │   │   │   ├── Reader.go
│   │       │   │   │   ├── Storage.go
│   │       │   │   │   ├── Store.go
│   │       │   │   │   ├── Writer.go
│   │       │   │   │   ├── repository.go
│   │       │   │   │   └── repository_writer.go
│   │       │   │   ├── s3.go
│   │       │   │   ├── s3_test.go
│   │       │   │   ├── utils.go
│   │       │   │   └── utils_test.go
│   │       │   ├── lib_repo.go
│   │       │   ├── lib_repo_test.go
│   │       │   ├── repo_init.go
│   │       │   └── repo_init_test.go
│   │       ├── mocks/
│   │       │   ├── BackupRepo.go
│   │       │   ├── BackupRepoService.go
│   │       │   ├── ObjectReader.go
│   │       │   └── ObjectWriter.go
│   │       ├── repo.go
│   │       ├── repo_options.go
│   │       └── service/
│   │           └── service.go
│   ├── restic/
│   │   ├── command.go
│   │   ├── command_factory.go
│   │   ├── command_factory_test.go
│   │   ├── command_test.go
│   │   ├── common.go
│   │   ├── common_test.go
│   │   ├── exec_commands.go
│   │   └── exec_commands_test.go
│   ├── restore/
│   │   ├── actions/
│   │   │   ├── add_pvc_from_pod_action.go
│   │   │   ├── add_pvc_from_pod_action_test.go
│   │   │   ├── admissionwebhook_config_action.go
│   │   │   ├── admissionwebhook_config_action_test.go
│   │   │   ├── apiservice_action.go
│   │   │   ├── apiservice_action_test.go
│   │   │   ├── change_image_name_action.go
│   │   │   ├── change_image_name_action_test.go
│   │   │   ├── change_storageclass_action.go
│   │   │   ├── change_storageclass_action_test.go
│   │   │   ├── clusterrolebinding_action.go
│   │   │   ├── clusterrolebinding_action_test.go
│   │   │   ├── crd_v1_preserve_unknown_fields_action.go
│   │   │   ├── crd_v1_preserve_unknown_fields_action_test.go
│   │   │   ├── csi/
│   │   │   │   ├── pvc_action.go
│   │   │   │   ├── pvc_action_test.go
│   │   │   │   ├── volumesnapshot_action.go
│   │   │   │   ├── volumesnapshot_action_test.go
│   │   │   │   ├── volumesnapshotclass_action.go
│   │   │   │   ├── volumesnapshotclass_action_test.go
│   │   │   │   ├── volumesnapshotcontent_action.go
│   │   │   │   └── volumesnapshotcontent_action_test.go
│   │   │   ├── dataupload_retrieve_action.go
│   │   │   ├── dataupload_retrieve_action_test.go
│   │   │   ├── init_restorehook_pod_action.go
│   │   │   ├── init_restorehook_pod_action_test.go
│   │   │   ├── job_action.go
│   │   │   ├── job_action_test.go
│   │   │   ├── pod_action.go
│   │   │   ├── pod_action_test.go
│   │   │   ├── pod_volume_restore_action.go
│   │   │   ├── pod_volume_restore_action_test.go
│   │   │   ├── pvc_action.go
│   │   │   ├── pvc_action_test.go
│   │   │   ├── rolebinding_action.go
│   │   │   ├── rolebinding_action_test.go
│   │   │   ├── secret_action.go
│   │   │   ├── secret_action_test.go
│   │   │   ├── service_account_action.go
│   │   │   ├── service_account_action_test.go
│   │   │   ├── service_action.go
│   │   │   └── service_action_test.go
│   │   ├── merge_service_account.go
│   │   ├── merge_service_account_test.go
│   │   ├── prioritize_group_version.go
│   │   ├── prioritize_group_version_test.go
│   │   ├── pv_restorer.go
│   │   ├── pv_restorer_test.go
│   │   ├── request.go
│   │   ├── request_test.go
│   │   ├── restore.go
│   │   ├── restore_test.go
│   │   └── restore_wildcard_test.go
│   ├── restorehelper/
│   │   └── util.go
│   ├── test/
│   │   ├── api_server.go
│   │   ├── comparisons.go
│   │   ├── discovery_client.go
│   │   ├── fake_controller_runtime_client.go
│   │   ├── fake_credential_file_store.go
│   │   ├── fake_discovery_helper.go
│   │   ├── fake_dynamic.go
│   │   ├── fake_file_system.go
│   │   ├── fake_mapper.go
│   │   ├── fake_namespace.go
│   │   ├── fake_volume_snapshotter.go
│   │   ├── helpers.go
│   │   ├── mock_pod_command_executor.go
│   │   ├── mocks/
│   │   │   └── VolumeSnapshotLister.go
│   │   ├── mocks.go
│   │   ├── resources.go
│   │   ├── tar_writer.go
│   │   └── test_logger.go
│   ├── types/
│   │   ├── node_agent.go
│   │   ├── priority.go
│   │   ├── priority_test.go
│   │   └── repo_maintenance.go
│   ├── uploader/
│   │   ├── kopia/
│   │   │   ├── block_backup.go
│   │   │   ├── block_backup_windows.go
│   │   │   ├── block_restore.go
│   │   │   ├── block_restore_windows.go
│   │   │   ├── flush_volume_linux.go
│   │   │   ├── flush_volume_other.go
│   │   │   ├── progress.go
│   │   │   ├── progress_test.go
│   │   │   ├── restore_output.go
│   │   │   ├── shim.go
│   │   │   ├── shim_test.go
│   │   │   ├── snapshot.go
│   │   │   └── snapshot_test.go
│   │   ├── mocks/
│   │   │   ├── policy.go
│   │   │   ├── shim.go
│   │   │   ├── snapshot.go
│   │   │   └── uploader.go
│   │   ├── provider/
│   │   │   ├── kopia.go
│   │   │   ├── kopia_test.go
│   │   │   ├── mocks/
│   │   │   │   └── Provider.go
│   │   │   ├── provider.go
│   │   │   ├── provider_test.go
│   │   │   ├── restic.go
│   │   │   └── restic_test.go
│   │   ├── types.go
│   │   ├── types_test.go
│   │   └── util/
│   │       ├── uploader_config.go
│   │       └── uploader_config_test.go
│   └── util/
│       ├── actionhelpers/
│       │   ├── pod_helper.go
│       │   ├── pvc_helper.go
│       │   ├── rbac.go
│       │   └── service_account_helper.go
│       ├── azure/
│       │   ├── credential.go
│       │   ├── credential_test.go
│       │   ├── storage.go
│       │   ├── storage_test.go
│       │   ├── testdata/
│       │   │   └── certificate.pem
│       │   ├── util.go
│       │   └── util_test.go
│       ├── boolptr/
│       │   └── boolptr.go
│       ├── collections/
│       │   ├── includes_excludes.go
│       │   └── includes_excludes_test.go
│       ├── csi/
│       │   ├── util.go
│       │   ├── util_test.go
│       │   ├── volume_snapshot.go
│       │   └── volume_snapshot_test.go
│       ├── encode/
│       │   └── encode.go
│       ├── exec/
│       │   └── exec.go
│       ├── filesystem/
│       │   └── file_system.go
│       ├── kube/
│       │   ├── client.go
│       │   ├── event.go
│       │   ├── event_handler.go
│       │   ├── event_test.go
│       │   ├── list_watch.go
│       │   ├── list_watch_test.go
│       │   ├── mocks/
│       │   │   └── Client.go
│       │   ├── mocks.go
│       │   ├── node.go
│       │   ├── node_test.go
│       │   ├── periodical_enqueue_source.go
│       │   ├── periodical_enqueue_source_test.go
│       │   ├── pod.go
│       │   ├── pod_test.go
│       │   ├── predicate.go
│       │   ├── predicate_test.go
│       │   ├── priority_class.go
│       │   ├── priority_class_test.go
│       │   ├── pvc_pv.go
│       │   ├── pvc_pv_test.go
│       │   ├── resource_deletionstatus_tracker.go
│       │   ├── resource_requirements.go
│       │   ├── resource_requirements_test.go
│       │   ├── secrets.go
│       │   ├── secrets_test.go
│       │   ├── security_context.go
│       │   ├── security_context_test.go
│       │   ├── utils.go
│       │   └── utils_test.go
│       ├── logging/
│       │   ├── default_logger.go
│       │   ├── default_logger_test.go
│       │   ├── dual_mode_logger.go
│       │   ├── dual_mode_logger_test.go
│       │   ├── error_location_hook.go
│       │   ├── error_location_hook_test.go
│       │   ├── format_flag.go
│       │   ├── hclog_level_hook.go
│       │   ├── log_counter_hook.go
│       │   ├── log_counter_hook_test.go
│       │   ├── log_level_flag.go
│       │   ├── log_location_hook.go
│       │   ├── log_location_hook_test.go
│       │   ├── log_merge_hook.go
│       │   └── log_merge_hook_test.go
│       ├── podvolume/
│       │   ├── pod_volume.go
│       │   └── pod_volume_test.go
│       ├── results/
│       │   ├── result.go
│       │   └── result_test.go
│       ├── scheme.go
│       ├── stringptr/
│       │   └── stringptr.go
│       ├── stringslice/
│       │   ├── stringslice.go
│       │   └── stringslice_test.go
│       ├── third_party.go
│       ├── util.go
│       ├── util_test.go
│       ├── velero/
│       │   ├── restore/
│       │   │   ├── util.go
│       │   │   └── util_test.go
│       │   ├── velero.go
│       │   └── velero_test.go
│       └── wildcard/
│           ├── expand.go
│           └── expand_test.go
├── restore-hooks_product-requirements.md
├── site/
│   ├── Dockerfile
│   ├── README-HUGO.md
│   ├── assets/
│   │   ├── _scss/
│   │   │   ├── _styles.scss
│   │   │   ├── bootstrap-4.1.3/
│   │   │   │   ├── _alert.scss
│   │   │   │   ├── _badge.scss
│   │   │   │   ├── _breadcrumb.scss
│   │   │   │   ├── _button-group.scss
│   │   │   │   ├── _buttons.scss
│   │   │   │   ├── _card.scss
│   │   │   │   ├── _carousel.scss
│   │   │   │   ├── _close.scss
│   │   │   │   ├── _code.scss
│   │   │   │   ├── _custom-forms.scss
│   │   │   │   ├── _dropdown.scss
│   │   │   │   ├── _forms.scss
│   │   │   │   ├── _functions.scss
│   │   │   │   ├── _grid.scss
│   │   │   │   ├── _images.scss
│   │   │   │   ├── _input-group.scss
│   │   │   │   ├── _jumbotron.scss
│   │   │   │   ├── _list-group.scss
│   │   │   │   ├── _media.scss
│   │   │   │   ├── _mixins.scss
│   │   │   │   ├── _modal.scss
│   │   │   │   ├── _nav.scss
│   │   │   │   ├── _navbar.scss
│   │   │   │   ├── _pagination.scss
│   │   │   │   ├── _popover.scss
│   │   │   │   ├── _print.scss
│   │   │   │   ├── _progress.scss
│   │   │   │   ├── _reboot.scss
│   │   │   │   ├── _root.scss
│   │   │   │   ├── _tables.scss
│   │   │   │   ├── _tooltip.scss
│   │   │   │   ├── _transitions.scss
│   │   │   │   ├── _type.scss
│   │   │   │   ├── _utilities.scss
│   │   │   │   ├── _variables.scss
│   │   │   │   ├── bootstrap-grid.scss
│   │   │   │   ├── bootstrap-reboot.scss
│   │   │   │   ├── bootstrap.scss
│   │   │   │   ├── mixins/
│   │   │   │   │   ├── _alert.scss
│   │   │   │   │   ├── _background-variant.scss
│   │   │   │   │   ├── _badge.scss
│   │   │   │   │   ├── _border-radius.scss
│   │   │   │   │   ├── _box-shadow.scss
│   │   │   │   │   ├── _breakpoints.scss
│   │   │   │   │   ├── _buttons.scss
│   │   │   │   │   ├── _caret.scss
│   │   │   │   │   ├── _clearfix.scss
│   │   │   │   │   ├── _float.scss
│   │   │   │   │   ├── _forms.scss
│   │   │   │   │   ├── _gradients.scss
│   │   │   │   │   ├── _grid-framework.scss
│   │   │   │   │   ├── _grid.scss
│   │   │   │   │   ├── _hover.scss
│   │   │   │   │   ├── _image.scss
│   │   │   │   │   ├── _list-group.scss
│   │   │   │   │   ├── _lists.scss
│   │   │   │   │   ├── _nav-divider.scss
│   │   │   │   │   ├── _pagination.scss
│   │   │   │   │   ├── _reset-text.scss
│   │   │   │   │   ├── _resize.scss
│   │   │   │   │   ├── _screen-reader.scss
│   │   │   │   │   ├── _size.scss
│   │   │   │   │   ├── _table-row.scss
│   │   │   │   │   ├── _text-emphasis.scss
│   │   │   │   │   ├── _text-hide.scss
│   │   │   │   │   ├── _text-truncate.scss
│   │   │   │   │   ├── _transition.scss
│   │   │   │   │   └── _visibility.scss
│   │   │   │   └── utilities/
│   │   │   │       ├── _align.scss
│   │   │   │       ├── _background.scss
│   │   │   │       ├── _borders.scss
│   │   │   │       ├── _clearfix.scss
│   │   │   │       ├── _display.scss
│   │   │   │       ├── _embed.scss
│   │   │   │       ├── _flex.scss
│   │   │   │       ├── _float.scss
│   │   │   │       ├── _position.scss
│   │   │   │       ├── _screenreaders.scss
│   │   │   │       ├── _shadows.scss
│   │   │   │       ├── _sizing.scss
│   │   │   │       ├── _spacing.scss
│   │   │   │       ├── _text.scss
│   │   │   │       └── _visibility.scss
│   │   │   └── site/
│   │   │       ├── common/
│   │   │       │   ├── _core.scss
│   │   │       │   ├── _fonts.scss
│   │   │       │   └── _type.scss
│   │   │       ├── layouts/
│   │   │       │   ├── _container.scss
│   │   │       │   ├── _docsearch.scss
│   │   │       │   └── _documentation.scss
│   │   │       ├── objects/
│   │   │       │   ├── _alternating-cards.scss
│   │   │       │   ├── _button.scss
│   │   │       │   ├── _card.scss
│   │   │       │   ├── _footer.scss
│   │   │       │   ├── _header.scss
│   │   │       │   ├── _home-hero.scss
│   │   │       │   ├── _post.scss
│   │   │       │   ├── _section.scss
│   │   │       │   └── _thumbnail-grid.scss
│   │   │       ├── settings/
│   │   │       │   └── _variables.scss
│   │   │       └── utilities/
│   │   │           ├── _image.scss
│   │   │           └── _type.scss
│   │   └── styles.scss
│   ├── config.yaml
│   ├── content/
│   │   ├── _index.md
│   │   ├── casestudies/
│   │   │   ├── index.md
│   │   │   ├── sample1.md
│   │   │   ├── sample2.md
│   │   │   └── sample3.md
│   │   ├── community/
│   │   │   └── _index.md
│   │   ├── contributors/
│   │   │   ├── 01-daniel-jiang.md
│   │   │   ├── 02-scott-seago.md
│   │   │   ├── 02-shubham-pampattiwar.md
│   │   │   ├── 02-wenkai-yin.md
│   │   │   ├── 02-xun-jiang.md
│   │   │   ├── 04-pradeep-chaturvedi.md
│   │   │   ├── 06-anshul-ahuja.md
│   │   │   ├── 07-tiger-kaovilai.md
│   │   │   └── index.md
│   │   ├── docs/
│   │   │   ├── main/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-cache-volume.md
│   │   │   │   ├── data-movement-node-selection.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace-glob-patterns.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── node-agent-prepare-queue-length.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-configmaps/
│   │   │   │   │   ├── _index.md
│   │   │   │   │   └── node-agent-configmap.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.18.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── volume-group-snapshots.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v0.10.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── storage-layout-reorg-v0.10.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── upgrading-to-v0.10.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── versions.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v0.11.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── expose-minio.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migrating-to-velero.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── versions.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v0.3.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   └── use-cases.md
│   │   │   ├── v0.4.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.5.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.6.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-provider-specifics.md
│   │   │   │   ├── concepts.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.7.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.7.1/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-deletes.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.8.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_completion.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-deletes.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.8.1/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_completion.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── cloud-common.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-deletes.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v0.9.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── backup.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-scratch.md
│   │   │   │   ├── cli-reference/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ark.md
│   │   │   │   │   ├── ark_backup.md
│   │   │   │   │   ├── ark_backup_create.md
│   │   │   │   │   ├── ark_backup_delete.md
│   │   │   │   │   ├── ark_backup_describe.md
│   │   │   │   │   ├── ark_backup_download.md
│   │   │   │   │   ├── ark_backup_get.md
│   │   │   │   │   ├── ark_backup_logs.md
│   │   │   │   │   ├── ark_client.md
│   │   │   │   │   ├── ark_client_config.md
│   │   │   │   │   ├── ark_client_config_get.md
│   │   │   │   │   ├── ark_client_config_set.md
│   │   │   │   │   ├── ark_completion.md
│   │   │   │   │   ├── ark_create.md
│   │   │   │   │   ├── ark_create_backup.md
│   │   │   │   │   ├── ark_create_restore.md
│   │   │   │   │   ├── ark_create_schedule.md
│   │   │   │   │   ├── ark_delete.md
│   │   │   │   │   ├── ark_delete_backup.md
│   │   │   │   │   ├── ark_delete_restore.md
│   │   │   │   │   ├── ark_delete_schedule.md
│   │   │   │   │   ├── ark_describe.md
│   │   │   │   │   ├── ark_describe_backups.md
│   │   │   │   │   ├── ark_describe_restores.md
│   │   │   │   │   ├── ark_describe_schedules.md
│   │   │   │   │   ├── ark_get.md
│   │   │   │   │   ├── ark_get_backups.md
│   │   │   │   │   ├── ark_get_restores.md
│   │   │   │   │   ├── ark_get_schedules.md
│   │   │   │   │   ├── ark_plugin.md
│   │   │   │   │   ├── ark_plugin_add.md
│   │   │   │   │   ├── ark_plugin_remove.md
│   │   │   │   │   ├── ark_restic.md
│   │   │   │   │   ├── ark_restic_repo.md
│   │   │   │   │   ├── ark_restic_repo_get.md
│   │   │   │   │   ├── ark_restic_server.md
│   │   │   │   │   ├── ark_restore.md
│   │   │   │   │   ├── ark_restore_create.md
│   │   │   │   │   ├── ark_restore_delete.md
│   │   │   │   │   ├── ark_restore_describe.md
│   │   │   │   │   ├── ark_restore_get.md
│   │   │   │   │   ├── ark_restore_logs.md
│   │   │   │   │   ├── ark_schedule.md
│   │   │   │   │   ├── ark_schedule_create.md
│   │   │   │   │   ├── ark_schedule_delete.md
│   │   │   │   │   ├── ark_schedule_describe.md
│   │   │   │   │   ├── ark_schedule_get.md
│   │   │   │   │   ├── ark_server.md
│   │   │   │   │   └── ark_version.md
│   │   │   │   ├── config-definition.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── quickstart.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── use-cases.md
│   │   │   │   └── vendoring-dependencies.md
│   │   │   ├── v1.0.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── extend.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migrating-to-velero.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── oracle-config.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── upgrade-to-1.0.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.1.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── about.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── aws-config.md
│   │   │   │   ├── azure-config.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── gcp-config.md
│   │   │   │   ├── get-started.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── ibm-config.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── install-overview.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migrating-to-velero.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── oracle-config.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-matrix.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── upgrade-to-1.1.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.10/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.10.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.11/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.11.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.12/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.12.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.13/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.13.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.14/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-node-selection.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.14.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.15/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-node-selection.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.15.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.16/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-node-selection.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.16.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.17/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-node-selection.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── node-agent-prepare-queue-length.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.17.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── volume-group-snapshots.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.18/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── backup-repository-configuration.md
│   │   │   │   ├── backup-restore-windows.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi-snapshot-data-movement.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── data-movement-backup-pvc-configuration.md
│   │   │   │   ├── data-movement-cache-volume.md
│   │   │   │   ├── data-movement-node-selection.md
│   │   │   │   ├── data-movement-pod-resource-configuration.md
│   │   │   │   ├── data-movement-restore-pvc-configuration.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── file-system-backup.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace-glob-patterns.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── node-agent-concurrency.md
│   │   │   │   ├── node-agent-prepare-queue-length.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── performance-guidance.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── proxy.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── repository-maintenance.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── restore-resource-modifiers.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-configmaps/
│   │   │   │   │   ├── _index.md
│   │   │   │   │   └── node-agent-configmap.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.18.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── volume-group-snapshots.md
│   │   │   │   └── website-guidelines.md
│   │   │   ├── v1.2.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.2.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.3.0/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.3.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.3.1/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.3.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.3.2/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── faq.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.3.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── vendoring-dependencies.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.4/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   └── oracle-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── hooks.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.4.md
│   │   │   │   ├── velero-install.md
│   │   │   │   ├── website-guidelines.md
│   │   │   │   └── zenhub.md
│   │   │   ├── v1.7/
│   │   │   │   ├── _index.md
│   │   │   │   ├── api-types/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── _index.md
│   │   │   │   │   ├── backup.md
│   │   │   │   │   ├── backupstoragelocation.md
│   │   │   │   │   ├── restore.md
│   │   │   │   │   ├── schedule.md
│   │   │   │   │   └── volumesnapshotlocation.md
│   │   │   │   ├── backup-hooks.md
│   │   │   │   ├── backup-reference.md
│   │   │   │   ├── basic-install.md
│   │   │   │   ├── build-from-source.md
│   │   │   │   ├── code-standards.md
│   │   │   │   ├── contributions/
│   │   │   │   │   ├── ibm-config.md
│   │   │   │   │   ├── minio.md
│   │   │   │   │   ├── oracle-config.md
│   │   │   │   │   └── tencent-config.md
│   │   │   │   ├── csi.md
│   │   │   │   ├── custom-plugins.md
│   │   │   │   ├── customize-installation.md
│   │   │   │   ├── debugging-install.md
│   │   │   │   ├── debugging-restores.md
│   │   │   │   ├── development.md
│   │   │   │   ├── disaster-case.md
│   │   │   │   ├── enable-api-group-versions-feature.md
│   │   │   │   ├── examples.md
│   │   │   │   ├── how-velero-works.md
│   │   │   │   ├── image-tagging.md
│   │   │   │   ├── img/
│   │   │   │   │   └── README.md
│   │   │   │   ├── locations.md
│   │   │   │   ├── maintainers.md
│   │   │   │   ├── manual-testing.md
│   │   │   │   ├── migration-case.md
│   │   │   │   ├── namespace.md
│   │   │   │   ├── on-premises.md
│   │   │   │   ├── output-file-format.md
│   │   │   │   ├── overview-plugins.md
│   │   │   │   ├── plugin-release-instructions.md
│   │   │   │   ├── rbac.md
│   │   │   │   ├── release-instructions.md
│   │   │   │   ├── release-schedule.md
│   │   │   │   ├── resource-filtering.md
│   │   │   │   ├── restic.md
│   │   │   │   ├── restore-hooks.md
│   │   │   │   ├── restore-reference.md
│   │   │   │   ├── run-locally.md
│   │   │   │   ├── self-signed-certificates.md
│   │   │   │   ├── start-contributing.md
│   │   │   │   ├── style-guide.md
│   │   │   │   ├── support-process.md
│   │   │   │   ├── supported-providers.md
│   │   │   │   ├── tilt.md
│   │   │   │   ├── troubleshooting.md
│   │   │   │   ├── uninstalling.md
│   │   │   │   ├── upgrade-to-1.7.md
│   │   │   │   ├── velero-install.md
│   │   │   │   └── website-guidelines.md
│   │   │   └── v1.9/
│   │   │       ├── _index.md
│   │   │       ├── api-types/
│   │   │       │   ├── README.md
│   │   │       │   ├── _index.md
│   │   │       │   ├── backup.md
│   │   │       │   ├── backupstoragelocation.md
│   │   │       │   ├── restore.md
│   │   │       │   ├── schedule.md
│   │   │       │   └── volumesnapshotlocation.md
│   │   │       ├── backup-hooks.md
│   │   │       ├── backup-reference.md
│   │   │       ├── basic-install.md
│   │   │       ├── build-from-source.md
│   │   │       ├── code-standards.md
│   │   │       ├── contributions/
│   │   │       │   ├── ibm-config.md
│   │   │       │   ├── minio.md
│   │   │       │   ├── oracle-config.md
│   │   │       │   └── tencent-config.md
│   │   │       ├── csi.md
│   │   │       ├── custom-plugins.md
│   │   │       ├── customize-installation.md
│   │   │       ├── debugging-install.md
│   │   │       ├── debugging-restores.md
│   │   │       ├── development.md
│   │   │       ├── disaster-case.md
│   │   │       ├── enable-api-group-versions-feature.md
│   │   │       ├── examples.md
│   │   │       ├── how-velero-works.md
│   │   │       ├── image-tagging.md
│   │   │       ├── img/
│   │   │       │   └── README.md
│   │   │       ├── locations.md
│   │   │       ├── maintainers.md
│   │   │       ├── manual-testing.md
│   │   │       ├── migration-case.md
│   │   │       ├── namespace.md
│   │   │       ├── on-premises.md
│   │   │       ├── output-file-format.md
│   │   │       ├── overview-plugins.md
│   │   │       ├── plugin-release-instructions.md
│   │   │       ├── rbac.md
│   │   │       ├── release-instructions.md
│   │   │       ├── release-schedule.md
│   │   │       ├── resource-filtering.md
│   │   │       ├── restic.md
│   │   │       ├── restore-hooks.md
│   │   │       ├── restore-reference.md
│   │   │       ├── run-locally.md
│   │   │       ├── self-signed-certificates.md
│   │   │       ├── start-contributing.md
│   │   │       ├── style-guide.md
│   │   │       ├── support-process.md
│   │   │       ├── supported-providers.md
│   │   │       ├── tilt.md
│   │   │       ├── troubleshooting.md
│   │   │       ├── uninstalling.md
│   │   │       ├── upgrade-to-1.9.md
│   │   │       ├── velero-install.md
│   │   │       └── website-guidelines.md
│   │   ├── plugins/
│   │   │   ├── _index.md
│   │   │   └── list/
│   │   │       ├── 01-amazon-web-services.md
│   │   │       ├── 01-google-cloud-platform.md
│   │   │       ├── 01-microsoft-azure.md
│   │   │       ├── 01-vsphere.md
│   │   │       ├── 05-alibaba-cloud.md
│   │   │       ├── 05-digitalocean.md
│   │   │       ├── 05-hpe-storage.md
│   │   │       ├── 05-openebs.md
│   │   │       ├── 05-openshift.md
│   │   │       ├── 05-portworx.md
│   │   │       ├── 05-storj.md
│   │   │       ├── 10-container-storage-interface.md
│   │   │       ├── 10-openstack.md
│   │   │       └── index.md
│   │   ├── posts/
│   │   │   ├── 2019-04-09-Velero-is-an-Open-Source-Tool-to-Back-up-and-Migrate-Kubernetes-Clusters.md
│   │   │   ├── 2019-05-20-velero-1.0-has-arrived.md
│   │   │   ├── 2019-08-22-announcing-velero-1.1.md
│   │   │   ├── 2019-10-01-announcing-gh-move.md
│   │   │   ├── 2019-10-08-Velero-v1-1-on-vSphere.md
│   │   │   ├── 2019-10-10-Velero-v1-1-Stateful-Backup-vSphere.md
│   │   │   ├── 2019-11-07-Velero-1.2-Sets-Sail.md
│   │   │   ├── 2020-03-02-Velero-1.3-Voyage-Continues.md
│   │   │   ├── 2020-05-26-Velero-1.4-Community-Wave.md
│   │   │   ├── 2020-05-27-CSI-integration.md
│   │   │   ├── 2020-09-16-Velero-1.5-For-And-By-Community.md
│   │   │   ├── 2021-04-13-Velero-1.6-Bring-All-Your-Credentials.md
│   │   │   ├── 2023-04-26-Velero-1.11.md
│   │   │   └── _index.md
│   │   └── resources/
│   │       └── _index.md
│   ├── data/
│   │   └── docs/
│   │       ├── default.yml
│   │       ├── main-toc.yml
│   │       ├── toc-mapping.yml
│   │       ├── v010-toc.yml
│   │       ├── v011-toc.yml
│   │       ├── v1-0-0-toc.yml
│   │       ├── v1-1-0-toc.yml
│   │       ├── v1-10-toc.yml
│   │       ├── v1-11-toc.yml
│   │       ├── v1-12-toc.yml
│   │       ├── v1-13-toc.yml
│   │       ├── v1-14-toc.yml
│   │       ├── v1-15-toc.yml
│   │       ├── v1-16-toc.yml
│   │       ├── v1-17-toc.yml
│   │       ├── v1-18-toc.yml
│   │       ├── v1-2-0-toc.yml
│   │       ├── v1-3-0-toc.yml
│   │       ├── v1-3-1-toc.yml
│   │       ├── v1-3-2-toc.yml
│   │       ├── v1-4-toc.yml
│   │       ├── v1-5-toc.yml
│   │       ├── v1-6-toc.yml
│   │       ├── v1-7-toc.yml
│   │       ├── v1-8-toc.yml
│   │       ├── v1-9-toc.yml
│   │       ├── v7-1-toc.yml
│   │       ├── v7-toc.yml
│   │       ├── v8-1-toc.yml
│   │       ├── v8-toc.yml
│   │       └── v9-toc.yml
│   ├── layouts/
│   │   ├── 404.html
│   │   ├── _default/
│   │   │   ├── _markup/
│   │   │   │   ├── render-image.html
│   │   │   │   └── render-link.html
│   │   │   ├── baseof.html
│   │   │   ├── footer.html
│   │   │   ├── section.html
│   │   │   ├── site-header.html
│   │   │   └── tag.html
│   │   ├── docs/
│   │   │   ├── docs.html
│   │   │   ├── nav.html
│   │   │   ├── version-warning.html
│   │   │   └── versions.html
│   │   ├── index.html
│   │   ├── index.redirects
│   │   ├── partials/
│   │   │   ├── blog-post-card.html
│   │   │   ├── blog-posts.html
│   │   │   ├── case-studies-alternating.html
│   │   │   ├── contributors.html
│   │   │   ├── head-docs.html
│   │   │   ├── plugins.html
│   │   │   └── related-posts.html
│   │   ├── plugins/
│   │   │   └── list.html
│   │   ├── posts/
│   │   │   ├── section.html
│   │   │   └── single.html
│   │   ├── robots.txt
│   │   └── shortcodes/
│   │       ├── table.html
│   │       └── youtube.html
│   └── static/
│       ├── fonts/
│       │   └── Metropolis/
│       │       ├── Open Font License.md
│       │       └── README.md
│       └── js/
│           ├── jquery.matchHeight.js
│           └── scripts.js
├── test/
│   ├── Makefile
│   ├── e2e/
│   │   ├── README.md
│   │   ├── backup/
│   │   │   └── backup.go
│   │   ├── backups/
│   │   │   ├── deletion.go
│   │   │   ├── sync_backups.go
│   │   │   └── ttl.go
│   │   ├── basic/
│   │   │   ├── api-group/
│   │   │   │   ├── enable_api_group_extentions.go
│   │   │   │   └── enable_api_group_versions.go
│   │   │   ├── backup-volume-info/
│   │   │   │   ├── base.go
│   │   │   │   ├── csi_data_mover.go
│   │   │   │   ├── csi_snapshot.go
│   │   │   │   ├── filesystem_upload.go
│   │   │   │   ├── native_snapshot.go
│   │   │   │   └── skipped_volumes.go
│   │   │   ├── namespace-mapping.go
│   │   │   ├── nodeport.go
│   │   │   ├── resources-check/
│   │   │   │   ├── namespaces.go
│   │   │   │   ├── namespaces_annotation.go
│   │   │   │   ├── rbac.go
│   │   │   │   └── resources_check.go
│   │   │   ├── restore_exec_hooks.go
│   │   │   └── storage-class-changing.go
│   │   ├── bsl-mgmt/
│   │   │   └── deletion.go
│   │   ├── e2e_suite_test.go
│   │   ├── migration/
│   │   │   └── migration.go
│   │   ├── nodeagentconfig/
│   │   │   └── node-agent-config.go
│   │   ├── parallelfilesdownload/
│   │   │   └── parallel_files_download.go
│   │   ├── parallelfilesupload/
│   │   │   └── parallel_files_upload.go
│   │   ├── privilegesmgmt/
│   │   │   └── ssr.go
│   │   ├── pv-backup/
│   │   │   └── pv-backup-filter.go
│   │   ├── repomaintenance/
│   │   │   └── repo_maintenance_config.go
│   │   ├── resource-filtering/
│   │   │   ├── base.go
│   │   │   ├── exclude_label.go
│   │   │   ├── exclude_namespaces.go
│   │   │   ├── exclude_resources.go
│   │   │   ├── include_namespaces.go
│   │   │   ├── include_resources.go
│   │   │   ├── label_selector.go
│   │   │   └── wildcard_namespaces.go
│   │   ├── resourcemodifiers/
│   │   │   └── resource_modifiers.go
│   │   ├── resourcepolicies/
│   │   │   └── resource_policies.go
│   │   ├── scale/
│   │   │   └── multiple_namespaces.go
│   │   ├── schedule/
│   │   │   ├── in_progress.go
│   │   │   ├── ordered_resources.go
│   │   │   └── periodical.go
│   │   ├── test/
│   │   │   └── test.go
│   │   └── upgrade/
│   │       └── upgrade.go
│   ├── perf/
│   │   ├── README.md
│   │   ├── backup/
│   │   │   └── backup.go
│   │   ├── basic/
│   │   │   └── basic.go
│   │   ├── e2e_suite_test.go
│   │   ├── metrics/
│   │   │   ├── minio.go
│   │   │   ├── monitor.go
│   │   │   ├── nfs.go
│   │   │   ├── pod.go
│   │   │   └── time.go
│   │   ├── restore/
│   │   │   └── restore.go
│   │   └── test/
│   │       └── test.go
│   ├── pkg/
│   │   └── client/
│   │       ├── auth_providers.go
│   │       ├── client.go
│   │       ├── client_test.go
│   │       ├── config.go
│   │       ├── config_test.go
│   │       ├── dynamic.go
│   │       ├── factory.go
│   │       └── factory_test.go
│   ├── testdata/
│   │   ├── enable_api_group_versions/
│   │   │   ├── README.md
│   │   │   ├── case-a-source-v1beta1.yaml
│   │   │   ├── case-a-source.yaml
│   │   │   ├── case-a-target.yaml
│   │   │   ├── case-b-source-manually-added-mutations.yaml
│   │   │   ├── case-b-target-manually-added-mutations.yaml
│   │   │   ├── case-c-target-manually-added-mutations.yaml
│   │   │   ├── case-d-target-manually-added-mutations.yaml
│   │   │   ├── music_v1_rockband.yaml
│   │   │   ├── music_v1alpha1_rockband.yaml
│   │   │   ├── music_v2_rockband.yaml
│   │   │   ├── music_v2beta1_rockband.yaml
│   │   │   └── music_v2beta2_rockband.yaml
│   │   ├── storage-class/
│   │   │   ├── README.md
│   │   │   ├── aws-legecy.yaml
│   │   │   ├── aws.yaml
│   │   │   ├── azure-legacy.yaml
│   │   │   ├── azure.yaml
│   │   │   ├── gcp-legacy.yaml
│   │   │   ├── gcp.yaml
│   │   │   ├── kind.yaml
│   │   │   ├── vanilla-zfs.yaml
│   │   │   ├── vsphere-legacy.yaml
│   │   │   └── vsphere.yaml
│   │   └── volume-snapshot-class/
│   │       ├── aws.yaml
│   │       ├── azure.yaml
│   │       ├── gcp.yaml
│   │       ├── vanilla-zfs.yaml
│   │       └── vsphere.yaml
│   ├── types.go
│   └── util/
│       ├── common/
│       │   └── common.go
│       ├── csi/
│       │   └── common.go
│       ├── eks/
│       │   └── eks.go
│       ├── k8s/
│       │   ├── client.go
│       │   ├── clusterrolebinding.go
│       │   ├── common.go
│       │   ├── configmap.go
│       │   ├── crd.go
│       │   ├── deployment.go
│       │   ├── namespace.go
│       │   ├── node.go
│       │   ├── persistentvolumes.go
│       │   ├── pod.go
│       │   ├── pvc.go
│       │   ├── rbac.go
│       │   ├── sc.go
│       │   ├── secret.go
│       │   ├── service.go
│       │   ├── serviceaccount.go
│       │   └── statefulset.go
│       ├── kibishii/
│       │   ├── kibishii_utils.go
│       │   └── kibishii_utils_test.go
│       ├── metrics/
│       │   ├── minio.go
│       │   ├── nfs.go
│       │   └── pod.go
│       ├── providers/
│       │   ├── aws_utils.go
│       │   ├── azure_utils.go
│       │   ├── common.go
│       │   └── gcloud_utils.go
│       ├── report/
│       │   └── report.go
│       └── velero/
│           ├── install.go
│           ├── install_test.go
│           ├── velero_utils.go
│           └── velero_utils_test.go
├── third_party/
│   └── kubernetes/
│       └── pkg/
│           └── kubectl/
│               └── cmd/
│                   ├── completion.go
│                   └── util/
│                       └── shortcut_expander.go
└── tilt-resources/
    ├── examples/
    │   ├── cloud
    │   ├── deployment.yaml
    │   ├── node-agent.yaml
    │   ├── tilt-settings.json
    │   └── velero_v1_backupstoragelocation.yaml
    └── kustomization.yaml
Download .txt
Showing preview only (841K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8249 symbols across 921 files)

FILE: cmd/velero-helper/velero-helper.go
  constant workingModePause (line 27) | workingModePause = "pause"
  function main (line 30) | func main() {

FILE: cmd/velero-restore-helper/velero-restore-helper.go
  function main (line 26) | func main() {
  function done (line 53) | func done() bool {
  function removeFolder (line 83) | func removeFolder() error {

FILE: cmd/velero/velero.go
  function main (line 29) | func main() {

FILE: config/crd/v1/crds/crds.go
  function crds (line 47) | func crds() []*apiextv1.CustomResourceDefinition {

FILE: config/crd/v2alpha1/crds/crds.go
  function crds (line 38) | func crds() []*apiextv1.CustomResourceDefinition {

FILE: hack/crd-gen/v1/main.go
  constant goHeaderFile (line 32) | goHeaderFile = "../../../../hack/boilerplate.go.txt"
  constant tpl (line 34) | tpl = `{{.GoHeader}}
  type templateData (line 82) | type templateData struct
  function main (line 87) | func main() {

FILE: hack/issue-template-gen/main.go
  function main (line 30) | func main() {

FILE: hack/release-tools/chk_version.go
  function main (line 37) | func main() {
  function reSubMatchMap (line 61) | func reSubMatchMap(r *regexp.Regexp, s string) map[string]string {

FILE: hack/release-tools/chk_version_test.go
  function TestRegexMatching (line 24) | func TestRegexMatching(t *testing.T) {

FILE: internal/credentials/file_store.go
  type FileStore (line 34) | type FileStore interface
  type namespacedFileStore (line 40) | type namespacedFileStore struct
    method Path (line 66) | func (n *namespacedFileStore) Path(selector *corev1api.SecretKeySelect...
  function NewNamespacedFileStore (line 49) | func NewNamespacedFileStore(client kbclient.Client, namespace string, fs...

FILE: internal/credentials/file_store_test.go
  function TestNamespacedFileStore (line 29) | func TestNamespacedFileStore(t *testing.T) {

FILE: internal/credentials/getter.go
  type CredentialGetter (line 21) | type CredentialGetter struct

FILE: internal/credentials/local.go
  function DefaultStoreDirectory (line 5) | func DefaultStoreDirectory() string {

FILE: internal/credentials/mocks/FileStore.go
  type FileStore (line 11) | type FileStore struct
    method Path (line 16) | func (_m *FileStore) Path(selector *corev1api.SecretKeySelector) (stri...
  type mockConstructorTestingTNewFileStore (line 36) | type mockConstructorTestingTNewFileStore interface
  function NewFileStore (line 42) | func NewFileStore(t mockConstructorTestingTNewFileStore) *FileStore {

FILE: internal/credentials/mocks/SecretStore.go
  type SecretStore (line 11) | type SecretStore struct
    method Get (line 16) | func (_m *SecretStore) Get(selector *corev1api.SecretKeySelector) (str...
  type mockConstructorTestingTNewSecretStore (line 36) | type mockConstructorTestingTNewSecretStore interface
  function NewSecretStore (line 42) | func NewSecretStore(t mockConstructorTestingTNewSecretStore) *SecretStore {

FILE: internal/credentials/secret_store.go
  type SecretStore (line 29) | type SecretStore interface
  type namespacedSecretStore (line 34) | type namespacedSecretStore struct
    method Get (line 49) | func (n *namespacedSecretStore) Get(selector *corev1api.SecretKeySelec...
  function NewNamespacedSecretStore (line 41) | func NewNamespacedSecretStore(client kbclient.Client, namespace string) ...

FILE: internal/delete/actions/csi/volumesnapshotcontent_action.go
  type volumeSnapshotContentDeleteItemAction (line 42) | type volumeSnapshotContentDeleteItemAction struct
    method AppliesTo (line 50) | func (p *volumeSnapshotContentDeleteItemAction) AppliesTo() (velero.Re...
    method Execute (line 56) | func (p *volumeSnapshotContentDeleteItemAction) Execute(
  function NewVolumeSnapshotContentDeleteItemAction (line 184) | func NewVolumeSnapshotContentDeleteItemAction(

FILE: internal/delete/actions/csi/volumesnapshotcontent_action_test.go
  function TestVSCExecute (line 40) | func TestVSCExecute(t *testing.T) {
  function TestVSCAppliesTo (line 140) | func TestVSCAppliesTo(t *testing.T) {
  function TestNewVolumeSnapshotContentDeleteItemAction (line 157) | func TestNewVolumeSnapshotContentDeleteItemAction(t *testing.T) {
  function TestCheckVSCReadiness (line 174) | func TestCheckVSCReadiness(t *testing.T) {
  function boolPtr (line 242) | func boolPtr(b bool) *bool {
  function stringPtr (line 246) | func stringPtr(s string) *string {

FILE: internal/delete/delete_item_action_handler.go
  type Context (line 38) | type Context struct
    method getApplicableActions (line 139) | func (ctx *Context) getApplicableActions(groupResource schema.GroupRes...
  function InvokeDeleteActions (line 48) | func InvokeDeleteActions(ctx *Context) error {

FILE: internal/delete/delete_item_action_handler_test.go
  function TestInvokeDeleteItemActionsRunForCorrectItems (line 40) | func TestInvokeDeleteItemActionsRunForCorrectItems(t *testing.T) {
  type harness (line 190) | type harness struct
    method addResource (line 211) | func (h *harness) addResource(t *testing.T, resource *test.APIResource) {
  function newHarness (line 195) | func newHarness(t *testing.T) *harness {
  type recordResourcesAction (line 234) | type recordResourcesAction struct
    method AppliesTo (line 239) | func (a *recordResourcesAction) AppliesTo() (velero.ResourceSelector, ...
    method Execute (line 243) | func (a *recordResourcesAction) Execute(input *velero.DeleteItemAction...
    method ForResource (line 254) | func (a *recordResourcesAction) ForResource(resource string) *recordRe...
    method ForNamespace (line 259) | func (a *recordResourcesAction) ForNamespace(namespace string) *record...
    method ForLabelSelector (line 264) | func (a *recordResourcesAction) ForLabelSelector(selector string) *rec...
  function TestInvokeDeleteItemActionsWithNoPlugins (line 269) | func TestInvokeDeleteItemActionsWithNoPlugins(t *testing.T) {

FILE: internal/hook/hook_tracker.go
  constant HookSourceAnnotation (line 25) | HookSourceAnnotation = "annotation"
  constant HookSourceSpec (line 26) | HookSourceSpec       = "spec"
  type hookKey (line 30) | type hookKey struct
  type hookStatus (line 56) | type hookStatus struct
  type HookTracker (line 64) | type HookTracker struct
    method Add (line 89) | func (ht *HookTracker) Add(podNamespace, podName, container, source, h...
    method Record (line 115) | func (ht *HookTracker) Record(podNamespace, podName, container, source...
    method Stat (line 148) | func (ht *HookTracker) Stat() (hookAttemptedCnt int, hookFailedCnt int) {
    method IsComplete (line 156) | func (ht *HookTracker) IsComplete() bool {
    method HookErrs (line 164) | func (ht *HookTracker) HookErrs() []HookErrInfo {
  function NewHookTracker (line 79) | func NewHookTracker() *HookTracker {
  type MultiHookTracker (line 172) | type MultiHookTracker struct
    method Add (line 187) | func (mht *MultiHookTracker) Add(name, podNamespace, podName, containe...
    method Record (line 198) | func (mht *MultiHookTracker) Record(name, podNamespace, podName, conta...
    method Stat (line 212) | func (mht *MultiHookTracker) Stat(name string) (hookAttemptedCnt int, ...
    method Delete (line 223) | func (mht *MultiHookTracker) Delete(name string) {
    method IsComplete (line 231) | func (mht *MultiHookTracker) IsComplete(name string) bool {
    method HookErrs (line 242) | func (mht *MultiHookTracker) HookErrs(name string) []HookErrInfo {
  function NewMultiHookTracker (line 179) | func NewMultiHookTracker() *MultiHookTracker {

FILE: internal/hook/hook_tracker_test.go
  function TestNewHookTracker (line 27) | func TestNewHookTracker(t *testing.T) {
  function TestHookTracker_Add (line 34) | func TestHookTracker_Add(t *testing.T) {
  function TestHookTracker_Record (line 52) | func TestHookTracker_Record(t *testing.T) {
  function TestHookTracker_Stat (line 79) | func TestHookTracker_Stat(t *testing.T) {
  function TestHookTracker_IsComplete (line 92) | func TestHookTracker_IsComplete(t *testing.T) {
  function TestHookTracker_HookErrs (line 102) | func TestHookTracker_HookErrs(t *testing.T) {
  function TestMultiHookTracker_Add (line 111) | func TestMultiHookTracker_Add(t *testing.T) {
  function TestMultiHookTracker_Record (line 130) | func TestMultiHookTracker_Record(t *testing.T) {
  function TestMultiHookTracker_Stat (line 157) | func TestMultiHookTracker_Stat(t *testing.T) {
  function TestMultiHookTracker_Delete (line 172) | func TestMultiHookTracker_Delete(t *testing.T) {
  function TestMultiHookTracker_IsComplete (line 181) | func TestMultiHookTracker_IsComplete(t *testing.T) {
  function TestMultiHookTracker_HookErrs (line 193) | func TestMultiHookTracker_HookErrs(t *testing.T) {

FILE: internal/hook/item_hook_handler.go
  type HookPhase (line 46) | type HookPhase
  constant PhasePre (line 49) | PhasePre  HookPhase = "pre"
  constant PhasePost (line 50) | PhasePost HookPhase = "post"
  constant podBackupHookContainerAnnotationKey (line 55) | podBackupHookContainerAnnotationKey = "hook.backup.velero.io/container"
  constant podBackupHookCommandAnnotationKey (line 56) | podBackupHookCommandAnnotationKey   = "hook.backup.velero.io/command"
  constant podBackupHookOnErrorAnnotationKey (line 57) | podBackupHookOnErrorAnnotationKey   = "hook.backup.velero.io/on-error"
  constant podBackupHookTimeoutAnnotationKey (line 58) | podBackupHookTimeoutAnnotationKey   = "hook.backup.velero.io/timeout"
  constant podRestoreHookContainerAnnotationKey (line 61) | podRestoreHookContainerAnnotationKey            = "post.hook.restore.vel...
  constant podRestoreHookCommandAnnotationKey (line 62) | podRestoreHookCommandAnnotationKey              = "post.hook.restore.vel...
  constant podRestoreHookOnErrorAnnotationKey (line 63) | podRestoreHookOnErrorAnnotationKey              = "post.hook.restore.vel...
  constant podRestoreHookTimeoutAnnotationKey (line 64) | podRestoreHookTimeoutAnnotationKey              = "post.hook.restore.vel...
  constant podRestoreHookWaitTimeoutAnnotationKey (line 65) | podRestoreHookWaitTimeoutAnnotationKey          = "post.hook.restore.vel...
  constant podRestoreHookWaitForReadyAnnotationKey (line 66) | podRestoreHookWaitForReadyAnnotationKey         = "post.hook.restore.vel...
  constant podRestoreHookInitContainerImageAnnotationKey (line 67) | podRestoreHookInitContainerImageAnnotationKey   = "init.hook.restore.vel...
  constant podRestoreHookInitContainerNameAnnotationKey (line 68) | podRestoreHookInitContainerNameAnnotationKey    = "init.hook.restore.vel...
  constant podRestoreHookInitContainerCommandAnnotationKey (line 69) | podRestoreHookInitContainerCommandAnnotationKey = "init.hook.restore.vel...
  constant podRestoreHookInitContainerTimeoutAnnotationKey (line 70) | podRestoreHookInitContainerTimeoutAnnotationKey = "init.hook.restore.vel...
  type ItemHookHandler (line 74) | type ItemHookHandler interface
  type ItemRestoreHookHandler (line 90) | type ItemRestoreHookHandler interface
  type InitContainerRestoreHookHandler (line 100) | type InitContainerRestoreHookHandler struct
    method HandleRestoreHooks (line 106) | func (i *InitContainerRestoreHookHandler) HandleRestoreHooks(
  type DefaultItemHookHandler (line 194) | type DefaultItemHookHandler struct
    method HandleHooks (line 198) | func (h *DefaultItemHookHandler) HandleHooks(
  type NoOpItemHookHandler (line 308) | type NoOpItemHookHandler struct
    method HandleHooks (line 310) | func (h *NoOpItemHookHandler) HandleHooks(
  function phasedKey (line 321) | func phasedKey(phase HookPhase, key string) string {
  function getHookAnnotation (line 328) | func getHookAnnotation(annotations map[string]string, key string, phase ...
  function getPodExecHookFromAnnotations (line 335) | func getPodExecHookFromAnnotations(annotations map[string]string, phase ...
  function parseStringToCommand (line 366) | func parseStringToCommand(commandValue string) []string {
  type ResourceHookSelector (line 379) | type ResourceHookSelector struct
    method applicableTo (line 393) | func (r ResourceHookSelector) applicableTo(groupResource schema.GroupR...
  type ResourceHook (line 386) | type ResourceHook struct
  type ResourceRestoreHook (line 407) | type ResourceRestoreHook struct
  function getInitContainerFromAnnotation (line 413) | func getInitContainerFromAnnotation(podName string, annotations map[stri...
  function GetRestoreHooksFromSpec (line 446) | func GetRestoreHooksFromSpec(hooksSpec *velerov1api.RestoreHooks) ([]Res...
  function getPodExecRestoreHookFromAnnotations (line 479) | func getPodExecRestoreHookFromAnnotations(annotations map[string]string,...
  type PodExecRestoreHook (line 532) | type PodExecRestoreHook struct
  function GroupRestoreExecHooks (line 547) | func GroupRestoreExecHooks(
  function ValidateContainer (line 616) | func ValidateContainer(raw []byte) error {

FILE: internal/hook/item_hook_handler_test.go
  function TestHandleHooksSkips (line 43) | func TestHandleHooksSkips(t *testing.T) {
  function TestHandleHooks (line 128) | func TestHandleHooks(t *testing.T) {
  function TestGetPodExecHookFromAnnotations (line 502) | func TestGetPodExecHookFromAnnotations(t *testing.T) {
  function TestResourceHookApplicableTo (line 607) | func TestResourceHookApplicableTo(t *testing.T) {
  function parseLabelSelectorOrDie (line 698) | func parseLabelSelectorOrDie(s string) labels.Selector {
  function TestGetPodExecRestoreHookFromAnnotations (line 706) | func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
  function TestGroupRestoreExecHooks (line 833) | func TestGroupRestoreExecHooks(t *testing.T) {
  function TestGetInitContainerFromAnnotations (line 1212) | func TestGetInitContainerFromAnnotations(t *testing.T) {
  function TestGetRestoreHooksFromSpec (line 1306) | func TestGetRestoreHooksFromSpec(t *testing.T) {
  function TestHandleRestoreHooks (line 1393) | func TestHandleRestoreHooks(t *testing.T) {
  function TestValidateContainer (line 1975) | func TestValidateContainer(t *testing.T) {
  function TestBackupHookTracker (line 1995) | func TestBackupHookTracker(t *testing.T) {
  function TestRestoreHookTrackerAdd (line 2366) | func TestRestoreHookTrackerAdd(t *testing.T) {

FILE: internal/hook/wait_exec_hook_handler.go
  type WaitExecHookHandler (line 36) | type WaitExecHookHandler interface
  type ListWatchFactory (line 47) | type ListWatchFactory interface
  type DefaultListWatchFactory (line 51) | type DefaultListWatchFactory struct
    method NewListWatch (line 60) | func (d *DefaultListWatchFactory) NewListWatch(namespace string, selec...
  type HookErrInfo (line 55) | type HookErrInfo struct
  type DefaultWaitExecHookHandler (line 66) | type DefaultWaitExecHookHandler struct
    method HandleHooks (line 73) | func (e *DefaultWaitExecHookHandler) HandleHooks(
  function podHasContainer (line 268) | func podHasContainer(pod *corev1api.Pod, containerName string) bool {
  function isContainerUp (line 281) | func isContainerUp(pod *corev1api.Pod, containerName string, hooks []Pod...
  function maxHookWait (line 307) | func maxHookWait(byContainer map[string][]PodExecRestoreHook) time.Durat...

FILE: internal/hook/wait_exec_hook_handler_test.go
  type fakeListWatchFactory (line 41) | type fakeListWatchFactory struct
    method NewListWatch (line 45) | func (f *fakeListWatchFactory) NewListWatch(ns string, selector fields...
  function TestWaitExecHandleHooks (line 51) | func TestWaitExecHandleHooks(t *testing.T) {
  function TestPodHasContainer (line 882) | func TestPodHasContainer(t *testing.T) {
  function TestIsContainerUp (line 918) | func TestIsContainerUp(t *testing.T) {
  function TestMaxHookWait (line 1037) | func TestMaxHookWait(t *testing.T) {
  function TestRestoreHookTrackerUpdate (line 1125) | func TestRestoreHookTrackerUpdate(t *testing.T) {

FILE: internal/resourcemodifiers/json_merge_patch.go
  type JSONMergePatch (line 12) | type JSONMergePatch struct
  type JSONMergePatcher (line 16) | type JSONMergePatcher struct
    method Patch (line 20) | func (p *JSONMergePatcher) Patch(u *unstructured.Unstructured, _ logru...

FILE: internal/resourcemodifiers/json_merge_patch_test.go
  function TestJsonMergePatchFailure (line 14) | func TestJsonMergePatchFailure(t *testing.T) {

FILE: internal/resourcemodifiers/json_patch.go
  type JSONPatch (line 14) | type JSONPatch struct
    method ToString (line 21) | func (p *JSONPatch) ToString() string {
  function addQuotes (line 28) | func addQuotes(value *string) bool {
  type JSONPatcher (line 58) | type JSONPatcher struct
    method Patch (line 62) | func (p *JSONPatcher) Patch(u *unstructured.Unstructured, logger logru...
    method applyPatch (line 81) | func (p *JSONPatcher) applyPatch(u *unstructured.Unstructured) ([]byte...
    method patchArrayToByteArray (line 96) | func (p *JSONPatcher) patchArrayToByteArray() []byte {

FILE: internal/resourcemodifiers/resource_modifiers.go
  constant ConfigmapRefType (line 37) | ConfigmapRefType                   = "configmap"
  constant ResourceModifierSupportedVersionV1 (line 38) | ResourceModifierSupportedVersionV1 = "v1"
  type MatchRule (line 41) | type MatchRule struct
  type Conditions (line 46) | type Conditions struct
  type ResourceModifierRule (line 54) | type ResourceModifierRule struct
    method match (line 113) | func (r *ResourceModifierRule) match(obj *unstructured.Unstructured, g...
    method applyPatch (line 206) | func (r *ResourceModifierRule) applyPatch(u *unstructured.Unstructured...
  type ResourceModifiers (line 61) | type ResourceModifiers struct
    method ApplyResourceModifierRules (line 87) | func (p *ResourceModifiers) ApplyResourceModifierRules(obj *unstructur...
  function GetResourceModifiersFromConfig (line 66) | func GetResourceModifiersFromConfig(cm *corev1api.ConfigMap) (*ResourceM...
  function matchConditions (line 163) | func matchConditions(u *unstructured.Unstructured, rules []MatchRule, _ ...
  function unmarshalResourceModifiers (line 193) | func unmarshalResourceModifiers(yamlData []byte) (*ResourceModifiers, er...
  type patcher (line 202) | type patcher interface

FILE: internal/resourcemodifiers/resource_modifiers_test.go
  function TestGetResourceModifiersFromConfig (line 34) | func TestGetResourceModifiersFromConfig(t *testing.T) {
  function TestResourceModifiers_ApplyResourceModifierRules (line 431) | func TestResourceModifiers_ApplyResourceModifierRules(t *testing.T) {
  function TestResourceModifiers_ApplyResourceModifierRules_StrategicMergePatch (line 1302) | func TestResourceModifiers_ApplyResourceModifierRules_StrategicMergePatc...
  function TestResourceModifiers_ApplyResourceModifierRules_JSONMergePatch (line 1468) | func TestResourceModifiers_ApplyResourceModifierRules_JSONMergePatch(t *...
  function TestResourceModifiers_wildcard_in_GroupResource (line 1619) | func TestResourceModifiers_wildcard_in_GroupResource(t *testing.T) {
  function TestResourceModifiers_conditional_patches (line 1695) | func TestResourceModifiers_conditional_patches(t *testing.T) {
  function TestJSONPatch_ToString (line 1812) | func TestJSONPatch_ToString(t *testing.T) {

FILE: internal/resourcemodifiers/resource_modifiers_validator.go
  method Validate (line 23) | func (r *ResourceModifierRule) Validate() error {
  method Validate (line 50) | func (p *ResourceModifiers) Validate() error {
  method Validate (line 66) | func (p *JSONPatch) Validate() error {
  method Validate (line 79) | func (c *Conditions) Validate() error {

FILE: internal/resourcemodifiers/resource_modifiers_validator_test.go
  function TestResourceModifiers_Validate (line 22) | func TestResourceModifiers_Validate(t *testing.T) {
  function TestJsonPatch_Validate (line 173) | func TestJsonPatch_Validate(t *testing.T) {

FILE: internal/resourcemodifiers/strategic_merge_patch.go
  type StrategicMergePatch (line 19) | type StrategicMergePatch struct
  type StrategicMergePatcher (line 23) | type StrategicMergePatcher struct
    method Patch (line 28) | func (p *StrategicMergePatcher) Patch(u *unstructured.Unstructured, _ ...
  function strategicPatchObject (line 59) | func strategicPatchObject(
  function applyPatchToObject (line 86) | func applyPatchToObject(
  function interpretStrategicMergePatchError (line 129) | func interpretStrategicMergePatchError(err error) error {

FILE: internal/resourcemodifiers/strategic_merge_patch_test.go
  function TestStrategicMergePatchFailure (line 15) | func TestStrategicMergePatchFailure(t *testing.T) {

FILE: internal/resourcepolicies/resource_policies.go
  type VolumeActionType (line 34) | type VolumeActionType
  constant ConfigmapRefType (line 38) | ConfigmapRefType string = "configmap"
  constant Skip (line 40) | Skip VolumeActionType = "skip"
  constant FSBackup (line 42) | FSBackup VolumeActionType = "fs-backup"
  constant Snapshot (line 44) | Snapshot VolumeActionType = "snapshot"
  type Action (line 48) | type Action struct
  type IncludeExcludePolicy (line 56) | type IncludeExcludePolicy struct
    method Validate (line 65) | func (p *IncludeExcludePolicy) Validate() error {
    method validateIncludeExclude (line 72) | func (p *IncludeExcludePolicy) validateIncludeExclude(includesList, ex...
  type VolumePolicy (line 88) | type VolumePolicy struct
  type ResourcePolicies (line 95) | type ResourcePolicies struct
  type Policies (line 103) | type Policies struct
    method BuildPolicy (line 129) | func (p *Policies) BuildPolicy(resPolicies *ResourcePolicies) error {
    method match (line 162) | func (p *Policies) match(res *structuredVolume) *Action {
    method GetMatchAction (line 179) | func (p *Policies) GetMatchAction(res any) (*Action, error) {
    method Validate (line 207) | func (p *Policies) Validate() error {
    method GetIncludeExcludePolicy (line 232) | func (p *Policies) GetIncludeExcludePolicy() *IncludeExcludePolicy {
  function unmarshalResourcePolicies (line 110) | func unmarshalResourcePolicies(yamlData *string) (*ResourcePolicies, err...
  function GetResourcePoliciesFromBackup (line 236) | func GetResourcePoliciesFromBackup(
  function getResourcePoliciesFromConfig (line 272) | func getResourcePoliciesFromConfig(cm *corev1api.ConfigMap) (*Policies, ...

FILE: internal/resourcepolicies/resource_policies_test.go
  function TestLoadResourcePolicies (line 28) | func TestLoadResourcePolicies(t *testing.T) {
  function TestGetResourceMatchedAction (line 173) | func TestGetResourceMatchedAction(t *testing.T) {
  function TestGetResourcePoliciesFromConfig (line 355) | func TestGetResourcePoliciesFromConfig(t *testing.T) {
  function TestGetMatchAction (line 443) | func TestGetMatchAction(t *testing.T) {
  function TestGetMatchAction_Errors (line 1087) | func TestGetMatchAction_Errors(t *testing.T) {
  function TestParsePVC (line 1120) | func TestParsePVC(t *testing.T) {
  function TestPVCPhaseMatch (line 1187) | func TestPVCPhaseMatch(t *testing.T) {

FILE: internal/resourcepolicies/volume_filter_data.go
  type VolumeFilterData (line 8) | type VolumeFilterData struct
  function NewVolumeFilterData (line 15) | func NewVolumeFilterData(pv *corev1api.PersistentVolume, podVol *corev1a...

FILE: internal/resourcepolicies/volume_filter_data_test.go
  function TestNewVolumeFilterData (line 11) | func TestNewVolumeFilterData(t *testing.T) {

FILE: internal/resourcepolicies/volume_resources.go
  type volPolicy (line 31) | type volPolicy struct
  type volumeCondition (line 36) | type volumeCondition interface
  type capacity (line 42) | type capacity struct
    method isInRange (line 272) | func (c *capacity) isInRange(y resource.Quantity) bool {
  type structuredVolume (line 47) | type structuredVolume struct
    method parsePV (line 57) | func (s *structuredVolume) parsePV(pv *corev1api.PersistentVolume) {
    method parsePVC (line 73) | func (s *structuredVolume) parsePVC(pvc *corev1api.PersistentVolumeCla...
    method parsePodVolume (line 82) | func (s *structuredVolume) parsePodVolume(vol *corev1api.Volume) {
  type pvcLabelsCondition (line 97) | type pvcLabelsCondition struct
    method match (line 101) | func (c *pvcLabelsCondition) match(v *structuredVolume) bool {
    method validate (line 113) | func (c *pvcLabelsCondition) validate() error {
  type pvcPhaseCondition (line 118) | type pvcPhaseCondition struct
    method match (line 122) | func (c *pvcPhaseCondition) match(v *structuredVolume) bool {
    method validate (line 138) | func (c *pvcPhaseCondition) validate() error {
  type capacityCondition (line 142) | type capacityCondition struct
    method match (line 146) | func (c *capacityCondition) match(v *structuredVolume) bool {
  type storageClassCondition (line 150) | type storageClassCondition struct
    method match (line 154) | func (s *storageClassCondition) match(v *structuredVolume) bool {
  type nfsCondition (line 172) | type nfsCondition struct
    method match (line 176) | func (c *nfsCondition) match(v *structuredVolume) bool {
  type csiCondition (line 205) | type csiCondition struct
    method match (line 209) | func (c *csiCondition) match(v *structuredVolume) bool {
  function parseCapacity (line 244) | func parseCapacity(cap string) (*capacity, error) {
  function unmarshalVolConditions (line 290) | func unmarshalVolConditions(con map[string]any) (*volumeConditions, erro...

FILE: internal/resourcepolicies/volume_resources_test.go
  function setStructuredVolume (line 28) | func setStructuredVolume(capacity resource.Quantity, sc string, nfs *nFS...
  function TestPVCLabelsMatch (line 38) | func TestPVCLabelsMatch(t *testing.T) {
  function TestParseCapacity (line 139) | func TestParseCapacity(t *testing.T) {
  function TestCapacityIsInRange (line 164) | func TestCapacityIsInRange(t *testing.T) {
  function TestStorageClassConditionMatch (line 193) | func TestStorageClassConditionMatch(t *testing.T) {
  function TestNFSConditionMatch (line 242) | func TestNFSConditionMatch(t *testing.T) {
  function TestCSIConditionMatch (line 296) | func TestCSIConditionMatch(t *testing.T) {
  function TestUnmarshalVolumeConditions (line 356) | func TestUnmarshalVolumeConditions(t *testing.T) {
  function TestParsePodVolume (line 449) | func TestParsePodVolume(t *testing.T) {
  function TestParsePV (line 523) | func TestParsePV(t *testing.T) {

FILE: internal/resourcepolicies/volume_resources_validator.go
  constant currentSupportDataVersion (line 26) | currentSupportDataVersion = "v1"
  type csiVolumeSource (line 28) | type csiVolumeSource struct
  type nFSVolumeSource (line 34) | type nFSVolumeSource struct
  type volumeConditions (line 42) | type volumeConditions struct
  method validate (line 52) | func (c *capacityCondition) validate() error {
  method validate (line 64) | func (s *storageClassCondition) validate() error {
  method validate (line 69) | func (c *nfsCondition) validate() error {
  method validate (line 74) | func (c *csiCondition) validate() error {
  function decodeStruct (line 83) | func decodeStruct(r io.Reader, s any) error {
  method validate (line 90) | func (a *Action) validate() error {

FILE: internal/resourcepolicies/volume_resources_validator_test.go
  function TestCapacityConditionValidate (line 24) | func TestCapacityConditionValidate(t *testing.T) {
  function TestValidate (line 84) | func TestValidate(t *testing.T) {

FILE: internal/resourcepolicies/volume_types_conditions.go
  type volumeTypeCondition (line 23) | type volumeTypeCondition struct
    method match (line 62) | func (v *volumeTypeCondition) match(s *structuredVolume) bool {
    method validate (line 75) | func (v *volumeTypeCondition) validate() error {
  type SupportedVolume (line 27) | type SupportedVolume
  constant AWSAzureDisk (line 30) | AWSAzureDisk         SupportedVolume = "awsAzureDisk"
  constant AWSElasticBlockStore (line 31) | AWSElasticBlockStore SupportedVolume = "awsElasticBlockStore"
  constant AzureDisk (line 32) | AzureDisk            SupportedVolume = "azureDisk"
  constant AzureFile (line 33) | AzureFile            SupportedVolume = "azureFile"
  constant Cinder (line 34) | Cinder               SupportedVolume = "cinder"
  constant CephFS (line 35) | CephFS               SupportedVolume = "cephfs"
  constant ConfigMap (line 36) | ConfigMap            SupportedVolume = "configMap"
  constant CSI (line 37) | CSI                  SupportedVolume = "csi"
  constant DownwardAPI (line 38) | DownwardAPI          SupportedVolume = "downwardAPI"
  constant EmptyDir (line 39) | EmptyDir             SupportedVolume = "emptyDir"
  constant Ephemeral (line 40) | Ephemeral            SupportedVolume = "ephemeral"
  constant FC (line 41) | FC                   SupportedVolume = "fc"
  constant Flocker (line 42) | Flocker              SupportedVolume = "flocker"
  constant FlexVolume (line 43) | FlexVolume           SupportedVolume = "flexVolume"
  constant GitRepo (line 44) | GitRepo              SupportedVolume = "gitRepo"
  constant Glusterfs (line 45) | Glusterfs            SupportedVolume = "glusterfs"
  constant GCEPersistentDisk (line 46) | GCEPersistentDisk    SupportedVolume = "gcePersistentDisk"
  constant HostPath (line 47) | HostPath             SupportedVolume = "hostPath"
  constant ISCSI (line 48) | ISCSI                SupportedVolume = "iscsi"
  constant Local (line 49) | Local                SupportedVolume = "local"
  constant NFS (line 50) | NFS                  SupportedVolume = "nfs"
  constant PhotonPersistentDisk (line 51) | PhotonPersistentDisk SupportedVolume = "photonPersistentDisk"
  constant PortworxVolume (line 52) | PortworxVolume       SupportedVolume = "portworxVolume"
  constant Projected (line 53) | Projected            SupportedVolume = "projected"
  constant Quobyte (line 54) | Quobyte              SupportedVolume = "quobyte"
  constant RBD (line 55) | RBD                  SupportedVolume = "rbd"
  constant ScaleIO (line 56) | ScaleIO              SupportedVolume = "scaleIO"
  constant Secret (line 57) | Secret               SupportedVolume = "secret"
  constant StorageOS (line 58) | StorageOS            SupportedVolume = "storageOS"
  constant VsphereVolume (line 59) | VsphereVolume        SupportedVolume = "vsphereVolume"
  function getVolumeTypeFromPV (line 80) | func getVolumeTypeFromPV(pv *corev1api.PersistentVolume) SupportedVolume {
  function getVolumeTypeFromVolume (line 154) | func getVolumeTypeFromVolume(vol *corev1api.Volume) SupportedVolume {

FILE: internal/resourcepolicies/volume_types_conditions_test.go
  function TestGetVolumeTypeFromPV (line 24) | func TestGetVolumeTypeFromPV(t *testing.T) {
  function TestGetVolumeTypeFromVolume (line 296) | func TestGetVolumeTypeFromVolume(t *testing.T) {

FILE: internal/restartabletest/restartable_delegate.go
  type MockRestartableProcess (line 31) | type MockRestartableProcess struct
    method AddReinitializer (line 35) | func (rp *MockRestartableProcess) AddReinitializer(key process.KindAnd...
    method Reset (line 39) | func (rp *MockRestartableProcess) Reset() error {
    method ResetIfNeeded (line 44) | func (rp *MockRestartableProcess) ResetIfNeeded() error {
    method GetByKindAndName (line 49) | func (rp *MockRestartableProcess) GetByKindAndName(key process.KindAnd...
    method Stop (line 54) | func (rp *MockRestartableProcess) Stop() {
  type RestartableDelegateTest (line 58) | type RestartableDelegateTest struct
  type Mockable (line 65) | type Mockable interface
  function RunRestartableDelegateTests (line 71) | func RunRestartableDelegateTests(

FILE: internal/storage/storagelocation.go
  type DefaultBackupLocationInfo (line 32) | type DefaultBackupLocationInfo struct
  function IsReadyToValidate (line 48) | func IsReadyToValidate(bslValidationFrequency *metav1.Duration, lastVali...
  function ListBackupStorageLocations (line 81) | func ListBackupStorageLocations(ctx context.Context, kbClient client.Cli...
  function GetDefaultBackupStorageLocations (line 96) | func GetDefaultBackupStorageLocations(ctx context.Context, kbClient clie...

FILE: internal/storage/storagelocation_test.go
  function TestIsReadyToValidate (line 32) | func TestIsReadyToValidate(t *testing.T) {
  function TestListBackupStorageLocations (line 128) | func TestListBackupStorageLocations(t *testing.T) {

FILE: internal/velero/images.go
  function imageRegistry (line 26) | func imageRegistry() string {
  function ImageTag (line 35) | func ImageTag() string {
  function DefaultVeleroImage (line 43) | func DefaultVeleroImage() string {

FILE: internal/velero/images_test.go
  function TestImageTag (line 28) | func TestImageTag(t *testing.T) {
  function TestImageRegistry (line 58) | func TestImageRegistry(t *testing.T) {
  function testDefaultImage (line 88) | func testDefaultImage(t *testing.T, defaultImageFn func() string, imageN...
  function TestDefaultVeleroImage (line 134) | func TestDefaultVeleroImage(t *testing.T) {

FILE: internal/velero/serverstatusrequest.go
  type PluginLister (line 25) | type PluginLister interface
  function GetInstalledPluginInfo (line 31) | func GetInstalledPluginInfo(pluginLister PluginLister) []velerov1api.Plu...

FILE: internal/volume/native_snapshot.go
  type Snapshot (line 21) | type Snapshot struct
  type SnapshotSpec (line 27) | type SnapshotSpec struct
  type SnapshotStatus (line 58) | type SnapshotStatus struct
  type SnapshotPhase (line 68) | type SnapshotPhase
  constant SnapshotPhaseNew (line 73) | SnapshotPhaseNew SnapshotPhase = "New"
  constant SnapshotPhaseCompleted (line 76) | SnapshotPhaseCompleted SnapshotPhase = "Completed"
  constant SnapshotPhaseFailed (line 79) | SnapshotPhaseFailed SnapshotPhase = "Failed"

FILE: internal/volume/snapshotlocation.go
  function UpdateVolumeSnapshotLocationWithCredentialConfig (line 28) | func UpdateVolumeSnapshotLocationWithCredentialConfig(location *velerov1...

FILE: internal/volume/utils.go
  constant itemRestoreResultCreated (line 24) | itemRestoreResultCreated = "created"
  function RestoredPVCFromRestoredResourceList (line 27) | func RestoredPVCFromRestoredResourceList(restoredResourceList map[string...

FILE: internal/volume/utils_test.go
  function TestGetRestoredPVCFromRestoredResourceList (line 25) | func TestGetRestoredPVCFromRestoredResourceList(t *testing.T) {

FILE: internal/volume/volumes_information.go
  type Method (line 41) | type Method
  constant NativeSnapshot (line 44) | NativeSnapshot   Method = "NativeSnapshot"
  constant PodVolumeBackup (line 45) | PodVolumeBackup  Method = "PodVolumeBackup"
  constant CSISnapshot (line 46) | CSISnapshot      Method = "CSISnapshot"
  constant PodVolumeRestore (line 47) | PodVolumeRestore Method = "PodVolumeRestore"
  constant FieldValueIsUnknown (line 51) | FieldValueIsUnknown string = "unknown"
  constant veleroDatamover (line 52) | veleroDatamover     string = "velero"
  type BackupVolumeInfo (line 55) | type BackupVolumeInfo struct
  type VolumeResult (line 98) | type VolumeResult
  constant VolumeResultSucceeded (line 101) | VolumeResultSucceeded VolumeResult = "succeeded"
  constant VolumeResultFailed (line 102) | VolumeResultFailed    VolumeResult = "failed"
  type RestoreVolumeInfo (line 106) | type RestoreVolumeInfo struct
  type CSISnapshotInfo (line 131) | type CSISnapshotInfo struct
  type SnapshotDataMovementInfo (line 152) | type SnapshotDataMovementInfo struct
  type NativeSnapshotInfo (line 184) | type NativeSnapshotInfo struct
  function newNativeSnapshotInfo (line 201) | func newNativeSnapshotInfo(s *Snapshot) *NativeSnapshotInfo {
  type PodVolumeInfo (line 216) | type PodVolumeInfo struct
  function newPodVolumeInfoFromPVB (line 247) | func newPodVolumeInfoFromPVB(pvb *velerov1api.PodVolumeBackup) *PodVolum...
  function newPodVolumeInfoFromPVR (line 261) | func newPodVolumeInfoFromPVR(pvr *velerov1api.PodVolumeRestore) *PodVolu...
  type PVInfo (line 274) | type PVInfo struct
  type BackupVolumesInformation (line 284) | type BackupVolumesInformation struct
    method Init (line 307) | func (v *BackupVolumesInformation) Init() {
    method InsertPVMap (line 314) | func (v *BackupVolumesInformation) InsertPVMap(pv corev1api.Persistent...
    method Result (line 321) | func (v *BackupVolumesInformation) Result(
    method generateVolumeInfoForSkippedPV (line 344) | func (v *BackupVolumesInformation) generateVolumeInfoForSkippedPV() {
    method generateVolumeInfoForVeleroNativeSnapshot (line 372) | func (v *BackupVolumesInformation) generateVolumeInfoForVeleroNativeSn...
    method generateVolumeInfoForCSIVolumeSnapshot (line 408) | func (v *BackupVolumesInformation) generateVolumeInfoForCSIVolumeSnaps...
    method generateVolumeInfoFromPVB (line 497) | func (v *BackupVolumesInformation) generateVolumeInfoFromPVB() {
    method getVolumeSnapshotClasses (line 542) | func (v *BackupVolumesInformation) getVolumeSnapshotClasses() (
    method generateVolumeInfoFromDataUpload (line 556) | func (v *BackupVolumesInformation) generateVolumeInfoFromDataUpload() {
  type pvcPvInfo (line 301) | type pvcPvInfo struct
  type pvcPvMap (line 649) | type pvcPvMap struct
    method insert (line 653) | func (m *pvcPvMap) insert(pv corev1api.PersistentVolume, pvcName, pvcN...
    method retrieve (line 661) | func (m *pvcPvMap) retrieve(pvName, pvcName, pvcNS string) *pvcPvInfo {
  function pvcByPodvolume (line 682) | func pvcByPodvolume(ctx context.Context, crClient kbclient.Client, podNa...
  type RestoreVolumeInfoTracker (line 698) | type RestoreVolumeInfoTracker struct
    method Populate (line 716) | func (t *RestoreVolumeInfoTracker) Populate(ctx context.Context, resto...
    method Result (line 760) | func (t *RestoreVolumeInfoTracker) Result() []*RestoreVolumeInfo {
    method TrackNativeSnapshot (line 895) | func (t *RestoreVolumeInfoTracker) TrackNativeSnapshot(pvName string, ...
    method RenamePVForNativeSnapshot (line 906) | func (t *RestoreVolumeInfoTracker) RenamePVForNativeSnapshot(oldName, ...
    method TrackPodVolume (line 915) | func (t *RestoreVolumeInfoTracker) TrackPodVolume(pvr *velerov1api.Pod...
  function NewRestoreVolInfoTracker (line 880) | func NewRestoreVolInfoTracker(restore *velerov1api.Restore, logger logru...

FILE: internal/volume/volumes_information_test.go
  function TestGenerateVolumeInfoForSkippedPV (line 44) | func TestGenerateVolumeInfoForSkippedPV(t *testing.T) {
  function TestGenerateVolumeInfoForVeleroNativeSnapshot (line 146) | func TestGenerateVolumeInfoForVeleroNativeSnapshot(t *testing.T) {
  function TestGenerateVolumeInfoForCSIVolumeSnapshot (line 329) | func TestGenerateVolumeInfoForCSIVolumeSnapshot(t *testing.T) {
  function TestGenerateVolumeInfoFromPVB (line 526) | func TestGenerateVolumeInfoFromPVB(t *testing.T) {
  function TestGenerateVolumeInfoFromDataUpload (line 750) | func TestGenerateVolumeInfoFromDataUpload(t *testing.T) {
  function TestRestoreVolumeInfoTrackNativeSnapshot (line 955) | func TestRestoreVolumeInfoTrackNativeSnapshot(t *testing.T) {
  function TestRestoreVolumeInfoResult (line 985) | func TestRestoreVolumeInfoResult(t *testing.T) {
  function stringPtr (line 1240) | func stringPtr(str string) *string {
  function int64Ptr (line 1244) | func int64Ptr(val int) *int64 {
  function TestGetVolumeSnapshotClasses (line 1249) | func TestGetVolumeSnapshotClasses(t *testing.T) {

FILE: internal/volumehelper/volume_policy_helper.go
  type VolumeHelper (line 23) | type VolumeHelper interface
  type volumeHelperImpl (line 28) | type volumeHelperImpl struct
    method ShouldPerformSnapshot (line 130) | func (v *volumeHelperImpl) ShouldPerformSnapshot(obj runtime.Unstructu...
    method ShouldPerformFSBackup (line 225) | func (v volumeHelperImpl) ShouldPerformFSBackup(volume corev1api.Volum...
    method shouldPerformFSBackupLegacy (line 295) | func (v volumeHelperImpl) shouldPerformFSBackupLegacy(
    method shouldIncludeVolumeInBackup (line 322) | func (v *volumeHelperImpl) shouldIncludeVolumeInBackup(vol corev1api.V...
    method getVolumeFromResource (line 355) | func (v *volumeHelperImpl) getVolumeFromResource(resource any) (*corev...
  function NewVolumeHelperImpl (line 49) | func NewVolumeHelperImpl(
  function NewVolumeHelperImplWithNamespaces (line 76) | func NewVolumeHelperImplWithNamespaces(
  function NewVolumeHelperImplWithCache (line 108) | func NewVolumeHelperImplWithCache(

FILE: internal/volumehelper/volume_policy_helper_test.go
  function TestVolumeHelperImpl_ShouldPerformSnapshot (line 40) | func TestVolumeHelperImpl_ShouldPerformSnapshot(t *testing.T) {
  function TestVolumeHelperImpl_ShouldIncludeVolumeInBackup (line 348) | func TestVolumeHelperImpl_ShouldIncludeVolumeInBackup(t *testing.T) {
  function TestVolumeHelperImpl_ShouldPerformFSBackup (line 495) | func TestVolumeHelperImpl_ShouldPerformFSBackup(t *testing.T) {
  function TestGetVolumeFromResource (line 710) | func TestGetVolumeFromResource(t *testing.T) {
  function TestVolumeHelperImplWithCache_ShouldPerformSnapshot (line 743) | func TestVolumeHelperImplWithCache_ShouldPerformSnapshot(t *testing.T) {
  function TestVolumeHelperImplWithCache_ShouldPerformFSBackup (line 909) | func TestVolumeHelperImplWithCache_ShouldPerformFSBackup(t *testing.T) {
  function TestNewVolumeHelperImplWithCache (line 1060) | func TestNewVolumeHelperImplWithCache(t *testing.T) {
  function TestNewVolumeHelperImplWithCache_UsesCache (line 1184) | func TestNewVolumeHelperImplWithCache_UsesCache(t *testing.T) {
  function TestVolumeHelperImpl_ShouldPerformSnapshot_UnboundPVC (line 1240) | func TestVolumeHelperImpl_ShouldPerformSnapshot_UnboundPVC(t *testing.T) {
  function TestVolumeHelperImpl_ShouldPerformFSBackup_UnboundPVC (line 1375) | func TestVolumeHelperImpl_ShouldPerformFSBackup_UnboundPVC(t *testing.T) {

FILE: pkg/apis/velero/shared/data_move_operation_progress.go
  type DataMoveOperationProgress (line 23) | type DataMoveOperationProgress struct

FILE: pkg/apis/velero/v1/backup_repository_types.go
  type BackupRepositorySpec (line 24) | type BackupRepositorySpec struct
  type BackupRepositoryPhase (line 54) | type BackupRepositoryPhase
  constant BackupRepositoryPhaseNew (line 57) | BackupRepositoryPhaseNew      BackupRepositoryPhase = "New"
  constant BackupRepositoryPhaseReady (line 58) | BackupRepositoryPhaseReady    BackupRepositoryPhase = "Ready"
  constant BackupRepositoryPhaseNotReady (line 59) | BackupRepositoryPhaseNotReady BackupRepositoryPhase = "NotReady"
  constant BackupRepositoryTypeRestic (line 61) | BackupRepositoryTypeRestic string = "restic"
  constant BackupRepositoryTypeKopia (line 62) | BackupRepositoryTypeKopia  string = "kopia"
  type BackupRepositoryStatus (line 66) | type BackupRepositoryStatus struct
  type BackupRepositoryMaintenanceResult (line 87) | type BackupRepositoryMaintenanceResult
  constant BackupRepositoryMaintenanceSucceeded (line 90) | BackupRepositoryMaintenanceSucceeded BackupRepositoryMaintenanceResult =...
  constant BackupRepositoryMaintenanceFailed (line 91) | BackupRepositoryMaintenanceFailed    BackupRepositoryMaintenanceResult =...
  type BackupRepositoryMaintenanceStatus (line 94) | type BackupRepositoryMaintenanceStatus struct
  type BackupRepository (line 125) | type BackupRepository struct
  type BackupRepositoryList (line 146) | type BackupRepositoryList struct

FILE: pkg/apis/velero/v1/backup_types.go
  type Metadata (line 24) | type Metadata struct
  type BackupSpec (line 29) | type BackupSpec struct
  type UploaderConfigForBackup (line 190) | type UploaderConfigForBackup struct
  type BackupHooks (line 197) | type BackupHooks struct
  type BackupResourceHookSpec (line 206) | type BackupResourceHookSpec struct
  type BackupResourceHook (line 249) | type BackupResourceHook struct
  type ExecHook (line 255) | type ExecHook struct
  type HookErrorMode (line 277) | type HookErrorMode
  constant HookErrorModeContinue (line 282) | HookErrorModeContinue HookErrorMode = "Continue"
  constant HookErrorModeFail (line 286) | HookErrorModeFail HookErrorMode = "Fail"
  type BackupPhase (line 292) | type BackupPhase
  constant BackupPhaseNew (line 297) | BackupPhaseNew BackupPhase = "New"
  constant BackupPhaseQueued (line 300) | BackupPhaseQueued BackupPhase = "Queued"
  constant BackupPhaseReadyToStart (line 303) | BackupPhaseReadyToStart BackupPhase = "ReadyToStart"
  constant BackupPhaseFailedValidation (line 307) | BackupPhaseFailedValidation BackupPhase = "FailedValidation"
  constant BackupPhaseInProgress (line 310) | BackupPhaseInProgress BackupPhase = "InProgress"
  constant BackupPhaseWaitingForPluginOperations (line 317) | BackupPhaseWaitingForPluginOperations BackupPhase = "WaitingForPluginOpe...
  constant BackupPhaseWaitingForPluginOperationsPartiallyFailed (line 325) | BackupPhaseWaitingForPluginOperationsPartiallyFailed BackupPhase = "Wait...
  constant BackupPhaseFinalizing (line 333) | BackupPhaseFinalizing BackupPhase = "Finalizing"
  constant BackupPhaseFinalizingPartiallyFailed (line 342) | BackupPhaseFinalizingPartiallyFailed BackupPhase = "FinalizingPartiallyF...
  constant BackupPhaseCompleted (line 346) | BackupPhaseCompleted BackupPhase = "Completed"
  constant BackupPhasePartiallyFailed (line 350) | BackupPhasePartiallyFailed BackupPhase = "PartiallyFailed"
  constant BackupPhaseFailed (line 354) | BackupPhaseFailed BackupPhase = "Failed"
  constant BackupPhaseDeleting (line 357) | BackupPhaseDeleting BackupPhase = "Deleting"
  type BackupStatus (line 361) | type BackupStatus struct
  type BackupProgress (line 472) | type BackupProgress struct
  type HookStatus (line 487) | type HookStatus struct
  type Backup (line 509) | type Backup struct
  type BackupList (line 525) | type BackupList struct

FILE: pkg/apis/velero/v1/backupstoragelocation_types.go
  type BackupStorageLocationSpec (line 28) | type BackupStorageLocationSpec struct
  type BackupStorageLocationStatus (line 62) | type BackupStorageLocationStatus struct
  type BackupStorageLocation (line 113) | type BackupStorageLocation struct
    method Validate (line 191) | func (bsl *BackupStorageLocation) Validate() error {
  type BackupStorageLocationList (line 129) | type BackupStorageLocationList struct
  type StorageType (line 137) | type StorageType struct
  type ObjectStorageLocation (line 142) | type ObjectStorageLocation struct
  type BackupStorageLocationPhase (line 165) | type BackupStorageLocationPhase
  constant BackupStorageLocationPhaseAvailable (line 169) | BackupStorageLocationPhaseAvailable BackupStorageLocationPhase = "Availa...
  constant BackupStorageLocationPhaseUnavailable (line 172) | BackupStorageLocationPhaseUnavailable BackupStorageLocationPhase = "Unav...
  type BackupStorageLocationAccessMode (line 177) | type BackupStorageLocationAccessMode
  constant BackupStorageLocationAccessModeReadOnly (line 181) | BackupStorageLocationAccessModeReadOnly BackupStorageLocationAccessMode ...
  constant BackupStorageLocationAccessModeReadWrite (line 184) | BackupStorageLocationAccessModeReadWrite BackupStorageLocationAccessMode...

FILE: pkg/apis/velero/v1/backupstoragelocation_types_test.go
  function TestBackupStorageLocationValidate (line 25) | func TestBackupStorageLocationValidate(t *testing.T) {

FILE: pkg/apis/velero/v1/constants.go
  constant DefaultNamespace (line 22) | DefaultNamespace = "velero"
  constant ResourcesDir (line 26) | ResourcesDir = "resources"
  constant MetadataDir (line 30) | MetadataDir = "metadata"
  constant ClusterScopedDir (line 34) | ClusterScopedDir = "cluster"
  constant NamespaceScopedDir (line 38) | NamespaceScopedDir = "namespaces"
  constant CSIFeatureFlag (line 41) | CSIFeatureFlag = "EnableCSI"
  constant PreferredVersionDir (line 45) | PreferredVersionDir = "-preferredversion"
  constant APIGroupVersionsFeatureFlag (line 48) | APIGroupVersionsFeatureFlag = "EnableAPIGroupVersions"

FILE: pkg/apis/velero/v1/delete_backup_request_types.go
  type DeleteBackupRequestSpec (line 22) | type DeleteBackupRequestSpec struct
  type DeleteBackupRequestPhase (line 28) | type DeleteBackupRequestPhase
  constant DeleteBackupRequestPhaseNew (line 32) | DeleteBackupRequestPhaseNew DeleteBackupRequestPhase = "New"
  constant DeleteBackupRequestPhaseInProgress (line 35) | DeleteBackupRequestPhaseInProgress DeleteBackupRequestPhase = "InProgress"
  constant DeleteBackupRequestPhaseProcessed (line 38) | DeleteBackupRequestPhaseProcessed DeleteBackupRequestPhase = "Processed"
  type DeleteBackupRequestStatus (line 42) | type DeleteBackupRequestStatus struct
  type DeleteBackupRequest (line 63) | type DeleteBackupRequest struct
  type DeleteBackupRequestList (line 80) | type DeleteBackupRequestList struct

FILE: pkg/apis/velero/v1/download_request_types.go
  type DownloadRequestSpec (line 22) | type DownloadRequestSpec struct
  type DownloadTargetKind (line 29) | type DownloadTargetKind
  constant DownloadTargetKindBackupLog (line 32) | DownloadTargetKindBackupLog                       DownloadTargetKind = "...
  constant DownloadTargetKindBackupContents (line 33) | DownloadTargetKindBackupContents                  DownloadTargetKind = "...
  constant DownloadTargetKindBackupVolumeSnapshots (line 34) | DownloadTargetKindBackupVolumeSnapshots           DownloadTargetKind = "...
  constant DownloadTargetKindBackupItemOperations (line 35) | DownloadTargetKindBackupItemOperations            DownloadTargetKind = "...
  constant DownloadTargetKindBackupResourceList (line 36) | DownloadTargetKindBackupResourceList              DownloadTargetKind = "...
  constant DownloadTargetKindBackupResults (line 37) | DownloadTargetKindBackupResults                   DownloadTargetKind = "...
  constant DownloadTargetKindRestoreLog (line 38) | DownloadTargetKindRestoreLog                      DownloadTargetKind = "...
  constant DownloadTargetKindRestoreResults (line 39) | DownloadTargetKindRestoreResults                  DownloadTargetKind = "...
  constant DownloadTargetKindRestoreResourceList (line 40) | DownloadTargetKindRestoreResourceList             DownloadTargetKind = "...
  constant DownloadTargetKindRestoreItemOperations (line 41) | DownloadTargetKindRestoreItemOperations           DownloadTargetKind = "...
  constant DownloadTargetKindCSIBackupVolumeSnapshots (line 42) | DownloadTargetKindCSIBackupVolumeSnapshots        DownloadTargetKind = "...
  constant DownloadTargetKindCSIBackupVolumeSnapshotContents (line 43) | DownloadTargetKindCSIBackupVolumeSnapshotContents DownloadTargetKind = "...
  constant DownloadTargetKindBackupVolumeInfos (line 44) | DownloadTargetKindBackupVolumeInfos               DownloadTargetKind = "...
  constant DownloadTargetKindRestoreVolumeInfo (line 45) | DownloadTargetKindRestoreVolumeInfo               DownloadTargetKind = "...
  type DownloadTarget (line 50) | type DownloadTarget struct
  type DownloadRequestPhase (line 60) | type DownloadRequestPhase
  constant DownloadRequestPhaseNew (line 65) | DownloadRequestPhaseNew DownloadRequestPhase = "New"
  constant DownloadRequestPhaseProcessed (line 69) | DownloadRequestPhaseProcessed DownloadRequestPhase = "Processed"
  type DownloadRequestStatus (line 73) | type DownloadRequestStatus struct
  type DownloadRequest (line 98) | type DownloadRequest struct
  type DownloadRequestList (line 119) | type DownloadRequestList struct

FILE: pkg/apis/velero/v1/labels_annotations.go
  constant BackupNameLabel (line 21) | BackupNameLabel = "velero.io/backup-name"
  constant BackupUIDLabel (line 24) | BackupUIDLabel = "velero.io/backup-uid"
  constant RestoreNameLabel (line 27) | RestoreNameLabel = "velero.io/restore-name"
  constant ScheduleNameLabel (line 30) | ScheduleNameLabel = "velero.io/schedule-name"
  constant RestoreUIDLabel (line 33) | RestoreUIDLabel = "velero.io/restore-uid"
  constant PodUIDLabel (line 36) | PodUIDLabel = "velero.io/pod-uid"
  constant PVCUIDLabel (line 39) | PVCUIDLabel = "velero.io/pvc-uid"
  constant PodVolumeOperationTimeoutAnnotation (line 44) | PodVolumeOperationTimeoutAnnotation = "velero.io/pod-volume-timeout"
  constant StorageLocationLabel (line 48) | StorageLocationLabel = "velero.io/storage-location"
  constant VolumeNamespaceLabel (line 52) | VolumeNamespaceLabel = "velero.io/volume-namespace"
  constant RepositoryTypeLabel (line 55) | RepositoryTypeLabel = "velero.io/repository-type"
  constant DataUploadLabel (line 58) | DataUploadLabel = "velero.io/data-upload"
  constant DataUploadSnapshotInfoLabel (line 62) | DataUploadSnapshotInfoLabel = "velero.io/data-upload-snapshot-info"
  constant DataDownloadLabel (line 65) | DataDownloadLabel = "velero.io/data-download"
  constant SourceClusterK8sGitVersionAnnotation (line 69) | SourceClusterK8sGitVersionAnnotation = "velero.io/source-cluster-k8s-git...
  constant SourceClusterK8sMajorVersionAnnotation (line 73) | SourceClusterK8sMajorVersionAnnotation = "velero.io/source-cluster-k8s-m...
  constant SourceClusterK8sMinorVersionAnnotation (line 77) | SourceClusterK8sMinorVersionAnnotation = "velero.io/source-cluster-k8s-m...
  constant ResourceTimeoutAnnotation (line 81) | ResourceTimeoutAnnotation = "velero.io/resource-timeout"
  constant AsyncOperationIDLabel (line 84) | AsyncOperationIDLabel = "velero.io/async-operation-id"
  constant PVCNamespaceNameLabel (line 88) | PVCNamespaceNameLabel = "velero.io/pvc-namespace-name"
  constant ResourceUsageLabel (line 91) | ResourceUsageLabel = "velero.io/resource-usage"
  constant VolumesToBackupAnnotation (line 95) | VolumesToBackupAnnotation = "backup.velero.io/backup-volumes"
  constant VolumesToExcludeAnnotation (line 99) | VolumesToExcludeAnnotation = "backup.velero.io/backup-volumes-excludes"
  constant ExcludeFromBackupLabel (line 103) | ExcludeFromBackupLabel = "velero.io/exclude-from-backup"
  constant SkipFromBackupAnnotation (line 112) | SkipFromBackupAnnotation = "velero.io/skip-from-backup"
  constant DefaultVGSLabelKey (line 115) | DefaultVGSLabelKey = "velero.io/volume-group"
  constant PVBLabel (line 118) | PVBLabel = "velero.io/pod-volume-backup"
  constant PVRLabel (line 121) | PVRLabel = "velero.io/pod-volume-restore"
  type AsyncOperationIDPrefix (line 124) | type AsyncOperationIDPrefix
  constant AsyncOperationIDPrefixDataDownload (line 127) | AsyncOperationIDPrefixDataDownload AsyncOperationIDPrefix = "dd-"
  constant AsyncOperationIDPrefixDataUpload (line 128) | AsyncOperationIDPrefixDataUpload   AsyncOperationIDPrefix = "du-"
  type VeleroResourceUsage (line 131) | type VeleroResourceUsage
  constant VeleroResourceUsageDataUploadResult (line 134) | VeleroResourceUsageDataUploadResult VeleroResourceUsage = "DataUpload"
  constant VolumeSnapshotLabel (line 139) | VolumeSnapshotLabel                             = "velero.io/volume-snap...
  constant VolumeSnapshotHandleAnnotation (line 140) | VolumeSnapshotHandleAnnotation                  = "velero.io/csi-volumes...
  constant VolumeSnapshotRestoreSize (line 141) | VolumeSnapshotRestoreSize                       = "velero.io/csi-volumes...
  constant DriverNameAnnotation (line 142) | DriverNameAnnotation                            = "velero.io/csi-driver-...
  constant VSCDeletionPolicyAnnotation (line 143) | VSCDeletionPolicyAnnotation                     = "velero.io/csi-vsc-del...
  constant VolumeSnapshotClassSelectorLabel (line 144) | VolumeSnapshotClassSelectorLabel                = "velero.io/csi-volumes...
  constant VolumeSnapshotClassDriverBackupAnnotationPrefix (line 145) | VolumeSnapshotClassDriverBackupAnnotationPrefix = "velero.io/csi-volumes...
  constant VolumeSnapshotClassDriverPVCAnnotation (line 146) | VolumeSnapshotClassDriverPVCAnnotation          = "velero.io/csi-volumes...
  constant VolumeSnapshotClassKubernetesAnnotation (line 149) | VolumeSnapshotClassKubernetesAnnotation = "snapshot.storage.kubernetes.i...
  constant PrefixedListSecretNameAnnotation (line 154) | PrefixedListSecretNameAnnotation      = "csi.storage.k8s.io/snapshotter-...
  constant PrefixedListSecretNamespaceAnnotation (line 155) | PrefixedListSecretNamespaceAnnotation = "csi.storage.k8s.io/snapshotter-...
  constant PrefixedSecretNameAnnotation (line 158) | PrefixedSecretNameAnnotation      = "csi.storage.k8s.io/snapshotter-secr...
  constant PrefixedSecretNamespaceAnnotation (line 159) | PrefixedSecretNamespaceAnnotation = "csi.storage.k8s.io/snapshotter-secr...
  constant MustIncludeAdditionalItemAnnotation (line 162) | MustIncludeAdditionalItemAnnotation = "backup.velero.io/must-include-add...
  constant SkippedNoCSIPVAnnotation (line 165) | SkippedNoCSIPVAnnotation = "backup.velero.io/skipped-no-csi-pv"
  constant DynamicPVRestoreLabel (line 168) | DynamicPVRestoreLabel = "velero.io/dynamic-pv-restore"
  constant DataUploadNameAnnotation (line 171) | DataUploadNameAnnotation = "velero.io/data-upload-name"
  constant VolumeGroupSnapshotClassDefaultLabel (line 174) | VolumeGroupSnapshotClassDefaultLabel = "velero.io/csi-volumegroupsnapsho...
  constant VolumeGroupSnapshotClassAnnotationPVC (line 177) | VolumeGroupSnapshotClassAnnotationPVC = "velero.io/csi-volume-group-snap...
  constant VolumeGroupSnapshotClassAnnotationBackupPrefix (line 180) | VolumeGroupSnapshotClassAnnotationBackupPrefix = "velero.io/csi-volumegr...

FILE: pkg/apis/velero/v1/pod_volume_backup_types.go
  type PodVolumeBackupSpec (line 27) | type PodVolumeBackupSpec struct
  type PodVolumeBackupPhase (line 68) | type PodVolumeBackupPhase
  constant PodVolumeBackupPhaseNew (line 71) | PodVolumeBackupPhaseNew        PodVolumeBackupPhase = "New"
  constant PodVolumeBackupPhaseAccepted (line 72) | PodVolumeBackupPhaseAccepted   PodVolumeBackupPhase = "Accepted"
  constant PodVolumeBackupPhasePrepared (line 73) | PodVolumeBackupPhasePrepared   PodVolumeBackupPhase = "Prepared"
  constant PodVolumeBackupPhaseInProgress (line 74) | PodVolumeBackupPhaseInProgress PodVolumeBackupPhase = "InProgress"
  constant PodVolumeBackupPhaseCanceling (line 75) | PodVolumeBackupPhaseCanceling  PodVolumeBackupPhase = "Canceling"
  constant PodVolumeBackupPhaseCanceled (line 76) | PodVolumeBackupPhaseCanceled   PodVolumeBackupPhase = "Canceled"
  constant PodVolumeBackupPhaseCompleted (line 77) | PodVolumeBackupPhaseCompleted  PodVolumeBackupPhase = "Completed"
  constant PodVolumeBackupPhaseFailed (line 78) | PodVolumeBackupPhaseFailed     PodVolumeBackupPhase = "Failed"
  type PodVolumeBackupStatus (line 82) | type PodVolumeBackupStatus struct
  type PodVolumeBackup (line 149) | type PodVolumeBackup struct
  type PodVolumeBackupList (line 170) | type PodVolumeBackupList struct

FILE: pkg/apis/velero/v1/pod_volume_restore_type.go
  type PodVolumeRestoreSpec (line 27) | type PodVolumeRestoreSpec struct
  type PodVolumeRestorePhase (line 69) | type PodVolumeRestorePhase
  constant PodVolumeRestorePhaseNew (line 72) | PodVolumeRestorePhaseNew        PodVolumeRestorePhase = "New"
  constant PodVolumeRestorePhaseAccepted (line 73) | PodVolumeRestorePhaseAccepted   PodVolumeRestorePhase = "Accepted"
  constant PodVolumeRestorePhasePrepared (line 74) | PodVolumeRestorePhasePrepared   PodVolumeRestorePhase = "Prepared"
  constant PodVolumeRestorePhaseInProgress (line 75) | PodVolumeRestorePhaseInProgress PodVolumeRestorePhase = "InProgress"
  constant PodVolumeRestorePhaseCanceling (line 76) | PodVolumeRestorePhaseCanceling  PodVolumeRestorePhase = "Canceling"
  constant PodVolumeRestorePhaseCanceled (line 77) | PodVolumeRestorePhaseCanceled   PodVolumeRestorePhase = "Canceled"
  constant PodVolumeRestorePhaseCompleted (line 78) | PodVolumeRestorePhaseCompleted  PodVolumeRestorePhase = "Completed"
  constant PodVolumeRestorePhaseFailed (line 79) | PodVolumeRestorePhaseFailed     PodVolumeRestorePhase = "Failed"
  type PodVolumeRestoreStatus (line 83) | type PodVolumeRestoreStatus struct
  type PodVolumeRestore (line 137) | type PodVolumeRestore struct
  type PodVolumeRestoreList (line 155) | type PodVolumeRestoreList struct

FILE: pkg/apis/velero/v1/register.go
  function Resource (line 27) | func Resource(resource string) schema.GroupResource {
  type typeInfo (line 31) | type typeInfo struct
  function newTypeInfo (line 37) | func newTypeInfo(pluralName string, itemType, itemListType runtime.Objec...
  function CustomResources (line 47) | func CustomResources() map[string]typeInfo {
  function CustomResourceKinds (line 64) | func CustomResourceKinds() sets.Set[string] {
  function addKnownTypes (line 75) | func addKnownTypes(scheme *runtime.Scheme) error {

FILE: pkg/apis/velero/v1/restore_types.go
  type RestoreSpec (line 26) | type RestoreSpec struct
  type UploaderConfigForRestore (line 135) | type UploaderConfigForRestore struct
  type RestoreHooks (line 146) | type RestoreHooks struct
  type RestoreStatusSpec (line 150) | type RestoreStatusSpec struct
  type RestoreResourceHookSpec (line 165) | type RestoreResourceHookSpec struct
  type RestoreResourceHook (line 202) | type RestoreResourceHook struct
  type ExecRestoreHook (line 211) | type ExecRestoreHook struct
  type InitRestoreHook (line 243) | type InitRestoreHook struct
  type RestorePhase (line 257) | type RestorePhase
  constant RestorePhaseNew (line 262) | RestorePhaseNew RestorePhase = "New"
  constant RestorePhaseFailedValidation (line 266) | RestorePhaseFailedValidation RestorePhase = "FailedValidation"
  constant RestorePhaseInProgress (line 269) | RestorePhaseInProgress RestorePhase = "InProgress"
  constant RestorePhaseWaitingForPluginOperations (line 275) | RestorePhaseWaitingForPluginOperations RestorePhase = "WaitingForPluginO...
  constant RestorePhaseWaitingForPluginOperationsPartiallyFailed (line 282) | RestorePhaseWaitingForPluginOperationsPartiallyFailed RestorePhase = "Wa...
  constant RestorePhaseFinalizing (line 288) | RestorePhaseFinalizing RestorePhase = "Finalizing"
  constant RestorePhaseFinalizingPartiallyFailed (line 295) | RestorePhaseFinalizingPartiallyFailed RestorePhase = "FinalizingPartiall...
  constant RestorePhaseCompleted (line 299) | RestorePhaseCompleted RestorePhase = "Completed"
  constant RestorePhasePartiallyFailed (line 303) | RestorePhasePartiallyFailed RestorePhase = "PartiallyFailed"
  constant RestorePhaseFailed (line 307) | RestorePhaseFailed RestorePhase = "Failed"
  constant PolicyTypeNone (line 311) | PolicyTypeNone PolicyType = "none"
  constant PolicyTypeUpdate (line 315) | PolicyTypeUpdate PolicyType = "update"
  type RestoreStatus (line 319) | type RestoreStatus struct
  type RestoreProgress (line 386) | type RestoreProgress struct
  type Restore (line 407) | type Restore struct
  type RestoreList (line 423) | type RestoreList struct
  type PolicyType (line 433) | type PolicyType

FILE: pkg/apis/velero/v1/schedule_types.go
  type ScheduleSpec (line 27) | type ScheduleSpec struct
  type SchedulePhase (line 57) | type SchedulePhase
  constant SchedulePhaseNew (line 62) | SchedulePhaseNew SchedulePhase = "New"
  constant SchedulePhaseEnabled (line 66) | SchedulePhaseEnabled SchedulePhase = "Enabled"
  constant SchedulePhaseFailedValidation (line 70) | SchedulePhaseFailedValidation SchedulePhase = "FailedValidation"
  type ScheduleStatus (line 74) | type ScheduleStatus struct
  type Schedule (line 110) | type Schedule struct
    method TimestampedName (line 138) | func (s *Schedule) TimestampedName(timestamp time.Time) string {
  type ScheduleList (line 128) | type ScheduleList struct

FILE: pkg/apis/velero/v1/server_status_request_types.go
  type ServerStatusRequest (line 34) | type ServerStatusRequest struct
  type ServerStatusRequestSpec (line 48) | type ServerStatusRequestSpec struct
  type ServerStatusRequestPhase (line 53) | type ServerStatusRequestPhase
  constant ServerStatusRequestPhaseNew (line 57) | ServerStatusRequestPhaseNew ServerStatusRequestPhase = "New"
  constant ServerStatusRequestPhaseProcessed (line 59) | ServerStatusRequestPhaseProcessed ServerStatusRequestPhase = "Processed"
  type PluginInfo (line 63) | type PluginInfo struct
  type ServerStatusRequestStatus (line 69) | type ServerStatusRequestStatus struct
  type ServerStatusRequestList (line 98) | type ServerStatusRequestList struct

FILE: pkg/apis/velero/v1/volume_snapshot_location_type.go
  type VolumeSnapshotLocation (line 32) | type VolumeSnapshotLocation struct
  type VolumeSnapshotLocationList (line 50) | type VolumeSnapshotLocationList struct
  type VolumeSnapshotLocationSpec (line 60) | type VolumeSnapshotLocationSpec struct
  type VolumeSnapshotLocationPhase (line 75) | type VolumeSnapshotLocationPhase
  constant VolumeSnapshotLocationPhaseAvailable (line 79) | VolumeSnapshotLocationPhaseAvailable VolumeSnapshotLocationPhase = "Avai...
  constant VolumeSnapshotLocationPhaseUnavailable (line 82) | VolumeSnapshotLocationPhaseUnavailable VolumeSnapshotLocationPhase = "Un...
  type VolumeSnapshotLocationStatus (line 86) | type VolumeSnapshotLocationStatus struct

FILE: pkg/apis/velero/v1/zz_generated.deepcopy.go
  method DeepCopyInto (line 14) | func (in *Backup) DeepCopyInto(out *Backup) {
  method DeepCopy (line 23) | func (in *Backup) DeepCopy() *Backup {
  method DeepCopyObject (line 33) | func (in *Backup) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 41) | func (in *BackupHooks) DeepCopyInto(out *BackupHooks) {
  method DeepCopy (line 53) | func (in *BackupHooks) DeepCopy() *BackupHooks {
  method DeepCopyInto (line 63) | func (in *BackupList) DeepCopyInto(out *BackupList) {
  method DeepCopy (line 77) | func (in *BackupList) DeepCopy() *BackupList {
  method DeepCopyObject (line 87) | func (in *BackupList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 95) | func (in *BackupProgress) DeepCopyInto(out *BackupProgress) {
  method DeepCopy (line 100) | func (in *BackupProgress) DeepCopy() *BackupProgress {
  method DeepCopyInto (line 110) | func (in *BackupRepository) DeepCopyInto(out *BackupRepository) {
  method DeepCopy (line 119) | func (in *BackupRepository) DeepCopy() *BackupRepository {
  method DeepCopyObject (line 129) | func (in *BackupRepository) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 137) | func (in *BackupRepositoryList) DeepCopyInto(out *BackupRepositoryList) {
  method DeepCopy (line 151) | func (in *BackupRepositoryList) DeepCopy() *BackupRepositoryList {
  method DeepCopyObject (line 161) | func (in *BackupRepositoryList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 169) | func (in *BackupRepositoryMaintenanceStatus) DeepCopyInto(out *BackupRep...
  method DeepCopy (line 182) | func (in *BackupRepositoryMaintenanceStatus) DeepCopy() *BackupRepositor...
  method DeepCopyInto (line 192) | func (in *BackupRepositorySpec) DeepCopyInto(out *BackupRepositorySpec) {
  method DeepCopy (line 205) | func (in *BackupRepositorySpec) DeepCopy() *BackupRepositorySpec {
  method DeepCopyInto (line 215) | func (in *BackupRepositoryStatus) DeepCopyInto(out *BackupRepositoryStat...
  method DeepCopy (line 231) | func (in *BackupRepositoryStatus) DeepCopy() *BackupRepositoryStatus {
  method DeepCopyInto (line 241) | func (in *BackupResourceHook) DeepCopyInto(out *BackupResourceHook) {
  method DeepCopy (line 251) | func (in *BackupResourceHook) DeepCopy() *BackupResourceHook {
  method DeepCopyInto (line 261) | func (in *BackupResourceHookSpec) DeepCopyInto(out *BackupResourceHookSp...
  method DeepCopy (line 305) | func (in *BackupResourceHookSpec) DeepCopy() *BackupResourceHookSpec {
  method DeepCopyInto (line 315) | func (in *BackupSpec) DeepCopyInto(out *BackupSpec) {
  method DeepCopy (line 428) | func (in *BackupSpec) DeepCopy() *BackupSpec {
  method DeepCopyInto (line 438) | func (in *BackupStatus) DeepCopyInto(out *BackupStatus) {
  method DeepCopy (line 470) | func (in *BackupStatus) DeepCopy() *BackupStatus {
  method DeepCopyInto (line 480) | func (in *BackupStorageLocation) DeepCopyInto(out *BackupStorageLocation) {
  method DeepCopy (line 489) | func (in *BackupStorageLocation) DeepCopy() *BackupStorageLocation {
  method DeepCopyObject (line 499) | func (in *BackupStorageLocation) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 507) | func (in *BackupStorageLocationList) DeepCopyInto(out *BackupStorageLoca...
  method DeepCopy (line 521) | func (in *BackupStorageLocationList) DeepCopy() *BackupStorageLocationLi...
  method DeepCopyObject (line 531) | func (in *BackupStorageLocationList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 539) | func (in *BackupStorageLocationSpec) DeepCopyInto(out *BackupStorageLoca...
  method DeepCopy (line 567) | func (in *BackupStorageLocationSpec) DeepCopy() *BackupStorageLocationSp...
  method DeepCopyInto (line 577) | func (in *BackupStorageLocationStatus) DeepCopyInto(out *BackupStorageLo...
  method DeepCopy (line 590) | func (in *BackupStorageLocationStatus) DeepCopy() *BackupStorageLocation...
  method DeepCopyInto (line 600) | func (in *DeleteBackupRequest) DeepCopyInto(out *DeleteBackupRequest) {
  method DeepCopy (line 609) | func (in *DeleteBackupRequest) DeepCopy() *DeleteBackupRequest {
  method DeepCopyObject (line 619) | func (in *DeleteBackupRequest) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 627) | func (in *DeleteBackupRequestList) DeepCopyInto(out *DeleteBackupRequest...
  method DeepCopy (line 641) | func (in *DeleteBackupRequestList) DeepCopy() *DeleteBackupRequestList {
  method DeepCopyObject (line 651) | func (in *DeleteBackupRequestList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 659) | func (in *DeleteBackupRequestSpec) DeepCopyInto(out *DeleteBackupRequest...
  method DeepCopy (line 664) | func (in *DeleteBackupRequestSpec) DeepCopy() *DeleteBackupRequestSpec {
  method DeepCopyInto (line 674) | func (in *DeleteBackupRequestStatus) DeepCopyInto(out *DeleteBackupReque...
  method DeepCopy (line 684) | func (in *DeleteBackupRequestStatus) DeepCopy() *DeleteBackupRequestStat...
  method DeepCopyInto (line 694) | func (in *DownloadRequest) DeepCopyInto(out *DownloadRequest) {
  method DeepCopy (line 703) | func (in *DownloadRequest) DeepCopy() *DownloadRequest {
  method DeepCopyObject (line 713) | func (in *DownloadRequest) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 721) | func (in *DownloadRequestList) DeepCopyInto(out *DownloadRequestList) {
  method DeepCopy (line 735) | func (in *DownloadRequestList) DeepCopy() *DownloadRequestList {
  method DeepCopyObject (line 745) | func (in *DownloadRequestList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 753) | func (in *DownloadRequestSpec) DeepCopyInto(out *DownloadRequestSpec) {
  method DeepCopy (line 759) | func (in *DownloadRequestSpec) DeepCopy() *DownloadRequestSpec {
  method DeepCopyInto (line 769) | func (in *DownloadRequestStatus) DeepCopyInto(out *DownloadRequestStatus) {
  method DeepCopy (line 778) | func (in *DownloadRequestStatus) DeepCopy() *DownloadRequestStatus {
  method DeepCopyInto (line 788) | func (in *DownloadTarget) DeepCopyInto(out *DownloadTarget) {
  method DeepCopy (line 793) | func (in *DownloadTarget) DeepCopy() *DownloadTarget {
  method DeepCopyInto (line 803) | func (in *ExecHook) DeepCopyInto(out *ExecHook) {
  method DeepCopy (line 814) | func (in *ExecHook) DeepCopy() *ExecHook {
  method DeepCopyInto (line 824) | func (in *ExecRestoreHook) DeepCopyInto(out *ExecRestoreHook) {
  method DeepCopy (line 841) | func (in *ExecRestoreHook) DeepCopy() *ExecRestoreHook {
  method DeepCopyInto (line 851) | func (in *HookStatus) DeepCopyInto(out *HookStatus) {
  method DeepCopy (line 856) | func (in *HookStatus) DeepCopy() *HookStatus {
  method DeepCopyInto (line 866) | func (in *InitRestoreHook) DeepCopyInto(out *InitRestoreHook) {
  method DeepCopy (line 879) | func (in *InitRestoreHook) DeepCopy() *InitRestoreHook {
  method DeepCopyInto (line 889) | func (in *Metadata) DeepCopyInto(out *Metadata) {
  method DeepCopy (line 901) | func (in *Metadata) DeepCopy() *Metadata {
  method DeepCopyInto (line 911) | func (in *ObjectStorageLocation) DeepCopyInto(out *ObjectStorageLocation) {
  method DeepCopy (line 926) | func (in *ObjectStorageLocation) DeepCopy() *ObjectStorageLocation {
  method DeepCopyInto (line 936) | func (in *PluginInfo) DeepCopyInto(out *PluginInfo) {
  method DeepCopy (line 941) | func (in *PluginInfo) DeepCopy() *PluginInfo {
  method DeepCopyInto (line 951) | func (in *PodVolumeBackup) DeepCopyInto(out *PodVolumeBackup) {
  method DeepCopy (line 960) | func (in *PodVolumeBackup) DeepCopy() *PodVolumeBackup {
  method DeepCopyObject (line 970) | func (in *PodVolumeBackup) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 978) | func (in *PodVolumeBackupList) DeepCopyInto(out *PodVolumeBackupList) {
  method DeepCopy (line 992) | func (in *PodVolumeBackupList) DeepCopy() *PodVolumeBackupList {
  method DeepCopyObject (line 1002) | func (in *PodVolumeBackupList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1010) | func (in *PodVolumeBackupSpec) DeepCopyInto(out *PodVolumeBackupSpec) {
  method DeepCopy (line 1030) | func (in *PodVolumeBackupSpec) DeepCopy() *PodVolumeBackupSpec {
  method DeepCopyInto (line 1040) | func (in *PodVolumeBackupStatus) DeepCopyInto(out *PodVolumeBackupStatus) {
  method DeepCopy (line 1058) | func (in *PodVolumeBackupStatus) DeepCopy() *PodVolumeBackupStatus {
  method DeepCopyInto (line 1068) | func (in *PodVolumeRestore) DeepCopyInto(out *PodVolumeRestore) {
  method DeepCopy (line 1077) | func (in *PodVolumeRestore) DeepCopy() *PodVolumeRestore {
  method DeepCopyObject (line 1087) | func (in *PodVolumeRestore) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1095) | func (in *PodVolumeRestoreList) DeepCopyInto(out *PodVolumeRestoreList) {
  method DeepCopy (line 1109) | func (in *PodVolumeRestoreList) DeepCopy() *PodVolumeRestoreList {
  method DeepCopyObject (line 1119) | func (in *PodVolumeRestoreList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1127) | func (in *PodVolumeRestoreSpec) DeepCopyInto(out *PodVolumeRestoreSpec) {
  method DeepCopy (line 1140) | func (in *PodVolumeRestoreSpec) DeepCopy() *PodVolumeRestoreSpec {
  method DeepCopyInto (line 1150) | func (in *PodVolumeRestoreStatus) DeepCopyInto(out *PodVolumeRestoreStat...
  method DeepCopy (line 1168) | func (in *PodVolumeRestoreStatus) DeepCopy() *PodVolumeRestoreStatus {
  method DeepCopyInto (line 1178) | func (in *Restore) DeepCopyInto(out *Restore) {
  method DeepCopy (line 1187) | func (in *Restore) DeepCopy() *Restore {
  method DeepCopyObject (line 1197) | func (in *Restore) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1205) | func (in *RestoreHooks) DeepCopyInto(out *RestoreHooks) {
  method DeepCopy (line 1217) | func (in *RestoreHooks) DeepCopy() *RestoreHooks {
  method DeepCopyInto (line 1227) | func (in *RestoreList) DeepCopyInto(out *RestoreList) {
  method DeepCopy (line 1241) | func (in *RestoreList) DeepCopy() *RestoreList {
  method DeepCopyObject (line 1251) | func (in *RestoreList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1259) | func (in *RestoreProgress) DeepCopyInto(out *RestoreProgress) {
  method DeepCopy (line 1264) | func (in *RestoreProgress) DeepCopy() *RestoreProgress {
  method DeepCopyInto (line 1274) | func (in *RestoreResourceHook) DeepCopyInto(out *RestoreResourceHook) {
  method DeepCopy (line 1289) | func (in *RestoreResourceHook) DeepCopy() *RestoreResourceHook {
  method DeepCopyInto (line 1299) | func (in *RestoreResourceHookSpec) DeepCopyInto(out *RestoreResourceHook...
  method DeepCopy (line 1336) | func (in *RestoreResourceHookSpec) DeepCopy() *RestoreResourceHookSpec {
  method DeepCopyInto (line 1346) | func (in *RestoreSpec) DeepCopyInto(out *RestoreSpec) {
  method DeepCopy (line 1426) | func (in *RestoreSpec) DeepCopy() *RestoreSpec {
  method DeepCopyInto (line 1436) | func (in *RestoreStatus) DeepCopyInto(out *RestoreStatus) {
  method DeepCopy (line 1464) | func (in *RestoreStatus) DeepCopy() *RestoreStatus {
  method DeepCopyInto (line 1474) | func (in *RestoreStatusSpec) DeepCopyInto(out *RestoreStatusSpec) {
  method DeepCopy (line 1489) | func (in *RestoreStatusSpec) DeepCopy() *RestoreStatusSpec {
  method DeepCopyInto (line 1499) | func (in *Schedule) DeepCopyInto(out *Schedule) {
  method DeepCopy (line 1508) | func (in *Schedule) DeepCopy() *Schedule {
  method DeepCopyObject (line 1518) | func (in *Schedule) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1526) | func (in *ScheduleList) DeepCopyInto(out *ScheduleList) {
  method DeepCopy (line 1540) | func (in *ScheduleList) DeepCopy() *ScheduleList {
  method DeepCopyObject (line 1550) | func (in *ScheduleList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1558) | func (in *ScheduleSpec) DeepCopyInto(out *ScheduleSpec) {
  method DeepCopy (line 1574) | func (in *ScheduleSpec) DeepCopy() *ScheduleSpec {
  method DeepCopyInto (line 1584) | func (in *ScheduleStatus) DeepCopyInto(out *ScheduleStatus) {
  method DeepCopy (line 1602) | func (in *ScheduleStatus) DeepCopy() *ScheduleStatus {
  method DeepCopyInto (line 1612) | func (in *ServerStatusRequest) DeepCopyInto(out *ServerStatusRequest) {
  method DeepCopy (line 1621) | func (in *ServerStatusRequest) DeepCopy() *ServerStatusRequest {
  method DeepCopyObject (line 1631) | func (in *ServerStatusRequest) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1639) | func (in *ServerStatusRequestList) DeepCopyInto(out *ServerStatusRequest...
  method DeepCopy (line 1653) | func (in *ServerStatusRequestList) DeepCopy() *ServerStatusRequestList {
  method DeepCopyObject (line 1663) | func (in *ServerStatusRequestList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1671) | func (in *ServerStatusRequestSpec) DeepCopyInto(out *ServerStatusRequest...
  method DeepCopy (line 1676) | func (in *ServerStatusRequestSpec) DeepCopy() *ServerStatusRequestSpec {
  method DeepCopyInto (line 1686) | func (in *ServerStatusRequestStatus) DeepCopyInto(out *ServerStatusReque...
  method DeepCopy (line 1700) | func (in *ServerStatusRequestStatus) DeepCopy() *ServerStatusRequestStat...
  method DeepCopyInto (line 1710) | func (in *StorageType) DeepCopyInto(out *StorageType) {
  method DeepCopy (line 1720) | func (in *StorageType) DeepCopy() *StorageType {
  method DeepCopyInto (line 1730) | func (in *UploaderConfigForBackup) DeepCopyInto(out *UploaderConfigForBa...
  method DeepCopy (line 1735) | func (in *UploaderConfigForBackup) DeepCopy() *UploaderConfigForBackup {
  method DeepCopyInto (line 1745) | func (in *UploaderConfigForRestore) DeepCopyInto(out *UploaderConfigForR...
  method DeepCopy (line 1755) | func (in *UploaderConfigForRestore) DeepCopy() *UploaderConfigForRestore {
  method DeepCopyInto (line 1765) | func (in *VolumeSnapshotLocation) DeepCopyInto(out *VolumeSnapshotLocati...
  method DeepCopy (line 1774) | func (in *VolumeSnapshotLocation) DeepCopy() *VolumeSnapshotLocation {
  method DeepCopyObject (line 1784) | func (in *VolumeSnapshotLocation) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1792) | func (in *VolumeSnapshotLocationList) DeepCopyInto(out *VolumeSnapshotLo...
  method DeepCopy (line 1806) | func (in *VolumeSnapshotLocationList) DeepCopy() *VolumeSnapshotLocation...
  method DeepCopyObject (line 1816) | func (in *VolumeSnapshotLocationList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 1824) | func (in *VolumeSnapshotLocationSpec) DeepCopyInto(out *VolumeSnapshotLo...
  method DeepCopy (line 1841) | func (in *VolumeSnapshotLocationSpec) DeepCopy() *VolumeSnapshotLocation...
  method DeepCopyInto (line 1851) | func (in *VolumeSnapshotLocationStatus) DeepCopyInto(out *VolumeSnapshot...
  method DeepCopy (line 1856) | func (in *VolumeSnapshotLocationStatus) DeepCopy() *VolumeSnapshotLocati...

FILE: pkg/apis/velero/v2alpha1/data_download_types.go
  type DataDownloadSpec (line 26) | type DataDownloadSpec struct
  type TargetVolumeSpec (line 68) | type TargetVolumeSpec struct
  type DataDownloadPhase (line 81) | type DataDownloadPhase
  constant DataDownloadPhaseNew (line 84) | DataDownloadPhaseNew        DataDownloadPhase = "New"
  constant DataDownloadPhaseAccepted (line 85) | DataDownloadPhaseAccepted   DataDownloadPhase = "Accepted"
  constant DataDownloadPhasePrepared (line 86) | DataDownloadPhasePrepared   DataDownloadPhase = "Prepared"
  constant DataDownloadPhaseInProgress (line 87) | DataDownloadPhaseInProgress DataDownloadPhase = "InProgress"
  constant DataDownloadPhaseCanceling (line 88) | DataDownloadPhaseCanceling  DataDownloadPhase = "Canceling"
  constant DataDownloadPhaseCanceled (line 89) | DataDownloadPhaseCanceled   DataDownloadPhase = "Canceled"
  constant DataDownloadPhaseCompleted (line 90) | DataDownloadPhaseCompleted  DataDownloadPhase = "Completed"
  constant DataDownloadPhaseFailed (line 91) | DataDownloadPhaseFailed     DataDownloadPhase = "Failed"
  type DataDownloadStatus (line 95) | type DataDownloadStatus struct
  type DataDownload (line 153) | type DataDownload struct
  type DataDownloadList (line 173) | type DataDownloadList struct

FILE: pkg/apis/velero/v2alpha1/data_upload_types.go
  type DataUploadSpec (line 26) | type DataUploadSpec struct
  type SnapshotType (line 65) | type SnapshotType
  constant SnapshotTypeCSI (line 68) | SnapshotTypeCSI SnapshotType = "CSI"
  type CSISnapshotSpec (line 72) | type CSISnapshotSpec struct
  type DataUploadPhase (line 90) | type DataUploadPhase
  constant DataUploadPhaseNew (line 93) | DataUploadPhaseNew        DataUploadPhase = "New"
  constant DataUploadPhaseAccepted (line 94) | DataUploadPhaseAccepted   DataUploadPhase = "Accepted"
  constant DataUploadPhasePrepared (line 95) | DataUploadPhasePrepared   DataUploadPhase = "Prepared"
  constant DataUploadPhaseInProgress (line 96) | DataUploadPhaseInProgress DataUploadPhase = "InProgress"
  constant DataUploadPhaseCanceling (line 97) | DataUploadPhaseCanceling  DataUploadPhase = "Canceling"
  constant DataUploadPhaseCanceled (line 98) | DataUploadPhaseCanceled   DataUploadPhase = "Canceled"
  constant DataUploadPhaseCompleted (line 99) | DataUploadPhaseCompleted  DataUploadPhase = "Completed"
  constant DataUploadPhaseFailed (line 100) | DataUploadPhaseFailed     DataUploadPhase = "Failed"
  type NodeOS (line 105) | type NodeOS
  constant NodeOSLinux (line 108) | NodeOSLinux   NodeOS = "linux"
  constant NodeOSWindows (line 109) | NodeOSWindows NodeOS = "windows"
  constant NodeOSAuto (line 110) | NodeOSAuto    NodeOS = "auto"
  type DataUploadStatus (line 114) | type DataUploadStatus struct
  type DataUpload (line 198) | type DataUpload struct
  type DataUploadList (line 219) | type DataUploadList struct
  type DataUploadResult (line 229) | type DataUploadResult struct

FILE: pkg/apis/velero/v2alpha1/register.go
  function Resource (line 27) | func Resource(resource string) schema.GroupResource {
  type typeInfo (line 31) | type typeInfo struct
  function newTypeInfo (line 37) | func newTypeInfo(pluralName string, itemType, itemListType runtime.Objec...
  function CustomResources (line 47) | func CustomResources() map[string]typeInfo {
  function CustomResourceKinds (line 55) | func CustomResourceKinds() sets.Set[string] {
  function addKnownTypes (line 66) | func addKnownTypes(scheme *runtime.Scheme) error {

FILE: pkg/apis/velero/v2alpha1/zz_generated.deepcopy.go
  method DeepCopyInto (line 12) | func (in *CSISnapshotSpec) DeepCopyInto(out *CSISnapshotSpec) {
  method DeepCopy (line 17) | func (in *CSISnapshotSpec) DeepCopy() *CSISnapshotSpec {
  method DeepCopyInto (line 27) | func (in *DataDownload) DeepCopyInto(out *DataDownload) {
  method DeepCopy (line 36) | func (in *DataDownload) DeepCopy() *DataDownload {
  method DeepCopyObject (line 46) | func (in *DataDownload) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 54) | func (in *DataDownloadList) DeepCopyInto(out *DataDownloadList) {
  method DeepCopy (line 68) | func (in *DataDownloadList) DeepCopy() *DataDownloadList {
  method DeepCopyObject (line 78) | func (in *DataDownloadList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 86) | func (in *DataDownloadSpec) DeepCopyInto(out *DataDownloadSpec) {
  method DeepCopy (line 100) | func (in *DataDownloadSpec) DeepCopy() *DataDownloadSpec {
  method DeepCopyInto (line 110) | func (in *DataDownloadStatus) DeepCopyInto(out *DataDownloadStatus) {
  method DeepCopy (line 128) | func (in *DataDownloadStatus) DeepCopy() *DataDownloadStatus {
  method DeepCopyInto (line 138) | func (in *DataUpload) DeepCopyInto(out *DataUpload) {
  method DeepCopy (line 147) | func (in *DataUpload) DeepCopy() *DataUpload {
  method DeepCopyObject (line 157) | func (in *DataUpload) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 165) | func (in *DataUploadList) DeepCopyInto(out *DataUploadList) {
  method DeepCopy (line 179) | func (in *DataUploadList) DeepCopy() *DataUploadList {
  method DeepCopyObject (line 189) | func (in *DataUploadList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 197) | func (in *DataUploadResult) DeepCopyInto(out *DataUploadResult) {
  method DeepCopy (line 213) | func (in *DataUploadResult) DeepCopy() *DataUploadResult {
  method DeepCopyInto (line 223) | func (in *DataUploadSpec) DeepCopyInto(out *DataUploadSpec) {
  method DeepCopy (line 241) | func (in *DataUploadSpec) DeepCopy() *DataUploadSpec {
  method DeepCopyInto (line 251) | func (in *DataUploadStatus) DeepCopyInto(out *DataUploadStatus) {
  method DeepCopy (line 280) | func (in *DataUploadStatus) DeepCopy() *DataUploadStatus {
  method DeepCopyInto (line 290) | func (in *TargetVolumeSpec) DeepCopyInto(out *TargetVolumeSpec) {
  method DeepCopy (line 295) | func (in *TargetVolumeSpec) DeepCopy() *TargetVolumeSpec {

FILE: pkg/archive/extractor.go
  type Extractor (line 32) | type Extractor struct
    method UnzipAndExtractBackup (line 45) | func (e *Extractor) UnzipAndExtractBackup(src io.Reader) (string, erro...
    method writeFile (line 56) | func (e *Extractor) writeFile(target string, tarRdr *tar.Reader) error {
    method readBackup (line 69) | func (e *Extractor) readBackup(tarRdr *tar.Reader) (string, error) {
  function NewExtractor (line 37) | func NewExtractor(log logrus.FieldLogger, fs filesystem.Interface) *Extr...

FILE: pkg/archive/extractor_test.go
  function TestUnzipAndExtractBackup (line 32) | func TestUnzipAndExtractBackup(t *testing.T) {
  function createArchive (line 90) | func createArchive(files []string, fs filesystem.Interface) (string, err...
  function addToArchive (line 113) | func addToArchive(tw *tar.Writer, filename string, fs filesystem.Interfa...
  function createRegular (line 142) | func createRegular(fs filesystem.Interface) (string, error) {

FILE: pkg/archive/filesystem.go
  function GetItemFilePath (line 30) | func GetItemFilePath(rootDir, groupResource, namespace, name string) str...
  function GetVersionedItemFilePath (line 35) | func GetVersionedItemFilePath(rootDir, groupResource, namespace, name, v...
  function GetScopeDir (line 40) | func GetScopeDir(namespace string) string {
  function Unmarshal (line 49) | func Unmarshal(fs filesystem.Interface, filePath string) (*unstructured....

FILE: pkg/archive/filesystem_test.go
  function TestGetItemFilePath (line 29) | func TestGetItemFilePath(t *testing.T) {
  function TestGetScopeDir (line 55) | func TestGetScopeDir(t *testing.T) {
  function TestUnmarshal (line 63) | func TestUnmarshal(t *testing.T) {

FILE: pkg/archive/parser.go
  type Parser (line 36) | type Parser struct
    method Parse (line 67) | func (p *Parser) Parse(dir string) (map[string]*ResourceItems, error) {
    method getResourceItemsForScope (line 146) | func (p *Parser) getResourceItemsForScope(dir, archiveRootDir string) ...
    method checkAndReadDir (line 167) | func (p *Parser) checkAndReadDir(dir string) ([]os.FileInfo, error) {
    method ParseGroupVersions (line 186) | func (p *Parser) ParseGroupVersions(dir string) (map[string]metav1.API...
  type ResourceItems (line 44) | type ResourceItems struct
  function NewParser (line 58) | func NewParser(log logrus.FieldLogger, fs filesystem.Interface) *Parser {
  function extractGroupName (line 253) | func extractGroupName(resourceGroupDir string) string {

FILE: pkg/archive/parser_test.go
  function TestParse (line 30) | func TestParse(t *testing.T) {
  function TestParseGroupVersions (line 122) | func TestParseGroupVersions(t *testing.T) {
  function TestExtractGroupName (line 236) | func TestExtractGroupName(t *testing.T) {

FILE: pkg/backup/actions/backup_pv_action.go
  type PVCAction (line 35) | type PVCAction struct
    method AppliesTo (line 43) | func (a *PVCAction) AppliesTo() (velero.ResourceSelector, error) {
    method Execute (line 51) | func (a *PVCAction) Execute(item runtime.Unstructured, backup *v1.Back...
    method cleanupStaleVeleroLabels (line 92) | func (a *PVCAction) cleanupStaleVeleroLabels(pvc *corev1api.Persistent...
  function NewPVCAction (line 39) | func NewPVCAction(logger logrus.FieldLogger) *PVCAction {

FILE: pkg/backup/actions/backup_pv_action_test.go
  function TestBackupPVAction (line 36) | func TestBackupPVAction(t *testing.T) {
  function TestCleanupStaleVeleroLabels (line 153) | func TestCleanupStaleVeleroLabels(t *testing.T) {

FILE: pkg/backup/actions/csi/pvc_action.go
  constant VolumeSnapshotFinalizerGroupProtection (line 69) | VolumeSnapshotFinalizerGroupProtection  = "snapshot.storage.kubernetes.i...
  constant VolumeSnapshotFinalizerSourceProtection (line 70) | VolumeSnapshotFinalizerSourceProtection = "snapshot.storage.kubernetes.i...
  type pvcBackupItemAction (line 74) | type pvcBackupItemAction struct
    method AppliesTo (line 89) | func (p *pvcBackupItemAction) AppliesTo() (velero.ResourceSelector, er...
    method validateBackup (line 95) | func (p *pvcBackupItemAction) validateBackup(backup velerov1api.Backup...
    method ensurePVCPodCacheForNamespace (line 113) | func (p *pvcBackupItemAction) ensurePVCPodCacheForNamespace(ctx contex...
    method getVolumeHelperWithCache (line 131) | func (p *pvcBackupItemAction) getVolumeHelperWithCache(backup *velerov...
    method getOrCreateVolumeHelper (line 152) | func (p *pvcBackupItemAction) getOrCreateVolumeHelper(backup *velerov1...
    method validatePVCandPV (line 163) | func (p *pvcBackupItemAction) validatePVCandPV(
    method createVolumeSnapshot (line 211) | func (p *pvcBackupItemAction) createVolumeSnapshot(
    method Execute (line 281) | func (p *pvcBackupItemAction) Execute(
    method Name (line 461) | func (p *pvcBackupItemAction) Name() string {
    method Progress (line 465) | func (p *pvcBackupItemAction) Progress(
    method Cancel (line 514) | func (p *pvcBackupItemAction) Cancel(operationID string, backup *veler...
    method getVolumeSnapshotReference (line 665) | func (p *pvcBackupItemAction) getVolumeSnapshotReference(
    method findExistingVSForBackup (line 802) | func (p *pvcBackupItemAction) findExistingVSForBackup(
    method listGroupedPVCs (line 831) | func (p *pvcBackupItemAction) listGroupedPVCs(ctx context.Context, nam...
    method filterPVCsByVolumePolicy (line 845) | func (p *pvcBackupItemAction) filterPVCsByVolumePolicy(
    method determineCSIDriver (line 882) | func (p *pvcBackupItemAction) determineCSIDriver(
    method determineVGSClass (line 905) | func (p *pvcBackupItemAction) determineVGSClass(
    method createVolumeGroupSnapshot (line 949) | func (p *pvcBackupItemAction) createVolumeGroupSnapshot(
    method waitForVGSAssociatedVS (line 994) | func (p *pvcBackupItemAction) waitForVGSAssociatedVS(
    method updateVGSCreatedVS (line 1051) | func (p *pvcBackupItemAction) updateVGSCreatedVS(
    method patchVGSCDeletionPolicy (line 1097) | func (p *pvcBackupItemAction) patchVGSCDeletionPolicy(ctx context.Cont...
    method deleteVGSAndVGSC (line 1124) | func (p *pvcBackupItemAction) deleteVGSAndVGSC(ctx context.Context, vg...
    method waitForVGSCBinding (line 1149) | func (p *pvcBackupItemAction) waitForVGSCBinding(
    method getVGSByLabels (line 1168) | func (p *pvcBackupItemAction) getVGSByLabels(ctx context.Context, name...
  function newDataUpload (line 531) | func newDataUpload(
  function createDataUpload (line 590) | func createDataUpload(
  function getDataUpload (line 609) | func getDataUpload(
  function cancelDataUpload (line 635) | func cancelDataUpload(
  function NewPvcBackupItemAction (line 651) | func NewPvcBackupItemAction(f veleroclient.Factory) plugincommon.Handler...
  function hasOwnerReference (line 1040) | func hasOwnerReference(obj metav1.Object, vgs *volumegroupsnapshotv1beta...
  function setPVCRequestSizeToVSRestoreSize (line 1187) | func setPVCRequestSizeToVSRestoreSize(
  function setPVCStorageResourceRequest (line 1209) | func setPVCStorageResourceRequest(

FILE: pkg/backup/actions/csi/pvc_action_test.go
  constant testDriver (line 62) | testDriver = "csi.example.com"
  type errorInjectingClient (line 66) | type errorInjectingClient struct
    method Create (line 71) | func (c *errorInjectingClient) Create(ctx context.Context, obj crclien...
  function TestExecute (line 81) | func TestExecute(t *testing.T) {
  function TestProgress (line 294) | func TestProgress(t *testing.T) {
  function TestCancel (line 374) | func TestCancel(t *testing.T) {
  function TestPVCAppliesTo (line 444) | func TestPVCAppliesTo(t *testing.T) {
  function TestNewPVCBackupItemAction (line 461) | func TestNewPVCBackupItemAction(t *testing.T) {
  function TestListGroupedPVCs (line 478) | func TestListGroupedPVCs(t *testing.T) {
  function TestFilterPVCsByVolumePolicy (line 589) | func TestFilterPVCsByVolumePolicy(t *testing.T) {
  function TestFilterPVCsByVolumePolicyWithVolumeHelper (line 868) | func TestFilterPVCsByVolumePolicyWithVolumeHelper(t *testing.T) {
  function TestDetermineCSIDriver (line 970) | func TestDetermineCSIDriver(t *testing.T) {
  function TestDetermineVGSClass (line 1115) | func TestDetermineVGSClass(t *testing.T) {
  function TestCreateVolumeGroupSnapshot (line 1219) | func TestCreateVolumeGroupSnapshot(t *testing.T) {
  function TestWaitForVGSAssociatedVS (line 1267) | func TestWaitForVGSAssociatedVS(t *testing.T) {
  function TestUpdateVGSCreatedVS (line 1420) | func TestUpdateVGSCreatedVS(t *testing.T) {
  function TestPatchVGSCDeletionPolicy (line 1536) | func TestPatchVGSCDeletionPolicy(t *testing.T) {
  function TestDeleteVGSAndVGSC (line 1597) | func TestDeleteVGSAndVGSC(t *testing.T) {
  function TestFindExistingVSForBackup (line 1680) | func TestFindExistingVSForBackup(t *testing.T) {
  function TestWaitForVGSCBinding (line 1767) | func TestWaitForVGSCBinding(t *testing.T) {
  function TestGetVGSByLabels (line 1824) | func TestGetVGSByLabels(t *testing.T) {
  type failingClient (line 1906) | type failingClient struct
    method List (line 1910) | func (f *failingClient) List(ctx context.Context, list crclient.Object...
  function TestHasOwnerReference (line 1914) | func TestHasOwnerReference(t *testing.T) {
  function TestPVCRequestSize (line 1988) | func TestPVCRequestSize(t *testing.T) {
  function TestGetOrCreateVolumeHelper (line 2074) | func TestGetOrCreateVolumeHelper(t *testing.T) {

FILE: pkg/backup/actions/csi/volumesnapshot_action.go
  type volumeSnapshotBackupItemAction (line 47) | type volumeSnapshotBackupItemAction struct
    method AppliesTo (line 55) | func (p *volumeSnapshotBackupItemAction) AppliesTo() (
    method Execute (line 69) | func (p *volumeSnapshotBackupItemAction) Execute(
    method Name (line 246) | func (p *volumeSnapshotBackupItemAction) Name() string {
    method Progress (line 250) | func (p *volumeSnapshotBackupItemAction) Progress(
    method Cancel (line 341) | func (p *volumeSnapshotBackupItemAction) Cancel(
  function NewVolumeSnapshotBackupItemAction (line 351) | func NewVolumeSnapshotBackupItemAction(

FILE: pkg/backup/actions/csi/volumesnapshot_action_test.go
  function TestVSExecute (line 39) | func TestVSExecute(t *testing.T) {
  function TestVSProgress (line 178) | func TestVSProgress(t *testing.T) {
  function TestVSAppliesTo (line 323) | func TestVSAppliesTo(t *testing.T) {
  function TestNewVolumeSnapshotBackupItemAction (line 340) | func TestNewVolumeSnapshotBackupItemAction(t *testing.T) {

FILE: pkg/backup/actions/csi/volumesnapshotclass_action.go
  type volumeSnapshotClassBackupItemAction (line 36) | type volumeSnapshotClassBackupItemAction struct
    method AppliesTo (line 43) | func (p *volumeSnapshotClassBackupItemAction) AppliesTo() (
    method Execute (line 54) | func (p *volumeSnapshotClassBackupItemAction) Execute(
    method Name (line 100) | func (p *volumeSnapshotClassBackupItemAction) Name() string {
    method Progress (line 105) | func (p *volumeSnapshotClassBackupItemAction) Progress(
    method Cancel (line 113) | func (p *volumeSnapshotClassBackupItemAction) Cancel(
  function NewVolumeSnapshotClassBackupItemAction (line 122) | func NewVolumeSnapshotClassBackupItemAction(logger logrus.FieldLogger) (...

FILE: pkg/backup/actions/csi/volumesnapshotclass_action_test.go
  function TestVSClassExecute (line 34) | func TestVSClassExecute(t *testing.T) {
  function TestVSClassAppliesTo (line 98) | func TestVSClassAppliesTo(t *testing.T) {

FILE: pkg/backup/actions/csi/volumesnapshotcontent_action.go
  type volumeSnapshotContentBackupItemAction (line 37) | type volumeSnapshotContentBackupItemAction struct
    method AppliesTo (line 44) | func (p *volumeSnapshotContentBackupItemAction) AppliesTo() (velero.Re...
    method Execute (line 53) | func (p *volumeSnapshotContentBackupItemAction) Execute(
    method Name (line 118) | func (p *volumeSnapshotContentBackupItemAction) Name() string {
    method Progress (line 123) | func (p *volumeSnapshotContentBackupItemAction) Progress(
    method Cancel (line 131) | func (p *volumeSnapshotContentBackupItemAction) Cancel(
  function NewVolumeSnapshotContentBackupItemAction (line 141) | func NewVolumeSnapshotContentBackupItemAction(

FILE: pkg/backup/actions/csi/volumesnapshotcontent_action_test.go
  function TestVSCExecute (line 35) | func TestVSCExecute(t *testing.T) {
  function TestVSCAppliesTo (line 110) | func TestVSCAppliesTo(t *testing.T) {

FILE: pkg/backup/actions/pod_action.go
  type PodAction (line 31) | type PodAction struct
    method AppliesTo (line 41) | func (a *PodAction) AppliesTo() (velero.ResourceSelector, error) {
    method Execute (line 50) | func (a *PodAction) Execute(item runtime.Unstructured, backup *v1.Back...
  function NewPodAction (line 36) | func NewPodAction(logger logrus.FieldLogger) *PodAction {

FILE: pkg/backup/actions/pod_action_test.go
  function TestPodActionAppliesTo (line 31) | func TestPodActionAppliesTo(t *testing.T) {
  function TestPodActionExecute (line 43) | func TestPodActionExecute(t *testing.T) {

FILE: pkg/backup/actions/remap_crd_version_action.go
  type RemapCRDVersionAction (line 41) | type RemapCRDVersionAction struct
    method AppliesTo (line 53) | func (a *RemapCRDVersionAction) AppliesTo() (velero.ResourceSelector, ...
    method Execute (line 60) | func (a *RemapCRDVersionAction) Execute(item runtime.Unstructured, bac...
  function NewRemapCRDVersionAction (line 48) | func NewRemapCRDVersionAction(logger logrus.FieldLogger, betaCRDClient a...
  function fetchV1beta1CRD (line 124) | func fetchV1beta1CRD(name string, betaCRDClient apiextv1beta1client.Cust...
  function hasPreserveUnknownFields (line 147) | func hasPreserveUnknownFields(crd apiextv1.CustomResourceDefinition) bool {
  function hasNonStructuralSchema (line 152) | func hasNonStructuralSchema(crd apiextv1.CustomResourceDefinition) bool {
  function hasSingleVersion (line 164) | func hasSingleVersion(crd apiextv1.CustomResourceDefinition) bool {

FILE: pkg/backup/actions/remap_crd_version_action_test.go
  function TestRemapCRDVersionAction (line 41) | func TestRemapCRDVersionAction(t *testing.T) {
  function TestRemapCRDVersionActionData (line 141) | func TestRemapCRDVersionActionData(t *testing.T) {
  function fakeDiscoveryHelper (line 220) | func fakeDiscoveryHelper() velerodiscovery.Helper {

FILE: pkg/backup/actions/service_account_action.go
  type ServiceAccountAction (line 32) | type ServiceAccountAction struct
    method AppliesTo (line 51) | func (a *ServiceAccountAction) AppliesTo() (velero.ResourceSelector, e...
    method Execute (line 60) | func (a *ServiceAccountAction) Execute(item runtime.Unstructured, back...
  function NewServiceAccountAction (line 38) | func NewServiceAccountAction(logger logrus.FieldLogger, clusterRoleBindi...

FILE: pkg/backup/actions/service_account_action_test.go
  function newV1ClusterRoleBindingList (line 37) | func newV1ClusterRoleBindingList(rbacCRBList []rbacv1.ClusterRoleBinding...
  function newV1beta1ClusterRoleBindingList (line 46) | func newV1beta1ClusterRoleBindingList(rbacCRBList []rbacbeta.ClusterRole...
  type FakeV1ClusterRoleBindingLister (line 55) | type FakeV1ClusterRoleBindingLister struct
    method List (line 59) | func (f FakeV1ClusterRoleBindingLister) List() ([]actionhelpers.Cluste...
  type FakeV1beta1ClusterRoleBindingLister (line 67) | type FakeV1beta1ClusterRoleBindingLister struct
    method List (line 71) | func (f FakeV1beta1ClusterRoleBindingLister) List() ([]actionhelpers.C...
  function TestServiceAccountActionAppliesTo (line 79) | func TestServiceAccountActionAppliesTo(t *testing.T) {
  function TestNewServiceAccountAction (line 93) | func TestNewServiceAccountAction(t *testing.T) {
  function TestServiceAccountActionExecute (line 199) | func TestServiceAccountActionExecute(t *testing.T) {
  function TestServiceAccountActionExecuteOnBeta1 (line 406) | func TestServiceAccountActionExecuteOnBeta1(t *testing.T) {

FILE: pkg/backup/backed_up_items_map.go
  type backedUpItemsMap (line 26) | type backedUpItemsMap struct
    method CopyItemMap (line 40) | func (m *backedUpItemsMap) CopyItemMap() map[itemKey]struct{} {
    method ResourceMap (line 53) | func (m *backedUpItemsMap) ResourceMap() map[string][]string {
    method Len (line 74) | func (m *backedUpItemsMap) Len() int {
    method BackedUpAndTotalLen (line 80) | func (m *backedUpItemsMap) BackedUpAndTotalLen() (int, int) {
    method Has (line 86) | func (m *backedUpItemsMap) Has(key itemKey) bool {
    method AddItem (line 94) | func (m *backedUpItemsMap) AddItem(key itemKey) {
    method DeleteItem (line 101) | func (m *backedUpItemsMap) DeleteItem(key itemKey) {
    method AddItemToTotal (line 109) | func (m *backedUpItemsMap) AddItemToTotal(key itemKey) {
  function NewBackedUpItemsMap (line 32) | func NewBackedUpItemsMap() *backedUpItemsMap {

FILE: pkg/backup/backup.go
  constant BackupVersion (line 71) | BackupVersion = 1
  constant BackupFormatVersion (line 74) | BackupFormatVersion = "1.1.0"
  constant ArgoCDManagedByNamespaceLabel (line 77) | ArgoCDManagedByNamespaceLabel = "argocd.argoproj.io/managed-by"
  type Backupper (line 80) | type Backupper interface
  type kubernetesBackupper (line 113) | type kubernetesBackupper struct
    method Backup (line 251) | func (kb *kubernetesBackupper) Backup(log logrus.FieldLogger, backupRe...
    method BackupWithResolvers (line 258) | func (kb *kubernetesBackupper) BackupWithResolvers(
    method executeItemBlockActions (line 689) | func (kb *kubernetesBackupper) executeItemBlockActions(
    method backupItemBlock (line 785) | func (kb *kubernetesBackupper) backupItemBlock(itemBlock *BackupItemBl...
    method getItemKey (line 832) | func (kb *kubernetesBackupper) getItemKey(item itemblock.ItemBlockItem...
    method handleItemBlockPreHooks (line 845) | func (kb *kubernetesBackupper) handleItemBlockPreHooks(itemBlock *Back...
    method handleItemBlockPostHooks (line 862) | func (kb *kubernetesBackupper) handleItemBlockPostHooks(itemBlock *Bac...
    method waitUntilPVBsProcessed (line 880) | func (kb *kubernetesBackupper) waitUntilPVBsProcessed(ctx context.Cont...
    method backupItem (line 922) | func (kb *kubernetesBackupper) backupItem(log logrus.FieldLogger, gr s...
    method finalizeItem (line 941) | func (kb *kubernetesBackupper) finalizeItem(
    method backupCRD (line 968) | func (kb *kubernetesBackupper) backupCRD(log logrus.FieldLogger, gr sc...
    method writeBackupVersion (line 1005) | func (kb *kubernetesBackupper) writeBackupVersion(tw tarWriter) error {
    method FinalizeBackup (line 1025) | func (kb *kubernetesBackupper) FinalizeBackup(
  method String (line 127) | func (i *itemKey) String() string {
  function cohabitatingResources (line 131) | func cohabitatingResources() map[string]*cohabitatingResource {
  function NewKubernetesBackupper (line 142) | func NewKubernetesBackupper(
  function getNamespaceIncludesExcludesAndArgoCDNamespaces (line 172) | func getNamespaceIncludesExcludesAndArgoCDNamespaces(backup *velerov1api...
  function getResourceHooks (line 205) | func getResourceHooks(hookSpecs []velerov1api.BackupResourceHookSpec, di...
  function getResourceHook (line 220) | func getResourceHook(hookSpec velerov1api.BackupResourceHookSpec, discov...
  type VolumeSnapshotterGetter (line 242) | type VolumeSnapshotterGetter interface
  function buildFinalTarball (line 1176) | func buildFinalTarball(tr *tar.Reader, tw tarWriter, updateFiles map[str...
  type tarWriter (line 1229) | type tarWriter struct
  function NewTarWriter (line 1234) | func NewTarWriter(writer *tar.Writer) tarWriter {
  function updateVolumeInfos (line 1242) | func updateVolumeInfos(
  function putVolumeInfos (line 1306) | func putVolumeInfos(

FILE: pkg/backup/backup_test.go
  function TestBackedUpItemsMatchesTarballContents (line 66) | func TestBackedUpItemsMatchesTarballContents(t *testing.T) {
  function TestBackupProgressIsUpdated (line 137) | func TestBackupProgressIsUpdated(t *testing.T) {
  function TestBackupOldResourceFiltering (line 179) | func TestBackupOldResourceFiltering(t *testing.T) {
  function TestCRDInclusion (line 905) | func TestCRDInclusion(t *testing.T) {
  function TestBackupResourceCohabitation (line 1085) | func TestBackupResourceCohabitation(t *testing.T) {
  function TestBackupUsesNewCohabitatingResourcesForEachBackup (line 1184) | func TestBackupUsesNewCohabitatingResourcesForEachBackup(t *testing.T) {
  function TestBackupResourceOrdering (line 1221) | func TestBackupResourceOrdering(t *testing.T) {
  type recordResourcesAction (line 1282) | type recordResourcesAction struct
    method Execute (line 1294) | func (a *recordResourcesAction) Execute(item runtime.Unstructured, bac...
    method AppliesTo (line 1310) | func (a *recordResourcesAction) AppliesTo() (velero.ResourceSelector, ...
    method Progress (line 1314) | func (a *recordResourcesAction) Progress(operationID string, backup *v...
    method Cancel (line 1318) | func (a *recordResourcesAction) Cancel(operationID string, backup *vel...
    method Name (line 1322) | func (a *recordResourcesAction) Name() string {
    method ForResource (line 1326) | func (a *recordResourcesAction) ForResource(resource string) *recordRe...
    method ForNamespace (line 1331) | func (a *recordResourcesAction) ForNamespace(namespace string) *record...
    method ForLabelSelector (line 1336) | func (a *recordResourcesAction) ForLabelSelector(selector string) *rec...
    method WithAdditionalItems (line 1341) | func (a *recordResourcesAction) WithAdditionalItems(items []velero.Res...
    method WithName (line 1346) | func (a *recordResourcesAction) WithName(name string) *recordResources...
    method WithExecutionErr (line 1351) | func (a *recordResourcesAction) WithExecutionErr(executionErr error) *...
    method WithSkippedCSISnapshotFlag (line 1356) | func (a *recordResourcesAction) WithSkippedCSISnapshotFlag(flag bool) ...
  function TestBackupItemActionsForSkippedPV (line 1363) | func TestBackupItemActionsForSkippedPV(t *testing.T) {
  function TestBackupActionsRunForCorrectItems (line 1502) | func TestBackupActionsRunForCorrectItems(t *testing.T) {
  function TestBackupWithInvalidActions (line 1710) | func TestBackupWithInvalidActions(t *testing.T) {
  type appliesToErrorAction (line 1783) | type appliesToErrorAction struct
    method AppliesTo (line 1785) | func (a *appliesToErrorAction) AppliesTo() (velero.ResourceSelector, e...
    method Execute (line 1789) | func (a *appliesToErrorAction) Execute(item runtime.Unstructured, back...
    method GetRelatedItems (line 1793) | func (a *appliesToErrorAction) GetRelatedItems(item runtime.Unstructur...
    method Progress (line 1797) | func (a *appliesToErrorAction) Progress(operationID string, backup *ve...
    method Cancel (line 1801) | func (a *appliesToErrorAction) Cancel(operationID string, backup *vele...
    method Name (line 1805) | func (a *appliesToErrorAction) Name() string {
  function TestBackupActionModifications (line 1813) | func TestBackupActionModifications(t *testing.T) {
  function TestBackupActionAdditionalItems (line 1942) | func TestBackupActionAdditionalItems(t *testing.T) {
  type recordResourcesIBA (line 2201) | type recordResourcesIBA struct
    method GetRelatedItems (line 2210) | func (a *recordResourcesIBA) GetRelatedItems(item runtime.Unstructured...
    method AppliesTo (line 2220) | func (a *recordResourcesIBA) AppliesTo() (velero.ResourceSelector, err...
    method Name (line 2224) | func (a *recordResourcesIBA) Name() string {
    method ForResource (line 2228) | func (a *recordResourcesIBA) ForResource(resource string) *recordResou...
    method ForNamespace (line 2233) | func (a *recordResourcesIBA) ForNamespace(namespace string) *recordRes...
    method ForLabelSelector (line 2238) | func (a *recordResourcesIBA) ForLabelSelector(selector string) *record...
    method WithRelatedItems (line 2243) | func (a *recordResourcesIBA) WithRelatedItems(items []velero.ResourceI...
    method WithName (line 2248) | func (a *recordResourcesIBA) WithName(name string) *recordResourcesIBA {
    method WithExecutionErr (line 2253) | func (a *recordResourcesIBA) WithExecutionErr(executionErr error) *rec...
  function TestItemBlockActionsRunForCorrectItems (line 2262) | func TestItemBlockActionsRunForCorrectItems(t *testing.T) {
  function TestBackupWithInvalidItemBlockActions (line 2470) | func TestBackupWithInvalidItemBlockActions(t *testing.T) {
  function TestItemBlockActionRelatedItems (line 2545) | func TestItemBlockActionRelatedItems(t *testing.T) {
  type volumeSnapshotterGetter (line 2802) | type volumeSnapshotterGetter
    method GetVolumeSnapshotter (line 2804) | func (vsg volumeSnapshotterGetter) GetVolumeSnapshotter(name string) (...
  function int64Ptr (line 2813) | func int64Ptr(val int) *int64 {
  type volumeIdentifier (line 2818) | type volumeIdentifier struct
  type volumeInfo (line 2823) | type volumeInfo struct
  type fakeVolumeSnapshotter (line 2830) | type fakeVolumeSnapshotter struct
    method WithVolume (line 2842) | func (vs *fakeVolumeSnapshotter) WithVolume(pvName, id, az, volumeType...
    method Init (line 2867) | func (*fakeVolumeSnapshotter) Init(config map[string]string) error {
    method GetVolumeID (line 2873) | func (vs *fakeVolumeSnapshotter) GetVolumeID(pv runtime.Unstructured) ...
    method CreateSnapshot (line 2887) | func (vs *fakeVolumeSnapshotter) CreateSnapshot(volumeID, volumeAZ str...
    method GetVolumeInfo (line 2902) | func (vs *fakeVolumeSnapshotter) GetVolumeInfo(volumeID, volumeAZ stri...
    method CreateVolumeFromSnapshot (line 2912) | func (*fakeVolumeSnapshotter) CreateVolumeFromSnapshot(snapshotID, vol...
    method SetVolumeID (line 2917) | func (*fakeVolumeSnapshotter) SetVolumeID(pv runtime.Unstructured, vol...
    method DeleteSnapshot (line 2922) | func (*fakeVolumeSnapshotter) DeleteSnapshot(snapshotID string) error {
  function TestBackupWithSnapshots (line 2930) | func TestBackupWithSnapshots(t *testing.T) {
  function TestBackupWithAsyncOperations (line 3280) | func TestBackupWithAsyncOperations(t *testing.T) {
  function TestBackupWithInvalidHooks (line 3451) | func TestBackupWithInvalidHooks(t *testing.T) {
  function TestBackupWithHooks (line 3515) | func TestBackupWithHooks(t *testing.T) {
  type fakePodVolumeBackupperFactory (line 4005) | type fakePodVolumeBackupperFactory struct
    method NewBackupper (line 4007) | func (f *fakePodVolumeBackupperFactory) NewBackupper(context.Context, ...
  type fakePodVolumeBackupper (line 4011) | type fakePodVolumeBackupper struct
    method BackupPodVolumes (line 4017) | func (b *fakePodVolumeBackupper) BackupPodVolumes(backup *velerov1.Bac...
    method WaitAllPodVolumesProcessed (line 4036) | func (b *fakePodVolumeBackupper) WaitAllPodVolumesProcessed(log logrus...
    method GetPodVolumeBackupByPodAndVolume (line 4040) | func (b *fakePodVolumeBackupper) GetPodVolumeBackupByPodAndVolume(podN...
    method ListPodVolumeBackupsByPod (line 4048) | func (b *fakePodVolumeBackupper) ListPodVolumeBackupsByPod(podNamespac...
  function TestBackupWithPodVolume (line 4062) | func TestBackupWithPodVolume(t *testing.T) {
  type pluggableAction (line 4223) | type pluggableAction struct
    method Execute (line 4229) | func (a *pluggableAction) Execute(item runtime.Unstructured, backup *v...
    method AppliesTo (line 4237) | func (a *pluggableAction) AppliesTo() (velero.ResourceSelector, error) {
    method Progress (line 4241) | func (a *pluggableAction) Progress(operationID string, backup *velerov...
    method Cancel (line 4249) | func (a *pluggableAction) Cancel(operationID string, backup *velerov1....
    method Name (line 4253) | func (a *pluggableAction) Name() string {
  type pluggableIBA (line 4258) | type pluggableIBA struct
    method GetRelatedItems (line 4263) | func (a *pluggableIBA) GetRelatedItems(item runtime.Unstructured, back...
    method AppliesTo (line 4271) | func (a *pluggableIBA) AppliesTo() (velero.ResourceSelector, error) {
    method Name (line 4275) | func (a *pluggableIBA) Name() string {
  type harness (line 4279) | type harness struct
    method addItems (line 4286) | func (h *harness) addItems(t *testing.T, resource *test.APIResource) {
  function newHarness (line 4307) | func newHarness(t *testing.T, itemBlockPool *ItemBlockWorkerPool) *harne...
  function newSnapshotLocation (line 4336) | func newSnapshotLocation(ns, name, provider string) *velerov1.VolumeSnap...
  function defaultBackup (line 4348) | func defaultBackup() *builder.BackupBuilder {
  function toUnstructuredOrFail (line 4352) | func toUnstructuredOrFail(t *testing.T, obj any) map[string]any {
  function assertTarballContents (line 4363) | func assertTarballContents(t *testing.T, backupFile io.Reader, items ......
  type unstructuredObject (line 4388) | type unstructuredObject
  function assertTarballFileContents (line 4394) | func assertTarballFileContents(t *testing.T, backupFile io.Reader, want ...
  function assertTarballOrdering (line 4438) | func assertTarballOrdering(t *testing.T, backupFile io.Reader, orderedRe...
  function TestBackupNewResourceFiltering (line 4490) | func TestBackupNewResourceFiltering(t *testing.T) {
  function TestBackupNamespaces (line 5331) | func TestBackupNamespaces(t *testing.T) {
  function TestUpdateVolumeInfos (line 5496) | func TestUpdateVolumeInfos(t *testing.T) {
  function TestPutVolumeInfos (line 5708) | func TestPutVolumeInfos(t *testing.T) {
  type fakeSingleObjectBackupStoreGetter (line 5718) | type fakeSingleObjectBackupStoreGetter struct
    method Get (line 5722) | func (f *fakeSingleObjectBackupStoreGetter) Get(*velerov1.BackupStorag...
  function NewFakeSingleObjectBackupStoreGetter (line 5728) | func NewFakeSingleObjectBackupStoreGetter(store persistence.BackupStore)...

FILE: pkg/backup/delete_helpers.go
  function NewDeleteBackupRequest (line 29) | func NewDeleteBackupRequest(name string, uid string) *velerov1api.Delete...
  function NewDeleteBackupRequestListOptions (line 46) | func NewDeleteBackupRequestListOptions(name, uid string) metav1.ListOpti...

FILE: pkg/backup/item_backupper.go
  constant csiBIAPluginName (line 60) | csiBIAPluginName     = "velero.io/csi-pvc-backupper"
  constant vsphereBIAPluginName (line 61) | vsphereBIAPluginName = "velero.io/vsphere-pvc-backupper"
  type itemBackupper (line 65) | type itemBackupper struct
    method backupItem (line 92) | func (ib *itemBackupper) backupItem(logger logrus.FieldLogger, obj run...
    method itemInclusionChecks (line 112) | func (ib *itemBackupper) itemInclusionChecks(log logrus.FieldLogger, m...
    method backupItemInternal (line 154) | func (ib *itemBackupper) backupItemInternal(logger logrus.FieldLogger,...
    method backupPodVolumes (line 340) | func (ib *itemBackupper) backupPodVolumes(log logrus.FieldLogger, pod ...
    method executeActions (line 353) | func (ib *itemBackupper) executeActions(
    method takePVSnapshot (line 541) | func (ib *itemBackupper) takePVSnapshot(obj runtime.Unstructured, log ...
    method getMatchAction (line 698) | func (ib *itemBackupper) getMatchAction(obj runtime.Unstructured, grou...
    method trackSkippedPV (line 722) | func (ib *itemBackupper) trackSkippedPV(obj runtime.Unstructured, grou...
    method unTrackSkippedPV (line 735) | func (ib *itemBackupper) unTrackSkippedPV(obj runtime.Unstructured, gr...
    method addVolumeInfo (line 754) | func (ib *itemBackupper) addVolumeInfo(obj runtime.Unstructured, log l...
  type FileForArchive (line 81) | type FileForArchive struct
  function getFileForArchive (line 326) | func getFileForArchive(namespace, name, groupResource, versionPath strin...
  constant zoneLabelDeprecated (line 524) | zoneLabelDeprecated = "failure-domain.beta.kubernetes.io/zone"
  constant zoneLabel (line 526) | zoneLabel = "topology.kubernetes.io/zone"
  constant awsEbsCsiZoneKey (line 528) | awsEbsCsiZoneKey = "topology.ebs.csi.aws.com/zone"
  constant azureCsiZoneKey (line 529) | azureCsiZoneKey  = "topology.disk.csi.azure.com/zone"
  constant gkeCsiZoneKey (line 530) | gkeCsiZoneKey    = "topology.gke.io/zone"
  constant gkeZoneSeparator (line 531) | gkeZoneSeparator = "__"
  constant cinderCsiZoneKey (line 534) | cinderCsiZoneKey = "topology.manila.csi.openstack.org/zone"
  constant manilaCsiZoneKey (line 535) | manilaCsiZoneKey = "topology.cinder.csi.openstack.org/zone"
  function getPVName (line 775) | func getPVName(obj runtime.Unstructured, groupResource schema.GroupResou...
  function volumeSnapshot (line 796) | func volumeSnapshot(backup *velerov1api.Backup, volumeName, volumeID, vo...
  function resourceKey (line 816) | func resourceKey(obj runtime.Unstructured) string {
  function resourceVersion (line 823) | func resourceVersion(obj runtime.Unstructured) string {
  function zoneFromPVNodeAffinity (line 830) | func zoneFromPVNodeAffinity(res *corev1api.PersistentVolume, topologyKey...

FILE: pkg/backup/item_backupper_test.go
  function Test_resourceKey (line 40) | func Test_resourceKey(t *testing.T) {
  function Test_zoneFromPVNodeAffinity (line 59) | func Test_zoneFromPVNodeAffinity(t *testing.T) {
  function TestGetPVName (line 183) | func TestGetPVName(t *testing.T) {
  function TestRandom (line 235) | func TestRandom(t *testing.T) {
  function TestAddVolumeInfo (line 245) | func TestAddVolumeInfo(t *testing.T) {
  function TestGetMatchAction_PendingLostPVC (line 276) | func TestGetMatchAction_PendingLostPVC(t *testing.T) {
  function TestTrackSkippedPV_PendingLostPVC (line 376) | func TestTrackSkippedPV_PendingLostPVC(t *testing.T) {
  function TestUnTrackSkippedPV_PendingLostPVC (line 429) | func TestUnTrackSkippedPV_PendingLostPVC(t *testing.T) {

FILE: pkg/backup/item_block_worker_pool.go
  type ItemBlockWorkerPool (line 27) | type ItemBlockWorkerPool struct
    method GetInputChannel (line 45) | func (p *ItemBlockWorkerPool) GetInputChannel() chan ItemBlockInput {
    method Stop (line 71) | func (p *ItemBlockWorkerPool) Stop() {
  type ItemBlockInput (line 34) | type ItemBlockInput struct
  type ItemBlockReturn (line 39) | type ItemBlockReturn struct
  function StartItemBlockWorkerPool (line 49) | func StartItemBlockWorkerPool(ctx context.Context, workers int, log logr...
  function processItemBlockWorker (line 78) | func processItemBlockWorker(ctx context.Context,

FILE: pkg/backup/item_collector.go
  type itemCollector (line 47) | type itemCollector struct
    method getItemsFromResourceIdentifiers (line 199) | func (r *itemCollector) getItemsFromResourceIdentifiers(
    method getAllItems (line 211) | func (r *itemCollector) getAllItems() []*kubernetesResource {
    method getItems (line 229) | func (r *itemCollector) getItems(
    method getGroupItems (line 250) | func (r *itemCollector) getGroupItems(
    method getResourceItems (line 356) | func (r *itemCollector) getResourceItems(
    method listResourceByLabelsPerNamespace (line 514) | func (r *itemCollector) listResourceByLabelsPerNamespace(
    method writeToFile (line 579) | func (r *itemCollector) writeToFile(item *unstructured.Unstructured) (...
    method processPagerClientCalls (line 675) | func (r *itemCollector) processPagerClientCalls(
    method listItemsForLabel (line 703) | func (r *itemCollector) listItemsForLabel(
    method collectNamespaces (line 742) | func (r *itemCollector) collectNamespaces(
  type nsTracker (line 71) | type nsTracker struct
    method track (line 81) | func (nt *nsTracker) track(ns string) {
    method isTracked (line 93) | func (nt *nsTracker) isTracked(ns string) bool {
    method init (line 102) | func (nt *nsTracker) init(
    method filterNamespaces (line 170) | func (nt *nsTracker) filterNamespaces(
  type kubernetesResource (line 185) | type kubernetesResource struct
  function sortResourcesByOrder (line 288) | func sortResourcesByOrder(
  function getOrderedResourcesForType (line 338) | func getOrderedResourcesForType(
  function sortCoreGroup (line 603) | func sortCoreGroup(group *metav1.APIResourceList) {
  constant pod (line 614) | pod = iota
  constant pvc (line 615) | pvc
  constant pv (line 616) | pv
  constant other (line 617) | other
  function coreGroupResourcePriority (line 622) | func coreGroupResourcePriority(resource string) int {
  function getNamespacesToList (line 638) | func getNamespacesToList(ie *collections.NamespaceIncludesExcludes) []st...
  type cohabitatingResource (line 658) | type cohabitatingResource struct
  function newCohabitatingResource (line 665) | func newCohabitatingResource(resource, group1, group2 string) *cohabitat...

FILE: pkg/backup/item_collector_test.go
  function TestSortCoreGroup (line 38) | func TestSortCoreGroup(t *testing.T) {
  function TestSortOrderedResource (line 64) | func TestSortOrderedResource(t *testing.T) {
  function TestFilterNamespaces (line 96) | func TestFilterNamespaces(t *testing.T) {
  function TestItemCollectorBackupNamespaces (line 153) | func TestItemCollectorBackupNamespaces(t *testing.T) {

FILE: pkg/backup/itemblock.go
  type BackupItemBlock (line 31) | type BackupItemBlock struct
    method addKubernetesResource (line 44) | func (b *BackupItemBlock) addKubernetesResource(item *kubernetesResour...
  function NewBackupItemBlock (line 37) | func NewBackupItemBlock(log logrus.FieldLogger, itemBackupper *itemBacku...

FILE: pkg/backup/pv_skip_tracker.go
  type SkippedPV (line 24) | type SkippedPV struct
    method SerializeSkipReasons (line 29) | func (s *SkippedPV) SerializeSkipReasons() string {
  type PVSkipReason (line 37) | type PVSkipReason struct
  type skipPVTracker (line 43) | type skipPVTracker struct
    method Track (line 69) | func (pt *skipPVTracker) Track(name, approach, reason string) {
    method Untrack (line 92) | func (pt *skipPVTracker) Untrack(name string) {
    method Summary (line 100) | func (pt *skipPVTracker) Summary() []SkippedPV {
  constant podVolumeApproach (line 53) | podVolumeApproach       = "podvolume"
  constant csiSnapshotApproach (line 54) | csiSnapshotApproach     = "csiSnapshot"
  constant volumeSnapshotApproach (line 55) | volumeSnapshotApproach  = "volumeSnapshot"
  constant vsphereSnapshotApproach (line 56) | vsphereSnapshotApproach = "vsphereSnapshot"
  constant anyApproach (line 57) | anyApproach             = "any"
  function NewSkipPVTracker (line 60) | func NewSkipPVTracker() *skipPVTracker {

FILE: pkg/backup/pv_skip_tracker_test.go
  function TestSummary (line 26) | func TestSummary(t *testing.T) {
  function TestSerializeSkipReasons (line 62) | func TestSerializeSkipReasons(t *testing.T) {
  function TestTrackUntrack (line 73) | func TestTrackUntrack(t *testing.T) {

FILE: pkg/backup/request.go
  type itemKey (line 31) | type itemKey struct
  type SynchronizedVSList (line 37) | type SynchronizedVSList struct
    method Add (line 42) | func (s *SynchronizedVSList) Add(vs *volume.Snapshot) {
    method Get (line 48) | func (s *SynchronizedVSList) Get() []*volume.Snapshot {
  type Request (line 56) | type Request struct
    method GetItemOperationsList (line 79) | func (r *Request) GetItemOperationsList() *[]*itemoperation.BackupOper...
    method BackupResourceList (line 89) | func (r *Request) BackupResourceList() map[string][]string {
    method FillVolumesInformation (line 93) | func (r *Request) FillVolumesInformation() {
    method StopWorkerPool (line 107) | func (r *Request) StopWorkerPool() {

FILE: pkg/backup/request_test.go
  function TestRequest_BackupResourceList (line 25) | func TestRequest_BackupResourceList(t *testing.T) {
  function TestRequest_BackupResourceListEntriesSorted (line 60) | func TestRequest_BackupResourceListEntriesSorted(t *testing.T) {

FILE: pkg/backup/snapshots.go
  function GetBackupCSIResources (line 35) | func GetBackupCSIResources(

FILE: pkg/backup/volume_snapshotter_cache.go
  type VolumeSnapshotterCache (line 10) | type VolumeSnapshotterCache struct
    method SetNX (line 23) | func (c *VolumeSnapshotterCache) SetNX(location *velerov1api.VolumeSna...
  function NewVolumeSnapshotterCache (line 16) | func NewVolumeSnapshotterCache(getter VolumeSnapshotterGetter) *VolumeSn...

FILE: pkg/builder/backup_builder.go
  type BackupBuilder (line 50) | type BackupBuilder struct
    method Result (line 71) | func (b *BackupBuilder) Result() *velerov1api.Backup {
    method ObjectMeta (line 76) | func (b *BackupBuilder) ObjectMeta(opts ...ObjectMetaOpt) *BackupBuild...
    method FromSchedule (line 85) | func (b *BackupBuilder) FromSchedule(schedule *velerov1api.Schedule) *...
    method IncludedNamespaces (line 136) | func (b *BackupBuilder) IncludedNamespaces(namespaces ...string) *Back...
    method ExcludedNamespaces (line 142) | func (b *BackupBuilder) ExcludedNamespaces(namespaces ...string) *Back...
    method IncludedResources (line 148) | func (b *BackupBuilder) IncludedResources(resources ...string) *Backup...
    method ExcludedResources (line 154) | func (b *BackupBuilder) ExcludedResources(resources ...string) *Backup...
    method IncludedClusterScopedResources (line 160) | func (b *BackupBuilder) IncludedClusterScopedResources(resources ...st...
    method ExcludedClusterScopedResources (line 166) | func (b *BackupBuilder) ExcludedClusterScopedResources(resources ...st...
    method IncludedNamespaceScopedResources (line 172) | func (b *BackupBuilder) IncludedNamespaceScopedResources(resources ......
    method ExcludedNamespaceScopedResources (line 178) | func (b *BackupBuilder) ExcludedNamespaceScopedResources(resources ......
    method IncludeClusterResources (line 184) | func (b *BackupBuilder) IncludeClusterResources(val bool) *BackupBuild...
    method LabelSelector (line 190) | func (b *BackupBuilder) LabelSelector(selector *metav1.LabelSelector) ...
    method OrLabelSelector (line 196) | func (b *BackupBuilder) OrLabelSelector(orSelectors []*metav1.LabelSel...
    method SnapshotVolumes (line 202) | func (b *BackupBuilder) SnapshotVolumes(val bool) *BackupBuilder {
    method DefaultVolumesToFsBackup (line 208) | func (b *BackupBuilder) DefaultVolumesToFsBackup(val bool) *BackupBuil...
    method DefaultVolumesToRestic (line 214) | func (b *BackupBuilder) DefaultVolumesToRestic(val bool) *BackupBuilder {
    method Phase (line 220) | func (b *BackupBuilder) Phase(phase velerov1api.BackupPhase) *BackupBu...
    method QueuePosition (line 226) | func (b *BackupBuilder) QueuePosition(queuePos int) *BackupBuilder {
    method StorageLocation (line 232) | func (b *BackupBuilder) StorageLocation(location string) *BackupBuilder {
    method VolumeSnapshotLocations (line 238) | func (b *BackupBuilder) VolumeSnapshotLocations(locations ...string) *...
    method TTL (line 244) | func (b *BackupBuilder) TTL(ttl time.Duration) *BackupBuilder {
    method VolumeGroupSnapshotLabelKey (line 250) | func (b *BackupBuilder) VolumeGroupSnapshotLabelKey(labelKey string) *...
    method Expiration (line 256) | func (b *BackupBuilder) Expiration(val time.Time) *BackupBuilder {
    method StartTimestamp (line 262) | func (b *BackupBuilder) StartTimestamp(val time.Time) *BackupBuilder {
    method CompletionTimestamp (line 268) | func (b *BackupBuilder) CompletionTimestamp(val time.Time) *BackupBuil...
    method Hooks (line 274) | func (b *BackupBuilder) Hooks(hooks velerov1api.BackupHooks) *BackupBu...
    method OrderedResources (line 280) | func (b *BackupBuilder) OrderedResources(orders map[string]string) *Ba...
    method CSISnapshotTimeout (line 286) | func (b *BackupBuilder) CSISnapshotTimeout(timeout time.Duration) *Bac...
    method ItemOperationTimeout (line 292) | func (b *BackupBuilder) ItemOperationTimeout(timeout time.Duration) *B...
    method ResourcePolicies (line 298) | func (b *BackupBuilder) ResourcePolicies(name string) *BackupBuilder {
    method SnapshotMoveData (line 304) | func (b *BackupBuilder) SnapshotMoveData(val bool) *BackupBuilder {
    method DataMover (line 310) | func (b *BackupBuilder) DataMover(name string) *BackupBuilder {
    method ParallelFilesUpload (line 316) | func (b *BackupBuilder) ParallelFilesUpload(parallel int) *BackupBuild...
    method WithStatus (line 325) | func (b *BackupBuilder) WithStatus(status velerov1api.BackupStatus) *B...
  function ForBackup (line 55) | func ForBackup(ns, name string) *BackupBuilder {

FILE: pkg/builder/backup_storage_location_builder.go
  type BackupStorageLocationBuilder (line 29) | type BackupStorageLocationBuilder struct
    method Result (line 50) | func (b *BackupStorageLocationBuilder) Result() *velerov1api.BackupSto...
    method ObjectMeta (line 55) | func (b *BackupStorageLocationBuilder) ObjectMeta(opts ...ObjectMetaOp...
    method Provider (line 64) | func (b *BackupStorageLocationBuilder) Provider(name string) *BackupSt...
    method Bucket (line 70) | func (b *BackupStorageLocationBuilder) Bucket(val string) *BackupStora...
    method Prefix (line 79) | func (b *BackupStorageLocationBuilder) Prefix(val string) *BackupStora...
    method CACert (line 88) | func (b *BackupStorageLocationBuilder) CACert(val []byte) *BackupStora...
    method CACertRef (line 97) | func (b *BackupStorageLocationBuilder) CACertRef(selector *corev1api.S...
    method Default (line 106) | func (b *BackupStorageLocationBuilder) Default(isDefault bool) *Backup...
    method AccessMode (line 112) | func (b *BackupStorageLocationBuilder) AccessMode(accessMode velerov1a...
    method ValidationFrequency (line 118) | func (b *BackupStorageLocationBuilder) ValidationFrequency(frequency t...
    method LastValidationTime (line 124) | func (b *BackupStorageLocationBuilder) LastValidationTime(lastValidate...
    method Phase (line 130) | func (b *BackupStorageLocationBuilder) Phase(phase velerov1api.BackupS...
    method Credential (line 136) | func (b *BackupStorageLocationBuilder) Credential(selector *corev1api....
  function ForBackupStorageLocation (line 34) | func ForBackupStorageLocation(ns, name string) *BackupStorageLocationBui...

FILE: pkg/builder/config_map_builder.go
  type ConfigMapBuilder (line 25) | type ConfigMapBuilder struct
    method Result (line 46) | func (b *ConfigMapBuilder) Result() *corev1api.ConfigMap {
    method ObjectMeta (line 51) | func (b *ConfigMapBuilder) ObjectMeta(opts ...ObjectMetaOpt) *ConfigMa...
    method Data (line 60) | func (b *ConfigMapBuilder) Data(vals ...string) *ConfigMapBuilder {
  function ForConfigMap (line 30) | func ForConfigMap(ns, name string) *ConfigMapBuilder {

FILE: pkg/builder/container_builder.go
  type ContainerBuilder (line 30) | type ContainerBuilder struct
    method Result (line 95) | func (b *ContainerBuilder) Result() *corev1api.Container {
    method ResultRawExtension (line 100) | func (b *ContainerBuilder) ResultRawExtension() apimachineryRuntime.Ra...
    method Args (line 111) | func (b *ContainerBuilder) Args(args ...string) *ContainerBuilder {
    method VolumeMounts (line 117) | func (b *ContainerBuilder) VolumeMounts(volumeMounts ...*corev1api.Vol...
    method Resources (line 125) | func (b *ContainerBuilder) Resources(resources *corev1api.ResourceRequ...
    method SecurityContext (line 131) | func (b *ContainerBuilder) SecurityContext(securityContext *corev1api....
    method Env (line 136) | func (b *ContainerBuilder) Env(vars ...*corev1api.EnvVar) *ContainerBu...
    method PullPolicy (line 143) | func (b *ContainerBuilder) PullPolicy(pullPolicy corev1api.PullPolicy)...
    method Command (line 148) | func (b *ContainerBuilder) Command(command []string) *ContainerBuilder {
  function ForContainer (line 35) | func ForContainer(name, image string) *ContainerBuilder {
  function ForPluginContainer (line 45) | func ForPluginContainer(image string, pullPolicy corev1api.PullPolicy) *...
  function getName (line 53) | func getName(image string) string {

FILE: pkg/builder/container_builder_test.go
  function TestGetName (line 24) | func TestGetName(t *testing.T) {
  function TestGetNameWithLongPaths (line 104) | func TestGetNameWithLongPaths(t *testing.T) {

FILE: pkg/builder/customresourcedefinition_v1beta1_builder.go
  type CustomResourceDefinitionV1Beta1Builder (line 25) | type CustomResourceDefinitionV1Beta1Builder struct
    method Condition (line 45) | func (c *CustomResourceDefinitionV1Beta1Builder) Condition(cond apiext...
    method Result (line 51) | func (c *CustomResourceDefinitionV1Beta1Builder) Result() *apiextv1bet...
    method ObjectMeta (line 56) | func (c *CustomResourceDefinitionV1Beta1Builder) ObjectMeta(opts ...Ob...
  function ForCustomResourceDefinitionV1Beta1 (line 30) | func ForCustomResourceDefinitionV1Beta1(name string) *CustomResourceDefi...
  type CustomResourceDefinitionV1Beta1ConditionBuilder (line 65) | type CustomResourceDefinitionV1Beta1ConditionBuilder struct
    method Type (line 77) | func (c *CustomResourceDefinitionV1Beta1ConditionBuilder) Type(t apiex...
    method Status (line 83) | func (c *CustomResourceDefinitionV1Beta1ConditionBuilder) Status(cs ap...
    method Result (line 89) | func (c *CustomResourceDefinitionV1Beta1ConditionBuilder) Result() api...
  function ForCustomResourceDefinitionV1Beta1Condition (line 70) | func ForCustomResourceDefinitionV1Beta1Condition() *CustomResourceDefini...

FILE: pkg/builder/data_download_builder.go
  type DataDownloadBuilder (line 27) | type DataDownloadBuilder struct
    method Result (line 48) | func (d *DataDownloadBuilder) Result() *velerov2alpha1api.DataDownload {
    method BackupStorageLocation (line 53) | func (d *DataDownloadBuilder) BackupStorageLocation(name string) *Data...
    method Phase (line 59) | func (d *DataDownloadBuilder) Phase(phase velerov2alpha1api.DataDownlo...
    method SnapshotID (line 65) | func (d *DataDownloadBuilder) SnapshotID(id string) *DataDownloadBuild...
    method DataMover (line 71) | func (d *DataDownloadBuilder) DataMover(dataMover string) *DataDownloa...
    method SourceNamespace (line 77) | func (d *DataDownloadBuilder) SourceNamespace(sourceNamespace string) ...
    method TargetVolume (line 83) | func (d *DataDownloadBuilder) TargetVolume(targetVolume velerov2alpha1...
    method Cancel (line 89) | func (d *DataDownloadBuilder) Cancel(cancel bool) *DataDownloadBuilder {
    method OperationTimeout (line 95) | func (d *DataDownloadBuilder) OperationTimeout(timeout metav1.Duration...
    method DataMoverConfig (line 101) | func (d *DataDownloadBuilder) DataMoverConfig(config *map[string]strin...
    method ObjectMeta (line 107) | func (d *DataDownloadBuilder) ObjectMeta(opts ...ObjectMetaOpt) *DataD...
    method Labels (line 116) | func (d *DataDownloadBuilder) Labels(labels map[string]string) *DataDo...
    method Annotations (line 122) | func (d *DataDownloadBuilder) Annotations(annotations map[string]strin...
    method StartTimestamp (line 128) | func (d *DataDownloadBuilder) StartTimestamp(startTime *metav1.Time) *...
    method CompletionTimestamp (line 134) | func (d *DataDownloadBuilder) CompletionTimestamp(completionTimestamp ...
    method Progress (line 140) | func (d *DataDownloadBuilder) Progress(progress shared.DataMoveOperati...
    method Node (line 146) | func (d *DataDownloadBuilder) Node(node string) *DataDownloadBuilder {
    method NodeOS (line 152) | func (d *DataDownloadBuilder) NodeOS(nodeOS velerov2alpha1api.NodeOS) ...
    method AcceptedByNode (line 158) | func (d *DataDownloadBuilder) AcceptedByNode(node string) *DataDownloa...
    method AcceptedTimestamp (line 164) | func (d *DataDownloadBuilder) AcceptedTimestamp(acceptedTimestamp *met...
    method Finalizers (line 170) | func (d *DataDownloadBuilder) Finalizers(finalizers []string) *DataDow...
    method Message (line 176) | func (d *DataDownloadBuilder) Message(msg string) *DataDownloadBuilder {
  function ForDataDownload (line 32) | func ForDataDownload(namespace, name string) *DataDownloadBuilder {

FILE: pkg/builder/data_upload_builder.go
  type DataUploadBuilder (line 27) | type DataUploadBuilder struct
    method Result (line 48) | func (d *DataUploadBuilder) Result() *velerov2alpha1api.DataUpload {
    method BackupStorageLocation (line 53) | func (d *DataUploadBuilder) BackupStorageLocation(name string) *DataUp...
    method Phase (line 59) | func (d *DataUploadBuilder) Phase(phase velerov2alpha1api.DataUploadPh...
    method SnapshotID (line 65) | func (d *DataUploadBuilder) SnapshotID(id string) *DataUploadBuilder {
    method DataMover (line 71) | func (d *DataUploadBuilder) DataMover(dataMover string) *DataUploadBui...
    method SourceNamespace (line 77) | func (d *DataUploadBuilder) SourceNamespace(sourceNamespace string) *D...
    method SourcePVC (line 83) | func (d *DataUploadBuilder) SourcePVC(sourcePVC string) *DataUploadBui...
    method SnapshotType (line 89) | func (d *DataUploadBuilder) SnapshotType(SnapshotType velerov2alpha1ap...
    method Cancel (line 95) | func (d *DataUploadBuilder) Cancel(cancel bool) *DataUploadBuilder {
    method OperationTimeout (line 101) | func (d *DataUploadBuilder) OperationTimeout(timeout metav1.Duration) ...
    method DataMoverConfig (line 107) | func (d *DataUploadBuilder) DataMoverConfig(config map[string]string) ...
    method CSISnapshot (line 113) | func (d *DataUploadBuilder) CSISnapshot(cSISnapshot *velerov2alpha1api...
    method StartTimestamp (line 119) | func (d *DataUploadBuilder) StartTimestamp(startTimestamp *metav1.Time...
    method CompletionTimestamp (line 125) | func (d *DataUploadBuilder) CompletionTimestamp(completionTimestamp *m...
    method Labels (line 131) | func (d *DataUploadBuilder) Labels(labels map[string]string) *DataUplo...
    method Annotations (line 137) | func (d *DataUploadBuilder) Annotations(annotations map[string]string)...
    method Progress (line 143) | func (d *DataUploadBuilder) Progress(progress shared.DataMoveOperation...
    method IncrementalBytes (line 149) | func (d *DataUploadBuilder) IncrementalBytes(incrementalBytes int64) *...
    method Node (line 155) | func (d *DataUploadBuilder) Node(node string) *DataUploadBuilder {
    method NodeOS (line 161) | func (d *DataUploadBuilder) NodeOS(nodeOS velerov2alpha1api.NodeOS) *D...
    method AcceptedByNode (line 167) | func (d *DataUploadBuilder) AcceptedByNode(node string) *DataUploadBui...
    method AcceptedTimestamp (line 173) | func (d *DataUploadBuilder) AcceptedTimestamp(acceptedTimestamp *metav...
    method Finalizers (line 179) | func (d *DataUploadBuilder) Finalizers(finalizers []string) *DataUploa...
    method Message (line 185) | func (d *DataUploadBuilder) Message(msg string) *DataUploadBuilder {
    method TotalBytes (line 191) | func (d *DataUploadBuilder) TotalBytes(size int64) *DataUploadBuilder {
  function ForDataUpload (line 32) | func ForDataUpload(ns, name string) *DataUploadBuilder {

FILE: pkg/builder/delete_backup_request_builder.go
  type DeleteBackupRequestBuilder (line 26) | type DeleteBackupRequestBuilder struct
    method Result (line 47) | func (b *DeleteBackupRequestBuilder) Result() *velerov1api.DeleteBacku...
    method ObjectMeta (line 52) | func (b *DeleteBackupRequestBuilder) ObjectMeta(opts ...ObjectMetaOpt)...
    method BackupName (line 60) | func (b *DeleteBackupRequestBuilder) BackupName(name string) *DeleteBa...
    method Phase (line 66) | func (b *DeleteBackupRequestBuilder) Phase(phase velerov1api.DeleteBac...
    method Errors (line 72) | func (b *DeleteBackupRequestBuilder) Errors(errors ...string) *DeleteB...
  function ForDeleteBackupRequest (line 31) | func ForDeleteBackupRequest(ns, name string) *DeleteBackupRequestBuilder {

FILE: pkg/builder/deployment_builder.go
  type DeploymentBuilder (line 25) | type DeploymentBuilder struct
    method Result (line 46) | func (b *DeploymentBuilder) Result() *appsv1api.Deployment {
    method ObjectMeta (line 51) | func (b *DeploymentBuilder) ObjectMeta(opts ...ObjectMetaOpt) *Deploym...
  function ForDeployment (line 30) | func ForDeployment(ns, name string) *DeploymentBuilder {

FILE: pkg/builder/download_request_builder.go
  type DownloadRequestBuilder (line 26) | type DownloadRequestBuilder struct
    method Result (line 47) | func (b *DownloadRequestBuilder) Result() *velerov1api.DownloadRequest {
    method Phase (line 52) | func (b *DownloadRequestBuilder) Phase(phase velerov1api.DownloadReque...
    method Target (line 58) | func (b *DownloadRequestBuilder) Target(targetKind velerov1api.Downloa...
  function ForDownloadRequest (line 31) | func ForDownloadRequest(ns, name string) *DownloadRequestBuilder {

FILE: pkg/builder/item_operation_builder.go
  type OperationStatusBuilder (line 30) | type OperationStatusBuilder struct
    method Result (line 42) | func (osb *OperationStatusBuilder) Result() *itemoperation.OperationSt...
    method Phase (line 47) | func (osb *OperationStatusBuilder) Phase(phase itemoperation.Operation...
    method Error (line 53) | func (osb *OperationStatusBuilder) Error(err string) *OperationStatusB...
    method Progress (line 59) | func (osb *OperationStatusBuilder) Progress(nComplete int64, nTotal in...
    method Description (line 67) | func (osb *OperationStatusBuilder) Description(desc string) *Operation...
    method Created (line 73) | func (osb *OperationStatusBuilder) Created(t time.Time) *OperationStat...
    method Updated (line 79) | func (osb *OperationStatusBuilder) Updated(t time.Time) *OperationStat...
    method Started (line 85) | func (osb *OperationStatusBuilder) Started(t time.Time) *OperationStat...
  function ForOperationStatus (line 35) | func ForOperationStatus() *OperationStatusBuilder {
  type BackupOperationBuilder (line 91) | type BackupOperationBuilder struct
    method Result (line 103) | func (bb *BackupOperationBuilder) Result() *itemoperation.BackupOperat...
    method BackupName (line 108) | func (bb *BackupOperationBuilder) BackupName(name string) *BackupOpera...
    method OperationID (line 114) | func (bb *BackupOperationBuilder) OperationID(id string) *BackupOperat...
    method Status (line 120) | func (bb *BackupOperationBuilder) Status(status itemoperation.Operatio...
    method ResourceIdentifier (line 126) | func (bb *BackupOperationBuilder) ResourceIdentifier(group, resource, ...
    method BackupItemAction (line 139) | func (bb *BackupOperationBuilder) BackupItemAction(bia string) *Backup...
    method PostOperationItem (line 145) | func (bb *BackupOperationBuilder) PostOperationItem(group, resource, n...
  function ForBackupOperation (line 96) | func ForBackupOperation() *BackupOperationBuilder {
  type RestoreOperationBuilder (line 158) | type RestoreOperationBuilder struct
    method Result (line 170) | func (rb *RestoreOperationBuilder) Result() *itemoperation.RestoreOper...
    method RestoreName (line 175) | func (rb *RestoreOperationBuilder) RestoreName(name string) *RestoreOp...
    method OperationID (line 181) | func (rb *RestoreOperationBuilder) OperationID(id string) *RestoreOper...
    method RestoreItemAction (line 187) | func (rb *RestoreOperationBuilder) RestoreItemAction(ria string) *Rest...
    method Status (line 193) | func (rb *RestoreOperationBuilder) Status(status itemoperation.Operati...
    method ResourceIdentifier (line 199) | func (rb *RestoreOperationBuilder) ResourceIdentifier(group, resource,...
  function ForRestoreOperation (line 163) | func ForRestoreOperation() *RestoreOperationBuilder {

FILE: pkg/builder/job_builder.go
  type JobBuilder (line 24) | type JobBuilder struct
    method Result (line 45) | func (j *JobBuilder) Result() *batchv1api.Job {
    method ObjectMeta (line 50) | func (j *JobBuilder) ObjectMeta(opts ...ObjectMetaOpt) *JobBuilder {
    method Succeeded (line 59) | func (j *JobBuilder) Succeeded(succeeded int) *JobBuilder {
  function ForJob (line 29) | func ForJob(ns, name string) *JobBuilder {

FILE: pkg/builder/json_schema_props_builder.go
  type JSONSchemaPropsBuilder (line 23) | type JSONSchemaPropsBuilder struct
    method Maximum (line 35) | func (b *JSONSchemaPropsBuilder) Maximum(f float64) *JSONSchemaPropsBu...
    method Result (line 41) | func (b *JSONSchemaPropsBuilder) Result() *apiextv1.JSONSchemaProps {
  function ForJSONSchemaPropsBuilder (line 28) | func ForJSONSchemaPropsBuilder() *JSONSchemaPropsBuilder {

FILE: pkg/builder/namespace_builder.go
  type NamespaceBuilder (line 25) | type NamespaceBuilder struct
    method Result (line 45) | func (b *NamespaceBuilder) Result() *corev1api.Namespace {
    method ObjectMeta (line 50) | func (b *NamespaceBuilder) ObjectMeta(opts ...ObjectMetaOpt) *Namespac...
    method Phase (line 59) | func (b *NamespaceBuilder) Phase(val corev1api.NamespacePhase) *Namesp...
  function ForNamespace (line 30) | func ForNamespace(name string) *NamespaceBuilder {

FILE: pkg/builder/node_builder.go
  type NodeBuilder (line 25) | type NodeBuilder struct
    method Labels (line 44) | func (b *NodeBuilder) Labels(labels map[string]string) *NodeBuilder {
    method Result (line 50) | func (b *NodeBuilder) Result() *corev1api.Node {
  function ForNode (line 30) | func ForNode(name string) *NodeBuilder {

FILE: pkg/builder/node_selector_builder.go
  type NodeSelectorBuilder (line 22) | type NodeSelectorBuilder struct
    method Result (line 36) | func (b *NodeSelectorBuilder) Result() *corev1api.NodeSelector {
  function ForNodeSelector (line 27) | func ForNodeSelector(term ...corev1api.NodeSelectorTerm) *NodeSelectorBu...
  type NodeSelectorTermBuilder (line 41) | type NodeSelectorTermBuilder struct
    method WithMatchExpression (line 56) | func (ntb *NodeSelectorTermBuilder) WithMatchExpression(key string, op...
    method WithMatchField (line 67) | func (ntb *NodeSelectorTermBuilder) WithMatchField(key string, op stri...
    method Result (line 78) | func (ntb *NodeSelectorTermBuilder) Result() *corev1api.NodeSelectorTe...
  function NewNodeSelectorTermBuilder (line 46) | func NewNodeSelectorTermBuilder() *NodeSelectorTermBuilder {

FILE: pkg/builder/object_meta.go
  type ObjectMetaOpt (line 27) | type ObjectMetaOpt
  function WithName (line 31) | func WithName(val string) func(obj metav1.Object) {
  function WithResourceVersion (line 39) | func WithResourceVersion(val string) func(obj metav1.Object) {
  function WithLabels (line 47) | func WithLabels(vals ...string) func(obj metav1.Object) {
  function WithLabelsMap (line 55) | func WithLabelsMap(labels map[string]string) func(obj metav1.Object) {
  function WithAnnotations (line 73) | func WithAnnotations(vals ...string) func(obj metav1.Object) {
  function WithAnnotationsMap (line 81) | func WithAnnotationsMap(annotations map[string]string) func(obj metav1.O...
  function setMapEntries (line 97) | func setMapEntries(m map[string]string, vals ...string) map[string]string {
  function WithFinalizers (line 122) | func WithFinalizers(vals ...string) func(obj metav1.Object) {
  function WithDeletionTimestamp (line 130) | func WithDeletionTimestamp(val time.Time) func(obj metav1.Object) {
  function WithUID (line 137) | func WithUID(val string) func(obj metav1.Object) {
  function WithGenerateName (line 144) | func WithGenerateName(val string) func(obj metav1.Object) {
  function WithManagedFields (line 151) | func WithManagedFields(val []metav1.ManagedFieldsEntry) func(obj metav1....
  function WithCreationTimestamp (line 158) | func WithCreationTimestamp(t time.Time) func(obj metav1.Object) {
  function WithOwnerReference (line 165) | func WithOwnerReference(val []metav1.OwnerReference) func(obj metav1.Obj...

FILE: pkg/builder/persistent_volume_builder.go
  type PersistentVolumeBuilder (line 25) | type PersistentVolumeBuilder struct
    method Result (line 45) | func (b *PersistentVolumeBuilder) Result() *corev1api.PersistentVolume {
    method ObjectMeta (line 50) | func (b *PersistentVolumeBuilder) ObjectMeta(opts ...ObjectMetaOpt) *P...
    method ReclaimPolicy (line 59) | func (b *PersistentVolumeBuilder) ReclaimPolicy(policy corev1api.Persi...
    method ClaimRef (line 65) | func (b *PersistentVolumeBuilder) ClaimRef(ns, name string) *Persisten...
    method AWSEBSVolumeID (line 74) | func (b *PersistentVolumeBuilder) AWSEBSVolumeID(volumeID string) *Per...
    method CSI (line 83) | func (b *PersistentVolumeBuilder) CSI(driver, volumeHandle string) *Pe...
    method StorageClass (line 93) | func (b *PersistentVolumeBuilder) StorageClass(name string) *Persisten...
    method VolumeMode (line 99) | func (b *PersistentVolumeBuilder) VolumeMode(volMode corev1api.Persist...
    method NodeAffinityRequired (line 105) | func (b *PersistentVolumeBuilder) NodeAffinityRequired(req *corev1api....
    method Phase (line 113) | func (b *PersistentVolumeBuilder) Phase(phase corev1api.PersistentVolu...
  function ForPersistentVolume (line 30) | func ForPersistentVolume(name string) *PersistentVolumeBuilder {

FILE: pkg/builder/persistent_volume_claim_builder.go
  type PersistentVolumeClaimBuilder (line 26) | type PersistentVolumeClaimBuilder struct
    method Result (line 47) | func (b *PersistentVolumeClaimBuilder) Result() *corev1api.PersistentV...
    method ObjectMeta (line 52) | func (b *PersistentVolumeClaimBuilder) ObjectMeta(opts ...ObjectMetaOp...
    method VolumeName (line 61) | func (b *PersistentVolumeClaimBuilder) VolumeName(name string) *Persis...
    method StorageClass (line 67) | func (b *PersistentVolumeClaimBuilder) StorageClass(name string) *Pers...
    method Phase (line 73) | func (b *PersistentVolumeClaimBuilder) Phase(phase corev1api.Persisten...
    method RequestResource (line 79) | func (b *PersistentVolumeClaimBuilder) RequestResource(requests corev1...
    method LimitResource (line 88) | func (b *PersistentVolumeClaimBuilder) LimitResource(limits corev1api....
    method DataSource (line 97) | func (b *PersistentVolumeClaimBuilder) DataSource(dataSource *corev1ap...
    method DataSourceRef (line 103) | func (b *PersistentVolumeClaimBuilder) DataSourceRef(dataSourceRef *co...
    method Selector (line 109) | func (b *PersistentVolumeClaimBuilder) Selector(labelSelector *metav1....
  function ForPersistentVolumeClaim (line 31) | func ForPersistentVolumeClaim(ns, name string) *PersistentVolumeClaimBui...

FILE: pkg/builder/pod_builder.go
  type PodBuilder (line 25) | type PodBuilder struct
    method Result (line 46) | func (b *PodBuilder) Result() *corev1api.Pod {
    method ObjectMeta (line 51) | func (b *PodBuilder) ObjectMeta(opts ...ObjectMetaOpt) *PodBuilder {
    method ServiceAccount (line 60) | func (b *PodBuilder) ServiceAccount(sa string) *PodBuilder {
    method Volumes (line 66) | func (b *PodBuilder) Volumes(volumes ...*corev1api.Volume) *PodBuilder {
    method NodeName (line 74) | func (b *PodBuilder) NodeName(val string) *PodBuilder {
    method Labels (line 79) | func (b *PodBuilder) Labels(labels map[string]string) *PodBuilder {
    method InitContainers (line 84) | func (b *PodBuilder) InitContainers(containers ...*corev1api.Container...
    method InitContainerState (line 91) | func (b *PodBuilder) InitContainerState(state corev1api.ContainerState...
    method Containers (line 96) | func (b *PodBuilder) Containers(containers ...*corev1api.Container) *P...
    method ContainerStatuses (line 103) | func (b *PodBuilder) ContainerStatuses(containerStatuses ...*corev1api...
    method Phase (line 110) | func (b *PodBuilder) Phase(phase corev1api.PodPhase) *PodBuilder {
    method Status (line 115) | func (b *PodBuilder) Status(status corev1api.PodStatus) *PodBuilder {
  function ForPod (line 30) | func ForPod(ns, name string) *PodBuilder {

FILE: pkg/builder/pod_volume_backup_builder.go
  type PodVolumeBackupBuilder (line 26) | type PodVolumeBackupBuilder struct
    method Result (line 47) | func (b *PodVolumeBackupBuilder) Result() *velerov1api.PodVolumeBackup {
    method ObjectMeta (line 52) | func (b *PodVolumeBackupBuilder) ObjectMeta(opts ...ObjectMetaOpt) *Po...
    method Phase (line 60) | func (b *PodVolumeBackupBuilder) Phase(phase velerov1api.PodVolumeBack...
    method Node (line 66) | func (b *PodVolumeBackupBuilder) Node(name string) *PodVolumeBackupBui...
    method BackupStorageLocation (line 72) | func (b *PodVolumeBackupBuilder) BackupStorageLocation(name string) *P...
    method SnapshotID (line 78) | func (b *PodVolumeBackupBuilder) SnapshotID(snapshotID string) *PodVol...
    method StartTimestamp (line 83) | func (b *PodVolumeBackupBuilder) StartTimestamp(startTimestamp *metav1...
    method CompletionTimestamp (line 88) | func (b *PodVolumeBackupBuilder) CompletionTimestamp(completionTimesta...
    method PodName (line 94) | func (b *PodVolumeBackupBuilder) PodName(name string) *PodVolumeBackup...
    method PodNamespace (line 100) | func (b *PodVolumeBackupBuilder) PodNamespace(ns string) *PodVolumeBac...
    method Volume (line 106) | func (b *PodVolumeBackupBuilder) Volume(volume string) *PodVolumeBacku...
    method UploaderType (line 112) | func (b *PodVolumeBackupBuilder) UploaderType(uploaderType string) *Po...
    method Annotations (line 118) | func (b *PodVolumeBackupBuilder) Annotations(annotations map[string]st...
    method Cancel (line 124) | func (b *PodVolumeBackupBuilder) Cancel(cancel bool) *PodVolumeBackupB...
    method AcceptedTimestamp (line 130) | func (b *PodVolumeBackupBuilder) AcceptedTimestamp(acceptedTimestamp *...
    method Finalizers (line 136) | func (b *PodVolumeBackupBuilder) Finalizers(finalizers []string) *PodV...
    method Message (line 142) | func (b *PodVolumeBackupBuilder) Message(msg string) *PodVolumeBackupB...
    method OwnerReference (line 148) | func (b *PodVolumeBackupBuilder) OwnerReference(ref metav1.OwnerRefere...
    method Labels (line 154) | func (b *PodVolumeBackupBuilder) Labels(label map[string]string) *PodV...
  function ForPodVolumeBackup (line 31) | func ForPodVolumeBackup(ns, name string) *PodVolumeBackupBuilder {

FILE: pkg/builder/pod_volume_restore_builder.go
  type PodVolumeRestoreBuilder (line 26) | type PodVolumeRestoreBuilder struct
    method Result (line 47) | func (b *PodVolumeRestoreBuilder) Result() *velerov1api.PodVolumeResto...
    method ObjectMeta (line 52) | func (b *PodVolumeRestoreBuilder) ObjectMeta(opts ...ObjectMetaOpt) *P...
    method Phase (line 60) | func (b *PodVolumeRestoreBuilder) Phase(phase velerov1api.PodVolumeRes...
    method BackupStorageLocation (line 66) | func (b *PodVolumeRestoreBuilder) BackupStorageLocation(name string) *...
    method SnapshotID (line 72) | func (b *PodVolumeRestoreBuilder) SnapshotID(snapshotID string) *PodVo...
    method PodName (line 78) | func (b *PodVolumeRestoreBuilder) PodName(name string) *PodVolumeResto...
    method PodNamespace (line 84) | func (b *PodVolumeRestoreBuilder) PodNamespace(ns string) *PodVolumeRe...
    method Volume (line 90) | func (b *PodVolumeRestoreBuilder) Volume(volume string) *PodVolumeRest...
    method UploaderType (line 96) | func (b *PodVolumeRestoreBuilder) UploaderType(uploaderType string) *P...
    method OwnerReference (line 102) | func (b *PodVolumeRestoreBuilder) OwnerReference(ownerRef []metav1.Own...
    method Cancel (line 108) | func (b *PodVolumeRestoreBuilder) Cancel(cancel bool) *PodVolumeRestor...
    method AcceptedTimestamp (line 114) | func (b *PodVolumeRestoreBuilder) AcceptedTimestamp(acceptedTimestamp ...
    method Finalizers (line 120) | func (b *PodVolumeRestoreBuilder) Finalizers(finalizers []string) *Pod...
    method Message (line 126) | func (b *PodVolumeRestoreBuilder) Message(msg string) *PodVolumeRestor...
    method Node (line 132) | func (b *PodVolumeRestoreBuilder) Node(node string) *PodVolumeRestoreB...
    method Labels (line 138) | func (b *PodVolumeRestoreBuilder) Labels(label map[string]string) *Pod...
  function ForPodVolumeRestore (line 31) | func ForPodVolumeRestore(ns, name string) *PodVolumeRestoreBuilder {

FILE: pkg/builder/priority_class_builder.go
  type PriorityClassBuilder (line 25) | type PriorityClassBuilder struct
    method Value (line 39) | func (p *PriorityClassBuilder) Value(value int) *PriorityClassBuilder {
    method PreemptionPolicy (line 44) | func (p *PriorityClassBuilder) PreemptionPolicy(policy string) *Priori...
    method Result (line 50) | func (p *PriorityClassBuilder) Result() *schedulingv1api.PriorityClass {
  function ForPriorityClass (line 29) | func ForPriorityClass(name string) *PriorityClassBuilder {

FILE: pkg/builder/restore_builder.go
  type RestoreBuilder (line 28) | type RestoreBuilder struct
    method Result (line 49) | func (b *RestoreBuilder) Result() *velerov1api.Restore {
    method ObjectMeta (line 54) | func (b *RestoreBuilder) ObjectMeta(opts ...ObjectMetaOpt) *RestoreBui...
    method Backup (line 63) | func (b *RestoreBuilder) Backup(name string) *RestoreBuilder {
    method Schedule (line 69) | func (b *RestoreBuilder) Schedule(name string) *RestoreBuilder {
    method IncludedNamespaces (line 75) | func (b *RestoreBuilder) IncludedNamespaces(namespaces ...string) *Res...
    method ExcludedNamespaces (line 81) | func (b *RestoreBuilder) ExcludedNamespaces(namespaces ...string) *Res...
    method IncludedResources (line 87) | func (b *RestoreBuilder) IncludedResources(resources ...string) *Resto...
    method ExcludedResources (line 93) | func (b *RestoreBuilder) ExcludedResources(resources ...string) *Resto...
    method ExistingResourcePolicy (line 99) | func (b *RestoreBuilder) ExistingResourcePolicy(policy string) *Restor...
    method IncludeClusterResources (line 105) | func (b *RestoreBuilder) IncludeClusterResources(val bool) *RestoreBui...
    method LabelSelector (line 111) | func (b *RestoreBuilder) LabelSelector(selector *metav1.LabelSelector)...
    method OrLabelSelector (line 117) | func (b *RestoreBuilder) OrLabelSelector(orSelectors []*metav1.LabelSe...
    method NamespaceMappings (line 123) | func (b *RestoreBuilder) NamespaceMappings(mapping ...string) *Restore...
    method Phase (line 140) | func (b *RestoreBuilder) Phase(phase velerov1api.RestorePhase) *Restor...
    method RestorePVs (line 146) | func (b *RestoreBuilder) RestorePVs(val bool) *RestoreBuilder {
    method PreserveNodePorts (line 152) | func (b *RestoreBuilder) PreserveNodePorts(val bool) *RestoreBuilder {
    method StartTimestamp (line 158) | func (b *RestoreBuilder) StartTimestamp(val time.Time) *RestoreBuilder {
    method CompletionTimestamp (line 164) | func (b *RestoreBuilder) CompletionTimestamp(val time.Time) *RestoreBu...
    method ItemOperationTimeout (line 170) | func (b *RestoreBuilder) ItemOperationTimeout(timeout time.Duration) *...
  function ForRestore (line 33) | func ForRestore(ns, name string) *RestoreBuilder {

FILE: pkg/builder/role_builder.go
  type RoleBuilder (line 25) | type RoleBuilder struct
    method Result (line 46) | func (b *RoleBuilder) Result() *rbacv1.Role {
    method ObjectMeta (line 51) | func (b *RoleBuilder) ObjectMeta(opts ...ObjectMetaOpt) *RoleBuilder {
  function ForRole (line 30) | func ForRole(ns, name string) *RoleBuilder {

FILE: pkg/builder/schedule_builder.go
  type ScheduleBuilder (line 28) | type ScheduleBuilder struct
    method Result (line 49) | func (b *ScheduleBuilder) Result() *velerov1api.Schedule {
    method ObjectMeta (line 54) | func (b *ScheduleBuilder) ObjectMeta(opts ...ObjectMetaOpt) *ScheduleB...
    method Phase (line 63) | func (b *ScheduleBuilder) Phase(phase velerov1api.SchedulePhase) *Sche...
    method ValidationError (line 69) | func (b *ScheduleBuilder) ValidationError(err string) *ScheduleBuilder {
    method CronSchedule (line 75) | func (b *ScheduleBuilder) CronSchedule(expression string) *ScheduleBui...
    method LastBackupTime (line 81) | func (b *ScheduleBuilder) LastBackupTime(val string) *ScheduleBuilder {
    method Template (line 88) | func (b *ScheduleBuilder) Template(spec velerov1api.BackupSpec) *Sched...
    method SkipImmediately (line 94) | func (b *ScheduleBuilder) SkipImmediately(skip *bool) *ScheduleBuilder {
  function ForSchedule (line 33) | func ForSchedule(ns, name string) *ScheduleBuilder {

FILE: pkg/builder/secret_builder.go
  type SecretBuilder (line 25) | type SecretBuilder struct
    method Result (line 46) | func (b *SecretBuilder) Result() *corev1api.Secret {
    method ObjectMeta (line 51) | func (b *SecretBuilder) ObjectMeta(opts ...ObjectMetaOpt) *SecretBuild...
    method Data (line 60) | func (b *SecretBuilder) Data(data map[string][]byte) *SecretBuilder {
  function ForSecret (line 30) | func ForSecret(ns, name string) *SecretBuilder {

FILE: pkg/builder/secret_key_selector_builder.go
  type SecretKeySelectorBuilder (line 24) | type SecretKeySelectorBuilder struct
    method Result (line 41) | func (b *SecretKeySelectorBuilder) Result() *corev1api.SecretKeySelect...
  function ForSecretKeySelector (line 29) | func ForSecretKeySelector(name string, key string) *SecretKeySelectorBui...

FILE: pkg/builder/server_status_request_builder.go
  type ServerStatusRequestBuilder (line 28) | type ServerStatusRequestBuilder struct
    method Result (line 50) | func (b *ServerStatusRequestBuilder) Result() *velerov1api.ServerStatu...
    method ObjectMeta (line 55) | func (b *ServerStatusRequestBuilder) ObjectMeta(opts ...ObjectMetaOpt)...
    method Phase (line 64) | func (b *ServerStatusRequestBuilder) Phase(phase velerov1api.ServerSta...
    method ProcessedTimestamp (line 70) | func (b *ServerStatusRequestBuilder) ProcessedTimestamp(time time.Time...
    method ServerVersion (line 76) | func (b *ServerStatusRequestBuilder) ServerVersion(version string) *Se...
    method Plugins (line 82) | func (b *ServerStatusRequestBuilder) Plugins(plugins []velerov1api.Plu...
  function ForServerStatusRequest (line 33) | func ForServerStatusRequest(ns, name, resourceVersion string) *ServerSta...

FILE: pkg/builder/service_account_builder.go
  type ServiceAccountBuilder (line 25) | type ServiceAccountBuilder struct
    method Result (line 46) | func (b *ServiceAccountBuilder) Result() *corev1api.ServiceAccount {
    method ObjectMeta (line 51) | func (b *ServiceAccountBuilder) ObjectMeta(opts ...ObjectMetaOpt) *Ser...
  function ForServiceAccount (line 30) | func ForServiceAccount(ns, name string) *ServiceAccountBuilder {

FILE: pkg/builder/service_builder.go
  type ServiceBuilder (line 25) | type ServiceBuilder struct
    method Result (line 46) | func (s *ServiceBuilder) Result() *corev1api.Service {
    method ObjectMeta (line 51) | func (s *ServiceBuilder) ObjectMeta(opts ...ObjectMetaOpt) *ServiceBui...
  function ForService (line 30) | func ForService(ns, name string) *ServiceBuilder {

FILE: pkg/builder/statefulset_builder.go
  type StatefulSetBuilder (line 26) | type StatefulSetBuilder struct
    method Result (line 50) | func (b *StatefulSetBuilder) Result() *appsv1api.StatefulSet {
    method StorageClass (line 55) | func (b *StatefulSetBuilder) StorageClass(names ...string) *StatefulSe...
  function ForStatefulSet (line 31) | func ForStatefulSet(ns, name string) *StatefulSetBuilder {

FILE: pkg/builder/storage_class_builder.go
  type StorageClassBuilder (line 26) | type StorageClassBuilder struct
    method Result (line 47) | func (b *StorageClassBuilder) Result() *storagev1api.StorageClass {
    method ObjectMeta (line 52) | func (b *StorageClassBuilder) ObjectMeta(opts ...ObjectMetaOpt) *Stora...
    method SliceResult (line 82) | func (b *StorageClassBuilder) SliceResult() []*storagev1api.StorageCla...
    method Provisioner (line 87) | func (b *StorageClassBuilder) Provisioner(provisioner string) *Storage...
    method ReclaimPolicy (line 93) | func (b *StorageClassBuilder) ReclaimPolicy(policy corev1api.Persisten...
  function ForStorageClass (line 32) | func ForStorageClass(name string) *StorageClassBuilder {
  function ForStorageClassSlice (line 61) | func ForStorageClassSlice(names ...string) *StorageClassBuilder {

FILE: pkg/builder/testcr_builder.go
  type TestCRBuilder (line 26) | type TestCRBuilder struct
    method Result (line 47) | func (b *TestCRBuilder) Result() *TestCR {
    method ObjectMeta (line 52) | func (b *TestCRBuilder) ObjectMeta(opts ...ObjectMetaOpt) *TestCRBuild...
  function ForTestCR (line 31) | func ForTestCR(crdKind, ns, name string) *TestCRBuilder {
  type TestCR (line 60) | type TestCR struct
  type TestCRSpec (line 73) | type TestCRSpec struct
  type TestCRStatus (line 76) | type TestCRStatus struct

FILE: pkg/builder/v1_customresourcedefinition_builder.go
  type V1CustomResourceDefinitionBuilder (line 25) | type V1CustomResourceDefinitionBuilder struct
    method Condition (line 45) | func (b *V1CustomResourceDefinitionBuilder) Condition(cond apiextv1.Cu...
    method Version (line 51) | func (b *V1CustomResourceDefinitionBuilder) Version(ver apiextv1.Custo...
    method PreserveUnknownFields (line 57) | func (b *V1CustomResourceDefinitionBuilder) PreserveUnknownFields(pres...
    method Result (line 63) | func (b *V1CustomResourceDefinitionBuilder) Result() *apiextv1.CustomR...
    method ObjectMeta (line 68) | func (b *V1CustomResourceDefinitionBuilder) ObjectMeta(opts ...ObjectM...
  function ForV1CustomResourceDefinition (line 30) | func ForV1CustomResourceDefinition(name string) *V1CustomResourceDefinit...
  type V1CustomResourceDefinitionConditionBuilder (line 77) | type V1CustomResourceDefinitionConditionBuilder struct
    method Type (line 89) | func (c *V1CustomResourceDefinitionConditionBuilder) Type(t apiextv1.C...
    method Status (line 95) | func (c *V1CustomResourceDefinitionConditionBuilder) Status(cs apiextv...
    method Result (line 101) | func (c *V1CustomResourceDefinitionConditionBuilder) Result() apiextv1...
  function ForV1CustomResourceDefinitionCondition (line 82) | func ForV1CustomResourceDefinitionCondition() *V1CustomResourceDefinitio...
  type V1CustomResourceDefinitionVersionBuilder (line 106) | type V1CustomResourceDefinitionVersionBuilder struct
    method Served (line 118) | func (c *V1CustomResourceDefinitionVersionBuilder) Served(s bool) *V1C...
    method Storage (line 124) | func (c *V1CustomResourceDefinitionVersionBuilder) Storage(s bool) *V1...
    method Schema (line 129) | func (c *V1CustomResourceDefinitionVersionBuilder) Schema(s *apiextv1....
    method Result (line 138) | func (c *V1CustomResourceDefinitionVersionBuilder) Result() apiextv1.C...
  function ForV1CustomResourceDefinitionVersion (line 111) | func ForV1CustomResourceDefinitionVersion(name string) *V1CustomResource...

FILE: pkg/builder/volume_builder.go
  type VolumeBuilder (line 24) | type VolumeBuilder struct
    method Result (line 38) | func (b *VolumeBuilder) Result() *corev1api.Volume {
    method PersistentVolumeClaimSource (line 43) | func (b *VolumeBuilder) PersistentVolumeClaimSource(claimName string) ...
    method CSISource (line 51) | func (b *VolumeBuilder) CSISource(driver string) *VolumeBuilder {
  function ForVolume (line 29) | func ForVolume(name string) *VolumeBuilder {

FILE: pkg/builder/volume_mount_builder.go
  type VolumeMountBuilder (line 24) | type VolumeMountBuilder struct
    method Result (line 39) | func (b *VolumeMountBuilder) Result() *corev1api.VolumeMount {
  function ForVolumeMount (line 29) | func ForVolumeMount(name, mountPath string) *VolumeMountBuilder {

FILE: pkg/builder/volume_snapshot_builder.go
  type VolumeSnapshotBuilder (line 26) | type VolumeSnapshotBuilder struct
    method ObjectMeta (line 47) | func (v *VolumeSnapshotBuilder) ObjectMeta(opts ...ObjectMetaOpt) *Vol...
    method Result (line 56) | func (v *VolumeSnapshotBuilder) Result() *snapshotv1api.VolumeSnapshot {
    method Status (line 61) | func (v *VolumeSnapshotBuilder) Status() *VolumeSnapshotBuilder {
    method BoundVolumeSnapshotContentName (line 67) | func (v *VolumeSnapshotBuilder) BoundVolumeSnapshotContentName(vscName...
    method SourcePVC (line 73) | func (v *VolumeSnapshotBuilder) SourcePVC(name string) *VolumeSnapshot...
    method SourceVolumeSnapshotContentName (line 79) | func (v *VolumeSnapshotBuilder) SourceVolumeSnapshotContentName(name s...
    method RestoreSize (line 85) | func (v *VolumeSnapshotBuilder) RestoreSize(size string) *VolumeSnapsh...
    method VolumeSnapshotClass (line 92) | func (v *VolumeSnapshotBuilder) VolumeSnapshotClass(name string) *Volu...
    method StatusError (line 98) | func (v *VolumeSnapshotBuilder) StatusError(snapshotError snapshotv1ap...
    method ReadyToUse (line 104) | func (v *VolumeSnapshotBuilder) ReadyToUse(readyToUse bool) *VolumeSna...
  function ForVolumeSnapshot (line 31) | func ForVolumeSnapshot(ns, name string) *VolumeSnapshotBuilder {

FILE: pkg/builder/volume_snapshot_class_builder.go
  type VolumeSnapshotClassBuilder (line 25) | type VolumeSnapshotClassBuilder struct
    method Result (line 45) | func (b *VolumeSnapshotClassBuilder) Result() *snapshotv1api.VolumeSna...
    method Driver (line 50) | func (b *VolumeSnapshotClassBuilder) Driver(driver string) *VolumeSnap...
    method ObjectMeta (line 56) | func (b *VolumeSnapshotClassBuilder) ObjectMeta(opts ...ObjectMetaOpt)...
  function ForVolumeSnapshotClass (line 30) | func ForVolumeSnapshotClass(name string) *VolumeSnapshotClassBuilder {

FILE: pkg/builder/volume_snapshot_content_builder.go
  type VolumeSnapshotContentBuilder (line 27) | type VolumeSnapshotContentBuilder struct
    method Result (line 47) | func (v *VolumeSnapshotContentBuilder) Result() *snapshotv1api.VolumeS...
    method Status (line 52) | func (v *VolumeSnapshotContentBuilder) Status(status *snapshotv1api.Vo...
    method DeletionPolicy (line 58) | func (v *VolumeSnapshotContentBuilder) DeletionPolicy(policy snapshotv...
    method VolumeSnapshotRef (line 64) | func (v *VolumeSnapshotContentBuilder) VolumeSnapshotRef(namespace, na...
    method VolumeSnapshotClassName (line 76) | func (v *VolumeSnapshotContentBuilder) VolumeSnapshotClassName(name st...
    method ObjectMeta (line 82) | func (v *VolumeSnapshotContentBuilder) ObjectMeta(opts ...ObjectMetaOp...
    method Driver (line 90) | func (v *VolumeSnapshotContentBuilder) Driver(driver string) *VolumeSn...
    method Source (line 95) | func (v *VolumeSnapshotContentBuilder) Source(source snapshotv1api.Vol...
  function ForVolumeSnapshotContent (line 32) | func ForVolumeSnapshotContent(name string) *VolumeSnapshotContentBuilder {

FILE: pkg/builder/volume_snapshot_location_builder.go
  type VolumeSnapshotLocationBuilder (line 28) | type VolumeSnapshotLocationBuilder struct
    method Result (line 49) | func (b *VolumeSnapshotLocationBuilder) Result() *velerov1api.VolumeSn...
    method ObjectMeta (line 54) | func (b *VolumeSnapshotLocationBuilder) ObjectMeta(opts ...ObjectMetaO...
    method Provider (line 63) | func (b *VolumeSnapshotLocationBuilder) Provider(name string) *VolumeS...
    method Credential (line 69) | func (b *VolumeSnapshotLocationBuilder) Credential(selector *corev1api...
  function ForVolumeSnapshotLocation (line 33) | func ForVolumeSnapshotLocation(ns, name string) *VolumeSnapshotLocationB...

FILE: pkg/buildinfo/buildinfo.go
  function FormattedGitSHA (line 41) | func FormattedGitSHA() string {

FILE: pkg/buildinfo/buildinfo_test.go
  function TestFormattedGitSHA (line 24) | func TestFormattedGitSHA(t *testing.T) {

FILE: pkg/client/client.go
  function Config (line 32) | func Config(kubeconfig, kubecontext, baseName string, qps float32, burst...
  function buildUserAgent (line 62) | func buildUserAgent(command, version, formattedSha, os, arch string) str...

FILE: pkg/client/client_test.go
  function TestBuildUserAgent (line 25) | func TestBuildUserAgent(t *testing.T) {
  function TestConfig (line 54) | func TestConfig(t *testing.T) {

FILE: pkg/client/config.go
  constant ConfigKeyNamespace (line 30) | ConfigKeyNamespace = "namespace"
  constant ConfigKeyFeatures (line 31) | ConfigKeyFeatures  = "features"
  constant ConfigKeyCACert (line 32) | ConfigKeyCACert    = "cacert"
  constant ConfigKeyColorized (line 33) | ConfigKeyColorized = "colorized"
  type VeleroConfig (line 38) | type VeleroConfig
    method Namespace (line 88) | func (c VeleroConfig) Namespace() string {
    method Features (line 102) | func (c VeleroConfig) Features() []string {
    method Colorized (line 116) | func (c VeleroConfig) Colorized() bool {
    method CACertFile (line 135) | func (c VeleroConfig) CACertFile() string {
  function LoadConfig (line 42) | func LoadConfig() (VeleroConfig, error) {
  function SaveConfig (line 70) | func SaveConfig(config VeleroConfig) error {
  function configFileName (line 148) | func configFileName() string {

FILE: pkg/client/config_test.go
  function TestVeleroConfig (line 29) | func TestVeleroConfig(t *testing.T) {
  function removeConfigfileName (line 40) | func removeConfigfileName() error {
  function TestConfigOperations (line 51) | func TestConfigOperations(t *testing.T) {

FILE: pkg/client/dynamic.go
  type DynamicFactory (line 34) | type DynamicFactory interface
  type dynamicFactory (line 43) | type dynamicFactory struct
    method ClientForGroupVersionResource (line 52) | func (f *dynamicFactory) ClientForGroupVersionResource(gv schema.Group...
    method DynamicSharedInformerFactory (line 58) | func (f *dynamicFactory) DynamicSharedInformerFactory() dynamicinforme...
  function NewDynamicFactory (line 48) | func NewDynamicFactory(dynamicClient dynamic.Interface) DynamicFactory {
  type Creator (line 63) | type Creator interface
  type Lister (line 69) | type Lister interface
  type Watcher (line 75) | type Watcher interface
  type Getter (line 81) | type Getter interface
  type Patcher (line 87) | type Patcher interface
  type Deletor (line 94) | type Deletor interface
  type StatusUpdater (line 101) | type StatusUpdater interface
  type Applier (line 106) | type Applier interface
  type Dynamic (line 111) | type Dynamic interface
  type dynamicResourceClient (line 123) | type dynamicResourceClient struct
    method Create (line 129) | func (d *dynamicResourceClient) Create(obj *unstructured.Unstructured)...
    method List (line 133) | func (d *dynamicResourceClient) List(options metav1.ListOptions) (*uns...
    method Watch (line 137) | func (d *dynamicResourceClient) Watch(options metav1.ListOptions) (wat...
    method Get (line 141) | func (d *dynamicResourceClient) Get(name string, opts metav1.GetOption...
    method Apply (line 145) | func (d *dynamicResourceClient) Apply(name string, obj *unstructured.U...
    method Patch (line 149) | func (d *dynamicResourceClient) Patch(name string, data []byte) (*unst...
    method Delete (line 153) | func (d *dynamicResourceClient) Delete(name string, opts metav1.Delete...
    method UpdateStatus (line 157) | func (d *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstruc...

FILE: pkg/client/factory.go
  type Factory (line 45) | type Factory interface
  type factory (line 79) | type factory struct
    method BindFlags (line 113) | func (f *factory) BindFlags(flags *pflag.FlagSet) {
    method ClientConfig (line 117) | func (f *factory) ClientConfig() (*rest.Config, error) {
    method KubeClient (line 121) | func (f *factory) KubeClient() (kubernetes.Interface, error) {
    method DynamicClient (line 134) | func (f *factory) DynamicClient() (dynamic.Interface, error) {
    method KubebuilderClient (line 146) | func (f *factory) KubebuilderClient() (kbclient.Client, error) {
    method KubebuilderWatchClient (line 185) | func (f *factory) KubebuilderWatchClient() (kbclient.WithWatch, error) {
    method DiscoveryClient (line 224) | func (f *factory) DiscoveryClient() (discovery.AggregatedDiscoveryInte...
    method SetBasename (line 232) | func (f *factory) SetBasename(name string) {
    method SetClientQPS (line 236) | func (f *factory) SetClientQPS(qps float32) {
    method SetClientBurst (line 240) | func (f *factory) SetClientBurst(burst int) {
    method Namespace (line 244) | func (f *factory) Namespace() string {
  function NewFactory (line 90) | func NewFactory(baseName string, config VeleroConfig) Factory {

FILE: pkg/client/factory_test.go
  function TestFactory (line 32) | func TestFactory(t *testing.T) {

FILE: pkg/client/mocks/Factory.go
  type Factory (line 21) | type Factory struct
    method BindFlags (line 26) | func (_m *Factory) BindFlags(flags *pflag.FlagSet) {
    method ClientConfig (line 31) | func (_m *Factory) ClientConfig() (*rest.Config, error) {
    method DiscoveryClient (line 57) | func (_m *Factory) DiscoveryClient() (discovery.AggregatedDiscoveryInt...
    method DynamicClient (line 83) | func (_m *Factory) DynamicClient() (dynamic.Interface, error) {
    method KubeClient (line 109) | func (_m *Factory) KubeClient() (kubernetes.Interface, error) {
    method KubebuilderClient (line 135) | func (_m *Factory) KubebuilderClient() (pkgclient.Client, error) {
    method KubebuilderWatchClient (line 161) | func (_m *Factory) KubebuilderWatchClient() (pkgclient.WithWatch, erro...
    method Namespace (line 187) | func (_m *Factory) Namespace() string {
    method SetBasename (line 201) | func (_m *Factory) SetBasename(_a0 string) {
    method SetClientBurst (line 206) | func (_m *Factory) SetClientBurst(_a0 int) {
    method SetClientQPS (line 211) | func (_m *Factory) SetClientQPS(_a0 float32) {
  type mockConstructorTestingTNewFactory (line 215) | type mockConstructorTestingTNewFactory interface
  function NewFactory (line 221) | func NewFactory(t mockConstructorTestingTNewFactory) *Factory {

FILE: pkg/client/retry.go
  function CreateRetryGenerateName (line 30) | func CreateRetryGenerateName(client kbclient.Client, ctx context.Context...
  function CapBackoff (line 44) | func CapBackoff(cap time.Duration) wait.Backoff {
  function RetryOnRetriableMaxBackOff (line 58) | func RetryOnRetriableMaxBackOff(maxDuration time.Duration, fn func() err...
  function RetryOnErrorMaxBackOff (line 63) | func RetryOnErrorMaxBackOff(maxDuration time.Duration, fn func() error) ...

FILE: pkg/cmd/cli/backup/backup.go
  function NewCommand (line 25) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/backup/backup_test.go
  function TestNewBackupCommand (line 27) | func TestNewBackupCommand(t *testing.T) {

FILE: pkg/cmd/cli/backup/create.go
  function NewCreateCommand (line 41) | func NewCreateCommand(f client.Factory, use string) *cobra.Command {
  type CreateOptions (line 81) | type CreateOptions struct
    method BindFlags (line 123) | func (o *CreateOptions) BindFlags(flags *pflag.FlagSet) {
    method BindWait (line 163) | func (o *CreateOptions) BindWait(flags *pflag.FlagSet) {
    method BindFromSchedule (line 169) | func (o *CreateOptions) BindFromSchedule(flags *pflag.FlagSet) {
    method Validate (line 173) | func (o *CreateOptions) Validate(c *cobra.Command, args []string, f cl...
    method validateFromScheduleFlag (line 223) | func (o *CreateOptions) validateFromScheduleFlag(c *cobra.Command) err...
    method Complete (line 234) | func (o *CreateOptions) Complete(args []string, f client.Factory) error {
    method Run (line 247) | func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error {
    method BuildBackup (line 365) | func (o *CreateOptions) BuildBackup(namespace string) (*velerov1api.Ba...
    method oldAndNewFilterParametersUsedTogether (line 429) | func (o *CreateOptions) oldAndNewFilterParametersUsedTogether() bool {
  function NewCreateOptions (line 113) | func NewCreateOptions() *CreateOptions {
  function ParseOrderedResources (line 347) | func ParseOrderedResources(orderMapStr string) (map[string]string, error) {

FILE: pkg/cmd/cli/backup/create_test.go
  function TestCreateOptions_BuildBackup (line 44) | func TestCreateOptions_BuildBackup(t *testing.T) {
  function TestCreateOptions_ValidateFromScheduleFlag (line 89) | func TestCreateOptions_ValidateFromScheduleFlag(t *testing.T) {
  function TestCreateOptions_BuildBackupFromSchedule (line 125) | func TestCreateOptions_BuildBackupFromSchedule(t *testing.T) {
  function TestCreateOptions_OrderedResources (line 176) | func TestCreateOptions_OrderedResources(t *testing.T) {
  function TestCreateCommand (line 199) | func TestCreateCommand(t *testing.T) {

FILE: pkg/cmd/cli/backup/delete.go
  function NewDeleteCommand (line 40) | func NewDeleteCommand(f client.Factory, use string) *cobra.Command {
  function Run (line 73) | func Run(o *cli.DeleteOptions) error {

FILE: pkg/cmd/cli/backup/delete_test.go
  function TestDeleteCommand (line 37) | func TestDeleteCommand(t *testing.T) {

FILE: pkg/cmd/cli/backup/describe.go
  function NewDescribeCommand (line 36) | func NewDescribeCommand(f client.Factory, use string) *cobra.Command {

FILE: pkg/cmd/cli/backup/describe_test.go
  function TestNewDescribeCommand (line 38) | func TestNewDescribeCommand(t *testing.T) {

FILE: pkg/cmd/cli/backup/download.go
  function NewDownloadCommand (line 38) | func NewDownloadCommand(f client.Factory) *cobra.Command {
  type DownloadOptions (line 63) | type DownloadOptions struct
    method BindFlags (line 79) | func (o *DownloadOptions) BindFlags(flags *pflag.FlagSet) {
    method Validate (line 87) | func (o *DownloadOptions) Validate(c *cobra.Command, args []string, f ...
    method Complete (line 99) | func (o *DownloadOptions) Complete(args []string) error {
    method Run (line 118) | func (o *DownloadOptions) Run(c *cobra.Command, f client.Factory) error {
  function NewDownloadOptions (line 73) | func NewDownloadOptions() *DownloadOptions {

FILE: pkg/cmd/cli/backup/download_test.go
  function TestNewDownloadCommand (line 37) | func TestNewDownloadCommand(t *testing.T) {

FILE: pkg/cmd/cli/backup/get.go
  function NewGetCommand (line 33) | func NewGetCommand(f client.Factory, use string) *cobra.Command {

FILE: pkg/cmd/cli/backup/get_test.go
  function TestNewGetCommand (line 37) | func TestNewGetCommand(t *testing.T) {

FILE: pkg/cmd/cli/backup/logs.go
  type LogsOptions (line 37) | type LogsOptions struct
    method BindFlags (line 58) | func (l *LogsOptions) BindFlags(flags *pflag.FlagSet) {
    method Run (line 64) | func (l *LogsOptions) Run(c *cobra.Command, f client.Factory) error {
    method Complete (line 93) | func (l *LogsOptions) Complete(args []string, f client.Factory) error {
  function NewLogsOptions (line 45) | func NewLogsOptions() LogsOptions {
  function NewLogsCommand (line 106) | func NewLogsCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/backup/logs_test.go
  function TestNewLogsCommand (line 44) | func TestNewLogsCommand(t *testing.T) {
  function TestBSLCACertBehavior (line 277) | func TestBSLCACertBehavior(t *testing.T) {

FILE: pkg/cmd/cli/backuplocation/backup_location.go
  function NewCommand (line 25) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/backuplocation/backup_location_test.go
  function TestNewCommand (line 27) | func TestNewCommand(t *testing.T) {

FILE: pkg/cmd/cli/backuplocation/create.go
  function NewCreateCommand (line 43) | func NewCreateCommand(f client.Factory, use string) *cobra.Command {
  type CreateOptions (line 64) | type CreateOptions struct
    method BindFlags (line 91) | func (o *CreateOptions) BindFlags(flags *pflag.FlagSet) {
    method Validate (line 109) | func (o *CreateOptions) Validate(c *cobra.Command, args []string, f cl...
    method Complete (line 133) | func (o *CreateOptions) Complete(args []string, f client.Factory) error {
    method BuildBackupStorageLocation (line 138) | func (o *CreateOptions) BuildBackupStorageLocation(namespace string, s...
    method Run (line 188) | func (o *CreateOptions) Run(c *cobra.Command, f client.Factory) error {
  function NewCreateOptions (line 78) | func NewCreateOptions() *CreateOptions {

FILE: pkg/cmd/cli/backuplocation/create_test.go
  function TestBuildBackupStorageLocationSetsNamespace (line 38) | func TestBuildBackupStorageLocationSetsNamespace(t *testing.T) {
  function TestBuildBackupStorageLocationSetsSyncPeriod (line 46) | func TestBuildBackupStorageLocationSetsSyncPeriod(t *testing.T) {
  function TestBuildBackupStorageLocationSetsValidationFrequency (line 59) | func TestBuildBackupStorageLocationSetsValidationFrequency(t *testing.T) {
  function TestBuildBackupStorageLocationSetsCredential (line 72) | func TestBuildBackupStorageLocationSetsCredential(t *testing.T) {
  function TestBuildBackupStorageLocationSetsLabels (line 90) | func TestBuildBackupStorageLocationSetsLabels(t *testing.T) {
  function TestCreateCommand_Run (line 101) | func TestCreateCommand_Run(t *testing.T) {

FILE: pkg/cmd/cli/backuplocation/delete.go
  function NewDeleteCommand (line 38) | func NewDeleteCommand(f client.Factory, use string) *cobra.Command {
  function Run (line 70) | func Run(f client.Factory, o *cli.DeleteOptions) error {
  function findAssociatedBackups (line 144) | func findAssociatedBackups(client kbclient.Client, bslName, ns string) (...
  function findAssociatedBackupRepos (line 153) | func findAssociatedBackupRepos(client kbclient.Client, bslName, ns strin...
  function deleteBackups (line 162) | func deleteBackups(client kbclient.Client, backups velerov1api.BackupLis...
  function deleteBackupRepos (line 174) | func deleteBackupRepos(client kbclient.Client, repos velerov1api.BackupR...

FILE: pkg/cmd/cli/backuplocation/delete_test.go
  function TestNewDeleteCommand (line 38) | func TestNewDeleteCommand(t *testing.T) {
  function TestDeleteFunctions (line 79) | func TestDeleteFunctions(t *testing.T) {

FILE: pkg/cmd/cli/backuplocation/get.go
  function NewGetCommand (line 33) | func NewGetCommand(f client.Factory, use string) *cobra.Command {

FILE: pkg/cmd/cli/backuplocation/get_test.go
  function TestNewGetCommand (line 34) | func TestNewGetCommand(t *testing.T) {

FILE: pkg/cmd/cli/backuplocation/set.go
  function NewSetCommand (line 40) | func NewSetCommand(f client.Factory, use string) *cobra.Command {
  type SetOptions (line 59) | type SetOptions struct
    method BindFlags (line 72) | func (o *SetOptions) BindFlags(flags *pflag.FlagSet) {
    method Validate (line 79) | func (o *SetOptions) Validate(c *cobra.Command, args []string, f clien...
    method Complete (line 87) | func (o *SetOptions) Complete(args []string, f client.Factory) error {
    method Run (line 92) | func (o *SetOptions) Run(c *cobra.Command, f client.Factory) error {
  function NewSetOptions (line 66) | func NewSetOptions() *SetOptions {

FILE: pkg/cmd/cli/backuplocation/set_test.go
  function TestNewSetCommand (line 39) | func TestNewSetCommand(t *testing.T) {
  function TestSetCommand_Execute (line 84) | func TestSetCommand_Execute(t *testing.T) {

FILE: pkg/cmd/cli/bug/bug.go
  constant kubectlTimeout (line 42) | kubectlTimeout = 5 * time.Second
  constant issueURL (line 43) | issueURL       = "https://github.com/vmware-tanzu/velero/issues/new"
  constant IssueTemplate (line 47) | IssueTemplate = `---
  function NewCommand (line 106) | func NewCommand() *cobra.Command {
  type VeleroBugInfo (line 126) | type VeleroBugInfo struct
  function cmdExistsOnPath (line 136) | func cmdExistsOnPath(name string) bool {
  function getKubectlVersion (line 146) | func getKubectlVersion() (string, error) {
  function newBugInfo (line 181) | func newBugInfo(kubectlVersion string) *VeleroBugInfo {
  function renderToString (line 194) | func renderToString(bugInfo *VeleroBugInfo) (string, error) {
  function showIssueInBrowser (line 209) | func showIssueInBrowser(body string) error {

FILE: pkg/cmd/cli/client/client.go
  function NewCommand (line 25) | func NewCommand() *cobra.Command {

FILE: pkg/cmd/cli/client/config/config.go
  function NewCommand (line 23) | func NewCommand() *cobra.Command {

FILE: pkg/cmd/cli/client/config/get.go
  function NewGetCommand (line 29) | func NewGetCommand() *cobra.Command {

FILE: pkg/cmd/cli/client/config/set.go
  function NewSetCommand (line 30) | func NewSetCommand() *cobra.Command {

FILE: pkg/cmd/cli/completion/completion.go
  function NewCommand (line 26) | func NewCommand() *cobra.Command {

FILE: pkg/cmd/cli/create/create.go
  function NewCommand (line 30) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/datamover/backup.go
  type dataMoverBackupConfig (line 54) | type dataMoverBackupConfig struct
  function NewBackupCommand (line 61) | func NewBackupCommand(f client.Factory) *cobra.Command {
  type dataMoverBackup (line 104) | type dataMoverBackup struct
    method run (line 216) | func (s *dataMoverBackup) run() {
    method runDataPath (line 227) | func (s *dataMoverBackup) runDataPath() {
    method createDataPathService (line 271) | func (s *dataMoverBackup) createDataPathService() (dataPathService, er...
  function newdataMoverBackup (line 117) | func newdataMoverBackup(logger logrus.FieldLogger, factory client.Factor...

FILE: pkg/cmd/cli/datamover/backup_test.go
  function fakeCreateDataPathServiceWithErr (line 33) | func fakeCreateDataPathServiceWithErr(_ *dataMoverBackup) (dataPathServi...
  function fakeCreateDataPathService (line 39) | func fakeCreateDataPathService(_ *dataMoverBackup) (dataPathService, err...
  type fakeRunHelper (line 43) | type fakeRunHelper struct
    method Init (line 51) | func (fr *fakeRunHelper) Init() error {
    method RunCancelableDataPath (line 55) | func (fr *fakeRunHelper) RunCancelableDataPath(_ context.Context) (str...
    method Shutdown (line 63) | func (fr *fakeRunHelper) Shutdown() {
    method ExitWithMessage (line 67) | func (fr *fakeRunHelper) ExitWithMessage(logger logrus.FieldLogger, su...
  function TestRunDataPath (line 72) | func TestRunDataPath(t *testing.T) {
  type fakeCreateDataPathServiceHelper (line 142) | type fakeCreateDataPathServiceHelper struct
    method NewNamespacedFileStore (line 147) | func (fc *fakeCreateDataPathServiceHelper) NewNamespacedFileStore(_ ct...
    method NewNamespacedSecretStore (line 151) | func (fc *fakeCreateDataPathServiceHelper) NewNamespacedSecretStore(_ ...
  function TestCreateDataPathService (line 155) | func TestCreateDataPathService(t *testing.T) {

FILE: pkg/cmd/cli/datamover/data_mover.go
  function NewCommand (line 24) | func NewCommand(f client.Factory) *cobra.Command {
  type dataPathService (line 40) | type dataPathService interface

FILE: pkg/cmd/cli/datamover/mocks/Cache.go
  type Cache (line 19) | type Cache struct
    method Get (line 24) | func (_m *Cache) Get(ctx context.Context, key types.NamespacedName, ob...
    method GetInformer (line 49) | func (_m *Cache) GetInformer(ctx context.Context, obj client.Object, o...
    method GetInformerForKind (line 86) | func (_m *Cache) GetInformerForKind(ctx context.Context, gvk schema.Gr...
    method IndexField (line 123) | func (_m *Cache) IndexField(ctx context.Context, obj client.Object, fi...
    method List (line 141) | func (_m *Cache) List(ctx context.Context, list client.ObjectList, opt...
    method RemoveInformer (line 166) | func (_m *Cache) RemoveInformer(ctx context.Context, obj client.Object...
    method Start (line 184) | func (_m *Cache) Start(ctx context.Context) error {
    method WaitForCacheSync (line 202) | func (_m *Cache) WaitForCacheSync(ctx context.Context) bool {
  function NewCache (line 221) | func NewCache(t interface {

FILE: pkg/cmd/cli/datamover/restore.go
  type dataMoverRestoreConfig (line 52) | type dataMoverRestoreConfig struct
  function NewRestoreCommand (line 60) | func NewRestoreCommand(f client.Factory) *cobra.Command {
  type dataMoverRestore (line 104) | type dataMoverRestore struct
    method run (line 215) | func (s *dataMoverRestore) run() {
    method runDataPath (line 226) | func (s *dataMoverRestore) runDataPath() {
    method createDataPathService (line 265) | func (s *dataMoverRestore) createDataPathService() (dataPathService, e...
  function newdataMoverRestore (line 117) | func newdataMoverRestore(logger logrus.FieldLogger, factory client.Facto...

FILE: pkg/cmd/cli/datamover/restore_test.go
  function fakeCreateDataPathRestoreWithErr (line 27) | func fakeCreateDataPathRestoreWithErr(_ *dataMoverRestore) (dataPathServ...
  function fakeCreateDataPathRestore (line 31) | func fakeCreateDataPathRestore(_ *dataMoverRestore) (dataPathService, er...
  function TestRunDataPathRestore (line 35) | func TestRunDataPathRestore(t *testing.T) {
  function TestCreateDataPathRestore (line 105) | func TestCreateDataPathRestore(t *testing.T) {

FILE: pkg/cmd/cli/debug/debug.go
  type option (line 46) | type option struct
    method bindFlags (line 67) | func (o *option) bindFlags(flags *pflag.FlagSet) {
    method asCrashdArgMap (line 74) | func (o *option) asCrashdArgMap() exec.ArgMap {
    method complete (line 87) | func (o *option) complete(f client.Factory, fs *pflag.FlagSet) error {
    method validate (line 115) | func (o *option) validate(f client.Factory) error {
  function NewCommand (line 149) | func NewCommand(f client.Factory) *cobra.Command {
  function runCrashd (line 177) | func runCrashd(o *option) error {
  function kubeconfigAndContext (line 197) | func kubeconfigAndContext(fs *pflag.FlagSet) (string, string) {

FILE: pkg/cmd/cli/delete/delete.go
  function NewCommand (line 29) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/delete_options.go
  type DeleteOptions (line 31) | type DeleteOptions struct
    method Complete (line 46) | func (o *DeleteOptions) Complete(f client.Factory, args []string) error {
    method Validate (line 57) | func (o *DeleteOptions) Validate(c *cobra.Command, f client.Factory, a...
    method BindFlags (line 66) | func (o *DeleteOptions) BindFlags(flags *pflag.FlagSet) {
  function NewDeleteOptions (line 38) | func NewDeleteOptions(singularTypeName string) *DeleteOptions {
  function xor (line 73) | func xor(val bool, vals ...bool) bool {

FILE: pkg/cmd/cli/describe/describe.go
  function NewCommand (line 28) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/get/get.go
  function NewCommand (line 31) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/install/install.go
  type Options (line 44) | type Options struct
    method BindFlags (line 101) | func (o *Options) BindFlags(flags *pflag.FlagSet) {
    method AsVeleroOptions (line 255) | func (o *Options) AsVeleroOptions() (*install.VeleroOptions, error) {
    method Run (line 398) | func (o *Options) Run(c *cobra.Command, f client.Factory) error {
    method Complete (line 469) | func (o *Options) Complete(args []string, f client.Factory) error {
    method Validate (line 475) | func (o *Options) Validate(c *cobra.Command, args []string, f client.F...
  function NewInstallOptions (line 223) | func NewInstallOptions() *Options {
  function NewCommand (line 344) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/install/install_test.go
  function TestPriorityClassNameFlag (line 27) | func TestPriorityClassNameFlag(t *testing.T) {

FILE: pkg/cmd/cli/nodeagent/node_agent.go
  function NewCommand (line 25) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/nodeagent/server.go
  constant defaultMetricsAddress (line 76) | defaultMetricsAddress = ":8085"
  constant defaultResourceTimeout (line 78) | defaultResourceTimeout         = 10 * time.Minute
  constant defaultDataMoverPrepareTimeout (line 79) | defaultDataMoverPrepareTimeout = 30 * time.Minute
  constant defaultDataPathConcurrentNum (line 80) | defaultDataPathConcurrentNum   = 1
  type nodeAgentServerConfig (line 83) | type nodeAgentServerConfig struct
  function NewServerCommand (line 91) | func NewServerCommand(f client.Factory) *cobra.Command {
  type nodeAgentServer (line 131) | type nodeAgentServer struct
    method run (line 273) | func (s *nodeAgentServer) run() {
    method waitCacheForResume (line 523) | func (s *nodeAgentServer) waitCacheForResume() error {
    method validatePodVolumesHostPath (line 558) | func (s *nodeAgentServer) validatePodVolumesHostPath(client kubernetes...
    method markLegacyPVRsFailed (line 607) | func (s *nodeAgentServer) markLegacyPVRsFailed(client ctrlclient.Clien...
    method getDataPathConfigs (line 650) | func (s *nodeAgentServer) getDataPathConfigs() error {
    method getBackupRepoConfigs (line 665) | func (s *nodeAgentServer) getBackupRepoConfigs() error {
    method getDataPathConcurrentNum (line 684) | func (s *nodeAgentServer) getDataPathConcurrentNum(defaultNum int) int {
    method validateCachePVCConfig (line 740) | func (s *nodeAgentServer) validateCachePVCConfig(config velerotypes.Ca...
  function newNodeAgentServer (line 151) | func newNodeAgentServer(logger logrus.FieldLogger, factory client.Factor...

FILE: pkg/cmd/cli/nodeagent/server_test.go
  function Test_validatePodVolumesHostPath (line 42) | func Test_validatePodVolumesHostPath(t *testing.T) {
  function Test_getDataPathConfigs (line 136) | func Test_getDataPathConfigs(t *testing.T) {
  function Test_getDataPathConcurrentNum (line 202) | func Test_getDataPathConcurrentNum(t *testing.T) {
  function TestGetBackupRepoConfigs (line 420) | func TestGetBackupRepoConfigs(t *testing.T) {
  function TestValidateCachePVCConfig (line 477) | func TestValidateCachePVCConfig(t *testing.T) {

FILE: pkg/cmd/cli/plugin/add.go
  constant pluginsVolumeName (line 40) | pluginsVolumeName = "plugins"
  constant veleroContainer (line 41) | veleroContainer   = "velero"
  function NewAddCommand (line 44) | func NewAddCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/plugin/get.go
  function NewGetCommand (line 33) | func NewGetCommand(f client.Factory, use string) *cobra.Command {

FILE: pkg/cmd/cli/plugin/helpers.go
  function veleroDeployment (line 33) | func veleroDeployment(ctx context.Context, kubeClient kubernetes.Interfa...

FILE: pkg/cmd/cli/plugin/plugin.go
  function NewCommand (line 25) | func NewCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/plugin/remove.go
  function NewRemoveCommand (line 33) | func NewRemoveCommand(f client.Factory) *cobra.Command {

FILE: pkg/cmd/cli/podvolume/backup.go
  type podVolumeBackupConfig (line 53) | type podVolumeBackupConfig struct
  function NewBackupCommand (line 59) | func NewBackupCommand(f client.Factory) *cobra.Command {
  type podVolumeBackup (line 100) | type podVolumeBackup struct
    method run (line 207) | func (s *podVolumeBackup) run() {
    method runDataPath (line 218) | func (s *po
Copy disabled (too large) Download .json
Condensed preview — 3082 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (22,311K chars).
[
  {
    "path": ".dockerignore",
    "chars": 20,
    "preview": ".go/\n.go.std/\nsite/\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1903,
    "preview": "---\nname: Bug report\nabout: Tell us about a problem you are experiencing\n\n---\n\n**What steps did you take and what happen"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 220,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Velero Q&A\n    url: https://github.com/vmware-tanzu/velero/discussi"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-enhancement-request.md",
    "chars": 1123,
    "preview": "---\nname: Feature enhancement request\nabout: Suggest an idea for this project\n\n---\n\n**Describe the problem/challenge you"
  },
  {
    "path": ".github/auto-assignees.yml",
    "chars": 739,
    "preview": "---\n# This assigns a PR to its author\naddAssignees: author\n\nreviewers:\n  # The default reviewers\n  defaults:\n    - maint"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 623,
    "preview": "version: 2\nupdates:\n  # Dependencies listed in .github/workflows\n  - package-ecosystem: \"github-actions\"\n    directory: "
  },
  {
    "path": ".github/labeler.yml",
    "chars": 1134,
    "preview": "# This file is used by Auto Label PRs action.\n# Works with https://github.com/actions/labeler/\n# Below this line, the ke"
  },
  {
    "path": ".github/labels.yaml",
    "chars": 844,
    "preview": "# This file is used by [prow github action](https://github.com/jpmcb/prow-github-actions/) in .github/workflows/prow-act"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 564,
    "preview": "Thank you for contributing to Velero!\n\n# Please add a summary of your change\n\n# Does your change fix a particular issue?"
  },
  {
    "path": ".github/workflows/auto_assign_prs.yml",
    "chars": 592,
    "preview": "---\nname: \"Auto Assign Author\"\n\n# pull_request_target means that this will run on pull requests, but in\n# the context of"
  },
  {
    "path": ".github/workflows/auto_label_prs.yml",
    "chars": 671,
    "preview": "name: \"Auto Label PRs\"\n# pull_request_target means that this will run on pull requests, but in the context of the base r"
  },
  {
    "path": ".github/workflows/auto_request_review.yml",
    "chars": 462,
    "preview": "---\nname: \"Auto Request Review\"\n\non:\n  pull_request_target:\n    types: [opened, ready_for_review, reopened]\n\njobs:\n  aut"
  },
  {
    "path": ".github/workflows/e2e-test-kind.yaml",
    "chars": 7995,
    "preview": "name: \"Run the E2E test on kind\"\non:\n  push:\n  pull_request:\n    # Do not run when the change only includes these direct"
  },
  {
    "path": ".github/workflows/get-go-version.yaml",
    "chars": 1061,
    "preview": "on:\r\n  workflow_call:\r\n    inputs:\r\n      ref:\r\n        description: \"The target branch's ref\"\r\n        required: true\r\n"
  },
  {
    "path": ".github/workflows/nightly-trivy-scan.yml",
    "chars": 1154,
    "preview": "name: Trivy Nightly Scan\non:\n  schedule:\n    - cron: '0 2 * * *' # run at 2 AM UTC\n\njobs:\n  nightly-scan:\n    name: Triv"
  },
  {
    "path": ".github/workflows/pr-changelog-check.yml",
    "chars": 780,
    "preview": "name: Pull Request Changelog Check\n# by setting `on: [pull_request]`, that means action will be trigger when PR is opene"
  },
  {
    "path": ".github/workflows/pr-ci-check.yml",
    "chars": 798,
    "preview": "name: Pull Request CI Check\non: [pull_request]\njobs:\n  get-go-version:\n    uses: ./.github/workflows/get-go-version.yaml"
  },
  {
    "path": ".github/workflows/pr-codespell.yml",
    "chars": 2038,
    "preview": "name: Pull Request Codespell Check\non: [pull_request]\njobs:\n\n  codespell:\n    name: Run Codespell\n    runs-on: ubuntu-la"
  },
  {
    "path": ".github/workflows/pr-containers.yml",
    "chars": 876,
    "preview": "name: build Velero containers on Dockerfile change\n\non:\n  pull_request:\n    branches:\n      - 'main'\n      - 'release-**"
  },
  {
    "path": ".github/workflows/pr-goreleaser.yml",
    "chars": 667,
    "preview": "name: Verify goreleaser change\n\non:\n  pull_request:\n    branches:\n      - 'main'\n      - 'release-**'\n    paths:\n      -"
  },
  {
    "path": ".github/workflows/pr-linter-check.yml",
    "chars": 785,
    "preview": "name: Pull Request Linter Check\non:\n  pull_request:\n    # Do not run when the change only includes these directories.\n  "
  },
  {
    "path": ".github/workflows/prow-action.yml",
    "chars": 727,
    "preview": "# Adds support for prow-like commands\n# Uses .github/labels.yaml to define areas and kinds\nname: \"Prow github actions\"\no"
  },
  {
    "path": ".github/workflows/push-builder.yml",
    "chars": 1268,
    "preview": "name: build-image\n\non:\n  push:\n    branches: [ main ]\n    paths:\n    - 'hack/build-image/Dockerfile'\n\njobs:\n  build:\n   "
  },
  {
    "path": ".github/workflows/push.yml",
    "chars": 1721,
    "preview": "name: Main CI\n\non:\n  push:\n    branches:\n      - 'main'\n      - 'release-**'\n    tags:\n      - '*'\n\njobs:\n  get-go-versi"
  },
  {
    "path": ".github/workflows/rebase.yml",
    "chars": 465,
    "preview": "on: \n  issue_comment:\n    types: [created]\nname: Automatic Rebase\njobs:\n  rebase:\n    name: Rebase\n    if: github.event."
  },
  {
    "path": ".github/workflows/stale-issues.yml",
    "chars": 1437,
    "preview": "name: \"Close stale issues and PRs\"\non:\n  schedule:\n    - cron: \"30 1 * * *\" # Every day at 1:30 UTC\n\njobs:\n  stale:\n    "
  },
  {
    "path": ".gitignore",
    "chars": 1022,
    "preview": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n_output\n\n# Architec"
  },
  {
    "path": ".golangci.yaml",
    "chars": 13328,
    "preview": "# This file contains all available configuration options\n# with their default values.\n\n# options for analysis running\nru"
  },
  {
    "path": ".goreleaser.yml",
    "chars": 2031,
    "preview": "# Copyright 2018 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
  },
  {
    "path": "ADOPTERS.md",
    "chars": 10488,
    "preview": "# Velero Adopters\n\nIf you're using Velero and want to add your organization to this list, \n[follow these directions][1]!"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 2866,
    "preview": "## Current release:\n  * [CHANGELOG-1.15.md][25]\n\n## Older releases:\n  * [CHANGELOG-1.14.md][24]\n  * [CHANGELOG-1.13.md]["
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5241,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 173,
    "preview": "# Contributing\n\nAuthors are expected to follow some guidelines when submitting PRs. Please see [our documentation](https"
  },
  {
    "path": "Dockerfile",
    "chars": 2452,
    "preview": "# Copyright 2020 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
  },
  {
    "path": "Dockerfile-Windows",
    "chars": 1849,
    "preview": "# Copyright the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not u"
  },
  {
    "path": "GOVERNANCE.md",
    "chars": 10245,
    "preview": "# Velero Governance\n\nThis document defines the project governance for Velero.\n\n## Overview\n\n**Velero**, an open source p"
  },
  {
    "path": "LICENSE",
    "chars": 10255,
    "preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
  },
  {
    "path": "MAINTAINERS.md",
    "chars": 2246,
    "preview": "# Velero Maintainers\n\n[GOVERNANCE.md](https://github.com/vmware-tanzu/velero/blob/main/GOVERNANCE.md) describes governan"
  },
  {
    "path": "Makefile",
    "chars": 17323,
    "preview": "# Copyright 2016 The Kubernetes Authors.\n#\n# Modifications Copyright 2020 the Velero contributors.\n#\n# Licensed under th"
  },
  {
    "path": "OWNERS",
    "chars": 588,
    "preview": "# This file is used by the [PROW action](https://github.com/jpmcb/prow-github-actions) to approve and merge PRs.\r\n# The "
  },
  {
    "path": "README.md",
    "chars": 4520,
    "preview": "![100]\n\n[![Build Status][1]][2] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3811/badge)"
  },
  {
    "path": "ROADMAP.md",
    "chars": 145,
    "preview": "# Please go to the [Velero Wiki](https://github.com/vmware-tanzu/velero/wiki/) to see our latest roadmap, archived roadm"
  },
  {
    "path": "SECURITY.md",
    "chars": 10515,
    "preview": "# Security Release Process\n\nVelero is an open source tool with a growing community devoted to safe backup and restore, d"
  },
  {
    "path": "SUPPORT.md",
    "chars": 304,
    "preview": "# Velero Support\n\nThanks for trying out Velero! We welcome all feedback, find all the ways to connect with us on our Com"
  },
  {
    "path": "Tiltfile",
    "chars": 9807,
    "preview": "# -*- mode: Python -*-\n\nk8s_yaml([\n    'config/crd/v1/bases/velero.io_backups.yaml',\n    'config/crd/v1/bases/velero.io_"
  },
  {
    "path": "assets/README.md",
    "chars": 709,
    "preview": "# Velero Assets\n\nThis folder contains logo images for Velero in gray (for light backgrounds) and white (for dark backgro"
  },
  {
    "path": "changelogs/CHANGELOG-0.10.md",
    "chars": 24849,
    "preview": "  - [v0.10.2](#v0102)\n  - [v0.10.1](#v0101)\n  - [v0.10.0](#v0100)\n\n## v0.10.2\n#### 2019-02-28\n\n### Download\n- https://gi"
  },
  {
    "path": "changelogs/CHANGELOG-0.11.md",
    "chars": 2017,
    "preview": "## v0.11.1\n#### 2019-05-17\n\n### Download\n- https://github.com/heptio/velero/releases/tag/v0.11.1\n\n### Highlights\n* Added"
  },
  {
    "path": "changelogs/CHANGELOG-0.3.md",
    "chars": 678,
    "preview": "- [v0.3.3](#v033)\n- [v0.3.2](#v032)\n- [v0.3.1](#v031)\n- [v0.3.0](#v030)\n\n## v0.3.3\n#### 2017-08-10\n### Download\n  - http"
  },
  {
    "path": "changelogs/CHANGELOG-0.4.md",
    "chars": 1166,
    "preview": "- [v0.4.0](#v040)\n\n## v0.4.0\n#### 2017-09-14\n### Download\n  - https://github.com/heptio/ark/tree/v0.4.0\n\n### Breaking ch"
  },
  {
    "path": "changelogs/CHANGELOG-0.5.md",
    "chars": 1740,
    "preview": "- [v0.5.1](#v051)\n- [v0.5.0](#v050)\n\n## v0.5.1\n#### 2017-11-06\n### Download\n  - https://github.com/heptio/ark/tree/v0.5."
  },
  {
    "path": "changelogs/CHANGELOG-0.6.md",
    "chars": 2440,
    "preview": "- [v0.6.0](#v060)\n\n## v0.6.0\n#### 2017-11-30\n### Download\n  - https://github.com/heptio/ark/tree/v0.6.0\n\n### Highlights\n"
  },
  {
    "path": "changelogs/CHANGELOG-0.7.md",
    "chars": 1059,
    "preview": "- [v0.7.1](#v071)\n- [v0.7.0](#v070)\n\n## v0.7.1\n#### 2018-02-22\n### Download\n  - https://github.com/heptio/ark/releases/t"
  },
  {
    "path": "changelogs/CHANGELOG-0.8.md",
    "chars": 5014,
    "preview": "- [v0.8.3](#v083)\n- [v0.8.2](#v082)\n- [v0.8.1](#v081)\n- [v0.8.0](#v080)\n\n## v0.8.3\n#### 2018-06-29\n### Download\n  - http"
  },
  {
    "path": "changelogs/CHANGELOG-0.9.md",
    "chars": 7079,
    "preview": "  - [v0.9.11](#v0911)\n  - [v0.9.10](#v0910)\n  - [v0.9.9](#v099)\n  - [v0.9.8](#v098)\n  - [v0.9.7](#v097)\n  - [v0.9.6](#v0"
  },
  {
    "path": "changelogs/CHANGELOG-1.0.md",
    "chars": 10368,
    "preview": "## v1.0.0\n#### 2019-05-20\n\n### Highlights\n- We've added a new command, `velero install`, to make it easier to get up and"
  },
  {
    "path": "changelogs/CHANGELOG-1.1.md",
    "chars": 10789,
    "preview": "## v1.1.0\n#### 2019-08-22\n\n### Download\n- https://github.com/heptio/velero/releases/tag/v1.1.0\n\n### Container Image\n`gcr"
  },
  {
    "path": "changelogs/CHANGELOG-1.10.md",
    "chars": 16060,
    "preview": "  ## v1.10.0\n### 2022-11-23\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.10.0\n\n### Container Ima"
  },
  {
    "path": "changelogs/CHANGELOG-1.11.md",
    "chars": 10354,
    "preview": "## v1.11\n### 2023-04-07\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.11.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.12.md",
    "chars": 12083,
    "preview": "## v1.12\n### 2023-08-18\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.12.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.13.md",
    "chars": 16442,
    "preview": "## v1.13\n### 2024-01-10\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.13.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.14.md",
    "chars": 10263,
    "preview": "## v1.14\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.14.0\n\n### Container Image\n`velero/velero:v"
  },
  {
    "path": "changelogs/CHANGELOG-1.15.md",
    "chars": 13024,
    "preview": "## v1.15\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.15.0\n\n### Container Image\n`velero/velero:v"
  },
  {
    "path": "changelogs/CHANGELOG-1.16.md",
    "chars": 13783,
    "preview": "## v1.16\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.16.0\n\n### Container Image\n`velero/velero:v"
  },
  {
    "path": "changelogs/CHANGELOG-1.17.md",
    "chars": 12651,
    "preview": "## v1.17\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.17.0\n\n### Container Image\n`velero/velero:v"
  },
  {
    "path": "changelogs/CHANGELOG-1.18.md",
    "chars": 7557,
    "preview": "## v1.18\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.18.0\n\n### Container Image\n`velero/velero:v"
  },
  {
    "path": "changelogs/CHANGELOG-1.2.md",
    "chars": 8382,
    "preview": "## v1.2.0\n#### 2019-11-07\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.2.0\n\n### Container Image\n"
  },
  {
    "path": "changelogs/CHANGELOG-1.3.md",
    "chars": 8666,
    "preview": "## v1.3.2\n### 2020-04-03\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.3.2\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.4.md",
    "chars": 5706,
    "preview": "## v1.4.2\n### 2020-07-13\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.4.2\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.5.md",
    "chars": 5946,
    "preview": "## v1.5.1\n### 2020-09-16\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.5.1\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.6.md",
    "chars": 5563,
    "preview": "## v1.6.0\n### 2021-04-12\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.6.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.7.md",
    "chars": 5189,
    "preview": "## v1.7.0\n### 2021-09-07\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.7.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.8.md",
    "chars": 7071,
    "preview": "## v1.8.0\n### 2022-01-14\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.8.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/CHANGELOG-1.9.md",
    "chars": 6816,
    "preview": "## v1.9.0\n### 2022-06-13\n\n### Download\nhttps://github.com/vmware-tanzu/velero/releases/tag/v1.9.0\n\n### Container Image\n`"
  },
  {
    "path": "changelogs/unreleased/9502-Joeavaikath",
    "chars": 61,
    "preview": "Support all glob wildcard characters in namespace validation\n"
  },
  {
    "path": "changelogs/unreleased/9508-kaovilai",
    "chars": 69,
    "preview": "Fix VolumePolicy PVC phase condition filter for unbound PVCs (#9507)\n"
  },
  {
    "path": "changelogs/unreleased/9532-Lyndon-Li",
    "chars": 65,
    "preview": "Fix issue #9343, include PV topology to data mover pod affinities"
  },
  {
    "path": "changelogs/unreleased/9533-Lyndon-Li‎‎",
    "chars": 43,
    "preview": "Fix issue #9496, support customized host os"
  },
  {
    "path": "changelogs/unreleased/9547-blackpiglet",
    "chars": 97,
    "preview": "If BIA return updateObj with SkipFromBackupAnnotation, treat it as skip the resource from backup."
  },
  {
    "path": "changelogs/unreleased/9554-testsabirweb",
    "chars": 117,
    "preview": "Issue #9544: Add test coverage for S3 bucket name in MRAP ARN notation and fix bucket validation to accept ARN format"
  },
  {
    "path": "changelogs/unreleased/9560-Lyndon-Li‎‎",
    "chars": 73,
    "preview": "Fix issue #9475, use node-selector instead of nodName for generic restore"
  },
  {
    "path": "changelogs/unreleased/9561-Lyndon-Li‎‎",
    "chars": 57,
    "preview": "Fix issue #9460, flush buffer before data mover completes"
  },
  {
    "path": "changelogs/unreleased/9570-H-M-Quang-Ngo",
    "chars": 93,
    "preview": "Add schedule_expected_interval_seconds metric for dynamic backup alerting thresholds (#9559)\n"
  },
  {
    "path": "changelogs/unreleased/9574-blackpiglet",
    "chars": 82,
    "preview": "Add ephemeral storage limit and request support for data mover and maintenance job"
  },
  {
    "path": "changelogs/unreleased/9581-shubham-pampattiwar",
    "chars": 67,
    "preview": "Fix DBR stuck when CSI snapshot no longer exists in cloud provider\n"
  },
  {
    "path": "cmd/velero/velero.go",
    "chars": 882,
    "preview": "/*\nCopyright 2017, 2019 the Velero contributors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou ma"
  },
  {
    "path": "cmd/velero-helper/velero-helper.go",
    "chars": 1069,
    "preview": "/*\nCopyright The Velero Contributors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use t"
  },
  {
    "path": "cmd/velero-restore-helper/velero-restore-helper.go",
    "chars": 2467,
    "preview": "/*\nCopyright 2018 the Velero contributors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not "
  },
  {
    "path": "config/crd/v1/bases/velero.io_backuprepositories.yaml",
    "chars": 5275,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_backups.yaml",
    "chars": 33464,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_backupstoragelocations.yaml",
    "chars": 9113,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_deletebackuprequests.yaml",
    "chars": 2737,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_downloadrequests.yaml",
    "chars": 3658,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_podvolumebackups.yaml",
    "chars": 10390,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_podvolumerestores.yaml",
    "chars": 9747,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_restores.yaml",
    "chars": 27971,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_schedules.yaml",
    "chars": 31550,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_serverstatusrequests.yaml",
    "chars": 3088,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml",
    "chars": 3745,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v1/crds/crds.go",
    "chars": 70668,
    "preview": "/*\nCopyright the Velero contributors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use t"
  },
  {
    "path": "config/crd/v1/crds/doc.go",
    "chars": 139,
    "preview": "// Package crds embeds the controller-tools generated CRD manifests\npackage crds\n\n//go:generate go run ../../../../hack/"
  },
  {
    "path": "config/crd/v2alpha1/bases/velero.io_datadownloads.yaml",
    "chars": 8238,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v2alpha1/bases/velero.io_datauploads.yaml",
    "chars": 9745,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kubeb"
  },
  {
    "path": "config/crd/v2alpha1/crds/crds.go",
    "chars": 12502,
    "preview": "/*\nCopyright the Velero contributors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use t"
  },
  {
    "path": "config/crd/v2alpha1/crds/doc.go",
    "chars": 139,
    "preview": "// Package crds embeds the controller-tools generated CRD manifests\npackage crds\n\n//go:generate go run ../../../../hack/"
  },
  {
    "path": "config/rbac/role.yaml",
    "chars": 993,
    "preview": "---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: velero-perms\nrules:\n- apiGroups:\n  - \"\""
  },
  {
    "path": "design/2082-bsl-delete-associated-resources_design.md",
    "chars": 2207,
    "preview": "# Delete Backup and Restic Repo Resources when BSL is Deleted\n\n## Abstract\n\nIssue #2082 requested that with the command "
  },
  {
    "path": "design/CLI/PoC/base/CRDs.yaml",
    "chars": 54444,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1beta1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen."
  },
  {
    "path": "design/CLI/PoC/base/backupstoragelocations.yaml",
    "chars": 4787,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1beta1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen."
  },
  {
    "path": "design/CLI/PoC/base/deployment.yaml",
    "chars": 1855,
    "preview": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    component: velero\n  name: velero\n  namespace: velero\nsp"
  },
  {
    "path": "design/CLI/PoC/base/kustomization.yaml",
    "chars": 362,
    "preview": "apiVersion: kustomize.config.k8s.io/v1beta1\nkind: Kustomization\n\nresources:\n  - deployment.yaml\n  - CRDs.yaml\n  - backup"
  },
  {
    "path": "design/CLI/PoC/base/minio.yaml",
    "chars": 2538,
    "preview": "# Copyright 2017 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
  },
  {
    "path": "design/CLI/PoC/base/podvolumes.yaml",
    "chars": 13497,
    "preview": "---\n  apiVersion: apiextensions.k8s.io/v1beta1\n  kind: CustomResourceDefinition\n  metadata:\n    annotations:\n      contr"
  },
  {
    "path": "design/CLI/PoC/base/resticrepository.yaml",
    "chars": 3135,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1beta1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen."
  },
  {
    "path": "design/CLI/PoC/base/volumesnapshotlocations.yaml",
    "chars": 2638,
    "preview": "---\napiVersion: apiextensions.k8s.io/v1beta1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen."
  },
  {
    "path": "design/CLI/PoC/overlays/plugins/aws-plugin.yaml",
    "chars": 955,
    "preview": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: velero\nspec:\n  selector:\n    matchLabels:\n      deploy: veler"
  },
  {
    "path": "design/CLI/PoC/overlays/plugins/azure-plugin.yaml",
    "chars": 987,
    "preview": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: velero\nspec:\n  selector:\n    matchLabels:\n      deploy: veler"
  },
  {
    "path": "design/CLI/PoC/overlays/plugins/cloud",
    "chars": 68,
    "preview": "[default]\naws_access_key_id = minio\naws_secret_access_key = minio123"
  },
  {
    "path": "design/CLI/PoC/overlays/plugins/kustomization.yaml",
    "chars": 381,
    "preview": "apiVersion: kustomize.config.k8s.io/v1beta1\nkind: Kustomization\n\nbases:\n  - ../../base\n\npatchesStrategicMerge:\n  - aws-p"
  },
  {
    "path": "design/CLI/PoC/overlays/plugins/node-agent.yaml",
    "chars": 2025,
    "preview": "---\napiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  creationTimestamp: null\n  labels:\n    component: velero\n  name: node"
  },
  {
    "path": "design/Implemented/Extend-VolumePolicies-to-support-more-actions.md",
    "chars": 18064,
    "preview": "# Extend VolumePolicies to support more actions\n\n## Abstract\n\nCurrently, the [VolumePolicies feature](https://github.com"
  },
  {
    "path": "design/Implemented/apply-flag.md",
    "chars": 4531,
    "preview": "# Apply flag for install command\n\n## Abstract\nAdd an `--apply` flag to the install command that enables applying existin"
  },
  {
    "path": "design/Implemented/backup-performance-improvements.md",
    "chars": 25934,
    "preview": "# Velero Backup performance Improvements and VolumeGroupSnapshot enablement\n\nThere are two different goals here, linked "
  },
  {
    "path": "design/Implemented/backup-pvc-config.md",
    "chars": 6425,
    "preview": "# Backup PVC Configuration Design\n\n## Glossary & Abbreviation\n\n**Velero Generic Data Path (VGDP)**: VGDP is the collecti"
  },
  {
    "path": "design/Implemented/backup-repo-cache-volume.md",
    "chars": 15772,
    "preview": "# Backup Repository Cache Volume Design\n\n## Glossary & Abbreviation\n\n**Backup Storage**: The storage to store the backup"
  },
  {
    "path": "design/Implemented/backup-repo-config.md",
    "chars": 7881,
    "preview": "# Backup Repository Configuration Design\n\n## Glossary & Abbreviation\n\n**Backup Storage**: The storage to store the backu"
  },
  {
    "path": "design/Implemented/backup-resource-list.md",
    "chars": 5213,
    "preview": "# Expose list of backed up resources in backup details\n\nStatus: Accepted\n\nTo increase the visibility of what a backup mi"
  },
  {
    "path": "design/Implemented/backup-resources-order.md",
    "chars": 3345,
    "preview": "## Backup Resources Order\r\nThis document proposes a solution that allows user to specify a backup order for resources of"
  },
  {
    "path": "design/Implemented/biav2-design.md",
    "chars": 4675,
    "preview": "# Design for BackupItemAction v2 API\n\n## Abstract\nThis design includes the changes to the BackupItemAction (BIA) api des"
  },
  {
    "path": "design/Implemented/bsl-certificate-support_design.md",
    "chars": 12786,
    "preview": "# Design for BSL Certificate Support Enhancement\n\n## Abstract\n\nThis design document describes the enhancement of BackupS"
  },
  {
    "path": "design/Implemented/clean_artifacts_in_csi_flow.md",
    "chars": 16462,
    "preview": "# Design to clean the artifacts generated in the CSI backup and restore workflows\n\n## Terminology\n\n* VSC: VolumeSnapshot"
  },
  {
    "path": "design/Implemented/cluster-scope-resource-filter.md",
    "chars": 19359,
    "preview": "# Proposal to add resource filters for backup can distinguish whether resource is cluster-scoped or namespace-scoped.\n\n-"
  },
  {
    "path": "design/Implemented/concurrent-backup-processing.md",
    "chars": 20136,
    "preview": "# Concurrent Backup Processing\n\nThis enhancement will enable Velero to process multiple backups at the same time. This i"
  },
  {
    "path": "design/Implemented/csi-snapshots.md",
    "chars": 21823,
    "preview": "# CSI Snapshot Support\n\nThe Container Storage Interface (CSI) [introduced an alpha snapshot API in Kubernetes v1.12][1]."
  },
  {
    "path": "design/Implemented/custom-ca-support.md",
    "chars": 6603,
    "preview": "# Custom CA Bundle Support for S3 Object Storage\n\nIt is desired that Velero performs SSL verification on the Object Stor"
  },
  {
    "path": "design/Implemented/delete-item-action.md",
    "chars": 8437,
    "preview": "# Delete Item Action Plugins\n\n## Abstract\n\nVelero should provide a way to delete items created during a backup, with a m"
  },
  {
    "path": "design/Implemented/deletion-plugins.md",
    "chars": 3756,
    "preview": "# Deletion Plugins\n\nStatus: Alternative Proposal\n\n\n## Abstract\nVelero should introduce a new type of plugin that runs wh"
  },
  {
    "path": "design/Implemented/existing-resource-policy_design.md",
    "chars": 11313,
    "preview": "# Add support for `ExistingResourcePolicy` to restore API\n## Abstract\nVelero currently does not support any restore poli"
  },
  {
    "path": "design/Implemented/feature-flags.md",
    "chars": 2581,
    "preview": "# Feature Flags\n\nStatus: Accepted\n\nSome features may take a while to get fully implemented, and we don't necessarily wan"
  },
  {
    "path": "design/Implemented/general-progress-monitoring.md",
    "chars": 34123,
    "preview": "# Plugin Progress Monitoring\n\nThis is intended as a replacement for the previously-approved Upload Progress Monitoring d"
  },
  {
    "path": "design/Implemented/generating-velero-crds-with-structural-schema.md",
    "chars": 15475,
    "preview": "# Generating Velero CRDs with structural schema support\n\nAs the apiextensions.k8s.io API moves to GA, structural schema "
  },
  {
    "path": "design/Implemented/handle-backup-of-volumes-by-resources-filters.md",
    "chars": 15516,
    "preview": "# Handle backup of volumes by resources filters\n \n## Abstract\nCurrently, Velero doesn't have one flexible way to handle "
  },
  {
    "path": "design/Implemented/include-exclude-in-resource-policy.md",
    "chars": 4663,
    "preview": "# Proposal to add include exclude policy to resource policy\n\nThis enhancement will allow the user to set include and exc"
  },
  {
    "path": "design/Implemented/json-substitution-action-design.md",
    "chars": 9418,
    "preview": "# Proposal to add support for Resource Modifiers (AKA JSON Substitutions) in Restore Workflow\n\n- [Proposal to add suppor"
  },
  {
    "path": "design/Implemented/merge-patch-and-strategic-in-resource-modifier.md",
    "chars": 9573,
    "preview": "# Proposal to Support JSON Merge Patch and Strategic Merge Patch in Resource Modifiers\n\n- [Proposal to Support JSON Merg"
  },
  {
    "path": "design/Implemented/move-gh-org.md",
    "chars": 5269,
    "preview": "# Plan for moving the Velero GitHub repo into the VMware GitHub organization\n\nCurrently, the Velero repository sits unde"
  },
  {
    "path": "design/Implemented/move-plugin-repos.md",
    "chars": 7750,
    "preview": "# Plan to extract the provider plugins out of (the Velero) tree\n\nCurrently, the Velero project contains in-tree plugins "
  },
  {
    "path": "design/Implemented/multiple-arch-build-with-windows.md",
    "chars": 7339,
    "preview": "# Multi-arch Build and Windows Build Support\n\n## Background\n\nAt present, Velero images could be built for linux-amd64 an"
  },
  {
    "path": "design/Implemented/multiple-csi-volumesnapshotclass-support.md",
    "chars": 10404,
    "preview": "# Proposal to add support for Multiple VolumeSnapshotClasses in CSI Plugin\n\n- [Proposal to add support for Multiple Volu"
  },
  {
    "path": "design/Implemented/multiple-label-selectors_design.md",
    "chars": 5687,
    "preview": "# Ensure support for backing up resources based on multiple labels\n## Abstract\nAs of today Velero supports filtering of "
  },
  {
    "path": "design/Implemented/node-agent-affinity.md",
    "chars": 11061,
    "preview": "# Node-agent Load Affinity Design\n\n## Glossary & Abbreviation\n\n**Velero Generic Data Path (VGDP)**: VGDP is the collecti"
  },
  {
    "path": "design/Implemented/node-agent-concurrency.md",
    "chars": 9361,
    "preview": "# Node-agent Concurrency Design\n\n## Glossary & Abbreviation\n\n**Velero Generic Data Path (VGDP)**: VGDP is the collective"
  },
  {
    "path": "design/Implemented/node-agent-load-soothing.md",
    "chars": 9555,
    "preview": "# Node-agent Load Soothing Design\n\n## Glossary & Abbreviation\n\n**Velero Generic Data Path (VGDP)**: VGDP is the collecti"
  },
  {
    "path": "design/Implemented/plugin-backup-and-restore-progress-design.md",
    "chars": 20397,
    "preview": "# Progress reporting for backups and restores handled by volume snapshotters\n\nUsers face difficulty in knowing the progr"
  },
  {
    "path": "design/Implemented/plugin-versioning.md",
    "chars": 20581,
    "preview": "# Plugin Versioning\n\n## Abstract\nThis proposal outlines an approach to support versioning of Velero's plugin APIs to ena"
  },
  {
    "path": "design/Implemented/priority-class-name-support_design.md",
    "chars": 30886,
    "preview": "# PriorityClass Support Design Proposal\n\n## Abstract\n\nThis design document outlines the implementation of priority class"
  },
  {
    "path": "design/Implemented/pv-cloning.md",
    "chars": 3520,
    "preview": "# Cloning PVs While Remapping Namespaces\n\nStatus: Approved\n\nVelero supports restoring resources into different namespace"
  },
  {
    "path": "design/Implemented/pv_backup_info.md",
    "chars": 11018,
    "preview": "# PersistentVolume backup information design\n\n## Abstract\nCreate a new metadata file in the backup repository's backup n"
  },
  {
    "path": "design/Implemented/pv_restore_info.md",
    "chars": 8267,
    "preview": "# Volume information for restore design\n\n## Background\nVelero has different ways to handle data in the volumes during re"
  },
  {
    "path": "design/Implemented/repo_maintenance_job_config.md",
    "chars": 13325,
    "preview": "# Repository maintenance job configuration design\n\n## Abstract\nAdd this design to make the repository maintenance job ca"
  },
  {
    "path": "design/Implemented/repository-maintenance.md",
    "chars": 14397,
    "preview": "# Design for repository maintenance job\n\n## Abstract\nThis design proposal aims to decouple repository maintenance from t"
  },
  {
    "path": "design/Implemented/resource-status-restore.md",
    "chars": 6508,
    "preview": "# Allow Object-Level Resource Status Restore in Velero\n\n## Abstract\nThis design proposes a way to enhance Velero’s resto"
  },
  {
    "path": "design/Implemented/restic-backup-and-restore-progress.md",
    "chars": 7869,
    "preview": "# Progress reporting for restic backups and restores\n\nStatus: Accepted\n\nDuring long-running restic backups/restores, the"
  },
  {
    "path": "design/Implemented/restore-finalizing-phase_design.md",
    "chars": 6443,
    "preview": "# Design for Adding Finalization Phase in Restore Workflow\n\n## Abstract\nThis design proposes adding the finalization pha"
  },
  {
    "path": "design/Implemented/restore-hooks.md",
    "chars": 7426,
    "preview": "# Restore Hooks\n\nThis document proposes a solution that allows a user to specify Restore Hooks, much like Backup Hooks, "
  },
  {
    "path": "design/Implemented/restore-with-EnableAPIGroupVersions-feature.md",
    "chars": 16774,
    "preview": "# Restore API Group Version by Priority Level When EnableAPIGroupVersions Feature is Set\n\nStatus: Accepted\n\n## Abstract\n"
  },
  {
    "path": "design/Implemented/retry-patching-configuration_design.md",
    "chars": 5560,
    "preview": "# Backup Restore Status Patch Retrying Configuration\n\n## Abstract\nWhen a backup/restore completes, we want to ensure tha"
  },
  {
    "path": "design/Implemented/riav2-design.md",
    "chars": 6019,
    "preview": "# Design for RestoreItemAction v2 API\n\n## Abstract\nThis design includes the changes to the RestoreItemAction (RIA) api d"
  },
  {
    "path": "design/Implemented/schedule-skip-immediately-config_design.md",
    "chars": 7803,
    "preview": "# Schedule Skip Immediately Config Design\n## Abstract\nWhen unpausing schedule, a backup could be due immediately.\nNew Sc"
  },
  {
    "path": "design/Implemented/secrets.md",
    "chars": 16767,
    "preview": "# Support for multiple provider credentials\n\nCurrently, Velero only supports a single credential secret per location pro"
  },
  {
    "path": "design/Implemented/supporting-volumeattributes-resource-policy.md",
    "chars": 4053,
    "preview": "# Adding Support For VolumeAttributes in Resource Policy\n \n## Abstract\nCurrently [Velero Resource policies](https://vele"
  },
  {
    "path": "design/Implemented/unified-repo-and-kopia-integration/unified-repo-and-kopia-integration.md",
    "chars": 38854,
    "preview": "# Unified Repository & Kopia Integration Design\n\n## Glossary & Abbreviation\n\n**BR**: Backup & Restore  \n**Backup Storage"
  },
  {
    "path": "design/Implemented/velero-debug.md",
    "chars": 7211,
    "preview": "# `velero debug` command for gathering troubleshooting information\n\n## Abstract\nTo simplify the communication between ve"
  },
  {
    "path": "design/Implemented/velero-uploader-configuration.md",
    "chars": 11829,
    "preview": "# Velero Uploader Configuration Integration and Extensibility\n\n## Abstract\nThis design proposal aims to make Velero Uplo"
  },
  {
    "path": "design/Implemented/vgdp-affinity-enhancement.md",
    "chars": 10518,
    "preview": "# Velero Generic Data Path Load Affinity Enhancement Design\r\n\r\n## Glossary & Abbreviation\r\n\r\n**Velero Generic Data Path "
  },
  {
    "path": "design/Implemented/vgdp-micro-service/vgdp-micro-service.md",
    "chars": 18737,
    "preview": "# VGDP Micro Service For Volume Snapshot Data Movement\n\n## Glossary & Abbreviation\n\n**VGDP**: Velero Generic Data Path. "
  },
  {
    "path": "design/Implemented/vgdp-micro-service-for-fs-backup/vgdp-micro-service-for-fs-backup.md",
    "chars": 35324,
    "preview": "# VGDP Micro Service For fs-backup\n\n## Glossary & Abbreviation\n\n**VGDP**: Velero Generic Data Path. The collective modul"
  },
  {
    "path": "design/Implemented/volume-group-snapshot.md",
    "chars": 29185,
    "preview": "# Add Support for VolumeGroupSnapshots\n\nThis proposal outlines the design and implementation plan for incorporating Volu"
  },
  {
    "path": "design/Implemented/volume-policy-label-selector-criteria.md",
    "chars": 9021,
    "preview": "# Add Label Selector as a criteria for Volume Policy\n\n## Abstract\nVelero’s volume policies currently support several cri"
  },
  {
    "path": "design/Implemented/volume-snapshot-data-movement/volume-snapshot-data-movement.md",
    "chars": 58880,
    "preview": "# Volume Snapshot Data Movement Design\n\n## Glossary & Abbreviation\n\n**BR**: Backup & Restore  \n**Backup Storage**: See t"
  },
  {
    "path": "design/Implemented/wait-for-additional-items.md",
    "chars": 9685,
    "preview": "# Wait for AdditionalItems to be ready on Restore\n\nWhen a velero `RestoreItemAction` plugin returns a list of resources\n"
  },
  {
    "path": "design/Implemented/wildcard-namespace-support-design.md",
    "chars": 3720,
    "preview": "\n# Wildcard Namespace Support\n\n## Abstract\n\nVelero currently treats namespace patterns with glob characters as literal s"
  },
  {
    "path": "design/_template.md",
    "chars": 2450,
    "preview": "# Design proposal template `<replace with your proposal's title>`\n\n_Note_: The preferred style for design documents is o"
  },
  {
    "path": "design/cli-install-changes.md",
    "chars": 27958,
    "preview": "# Proposal for a more intuitive CLI to install and configure Velero\n\nCurrently, the Velero CLI tool has a `install` comm"
  },
  {
    "path": "design/graph-manifest.md",
    "chars": 11768,
    "preview": "# Object Graph Manifest for Velero\n\n## Abstract\n\nOne to two sentences that describes the goal of this proposal and the p"
  },
  {
    "path": "design/new-prepost-backuprestore-plugin-hooks.md",
    "chars": 32912,
    "preview": "# Pre-Backup, Post-Backup, Pre-Restore, and Post-Restore Action Plugin Hooks\n\n## Abstract\n\nVelero should provide a way t"
  },
  {
    "path": "design/restore-progress.md",
    "chars": 6784,
    "preview": "# Restore progress reporting\n\nVelero _Backup_ resource provides real-time progress of an ongoing backup by means of a _P"
  },
  {
    "path": "design/upload-progress.md",
    "chars": 18680,
    "preview": "# Upload Progress Monitoring\n\nVolume snapshotter plugin are used by Velero to take snapshots of persistent volume conten"
  },
  {
    "path": "design/vsv2-design.md",
    "chars": 3724,
    "preview": "# Design for VolumeSnapshotter v2 API\n\n## Abstract\nThis design includes the changes to the VolumeSnapshotter api design "
  },
  {
    "path": "examples/README.md",
    "chars": 476,
    "preview": "# Examples\n\nThis directory contains sample YAML config files that can be used for exploring Velero.\n\n* `minio/`: Used in"
  },
  {
    "path": "examples/minio/00-minio-deployment.yaml",
    "chars": 2593,
    "preview": "# Copyright 2017 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
  },
  {
    "path": "examples/nginx-app/README.md",
    "chars": 521,
    "preview": "# Files\n\nThis directory contains manifests for two versions of a sample Nginx app under the `nginx-example` namespace.\n\n"
  },
  {
    "path": "examples/nginx-app/base.yaml",
    "chars": 1262,
    "preview": "# Copyright 2017 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
  },
  {
    "path": "examples/nginx-app/with-pv.yaml",
    "chars": 2375,
    "preview": "# Copyright 2017 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
  },
  {
    "path": "go.mod",
    "chars": 9912,
    "preview": "module github.com/vmware-tanzu/velero\n\ngo 1.25.0\n\nrequire (\n\tcloud.google.com/go/storage v1.57.2\n\tgithub.com/Azure/azure"
  },
  {
    "path": "go.sum",
    "chars": 123539,
    "preview": "al.essio.dev/pkg/shellescape v1.5.1 h1:86HrALUujYS/h+GtqoB26SBEdkWfmMI6FubjXlsXyho=\nal.essio.dev/pkg/shellescape v1.5.1/"
  },
  {
    "path": "hack/boilerplate.go.txt",
    "chars": 566,
    "preview": "/*\nCopyright the Velero contributors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use t"
  },
  {
    "path": "hack/build-image/Dockerfile",
    "chars": 4631,
    "preview": "# Copyright 2018, 2019, 2020 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\")"
  },
  {
    "path": "hack/build-restic.sh",
    "chars": 1605,
    "preview": "#!/bin/bash\n\n# Copyright 2020 the Velero contributors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "hack/build.sh",
    "chars": 2025,
    "preview": "#!/bin/bash\n\n# Copyright 2016 The Kubernetes Authors.\n#\n# Modifications Copyright 2020 the Velero contributors.\n#\n# Lice"
  }
]

// ... and 2882 more files (download for full content)

About this extraction

This page contains the full source code of the vmware-tanzu/velero GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3082 files (19.9 MB), approximately 5.4M tokens, and a symbol index with 8249 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!