Skip to content

0.16.0

This page documents the changes in Kannika Armory version 0.16.0.

  • 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-snapshots annotation.

  • Restore: restore from a specific backup snapshot version using the new per-topic snapshot.version selector.

  • Tools: add kannika-tools snapshot list to list a topic’s snapshot versions, and add snapshot support to index, storage, and recompress commands.

  • 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.

  • 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.

  • Restore: new spec.config.topics[].snapshot.version field for selecting a backup snapshot version. Accepts "latest" or a version number (e.g. 1 or "v1").
  • GraphQL: add MaintenanceInfo, MaintenanceBanner, and MaintenanceBannerVariant types, and a new maintenance field on PlatformInfo.

  • GraphQL: add BackupPartitionMetrics and BackupPartitionOffsets types, and a new partitions field on BackupTopicMetrics.

  • GraphQL: add RestoredPartitionMetrics and RestoredPartitionOffsets types, and a new partitions field on RestoreTopicMetrics.

  • REST: add GET /gql/_status endpoint exposing the current maintenance status and banner configuration.

  • REST: restructure restore metrics partition offsets into an offsets object with first, last, and max, replacing the previous last_offsets field.

  • REST: add the missing OpenAPI path entry for GET /rest/backups/{name}/topics.

  • Add global.maintenance.enabled value (default: false).

  • Add global.maintenance.banner.message value for the maintenance banner text.

  • Add global.maintenance.banner.variant value (default: info). Accepts info, warning, or error.

  • 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.

  • Bump version to 0.16.0.