Commit Graph

2908 Commits

Author SHA1 Message Date
Adam Zhang 13f06026c0 caching the call for GetNamespaceFilter
Introduces a concurrent-safe sync.Map cache to the backup Request struct
to memoize GetNamespaceFilter results. This avoids re-evaluating glob
patterns for every item, significantly improving backup performance while
preserving the original exact-match precedence logic.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-06-15 16:18:54 +08:00
Xun Jiang/Bruce Jiang 02cb85ce90 Merge pull request #9890 from blackpiglet/jxun/main/bump_deps
[main] Bump some dependancies to fix CVEs and replace some inactive maintained packages.
2026-06-11 10:08:22 +08:00
lyndon-li 4c1950980a Merge pull request #9887 from Lyndon-Li/incremental-object-aware-write-at
Incremental aware object writer - writeat
2026-06-10 18:01:42 +08:00
Xun Jiang 49b670a791 Replace github.com/pkg/errors by github.com/cockroachdb/errors
Change errors.Cause to errors.Is, because github.com/cockroachdb/errors
New() function create a error with error stack with depth 1, but
github.com/pkg/errors's New() function create error with no depth.

Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-06-10 15:55:57 +08:00
Xun Jiang 981988d31b Replace github.com/joho/godotenv.
Move the needed code into Velero repository.

Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-06-10 15:54:17 +08:00
Xun Jiang e395b6ea6b Replace github.com/robfig/cron/v3 by github.com/netresearch/go-cron
Replace k8s.io/utils/pointer with k8s.io/utils/ptr

Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-06-10 15:54:17 +08:00
lyndon-li 901b1a0ed1 Merge pull request #9892 from Lyndon-Li/refactor-generic-exposer-interface
Enhance RebindVolume method for generic restore exposer
2026-06-10 15:54:16 +08:00
lyndon-li dac51be057 Merge pull request #9899 from Lyndon-Li/refactor-repo-interface
Refactor object writer interface
2026-06-10 15:35:49 +08:00
Adam Zhang 5dd4dc8e5d Merge pull request #9880 from adam-jian-zhang/backup-filters-core
implemented fine-grained backup filter policies
2026-06-10 14:01:13 +08:00
Lyndon-Li 09f842afaf refactor object writer interface
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-10 10:00:30 +08:00
Shubham Pampattiwar 92123d3d46 Skip VGS cleanup when backup did not use VolumeGroupSnapshots
Guard the cleanupStubVGSC() call in restore finalization with a check
for VolumeGroupSnapshotHandle in volumeInfo. This avoids a spurious
warning on clusters where the v1beta2 VolumeGroupSnapshotContent CRD
is not installed, since the List call would fail even though no stubs
exist to clean up.

Fixes #9882

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-06-09 10:21:55 -07:00
Lyndon-Li 0a94fbbfc5 enhance RebindVolume method for generic restore exposer
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-09 18:08:59 +08:00
Subhramit Basu dda779de65 Reject restores from backups not in a completed or partially failed phase (#9792)
Run the E2E test on kind / get-go-version (push) Failing after 1m3s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
build-image / Build (push) Failing after 16s
Main CI / get-go-version (push) Successful in 12s
Main CI / Build (push) Failing after 36s
Trivy Nightly Scan / Trivy nightly scan (velero, main) (push) Failing after 1m41s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-aws, main) (push) Failing after 1m25s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-gcp, main) (push) Failing after 1m18s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-microsoft-azure, main) (push) Failing after 1m17s
Close stale issues and PRs / stale (push) Has started running
* Add phase check validations in restore controller

Signed-off-by: subhramit <subhramit.bb@live.in>

* Adapt existing tests

Signed-off-by: subhramit <subhramit.bb@live.in>

* Add tests

Signed-off-by: subhramit <subhramit.bb@live.in>

* Update doc

Signed-off-by: subhramit <subhramit.bb@live.in>

* Add changelog

Signed-off-by: Subhramit Basu <subhramit.bb@live.in>

* Update pkg/controller/restore_controller_test.go

Signed-off-by: Subhramit Basu <subhramit.bb@live.in>

