Benji

Latest version: v0.17.0

Safety actively analyzes 630566 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

0.13.0

* Fix Helm chart repo URLs because of Helm chart repostitory deprecation
(see https://helm.sh/blog/charts-repo-deprecation/ for more information)

0.12.0

* Fix type conversion bug in `benji storage-usage` command (issue 96)

0.11.0

* Fix SQL generation for `benji storage-usage` command (issue 95)

0.10.0

Notable changes:

* Helm chart changes:

* Change chart's requirements to use URL based repository references. This should help when deploying Benji via
FluxCD's helm-operator for example. (89)

* Fix rendering error when specifying a nodeSelector, node affinities or tolerations. (90)

* Use API group rbac.authorization.k8s.io/v1 for RBAC related resources

* Add new transform module `aes_256_gcm_ecc` (86)

* Add support for discovering RBD images provisioned by Ceph's CSI provisioner to the `benji-backup-pvc` script (91)

0.9.0

Notable changes:

* Sparse blocks are no longer explicitly represented in the database. This greatly speeds up the initial step
of backup creation if the backup is based on an older version, and a lot of the blocks are sparse. It also reduces
database size and speeds up database operations overall due to the reduced number of rows in the blocks table. No
database migration is necessary, but the changed representation will only apply to newly created versions.

* Implement `benji storage-usage` command. See the documentation on how the usage is calculated and its inherent
limitations.

* For the `rbd` and `rbdaio` IO modules add a feature to pass all Ceph credentials as part of the URL of the
`benji backup` command. This can also be used to pass other Ceph configuration options, and it is also possible
to override the `client_identifier` set in Benji's configuration file. This allows Benji to connect to any
Ceph cluster without setting up `/etc/ceph/ceph.conf` beforehand. See the documentation for the full URL syntax.

* `benji enforce` now skips removed or otherwise unavailable versions and continues with the removal.

* NBD server: The block cache is split up into a block cache and a copy-on-write store for changed blocks. For the
block cache a maximum size can be specified and least frequently used blocks are evicted if the cache gets full.
Some adjustments are needed to Benji's configuration due to this change. See `etc/benji.yaml` for an example.

0.8.0

Notable changes:

This release contains significant changes related to the naming, format and structure of internal and external
data representations. They derive from the experience of using Benji in the last few months and from the challenges
uncovered by the ongoing Kubernetes integration efforts. The changes have been bundled to avoid multiple metadata
version changes and migrations.

Old metadata backups and exports and old object metadata can still be read by this version of Benji. Existing databases
can be migrated to the new database structure with ``benji database-migrate``. While this process has been tested
with both PostgreSQL and SQLite it is strongly recommended to make a consistent backup of the database before
attempting the migration. The migration process requires a significant amount of time and disk space when there
are a lot of old backups in the database. The ``versions`` and ``blocks`` tables are completely recreated and the
old data is moved over. Expect the disk usage to more than double during the migration.

* Database and metadata changes:

* The version of metadata exports has changed from ``1.1.0`` to ``2.0.0``. Old exports (``1.0.0`` and ``1.1.0``) can
still be imported.

* ``snapshot_name`` in the ``versions`` table has been renamed to ``snapshot`` in the database and in metadata
exports. The long version of the corresponding command line option has also been renamed from ``--snapshot-name``
to ``--snapshot``.

* ``name`` in the ``versions`` table has been renamed to ``volume`` in the database and in metadata exports.

* ``bytes_dedup`` in the ``versions`` table has been renamed to ``bytes_deduplicated`` in the database and in
metadata exports.

* ``id`` in the ``blocks`` table has been renamed to ``idx`` in the database and in metadata exports.

* The type of ``uid`` in the ``versions`` table has been changed from integer to string. This also affects any
metadata exports. This removes the inconsistency where ``uid`` was represented as a string in some places and
as an integer in others. ``uid``s are automatically generated for new versions, but there is also the
option to set the ``uid`` of a version on backup via the new ``-u``/``--uid`` option.

* Storages are now always represented by their name. This changes the key name in metadata exports from ``storage_id``
to ``storage`` and the corresponding value is now of type string and not of type integer anymore.

* A new table ``storages`` is introduced to hold the internal mapping of storage ids to storage names. It is no
longer necessary to specify a storage id in the configuration but existing storage ids are imported from the
configuration into the database.

* Labels are now exported as a dictionaries instead of lists.

* The letter ``Z`` has been appended to the ``date`` value in metadata exports to signify the UTC timezone.

* These name changes also affect the specification of version filters on the command line and custom scripts
might need simple adjustments.

* The format of metadata exports is now more compact and has been optimized to facilitate efficient imports in a
future version of Benji by ordering the entries in a specific way.

* Object metadata changes:

* The object metadata version has been changed from ``1.0.0`` to ``2.0.0``. Benji can still read version ``1.0.0``
object metadata.

* The timestamps in the ``created`` and ``modified`` fields of the object metadata have also been augmented with
timezone information by appending a ``Z`` to the timestamp.

* The naming of automatically generated copy-on-write versions for writable NBD exports has changed.

* A workaround for a bug in various versions of ``nbd-clinet`` has been added. This bug leads to aborted NBD connections
just after the negotiation phase was completed and leaves the NBD block device unusable. With the workaround
implemented this is no longer the case.

* ``benji-k8s``: ``benji-restore-pvc`` has been converted from Bash to Python and now runs in-cluster only. To execute
it and other commands connect to the Benji maintenance pod.

* ``benji-k8s``: Rook persistent volumes provisioned by the FlexVolume provisioner are now detected by
``benji-backup-pvc`` and can be backed up with Benji. (Contributed by q3k. Thanks!)

* ``benji-k8s``: The Prometheus label ``version_name`` has been renamed to ``volume``.

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.