- Propagate Medusa process exit code in k8s docker-entrypoint (#806) (@c3-clement)
- Do not install docker-compose in release-debian CI step (#801) (@rzvoncek)
- Do not set storage class for GCP (it's not supported anyway) (#800) (@rzvoncek)
- Fix backup man future registration and BackupStatus computation of the node backup state (#799) (@adejanovski)
- Bump urllib3 from 1.26.18 to 1.26.19 (#784) (@dependabot)
- Ignore blank likes in host_list file (#761) (@VenkataNaladala94)
- Allow specifying storage classes (#777) (@maburadeh, @adejanovski, @rzvoncek)
- Bump azure-identity from 1.14.0 to 1.16.1 (#776) (@dependabot)
- Adding support to build images for multiple architectures (#760) (@EmanuelSanchez, @adejanovski)
- Make object store read timeout configurable (#763) (@rzvoncek)
- Fix a bug where 'None' got into the path prefix we actually list with (#770) (@rzvoncek)
- Prevent gRRPC's BackupStatus from canceling pending futures (#745) (@rzvoncek)
- Fix to enable the creation of backups when a backup name is not provided (#758) (@VenkataNaladala94)
- Add bin/medusa-wrapper to package's installed scripts (#738) (@rzvoncek)
- Bump aiohttp from 3.9.2 to 3.9.4 (#750) (@dependabot)
- Bump dnspython from 2.4.2 to 2.6.1 (#748) (@dependabot)
- Restart the Medusa container when the config is updated (#731) (@rzvoncek)
- Bump idna from 3.6 to 3.7 (#747) (@dependabot)
- Add a retry annotation to list_blobs (#744) (@rzvoncek)
- Fix CI to pre-install Poetry when publishing to pipy (#733) (@rzvoncek)
- Bump wheel from 0.32.3 to 0.38.1 (#726) (@dependabot)
- Bump cryptography from 42.0.2 to 42.0.4 (#727) (@dependabot)
- Change is_open function's log level messages from error to debug. (#722) (@philipfischbacher)
- Re-upload files if they are missing in storage (#716) (@rzvoncek)
- Fix GetBackupStatus endpoint on a fresh gRPC server (#730) (@rzvoncek)
- Update GRPC_HEALTH_PROBE_VERSION to version 0.4.25 (#724) (@AlexsandroRotundo)
- Update dependecies to resolve security vulnerabilities (#717) (@rzvoncek)
- Make grpc's AsynBackup truly Async (#720) (@rzvoncek)
- Switch to Poetry for dependency and build management (#679) (@rzvoncek)
- Disable verification of server TLS certificates for mgmt-api (#715) (@burmanm)
- Add mtls to mgmt api connection (#714) (@burmanm)
- Bump cryptography, pyOpenSSL and requests versions (#711) (@rzvoncek)
- Drop Python 3.7 support (#711) (@rzvoncek)
- [Storage] Make Azure Storage use big upload chunks by default (#708) (@rzvoncek)
- Prevent recursive DSE snapshots (#704) (@rzvoncek)
- Allow enabling/disabling SSL certificate verification (#701) (@rzvoncek)
- Support AWS IAM roles as authentication method (#691) (@JBOClara)
- Support backups of DSE with Search (#693) (@rzvoncek)
- Expose sum of backup object count and size via gRPC methods (#686) (@rzvoncek)
- Make gRPC Service's BackupStatus return a node backup (#681) (@rzvoncek)
- [gRPC] Add GetBackup() endpoint (#684) (@rzvoncek)
- [Azure Storage] Honor host/port from config (#685) (@rzvoncek)
- Pin click-aliases dependency (#678) (@rzvoncek)
- [S3 Storage] Use boto's connection pool so transfers are trully parallel (#675) (@rzvoncek)
- Add gRPC config values to configure max send and max receive sizes (#674) (@burmanm)
- [Local Storage] Prevent OOM errors by processing files by chunks (#671) (@rzvoncek)
- Add check for free space before downloading a backup (#663 (@rzvoncek)
- [gRPC] Fix how we read the missing nodes in the gRPC server (#662) (@rzvoncek)
- [Storage] Paginate listing objects where needed (#658) (@rzvoncek)
- re-enable docker push on releases (@adejanovski)
- [S3 Storage] Obey throughput limit configuration (#647) (@rzvoncek)
- Upgrade docker image to ubuntu 22.04 (#643) (@adejanovski)
- [Storage] Consolidate storage implementations + drop libcloud dependency (#640) (@rzvoncek)
- [Storage] Replace Azure CLI with python SDK (#638) (@rzvoncek)
- [Storage] Replace gsutil with an aio library (#631) (@rzvoncek)
- Use Boto3 for S3 communications (#630) (@adejanovski)
- purge decommissioned nodes backups (#603) (@RachanKaur)
- Fix reported time in seconds in metrics when backup are >24h (#608) (@Skunnyk)
- #619 added check for bucket name validation (#619) (@RachanKaur)
- #601 Use docker buildx for building multi arch images (#601) (@adejanovski)
- #596 Added --expected-size in AwsCli file upload cmd command. (#596) (@RachanKaur)
- #597 Skip 0-sized blobs when listing storage. Fixes #595. (#597) (@rzvoncek)
- Ignore Statistics.db files as they can be rewritten at runtime and break verify (#587) (@VenkataNaladala94)
- Read the restore mapping from an env variable in k8s restore mode (#592) (@adejanovski)
- Upgrade cassandra-driver version (#582) (@azarnovdaniil)
- Switch GHA runners to Ubuntu 20.04 (#578) (@adejanovski)
- Correct clean_path execution in restore_node_sstableloader function. (#573) (@cmvelo)
- Concurrent calls of set_upload_bandwidth cause duplication in ".aws/config" (#571) (@mohammad-aburadeh)
- enable sourcing environment file within wrapper (#536) (@rtib)
- upload empty files with az cli command (#535) (@WentingWu666666)
- improve ipv6 compatibility (#562) (@tom-code)
- [k8s] supporting k8s-style secrets stored in a folder (#552) (@ufoot)
- Support for specifying KMS key for encrypting backups server-side on S3 (@justinmir)
- Rack aware cluster restore (@anclrii)
- Remove --validate-content flag on azcli uploads (@adejanovski)
- Disable dependency checks when running in Kubernetes (@adejanovski)
- Enable overwriting blobs on retries and remove md5 hash computation on azcli uploads (@adejanovski)
- fix purge confusion when nodes have the same name prefix (@adejanovski)
- Add MEDUSA_TMP_DIR env variable for setting the tmp directory in k8s mode (@adejanovski)
- Fix a crash when restoring materialized views (#471) (@Dutchy-)
- Invoke sstableloader with the transport port that is specified in the cassandra config (@Dutchy-)
- Add dependecie libraries (@andre-prata)
- Support python 3.10 (#469) (@andyfoston)
- Fix debian Focal builds (#475) (@andyfoston)
- Allow overriding resolve_ip_addresses with an env variable (@adejanovski)
- Fix restore in K8ssandra with GHA runners (@adejanovski)
- Allow remote restore in Kubernetes (@adejanovski)
- Build medusa cli in docker files (#460) (@Dutchy-)
- remove GCS dependency group (@maxbrunet)
- Fix medusa delete-backup fqdn (@atallahade)
- refactor: invoke CLIs as Python modules (#453) (@maxbrunet)
- Remove plaintext passwords in config (@ossarga)
- storage/s3: Use botocore credentials chain (@maxbrunet)
- Set TTL for storage connections (@ivanmp91)
- Add a datadog statsd monitoring backend (@ajmaidak)
- Restrict Azure dependency version to fix breakage (@adejanovski)
- Sanitize fqdns for kubernetes deployments (@adejanovski)
- Re introduce k8s restore file (@adejanovski)
- Fix debian package build with python 3.9 (@Skunnyk)
- gRPC backup and status modifications to support async mode (#386) (@jeffbanks)
- Use cassandra native_port for cluster connection (#430) (@ajmaidak)
- Proposal to add the Docker hub URI to the README (@a-nldisr)
- Fix backup deletion with incomplete backups (@atallahade)
- Update example.ini from docs (@elsmorian)
- Remove use of exec for containerized restore operations (@adejanovski)
- fix aws imdsv2 setting (@optplx)
- Use the aws_session_token setting of the aws profile (@atallahade)
- make medusa compatible with imdsv2 on AWS (@optplx)
- Fix required version for Click package (@ivanmp91)
- Fix corrupt backups when tables have 2i (@adejanovski)
- Make Azure requirements coherent with the Docker image (@adejanovski)
- Add missing deps for Azure-cli in the Docker image (@adejanovski)
- Make sudo switchable when Kubernetes mode is disabled (@rhardouin)
- Add support for Azure backend in docker image (@adutra)
- Fossa Integration (@jdonenine)
- Set a gc grace period on backup files to prevent premature purge while backup is running (@adejanovski)
- Health check updates for encrypted connections (@jeffbanks)
- Use a datetime as default backup name for backup-cluster (@optplx)
- Add seed_target for backup-cluster (@optplx)
- Add a --version option (@optplx)
- Use custom config file when restoring data (@rhardouin)
- Fix hostname_resolver.resolve_fqdn when resolve_ip_addresses is False (@optplx)
- Support ssh with public certificates (@optplx)
- Add exponential delays in retries for S3 libcloud uploads and downloads (@ivanmp91)
- Ensure each setting can be overridden (@rhardouin)
- Add retries for Azure to remove test flakiness (@adejanovski)
- Publish debian packages to Cloudsmith (@adejanovski)
- Updated to support python 3.9 (@dmitry-saprykin)
- Use python 3.9 in CI (@adejanovski)
- Upgrade cassandra driver and remove protocol V4 enforcement (@adejanovski)
- Fix S3 compatible backend uploads when no region is specified (@adejanovski)
- Force int type for ports to the C* object (@ivanmp91)
- add handler for sigterm and use exec to run server.py script (@jsanda)
- Bypass the restore in GRPC/k8s mode if the backup doesn't exist (@adejanovski)
- Fix deprecation warnings (@rhardouin)
- Disable md5 comparisons during backups by default (@mkcello96)
- Improve backup success rate by adding retries on single file downloads/uploads (@ivanmp91)
- If running in Kubernetes, replace tokens in not in_place case and disable boostrap (@burmanm)
- Add BaseS3StorageDriver that allows defining the region and pass the information to that driver. Also, remove unused ibm driver (@burmanm)
- Fix MinIO support with unsecured access and add integration tests (@adejanovski)
- Build and publish Docker image during releases (@adejanovski)
- Force using protocol v4 to maintain compatibility with 4.0 (@adejanovski)
- Fix region replacement in the S3 storage backend (@adejanovski)
- Include storage prefix during file purge process (@ivanmp91)
- Swap to cassandra user to avoid chown issues (@burmanm)
- Pin cryptography to 3.3.2 to avoid install failing on missing Rust req (@adejanovski)
- Fix home/medusa directory with correct rights (@burmanm)
- Use multi-stage building in the Dockerfile to reduce image size (@burmanm)
- Use cassandra 999 as gid for the medusa user, and change medusa user to id 1001 (@burmanm)
- Run as non-root (@burmanm)
- Add s3_compatible storage option for all S3 compatible storage targets (@burmanm)
- Azure fixes - add configurable host, add MD5 for large files, support multi-part in differential backups
- Update TLS version
- Remove custom storage port for integration tests (@adejanovski)
- Unthrottle downloads for S3 and IBM storage backends to speed up restores (@adejanovski)
- Backup and DeleteBackup did not return the correct error code in case of Exception (@burmanm)
- Allow to set the CQL user/pass through env variables (@adejanovski)
- Replace the pycrypto dependency with pycryptodome (@deniszh)
### 0.8.1 (2021/01/07 14:50 +00:00)
- Add missing dependencies for Libcloud 3.3.0 and pin Libcloud dependency to specific versions (@adejanovski)
- Add Azure blob storage support (@ilhanadiyaman)
- Ignore all peer tables, even the v2 ones (@rzvoncek)
- Allow to download only a set of keyspaces/tables (@masterzen)
- Build ubuntu package for focal 20.04 (@masterzen)
- debian: Add missing build dependency for python3-venv (@ecsv)
- Fix Xenial builds by downloading dh-virtualenv v1.0 directly instead of using a repo (@adejanovski)
- Add gRPC service (@emerkle826)
- Add backup-cluster command, decouple snapshots from upload, allow parallelism control (@arodrime)
- Add support for IBM Cloud object storage (@adejanovski)
- Normalized resolve_ip_addresses value (@dmitry-saprykin)
- Fixing gsutil upload/download. Divide file list into chunks. (@house-of-vanity)
- Add wheel package to requirements.txt to be able to perform offline installation (@julienlau)
- [gcs] Compare the same type when checking for process count (@rzvoncek)
- [gcs] Use 'gsutil -m' only if concurrent_transfers > 1 (@rzvoncek)
- (#201) Improved debian packaging (@masterzen)
- [tox] Stop running against python 3.5, but do so for 3.7 & 3.8 instead (@rzvoncek)
- Tolerate custom seed providers in C* yaml (@rzvoncek)
- Honor concurrent_transfers in GCP storage. Fixes #103 (@rzvoncek)
- Pin ssh2-python version to 0.19.0 (@arodrime)
- Enable multi Cassandra version integration tests (@adejanovski)
- Remove nc (netcat) dependency, use python socket instead (@arodrime)
- Avoid double purge (through count + age) of the same backup (@arodrime)
- Add a timeout for nc checks - node_up? (@arodrime)
- Do not rely on nc command output, use returncode instead (@arodrime)
- Restore node should be done in place by default (@adejanovski)
- Use the service command as default to start Cassandra (@adejanovski)
- Add a setting to avoid ip addresses from being resolved to hostnames (@adejanovski)
- Do not delete cleanup and saved_caches folders (@arodrime)
- fixing empty folder issue (@arodrime)
- specify resotre specific keyspaces/tables usage (@arodrime)
- Keep system keyspaces when user specifies ks/tables (@arodrime)
- Add wait for node shutdown. Fix healtcheck config. Fixes #72 (@rzvoncek)
- Enforce tokens by modifying cassandra.yaml instead of env vars (@adejanovski)
- Use the local fqdn as seed target if it's not provided (@adejanovski)
- Simplify the checks for whether the seed_target or if the host_list is set. (@adejanovski)
- Overwrite auth by default (@adejanovski)
- Compute in-place based on source/target node list. (@adejanovski)
- Move question about keeping auth to a more appropriate location to avoid clashing with in place computation (@adejanovski)
- Fix --keep-auth flag issue (@adejanovski)
- Move digest computation to storage implementations. Fixes #123 (@rzvoncek)
- Resolve FQDN of the ip addresses provided in the host list file (@adejanovski)
- Fix restore infinite loop by using nc instead of remote nodetool invocation (@adejanovski)
- Fix debian packaging which broke due to gevent not building anymore. (@adejanovski)
- Make 1st differential backup upload all files, even if a full one exists. Fixes 108 (@rzvoncek)
- Add ini option to enable -ssl parameter for nodetool (@ANeumann82)
- Add S3 region selector for S3 rgw (@mclpfr)
- Disable checksum comparisons for the local storage provider. (@adejanovski)
- Enable SSL Authentication for Medusa to access Cassandra SSL Clusters (@SINDHUJA21)
- Local and s3 RGW backends now use streams for both uploads and downloads. (@nicholasamorim)
- fix fqdn not honored in config file (@chebelom)
- fix medusa download command not working due to missing parameter (@chebelom)
- medusa get_last_complete_cluster_backup explodes if no complete cluster backup exists (@chebelom)
- Add a delete-backup command (@arodrime)
- Allow awscli binary path to be specified (@bishoprunout)
- Add ssh port info to Readme.md and medusa-example.ini (@alvaropalmeirao)
- Improve S3 connection performance when IAM roles aren't used (@adejanovski)
- Add customized port to ssh section (@alvaropalmeirao)
- Fix the usage of prefix for multi tenant buckets (@adejanovski)
- Fix sstableloader calls for clusters without authentication (@adejanovski)
- Adding support for Env Credentials and IAM Role (@alvaropalmeirao)
- add aws regions by bumping libcloud (@arodrime)
- Publish debian packages (@arodrime/@adejanovski)
- Fixed the path to the file where S3 is configured for integration tests. (@pumpkiny9120)
- Use awscli for large files downloads (@adejanovski)
- Fixing issue #54 - permission denied during build (@arodrime)
- Pass temp_dir to restore-node command from restore-cluster command (@jfharden)
- Add offline installation informations (@adejanovski)
- Set nodetool parameters (@bhagenbourger)
- Instead of failing on nodetool clearsnapshot, just log a warning message as the backup is essentially finished. (@nicholasamorim)
- Add Gitter badge (@gitter-badger)
- Added support to Ceph Object Gateway, an API compatible with S3. Uses s3_rgw libcloud driver. (@nicholasamorim)
- Added logging section to configuration which provides control over logging-to-file (@nicholasamorim)
- Fix compatibility with python3.5
- Fix differential backups re-uploading files in S3 (@adejanovski)
- Use multi part uploads for S3 (@adejanovski)
- Replacing custom ssh management by parallel-ssh lib (@arodrime)
- Parse blob names with regexpes. Fixes #12 (@rzvoncek)
- requirements require minimum versions, not exact versions (@michaelsembwever)
- Added nose & flake8 libs to test libraries (@maciej-lasyk)
- Fix contact point address discovery when listen_address is missing from cassandra.yaml (@adejanovski)
- use correct terminology of 'IAM Policy' rather than 'IAM Strategy' (@michaelsembwever)
- Support backups of SIs (@rzvoncek)
- Adjust installation procedure in README (@adejanovski)
- Separate build and publish workflows. (@adejanovski)
- Fix release publishing step (@adejanovski)
- Bump pyyaml from 3.10 to 5.1 (@dependabot[bot])
- Publish releases to pypi (@adejanovski)
- Cleanup ci workflow (@adejanovski)
- Add Github actions workflow (@adejanovski)
- Change default Cassandra stop command (@adejanovski)
- Remove 'incremental' in tests and docs (@rzvoncek)
- Switch incremental to differential. (@adejanovski)
- Move to incremental by default (@adejanovski)
- Update paramiko dependency to v2.6.0 (@arodrime)
- Fix hostname being used instead of fqdn (@adejanovski)
- Initial commit (@adejanovski)