---------

Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: Subhramit Basu <subhramit.bb@live.in>
2026-06-08 16:10:32 -04:00
Adam Zhang f216f2497d address review comments regarding fallbacks
fix fallbacks in backup filter policies,
- refactor the code to start with global policies, and apply
  override if exists, and document the behaviour inline according
  to the design
- Ensure that unlisted cluster-scoped kinds properly fall back
  to global label selectors
- unlisted namespace-scoped kinds are explicitly skipped when
  evaluating policy label selectors

add test coverage for GetNamespaceFilter glob matching and ordering

Added a unit test to verify that GetNamespaceFilter correctly matches
compiled glob patterns against namespace strings, and properly honors
first-match semantics when a namespace matches multiple patterns.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-06-08 15:50:05 +08:00
Adam Zhang a35aacfb50 Update pkg/backup/backup.go
Co-authored-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-06-08 15:50:05 +08:00
Adam Zhang c8bb3af761 implement fine-grained backup filter policies
implement backup logic to support backups with
NamespacedFilterPolicies and ClusterScopedFilterPolicy

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-06-08 15:50:05 +08:00
Lyndon-Li f474e313fa incremental object aware write at
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-05 17:02:41 +08:00
Lyndon-Li 8b5db5954e Merge branch 'main' into incremental-object-aware-write-at 2026-06-05 13:31:56 +08:00
Adam Zhang 0d719f1d8a cli support for fine-grained filter policies
add cli support for NamespacedFilterPolicies and
ClusterScopedFilterPolicy

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-06-04 13:25:16 +08:00
Lyndon-Li 09bfc69d63 add totalSize to repo snapshot
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-03 13:23:08 +08:00
Lyndon-Li d435b0509e add velero-pins to repo snapshot
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-02 17:40:20 +08:00
Lyndon-Li 2e1ab5ab62 Merge branch 'main' into block-data-mover-backup-expose 2026-06-02 16:56:40 +08:00
lyndon-li 5cc0398662 Merge pull request #9864 from Lyndon-Li/node-agent-config-for-cbt-service
Add cbt service parameters to node-agent-config
2026-06-02 16:53:48 +08:00
Lyndon-Li 30960d1edd incremental aware object writer - writeat
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-02 13:10:32 +08:00
Wenkai Yin(尹文开) b7d5d84983 Merge pull request #9861 from Lyndon-Li/remove-restic-command-package
Remove restic command package
2026-06-02 12:53:57 +08:00
Adam Zhang 1318d2c5dd Merge pull request #9840 from adam-jian-zhang/legacy_filters_incompatibility_validation
Run the E2E test on kind / get-go-version (push) Failing after 55s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 2s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / get-go-version (push) Successful in 14s
Main CI / Build (push) Failing after 34s
validate incompatiblity with legacy filters
2026-06-02 09:42:57 +08:00
Lyndon-Li 74ffe25cbe add cbt service parameters to node-agent-config
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-06-01 14:43:43 +08:00
Lyndon-Li e4ecf26b33 add backup exposer for block data mover
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-29 11:44:25 +08:00
lyndon-li 2863f0df48 Merge branch 'main' into block-data-mover-backup-expose 2026-05-28 17:29:39 +08:00
Lyndon-Li cdf3b9ffaa add backup exposer for block data mover
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-28 16:13:09 +08:00
lyndon-li 89be6c01df Merge pull request #9853 from Lyndon-Li/incremental-aware-object-write
Run the E2E test on kind / get-go-version (push) Failing after 58s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / get-go-version (push) Successful in 12s
Main CI / Build (push) Failing after 29s
Close stale issues and PRs / stale (push) Successful in 12s
Trivy Nightly Scan / Trivy nightly scan (velero, main) (push) Failing after 1m50s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-aws, main) (push) Failing after 1m23s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-gcp, main) (push) Failing after 1m20s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-microsoft-azure, main) (push) Failing after 1m20s
Incremental aware object write
2026-05-28 14:55:36 +08:00
Lyndon-Li 0a7e5d600b remove restic command package
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-28 14:41:54 +08:00
Lyndon-Li 44eaea8faf incremental aware object writer - write
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-28 14:30:11 +08:00
Xun Jiang 8bca779270 Implement the CBT service.
* Update go.mod
* Init CBT service in velero data-mover backup/restore CLI.
* Call exeternal-snapshot-metadata's iterator library code to implement the CBT.

Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-05-27 14:59:16 +08:00
Adam Zhang b29185a62d validate incompatibility with legacy filters
Legacy filters should not be co-exist with new filters defined in
resource policies,
- ClusterScopedFilterPolicy
- NamespacedFilterPolicy

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

