Tiger Kaovilai
65eaceee0b
Refactor cleanupStaleVeleroLabels to use constants for label keys
...
Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com >
2025-12-19 20:17:47 +07:00
Joseph
2d8a87fec4
Add condition to catch backup.velero.io labels
...
Signed-off-by: Joseph <jvaikath@redhat.com >
2025-12-19 20:17:46 +07:00
Joseph
eae5bea469
Remove backup.velero.io/must-include-additional-items label
...
Signed-off-by: Joseph <jvaikath@redhat.com >
2025-12-19 20:17:46 +07:00
Joseph
db2193c53a
Make update
...
Signed-off-by: Joseph <jvaikath@redhat.com >
2025-12-19 20:17:46 +07:00
Joseph
643dd784ea
Refactor into func and add tests
...
Signed-off-by: Joseph <jvaikath@redhat.com >
2025-12-19 20:17:46 +07:00
Joseph
bfb431fcdf
Clean up stale labels before backing up PVC
...
Signed-off-by: Joseph <jvaikath@redhat.com >
2025-12-19 20:17:46 +07:00
Shubham Pampattiwar
b7052c2cb1
Implement lazy per-namespace PVC-to-Pod caching for plugin path
...
This commit addresses reviewer feedback on PR #9441 regarding
concurrent backup caching concerns. Key changes:
1. Added lazy per-namespace caching for the CSI PVC BIA plugin path:
- Added IsNamespaceBuilt() method to check if namespace is cached
- Added BuildCacheForNamespace() for lazy, per-namespace cache building
- Plugin builds cache incrementally as namespaces are encountered
2. Added NewVolumeHelperImplWithCache constructor for plugins:
- Accepts externally-managed PVC-to-Pod cache
- Follows pattern from PR #9226 (Scott Seago's design)
3. Plugin instance lifecycle clarification:
- Plugin instances are unique per backup (created via newPluginManager)
- Cleaned up via CleanupClients at backup completion
- No mutex or backup UID tracking needed
4. Test coverage:
- Added tests for IsNamespaceBuilt and BuildCacheForNamespace
- Added tests for NewVolumeHelperImplWithCache constructor
- Added test verifying cache usage for fs-backup determination
This maintains the O(N+M) complexity improvement from issue #9179
while addressing architectural concerns about concurrent access.
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
2025-12-16 12:28:47 -08:00
Shubham Pampattiwar
f4c4653c08
Fix linter errors: use 'any' instead of 'interface{}'
...
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
2025-12-15 14:18:05 -08:00
Shubham Pampattiwar
987edf5037
Add global VolumeHelper caching in CSI PVC BIA plugin
...
Address review feedback to have a global VolumeHelper instance per
plugin process instead of creating one on each ShouldPerformSnapshot
call.
Changes:
- Add volumeHelper, cachedForBackup, and mu fields to pvcBackupItemAction
struct for caching the VolumeHelper per backup
- Add getOrCreateVolumeHelper() method for thread-safe lazy initialization
- Update Execute() to use cached VolumeHelper via
ShouldPerformSnapshotWithVolumeHelper()
- Update filterPVCsByVolumePolicy() to accept VolumeHelper parameter
- Add ShouldPerformSnapshotWithVolumeHelper() that accepts optional
VolumeHelper for reuse across multiple calls
- Add NewVolumeHelperForBackup() factory function for BIA plugins
- Add comprehensive unit tests for both nil and non-nil VolumeHelper paths
This completes the fix for issue #9179 by ensuring the PVC-to-Pod cache
is built once per backup and reused across all PVC processing, avoiding
O(N*M) complexity.
Fixes #9179
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
2025-12-15 14:18:05 -08:00
Xun Jiang
096436507e
Remove VolumeSnapshotClass from CSI restore and deletion process.
...
Run the E2E test on kind / get-go-version (push) Failing after 1m1s
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
Remove VolumeSnapshotClass from backup sync process.
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
2025-12-11 17:56:11 +08:00
Shubham Pampattiwar
c565da2ea6
Fix linter error: use t.Context() instead of context.Background()
...
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
2025-11-18 15:58:09 -08:00
Shubham Pampattiwar
dc3da29f3e
Apply volume policies to VolumeGroupSnapshot PVC filtering
...
VolumeGroupSnapshots were querying all PVCs with matching labels
directly from the cluster without respecting volume policies. This
caused errors when labeled PVCs included both CSI and non-CSI volumes,
or volumes from different CSI drivers that were excluded by policies.
This change filters PVCs by volume policy before VGS grouping,
ensuring only PVCs that should be snapshotted are included in the
group. A warning is logged when PVCs are excluded from VGS due to
volume policy.
Fixes #9344
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
2025-11-18 15:40:30 -08:00
Xun Jiang
c84aab7f6f
Remove the WaitUntilVSCHandleIsReady from vs BIA.
...
Becasue the pvc BIA already run WaitUntilVSCHandleIsReady,
no need to do the same work in vs BIA.
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
2025-07-31 15:35:05 +08:00
Amos Mastbaum
687dcf69e7
csi pvc backup action
...
Signed-off-by: Amos Mastbaum <68001528+amastbau@users.noreply.github.com >
Update pvc_action.go
Signed-off-by: Amos Mastbaum <68001528+amastbau@users.noreply.github.com >
Update pvc_action.go
Signed-off-by: Amos Mastbaum <68001528+amastbau@users.noreply.github.com >
Adding missing test covarage + log mesasgae as suggested
Signed-off-by: Amos Mastbaum <68001528+amastbau@users.noreply.github.com >
Adding missing test covarage + log mesasgae as suggested
Signed-off-by: Amos Mastbaum <68001528+amastbau@users.noreply.github.com >
2025-07-28 14:57:02 +08:00
Xun Jiang
a61a073aea
Avoid checking the VS and VSC status in the backup finalizing phase.
...
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
2025-07-24 13:28:05 +08:00
Lyndon-Li
34f8b73507
bump up kopia to v0.21.1
...
Signed-off-by: Lyndon-Li <lyonghui@vmware.com >
2025-07-22 15:56:04 +08:00
Shubham Pampattiwar
a73a150d98
Accommodate VGS workflows in PVC CSI plugin
...
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
Add changelog file
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
make update
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
lint fix
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
add unit tests for getVSForPVC func
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
Use v1beta1 instead of v1 v1alpha1
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
go mod tidy
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
update updateVGSCreatedVS func to use retry on conflict
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
make update minor fix
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
fix ut assert
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
Address PR feedback
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
minor updates
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
remove unsused func and add todo for dep upgrades
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com >
2025-07-21 11:36:40 -07:00
Xun Jiang/Bruce Jiang
b0b5cc4236
Remove dependency with VolumeSnapshotClass in DataUpload. ( #9040 )
...
Run the E2E test on kind / build (push) Failing after 6m30s
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / Build (push) Failing after 1m0s
Close stale issues and PRs / stale (push) Successful in 19s
Trivy Nightly Scan / Trivy nightly scan (velero, main) (push) Failing after 1m40s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-aws, main) (push) Failing after 1m29s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-gcp, main) (push) Failing after 1m41s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-microsoft-azure, main) (push) Failing after 1m39s
Don't add VSClass in the additionalItems when it's empty.
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
Signed-off-by: xun.jiang <xun.jiang@broadcom.com >
2025-06-25 15:36:15 -04:00
Matthieu MOREL
07ea14962c
fix require-error rule from testifylint
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
2025-06-23 15:39:54 +00:00
Xun Jiang
1b7175394a
Skip VS and VSC not created by backup.
...
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
2025-06-07 10:51:05 +08:00
Matthieu MOREL
c6a420bd3a
chore: define common aliases for k8s packages ( #8672 )
...
Run the E2E test on kind / build (push) Failing after 6m48s
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 / Build (push) Failing after 35s
Close stale issues and PRs / stale (push) Successful in 8s
Trivy Nightly Scan / Trivy nightly scan (velero, main) (push) Failing after 1m11s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-aws, main) (push) Failing after 47s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-gcp, main) (push) Failing after 49s
Trivy Nightly Scan / Trivy nightly scan (velero-plugin-for-microsoft-azure, main) (push) Failing after 43s
* lchore: define common alias for k8s packages
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
* Update .golangci.yaml
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
* Update .golangci.yaml
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
* Update .golangci.yaml
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
---------
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
2025-04-22 06:14:47 -04:00
Xun Jiang
6b7dd12bf7
Modify VS and VSC restore actions.
...
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
2025-02-25 10:44:45 +08:00
Xun Jiang
eb77151f48
Delete VSC after backup completes.
...
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com >
2025-02-19 14:36:59 +08:00
Matthieu MOREL
cbba3bdde7
chore: enable use-any from revive
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
2025-01-17 07:58:10 +01:00
Matthieu MOREL
05765fb2fd
golangci-lint: enable int-conversion and fiximports rule of perfsprint
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
2025-01-09 22:31:29 +00:00
Scott Seago
1228b41851
Internal ItemBlockAction plugins
...
This PR implements the internal ItemBlockAction plugins needed for pod, PVC, and SA.
Signed-off-by: Scott Seago <sseago@redhat.com >
2024-08-09 12:24:55 -04:00
Matthieu MOREL
c8baaa9b11
testifylint: enable more rules ( #8024 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
2024-07-18 10:43:16 -04:00
Matthieu MOREL
35c90f1672
testifylint: enable error-nil rule ( #7670 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com >
2024-07-16 12:23:16 -04:00
Xun Jiang
c4ce6a3382
Expose the VolumeHelper to third-party plugins.
...
Signed-off-by: Xun Jiang <blackpigletbruce@gmail.com >
2024-07-03 11:16:56 +08:00
Xun Jiang
a91d2cb036
Modify the volume helper logic.
...
Signed-off-by: Xun Jiang <blackpigletbruce@gmail.com >
2024-05-23 09:57:21 +08:00
Xun Jiang
30995bcbd2
Add more UT for the CSI plugins.
...
Signed-off-by: Xun Jiang <blackpigletbruce@gmail.com >
2024-04-13 23:22:43 +08:00
Xun Jiang
59eeec268b
Update CSI document. Remove the CSI plugin verifier.
...
Signed-off-by: Xun Jiang <blackpigletbruce@gmail.com >
2024-04-12 13:51:20 +08:00
Xun Jiang
31e140919a
Merge CSI plugin code.
...
Signed-off-by: Xun Jiang <blackpigletbruce@gmail.com >
2024-04-10 14:53:29 +08:00
Xun Jiang
08c93b4145
Add actions directory for backup and restore.
...
Signed-off-by: Xun Jiang <blackpigletbruce@gmail.com >
2024-03-29 13:21:50 +08:00