Release v0.10.0
The maintainers and contributors to go-ceph are pleased to announce the v0.10.0 release. This is another great step towards making it possible to use the power of the Ceph APIs in the Go language.
For this release we'd like to highlight the new "rgw admin" package. This package can be used to access Ceph's RADOS Gateway (RGW) Operational Admin API. This is an HTTP-based API that supports bucket management, user management, and user quota management. We expect additional functions to be added in the future. This API requires the use of S3-style authentication credentials in contrast to the ceph.conf/ceph keyring/ceph keyfile authentication used by the other go-ceph sub-packages.
In addition, we've added a new "rbd admin" package. This library serves a similar role to our "cephfs admin" package - supporting administrative functions that are not a direct part of the Ceph librbd API. Currently, the package includes functions to manage mirror snapshot schedules.
We've added a number of new functions related to RBD mirroring to the rbd package.
This is the first release to officially support Ceph "pacific".
As this is a v0.x release we do not guarantee backwards compatibility with previous versions of the code. However, we aim not to disrupt existing consumers of the library and thus make an effort not to immediately implement breaking changes without very good justification. Please see the "Deprecations & Removals" section to get a sense of what you can expect to change in the future and prepare your code ahead of time. You may also want to view "Deprecations & Removals" of previous releases as they are not repeated here.
Because the rgw admin and rbd admin packages are brand new, we intend on being more lax with backwards compatibility, for these specific packages, for a release or two. While we'd prefer not to change anything, we will more readily make changes as needed because the package is still immature compared to the other sub-packages. Feedback, via our github issue tracker, about these packages are especially welcome.
New Features
-
In the cephfs package
- Add Lchown implementing ceph_lchown
-
In the rados package
- Add SetPoolFullTry implementing rados_set_osdmap_full_try (nautilus)
- Add UnsetPoolFullTry implementing rados_unset_osdmap_full_try (nautilus)
- Add SetPoolFullTry implementing rados_set_pool_full_try
- Add UnsetPoolFullTry implementing rados_unset_pool_full_try
-
In the rbd package
- Add MirrorImageStatusSummary implementing rbd_mirror_image_status_summary
- Add SetMirrorSiteName implementing rbd_mirror_site_name_set
- Add GetMirrorSiteName implementing rbd_mirror_site_name_get
- Add SetSnapshot Image method (re)implementing rbd_snap_set
- Add DeepCopy implementing rbd_deep_copy
- Add CreateMirrorPeerBootstrapToken implementing rbd_mirror_peer_bootstrap_create
- Add ImportMirrorPeerBootstrapToken implementing rbd_mirror_peer_bootstrap_import
- Add MirrorImageGlobalStatusIter implementing rbd_mirror_image_global_status_list
- Add GetMirrorUUID implementing rbd_mirror_uuid_get
-
Added new package rbd/admin
-
Added new package rgw/admin
Other
- Improve behavior when running multi-container tests with podman
- Support passing test-script entrypoint arguments to the makefile
- No longer require fuse when running the tests
- Add a devcontainer configuration for users of VSCode
- When running tests manually, default to "octopus"
- rbd: Replace complex pointer arithmetic
- rbd: Fix the argument type of the rbd_writesame call
- Add benchmarks for PtrGuard related types
- CI workflow improvements
- Other fixes and improvements