Skip to content

    Announcing the 0.7.0 Release

    This new release contains the first release of the Armory Console, a web-based interface for Armory. It also introduces the concept of EventHubs, a new way of configuring external systems like Kafka.

    Furthermore, this release extends the existing Credentials with new types, such as SASL and mTLS.

    It also features partition roll-over triggers, node scheduling configuration options, performance improvements, and a number of other improvements and bug fixes.

    Finally, we also restructured the documentation website to make it easier to navigate and find the information you need.

    Installation

    For new installations, see the Installation guide.

    For upgrading existing installations, see the associated Upgrading to 0.7.x guide.

    Console

    The Console is new a web-based interface for Armory. It is designed to be a user-friendly way to interact with the Kannika Armory.

    The Console is still in its early stages, and it is not yet feature-complete, but we are excited to share it with you. Features include configuration of new resources, pausing backups, topic management, deleting resources, etc.

    Configuring a new BackupConfiguring a new Restore

    During configuration, you can create new resources such as:

    You can also configure various options, including:

    Hello EventHubs, Goodbye Endpoints

    The EventHub is a new resource in Armory. It is the final piece of the puzzle to replace the old (Kafka) Endpoint concept, which is significantly simpler to configure.

    In the previous releases, we had already introduced the Storage and Credentials resources to replace the old Volume Endpoint and GCS Endpoint configurations. In this release, the old Kafka Endpoint is finally replaced by the EventHub, which was the last remaining Endpoint to be migrated.

    The EventHub is a central resource that can be used by multiple backups and restores. It contains the configuration towards the underlying Kafka cluster, excluding the authentication details.

    apiVersion: kannika.io/v1alpha
    kind: EventHub
    metadata:
    name: my-kafka-cluster
    spec:
    kafka:
    properties:
    bootstrap.servers: "broker:9092"
    compression.codec: "zstd" # Enable zstd compression for all Restores

    Authentication for Kafka is now configured using the new SASL Credentials or mTLS Credentials.

    apiVersion: kannika.io/v1alpha
    kind: Credentials
    metadata:
    name: my-kafka-credentials
    spec:
    sasl:
    mechanism: "PLAIN"
    usernameFrom:
    secretKeyRef:
    name: my-kafka-api-key
    key: key
    passwordFrom:
    secretKeyRef:
    name: my-kafka-api-key
    key: secret
    ---
    apiVersion: v1
    kind: Secret
    type: Opaque
    metadata:
    name: my-kafka-api-key
    data:
    key: "..."
    secret: "..."

    Make sure to follow the Upgrading to 0.7.x guide to migrate your existing Endpoints to the new EventHubs.

    Partition Roll-over Triggers

    Armory writes its data to a series of files called partitions.

    Partition roll-over triggers allow you to configure when a new partition should be created. This gives you more control over the size of the partitions and the number of files that are created.

    This can be particularly useful when working with topics that have a low throughput, which are being offloaded to remote storage, as it may take a long time to fill up a partition and flush it to the remote storage.

    apiVersion: kannika.io/v1alpha
    kind: Backup
    metadata:
    name: my-backup
    spec:
    source: "my-kafka-cluster"
    sink: "my-storage"
    partitionRolloverTriggers:
    size: 100Mi # Create a new partition when the current partition reaches 100MiB
    timeoutSeconds: 3600 # Or after an hour (when the worker is idle)

    In previous releases, a new partition is created every 100MiB. This remains the default if no triggers are specified.

    Node Scheduling Support

    This release now contains configuration options for the default tolerations, affinity and node selector for all backups and restores. This will allow you to control on which nodes the backups and restores are scheduled by Kubernetes.

    It is also possible to set these on each Backup Pod and Restore Pod separately.

    Performance Improvements

    This release includes a number of performance improvements, particularly for the restore process when restoring a lot of small messages. You may see an increase up to 70% in restore speed in such cases.

    Other Changes

    • Added support for SASL and mTLS credentials.

    • The .spec.config field of a Restore resource is now optional.

    • The .spec.storageClass field of a Backup resource has been removed.

    • The .spec.storageClass field of a Restore resource has been removed.

    Breaking Changes

    • Endpoints have been removed in favor of the new EventHubs and Storages.

    • The default security context for all pods has been removed. If you were relying on the default security context, you will need to configure it yourself

    • The default resource requirements for all pods have been removed. If you were relying on the default resource requirements, you will need to configure them yourself

    Make sure to follow the Upgrading to 0.7.x guide to handle these breaking changes.

    Upcoming Features

    The Console is still in its early stages, and we are working on adding more features to it.

    Some features that we are working on include:

    • Metrics: The ability to view metrics, so you can easily see how your backups and restores are performing.
    • OIDC support: You will be able to authenticate with the console and the API using OIDC.
    • Updating existing configurations: You will get full control over the configuration of existing backups and restores via the console.
    • Data retention policies: You will be able to define how long data should be retained.

    Please check the Roadmap for more information on upcoming features.

    Release Notes

    For a full list of changes, see the Changelog.