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

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

mayankagg9722
Copy link

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

@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
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 58.97%. Comparing base (32a8c62) to head (a9a568e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8383      +/-   ##
==========================================
+ Coverage   58.95%   58.97%   +0.02%     
==========================================
  Files         367      367              
  Lines       38902    38917      +15     
==========================================
+ Hits        22933    22951      +18     
+ Misses      14507    14505       -2     
+ Partials     1462     1461       -1     

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

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.

4 participants