Skip to content

Repository files navigation

Armory Examples - Tutorials by Kannika.io

Hands-on tutorials for Kannika Armory, a backup, restore, and disaster recovery solution for Apache Kafka. Maintained by Kannika.io.

This repository contains runnable, self-contained tutorial environments for Kannika Armory. Each tutorial spins up a full local Kafka stack using Docker and Kubernetes (kind), so you can explore real Kafka operations (cluster migrations, consumer group management, schema handling, and more) without touching production.

What is Kannika Armory?

Kannika Armory provides business continuity, compliance, and data resilience for organisations running Apache Kafka, without writing a single line of custom code. It delivers automated backups, point-in-time recovery, environment cloning, and seamless migration, all managed through a web console, REST API, or Kubernetes configurations.


Quick Start

Run a tutorial without cloning:

curl -fsSL https://raw.githubusercontent.com/kannika-io/armory-examples/refs/heads/main/install.sh \
  | bash -s -- migrate-consumer-groups

Or clone and run locally:

./setup migrate-consumer-groups

List available tutorials:

./setup list

Commands

./setup <tutorial>    # Run a tutorial (sets up everything)
./setup armory        # Set up Kannika Armory only
./setup kafka         # Set up Kafka clusters only
./setup network       # Connect Kind cluster to Kafka network
./setup tools         # Install kind, kubectl, helm to .bin
./setup list          # List available tutorials
./teardown            # Delete Kind cluster and stop Kafka

Services

After setup, services are available at:

Component Service URL
Kannika Armory Console http://localhost:8080
Kannika Armory API http://localhost:8081
Kafka Source Broker localhost:9092
Kafka Source Console http://localhost:8180
Kafka Target Broker localhost:9093
Kafka Target Console http://localhost:8181

Prerequisites

  • Docker
  • kind, kubectl, helm (or use ./setup tools)

Adding a Tutorial

Create a new directory under tutorials/. The directory name is the tutorial name:

tutorials/my-tutorial/           # Run with: ./setup my-tutorial
├── README.md        # First line used as description in ./setup list
├── help.txt         # Printed after setup completes
├── values.yaml      # Helm values merged into Armory install
├── k8s/             # Kubernetes resources applied automatically
├── pre-setup.sh     # Hook: before anything starts
├── pre-cluster.sh   # Hook: before Kind cluster creation
├── post-cluster.sh  # Hook: after Kind cluster creation
├── pre-install.sh   # Hook: before Armory Helm install
├── post-install.sh  # Hook: after Armory install and k8s/ resources applied
├── post-setup.sh    # Hook: after everything completes
└── teardown.sh      # Hook: run by ./teardown <tutorial>

All files are optional. Hook scripts must be executable.

Resources

Community

Questions or feedback? Join us on Slack or get in touch at hello@kannika.io.

About

A collection of examples for Kannika Armory https://kannika.io

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages