0.16.0
This page documents the changes in Kannika Armory version 0.16.0.
Changelog 0.16.0
Section titled “Changelog 0.16.0”Features
Section titled “Features”-
Snapshots (experimental): automatically detect when a Kafka topic is deleted and recreated by tracking the topic UUID, archive the existing backup data as a numbered snapshot, and start a fresh backup for the new topic without manual intervention. Enabled per backup via the
io.kannika/experimental-snapshotsannotation. -
Restore: restore from a specific backup snapshot version using the new per-topic
snapshot.versionselector. -
Tools: add
kannika-tools snapshot listto list a topic’s snapshot versions, and add snapshot support toindex,storage, andrecompresscommands. -
Maintenance mode: temporarily put the platform in a restricted state during planned upgrades or outages, with an optional banner message, configurable through Helm global values.
-
Restore: segment-level pre-filtering skips backup segments that fall entirely outside the configured filter window using index metadata, avoiding unnecessary downloads during filtered restores.
-
Backup: expose per-partition offset metrics (max, sink, consumer).
-
Restore: expose per-partition offset metrics (first, last, max).
-
Restore: add a partition count preflight check that warns when the source backup and target topic partition counts differ.
-
Metrics: make backup metrics snapshot-aware by tracking the active snapshot version per topic.
Console
Section titled “Console”-
Backup: show source backup partitions on the topic details page.
-
Restore: show backup and restore partition tables on the restore topic details page.
-
Restore: add restored partition metrics.
Kubernetes API (CRD)
Section titled “Kubernetes API (CRD)”- Restore: new
spec.config.topics[].snapshot.versionfield for selecting a backup snapshot version. Accepts"latest"or a version number (e.g.1or"v1").
-
GraphQL: add
MaintenanceInfo,MaintenanceBanner, andMaintenanceBannerVarianttypes, and a newmaintenancefield onPlatformInfo. -
GraphQL: add
BackupPartitionMetricsandBackupPartitionOffsetstypes, and a newpartitionsfield onBackupTopicMetrics. -
GraphQL: add
RestoredPartitionMetricsandRestoredPartitionOffsetstypes, and a newpartitionsfield onRestoreTopicMetrics. -
REST: add
GET /gql/_statusendpoint exposing the current maintenance status and banner configuration. -
REST: restructure restore metrics partition offsets into an
offsetsobject withfirst,last, andmax, replacing the previouslast_offsetsfield. -
REST: add the missing OpenAPI path entry for
GET /rest/backups/{name}/topics.
Helm Charts
Section titled “Helm Charts”-
Add
global.maintenance.enabledvalue (default:false). -
Add
global.maintenance.banner.messagevalue for the maintenance banner text. -
Add
global.maintenance.banner.variantvalue (default:info). Acceptsinfo,warning, orerror.
Bug fixes
Section titled “Bug fixes”-
Operator: reserve label headroom for StatefulSet child names to avoid exceeding the 63-character limit.
-
Backup: prevent errors from fanning out to all backup tasks and restarting them when a topic is deleted.
Documentation
Section titled “Documentation”-
Added Backup Snapshots and Restoring from Snapshots documentation.
-
Added Maintenance Mode documentation.
-
Consolidated the Networking page and added Gateway API (HTTPRoute) examples.
-
Added Upgrading to 0.16.x guide.
Miscellaneous Tasks
Section titled “Miscellaneous Tasks”- Bump version to 0.16.0.