Improve global-policy configrations (support for ignoreIdenticalSnapshots, neverCompress, onlyCompress, ignoreDotFiles)#23
Open
TBxy wants to merge 9 commits intoperfectra1n:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When using a
global-policy.jsonnot everything from kopia is supported.The documentation is a bit misleading in this regard.
New properties
This PR adds support for:
retention.ignoreIdenticalSnapshotsfixes Update default policy to Ignore Identical Snapshots #13compression.neverCompresscompression.onlyCompressfiles.ignoreDotFilesKopia name fallbacks
Some keys used by volsync
global-policy.jsondo use different names than a kopia configuration. The two I am aware of arecompression.compressorkeepYearlyin kopia this are
compression.compressorNamekeepAnuallyI added support for both, but in my opinion it would be better to just use the one from kopia, or is it something already used by
volsyncin other places?Reset properties
Currently if something is removed from a property (e.g. keepYearly) this is not applied anymore, which means the old value is still used. This is probably not the expected behavior?
I reset everything (usually defaults to
inherit) before applying the new policy.(See
POLICY_CLEAR_CMDandkeepXcommands)Questions
snapshot_intervalhave any effect?if [[ ${#POLICY_CMD[@]} -gt 3 ]]; then ...? Should it not run if-gt 1?kopia policy import --global --from-file=<(echo "$policy_json"). Maybe just with "known" properties?Formatter
I run the formatter with
This removed some whitespaces and stuff, I can revert that.
Tests
I run tests with this image: https://github.com/burgdev/volsync/pkgs/container/volsync
Works as expected (connected with kopia to the backup and checked the applied policies)
Further Work
There are still some open configurations not applied in
volsync, I can add them as well if you want.