add test cases to cover positive scenario

add test case to cover the scenario that backup can
complete successfully with namespacedFilterPolicies
and clusterScopedFilterPolicy.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-05-23 12:39:10 +08:00
lyndon-li 57c4c6fc99 Merge branch 'main' into incremental-aware-object-writer 2026-05-22 17:32:49 +08:00
Lyndon-Li 596e774582 add incremental aware object writer
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-22 16:36:41 +08:00
Lyndon-Li 219975bee0 Merge branch 'main' into incremental-aware-object-writer 2026-05-22 15:43:45 +08:00
lyndon-li 3e88666872 Merge branch 'main' into data-path-naming-adjustment 2026-05-22 15:22:48 +08:00
Lyndon-Li d08790534a Merge branch 'main' into data-path-naming-adjustment 2026-05-22 15:08:29 +08:00
Lyndon-Li d58139536b Merge branch 'main' into kopia-repo-snapshot-operations 2026-05-22 14:57:39 +08:00
lyndon-li 40025fbbe1 Merge pull request #9817 from Lyndon-Li/metadata-operator-for-kopia-repo
Run the E2E test on kind / get-go-version (push) Failing after 1m0s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / get-go-version (push) Successful in 12s
Main CI / Build (push) Failing after 33s
Metadata operation for kopia repo
2026-05-22 14:49:12 +08:00
lyndon-li 4dc6f2cc64 Merge pull request #9791 from christian-schlichtherle/fix/dataupload-delete-foreign-backup
Fix DataUploadDeleteAction creating CMs for foreign DataUploads
2026-05-22 14:41:44 +08:00
lyndon-li c1fc6540fb Merge pull request #9807 from Lyndon-Li/uploader-interface-fo-block-data-mover
Uploader interface for block data mover
2026-05-22 14:33:17 +08:00
Lyndon-Li 53f25cde2b data path naming adjustment for block data mover
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-22 14:32:37 +08:00
Lyndon-Li 205ca71588 kopia repo snapshot operations
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-22 06:26:40 +00:00
Lyndon-Li 9f0194d8fe Uploader interface fo block data mover
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-05-22 12:26:00 +08:00
Christian Schlichtherle 1e1eb0b4ec Merge branch 'main' into fix/dataupload-delete-foreign-backup 2026-05-21 11:53:20 +02:00
Christian Schlichtherle 2f19c3158b Also skip snapshot-info CM when DataUpload has no owner label
Per review feedback on #9791, the previous revision still let a
DataUpload with an empty velero.io/backup-name label fall through to
genConfigmap, creating a ConfigMap that deleteMovedSnapshots can never
match back to a snapshot. The CM is useless and only adds etcd churn.

Treat the missing-label case the same way as the foreign-owner case:
warn and skip the ConfigMap creation. Use a distinct warn message so
operators can tell the two misconfiguration classes apart in logs
(missing-label vs. owner mismatch from a captured velero namespace).

Test for the missing-label case is updated to assert no ConfigMap is
created and a warn is emitted. The warn assertion is generalized to
match the per-case message substring instead of a fixed string.

Signed-off-by: Christian Schlichtherle <christian@schlichtherle.de>
2026-05-21 11:50:21 +02:00
Adam Zhang b0e72333a0 extend backup resource policy
- added ClusterScopedFilterPolicy/NamespacedFilterPolicy
- added run time data structure, ResolvedResourceFilter and ResolvedNamespaceFilter

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-05-21 15:36:51 +08:00