Skip to content

    0.8.0

    This page documents the changes in Kannika Armory version 0.8.0.

    Changelog 0.8.0

    Features

    • General: Add support for OIDC authentication

    • General: Add data retention policies

    • General: Add option to restore from a date time

    • General: Add option to restore partitions from a certain offset

    • General: Support Azure OAuth2

    • API: Fetch metrics from backup pods

    • API: Fetch metrics from restore pods

    • API: Log user ID for each command

    • API: Log user ID for each query

    • API: Share workers to retrieve metrics

    • API: Add event gateway service on port 8082

    • API: Allow configuring additional properties on Backups and Restores

    • API: Handle Kubernetes timeout exceptions

    • API: Don’t allow MiB, GiB etc. for byte quantities

    • API: Return a Location header when creating a restore via the REST API

    • API: Set topicMappingStrategy to advanced by default

    • Console: Allow configuring the API URL

    • Console: Refresh access token

    • Console: Check for user inactivity

    • Console: Verify basic auth on login screen

    • Console: Make topics optional when configuring a restore

    • Console: Show username from access token

    • Console: Split backup details into tabs

    • Console: Update backup details page

    • Console: Split restore details page into tabs

    • Console: Configure data retention policy in backup wizard

    • Console: Make storage capacity field consistent with partition rollover size trigger field

    • Console: Configure max producers for a restore

    • Core: Implement partition expiration based on retention policy

    • Core: Periodically check for and remove expired partitions

    • Core: Add restoreFromOffset filtering option

    • Core: Add restoreFromUnixTimestamp filtering option

    • Core: Implement producer pool

    • Core: Backup & Restore return error if one topic does not exist

    • Operator: Add option to configure metrics push endpoints

    • Operator: Recreate deployment on conflict

    • Operator: Track backup and restore pods using a pod informer

    • Operator: Wait for backup pod to be gone before creating a new one

    • Operator: Add --logging-format option with json and text options

    • Operator: Add the spec.config.maxProducers setting to a Restore

    • Helm: Give the API access to list and watch pods in Kubernetes

    • Helm: Give the operator access to list and watch pods in Kubernetes

    • Helm: Add console.config.apiUrl option

    • Helm: Add event gateway service to kannika-api chart

    • Helm: Add console.config.security.oidc options

    • Helm: Add operator.config.eventGateway options

    • Helm: Add api.eventGateway options

    • Helm: Add api.storage.hostPath option to persist API data to a host path

    • Helm: Add api.storage.persistentVolume option to persist API data to a Persistent Volume

    Refactor

    • Operator: Replace io.kannika/resource-id labels with io.kannika/backup and io.kannika/restore labels

    Performance

    • Core: Improve restoring performance for small messages using a custom delivery handler

    Bug Fixes

    • API: Copy sink credentials when creating a Restore via the REST API

    • API: Retain unsupported fields config

    • Console: Fix invalid config shown instead of draft when restore has no topics

    Documentation

    • Switch between different versions of the application

    • Document data retention policies

    • Update schema mapping docs to include the same tool

    • Update schema mapping docs to include the behaviour if a mapping is missing

    • Document metrics

    • Document Producer Pool and the maxProducers setting

    Miscellaneous Tasks

    • General: Make restoreUntilOffset exclusive

    • Operator: Update probes to use new /metrics path

    • Operator: Implement custom backoff strategy that logs reconnection attempts

    • Core: Make restoreUntilUnixTimestamp exclusive

    • Core: Make restoreUntilOffset exclusive

    • Console: Log initialization errors

    • Update dependencies

    • Upgrade images to alpine:3.20

    • Upgrade to Rust 1.80

    • Bump version to 0.8.0