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

Add immutability supporting limitation in documents. #6474

Merged
merged 1 commit into from
Jul 21, 2023

Conversation

blackpiglet
Copy link
Contributor

@blackpiglet blackpiglet commented Jul 7, 2023

Thank you for contributing to Velero!

Please add a summary of your change

Does your change fix a particular issue?

Fixes #(issue)

Please indicate you've done the following:

  • Accepted the DCO. Commits without the DCO will delay acceptance.
  • Created a changelog file or added /kind changelog-not-required as a comment on this pull request.
  • Updated the corresponding documentation in site/content/docs/main.

@blackpiglet blackpiglet added the kind/changelog-not-required PR does not require a user changelog. Often for docs, website, or build changes label Jul 7, 2023
@codecov-commenter
Copy link

codecov-commenter commented Jul 7, 2023

Codecov Report

Merging #6474 (67b14c8) into main (7deae4c) will decrease coverage by 0.38%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #6474      +/-   ##
==========================================
- Coverage   60.18%   59.81%   -0.38%     
==========================================
  Files         229      236       +7     
  Lines       24219    25088     +869     
==========================================
+ Hits        14577    15007     +430     
- Misses       8634     9041     +407     
- Partials     1008     1040      +32     

see 27 files with indirect coverage changes

@blackpiglet blackpiglet force-pushed the 6422_doc branch 5 times, most recently from 3e9875e to 8a670d3 Compare July 8, 2023 02:06
@blackpiglet
Copy link
Contributor Author

This address the need to document the data immutability limitation in issue #6422.

@blackpiglet blackpiglet marked this pull request as ready for review July 10, 2023 02:28
@blackpiglet
Copy link
Contributor Author

@draghuram
Could you help PTAL?

@blackpiglet blackpiglet changed the title Add RetentionPolicy supporting limitation in documents. Add immutability supporting limitation in documents. Jul 11, 2023
danfengliu
danfengliu previously approved these changes Jul 11, 2023
@draghuram
Copy link
Contributor

Sorry for the delay, will take a look.

@draghuram
Copy link
Contributor

I made some changes to the text. Please feel free to make more changes as you see fit. It is a very difficult topic to document but it is better to have something and then we can improve it.

My version

Starting from 1.11, Velero's backups may not work as expected when the target object storage has some kind of an "immutability" option configured. These options are known by different names (see links below for some examples). The main reason is that Velero first saves the state of a backup as Finalizing and then checks whether there are any async operations in progress. If there are, it needs to wait for all of them to be finished before moving the backup state to Complete. If there are no async operations, the state is moved to Complete right away. In either case, Velero needs to modify the metadata in object storage and that will not be possible if some kind of immutability is configured on the object storage.

Note that backups may still work in some cases depending on specific provider and configuration.

  • For AWS S3 service, backups work because S3's object lock only applies to versioned buckets and the object data can still be updated as the new version. But when backups are deleted, old versions of the objects will not be deleted.
  • Azure Storage Blob supports both versioned-level immutability and container-level immutability. For the versioned-level scenario, data immutability can still work in Velero, but the container-level cannot.
  • GCP Cloud storage policy only supports bucket-level immutability, so there is no way to make it work in the GCP environment.

The following are the links to cloud providers' documentation in this regard:

@blackpiglet
Copy link
Contributor Author

blackpiglet commented Jul 17, 2023

@draghuram
Thanks a lot! That looks better.
May just need to add some information from Velero's design perspective.

@draghuram
Copy link
Contributor

Looks good.

@blackpiglet blackpiglet merged commit 7c80939 into vmware-tanzu:main Jul 21, 2023
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation kind/changelog-not-required PR does not require a user changelog. Often for docs, website, or build changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants