* feat: Add Google Drive storage backend with custom endpoint support
- Implement Google Drive storage backend using service account authentication
- Add support for custom Google Drive API endpoints for testing
- Include comprehensive test setup with mock services
- Add configuration options for Google Drive credentials and folder ID
- Update documentation with Google Drive configuration examples
* remove debug messages
* Improve tests
* Add mounting tip on documentation
* Replace deprecated lib usage
* Fix identation
* Fix googledrive tests
* Fix googledrive support for _FILE credentials
* Remove googledrive test unecessary echos
GPG is known to have usability issues and is generally cumbersome to
use. age [0] is a modern alternative to GPG that is designed by a
cryptographer that has worked and continues to work on Golang's crypto
packages for years.
Allowing age to be used to encrypt backups dramatically simplifies the
backup process.
[0]: https://age-encryption.org/
* Add "none" compression type
* Add "none" compression to docs
* Use passThroughWriteCloser for "none" compression
* Add test for none compression
---------
Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
* Extend confd test case to test for env var propagation
* Env vars set in conf.d files are expected to propagate
* Lock needs to be acquired when instantiating script
* Hoist control for exiting script a level up
* Do not accidentally nil out errors
* Log when running schedule
* Remove duplicate log line
* Warn on cron schedule that will never run
* Move cron scheduling inside application
* Make envvar a fallback and check for errors
* Panic significantly less
* propagate error out of runBackup
* Add structured logging
* FIx error propagation to exit
* Enable the new scheduler by default
* Review fixes
* Added docs and better error propagation
* Do not await containers when there was an error on scaling
* Add test case for usage with socket proxy
* Add documentation on required permissions for docker-socket-proxy
* Add full list of used Docker APIs to doc
* CONTAINER_START and CONTAINER_STOP is not needed
* Query for labeled services as well
* Try scaling down services
* Scale services back up
* Use progress tool from Docker CLI
* In test, label both services
* Clean up error and log messages
* Document scale-up/down approach in docs
* Downgrade Docker CLI to match client
* Document services stats
* Do not rely on PreviousSpec for storing desired replica count
* Log warnings from Docker when updating services
* Check whether container and service labels collide
* Document script behavior on label collision
* Add additional check if all containers have been removed
* Scale services concurrently
* Move docker interaction code into own file
* Factor out code for service updating
* Time out after five minutes of not reaching desired container count
* Inline handling of in-swarm container level restart
* Timer is more suitable for timeout race
* Timeout when scaling down services should be configurable
* Choose better filename
* Reflect changes in naming
* Rename and deprecate BACKUP_STOP_CONTAINER_LABEL
* Improve logging
* Further simplify logging
* Replace envconfig with env
* Adjust config options and processing
* Added _FILE variant for all password vars.
* Try pathenvconfig
* Revert everything so far
* Use our fork of envconfig with custom lookup
* Use our fork of envconfig with custom lookup
* Test compose timeout option
* Remove secret resolving and specific _FILE config
* Fix timing issue in swarm tests
* Revert "Test compose timeout option"
This reverts commit ab50b21748, reversing
changes made to 0282514b2b.
Revert "Test compose timeout option"
This reverts commit 0282514b2b.
* Use offen/envconfig v1.5.0
* Add info about _FILE in README
* Value > File. Panic on file error. Panic on duplicate presence.
* Test panic on duplicate vars and panic on file error.
* Skip backends while pruning
* Add pruning test step and silence download log for better readability
* Add test cases for pruning in all backends
Also add -q or --quiet-pull to all tests.
* Add test case for skipping backends while pruning
* Adjusted test logging, generate new test spec file
* Gitignore for temp test file
* Fix lint warnings and std lib deprecations
* Replace deprecated std lib with maintained drop-in replacement fork
Backwartds compatible with original package and suggested by std lib due to security and stability issues.
* OAuth2 is now a direct dependency due to Dropbox
* Undo change
* Revert "Replace deprecated std lib with maintained drop-in replacement fork"
This reverts commit 2887bd409f.
* Update channel handling
* Add linter for PRs
* Rename CI, fetch all issues, add govet
* Print context in log field instead of prepending to message
* Log messages on pruning do not need a description anymore
* Remove redundant information from logs and errors