Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Adding Support For VolumeAttributes in Resource Policy #8383

Merged
merged 14 commits into from
Nov 28, 2024

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
Member

@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!

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
Member

kaovilai commented Dec 9, 2024

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

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