Skip to content

Conversation

@mayankagg9722
Copy link
Contributor

@mayankagg9722 mayankagg9722 commented Nov 8, 2024

Summary of the changes

Currently Velero Resource policies are only supporting "Driver" to be filtered in CSI volume conditions

We are adding support for filtering Persistent Volumes (PVs) based on additional VolumeAttributes properties under CSI PVs.

Use Case:
Customers asked to back up AFS (Azure file shares) and want to only backup SMB type of file share volumes and not NFS file share volumes.

How Provisioning happens:
Define the Storage class with protocol: nfs under storage class parameters to provision CSI NFS Azure File Shares.

Link: https://learn.microsoft.com/en-us/azure/aks/azure-files-csi#nfs-file-shares

The same protocol:nfs property will be floated to the PersistentVolumes as part of CSI VolumeAttributes.

Constraints with current Velero Resource Policies:
As the current resource policies only offer to filter based on the driver type, we are bringing an additional filter VolumeAttributes to extend and allow customer to skip/snapshot only certain types of persistent volumes for the same driver.

Sample AFS NFS PV attached below:

image

Please indicate you've done the following:

Signed-off-by: mayaggar <[email protected]>
@mayankagg9722 mayankagg9722 marked this pull request as ready for review November 8, 2024 10:43
@ywk253100
Copy link
Contributor

@mayankagg9722 Thank you for the contribution!
Before starting review the code changes, could you create a simple design about your proposed improvement for the resource policy so that the maintainers can better understand the requirement and the approach?

@mayankagg9722
Copy link
Contributor Author

@mayankagg9722 Thank you for the contribution! Before starting review the code changes, could you create a simple design about your proposed improvement for the resource policy so that the maintainers can better understand the requirement and the approach?

Thanks @ywk253100, I have added both the description about the proposal as well as the use case in the Summary section above, Can you please go through it once and let me know in case any more details are required?

Signed-off-by: mayaggar <[email protected]>
@mayankagg9722
Copy link
Contributor Author

Hello @ywk253100, please check I have added the design spec now in this PR. Thanks!
306cc20

@shubham-pampattiwar
Copy link
Collaborator

@mayankagg9722 Would you be able to work on extending the Volume Policy criteria for labelSelector and names as well ?
we have an issue targeted for 1.16: #8256
It would be great if you could combine the current PRs proposal as well as #8256 and propose a design, followed by implementation. Let us know your thoughts on this. Thank you !

@kaovilai
Copy link
Collaborator

@shubham-pampattiwar are you suggesting a new PR for a combined design?
leaving this PR to be implementation only for one or both issues?

Signed-off-by: mayaggar <[email protected]>
@mayankagg9722
Copy link
Contributor Author

@shubham-pampattiwar thanks for tagging your issue, I will definitely try to pick this up post this. Currently only prioritizing to complete this PR for adding one more CSI filter. Thanks!

@codecov
Copy link

codecov bot commented Nov 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 59.00%. Comparing base (32a8c62) to head (5cf79aa).
Report is 45 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8383      +/-   ##
==========================================
+ Coverage   58.95%   59.00%   +0.05%     
==========================================
  Files         367      368       +1     
  Lines       38902    39015     +113     
==========================================
+ Hits        22933    23022      +89     
- Misses      14507    14530      +23     
- Partials     1462     1463       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Co-authored-by: Tiger Kaovilai <[email protected]>
Signed-off-by: Mayank Aggarwal <[email protected]>
kaovilai
kaovilai previously approved these changes Nov 21, 2024
@ywk253100
Copy link
Contributor

@mayankagg9722 Could you check the CI failure?

Signed-off-by: mayaggar <[email protected]>
@mayankagg9722
Copy link
Contributor Author

@ywk253100 & @kaovilai can you please approve? All the checks have passed now. Thanks!

Copy link
Contributor

@ywk253100 ywk253100 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@anshulahuja98 anshulahuja98 merged commit 074f265 into vmware-tanzu:main Nov 28, 2024
38 checks passed
@kaovilai
Copy link
Collaborator

kaovilai commented Dec 9, 2024

https://velero.io/docs/v1.15/resource-filtering/#supported-volumepolicy-actions should be updated from this PR as well.

MaloLelandais pushed a commit to MaloLelandais/velero that referenced this pull request Jul 28, 2025
…8383)

* Adding VolumeAttributes validations in resource policy

Signed-off-by: mayaggar <[email protected]>

* adding tests

Signed-off-by: mayaggar <[email protected]>

* adding tests

Signed-off-by: mayaggar <[email protected]>

* adding tests

Signed-off-by: mayaggar <[email protected]>

* added changelog

Signed-off-by: mayaggar <[email protected]>

* changelog

Signed-off-by: mayaggar <[email protected]>

* design spec

Signed-off-by: mayaggar <[email protected]>

* lint fixes

Signed-off-by: mayaggar <[email protected]>

* doc update

Signed-off-by: mayaggar <[email protected]>

* doc update

Signed-off-by: mayaggar <[email protected]>

* Update internal/resourcepolicies/volume_resources_validator.go

Co-authored-by: Tiger Kaovilai <[email protected]>
Signed-off-by: Mayank Aggarwal <[email protected]>

* doc name update

Signed-off-by: mayaggar <[email protected]>

---------

Signed-off-by: mayaggar <[email protected]>
Signed-off-by: Mayank Aggarwal <[email protected]>
Co-authored-by: Tiger Kaovilai <[email protected]>
@MaloLelandais MaloLelandais mentioned this pull request Jul 28, 2025
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants