Welcome to cfn-kafka-admin’s documentation!

PYPI_VERSION FOSSA PyPI - License

CodeStyle TDD with pytest

https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiY2xwc0NER1JuU1J3MThYczhFMDJLWlQxWGpoRnhNWHNtbGN1NGpVMVNTMk12UlQxdWVlZ2w5YnhPQzhkMnV4cTI0S0tIdTRyTmRHWWErWXJPNWFpcWlzPSIsIml2UGFyYW1ldGVyU3BlYyI6IkxaRGZCMW1KbVE1RWRJYjciLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main

Manage Apache Kafka topics, schemas and ACLs from AWS CloudFormation

This project was built to

  • Control ACLs, Topics and Schemas via GitOps and controlled “as code” in AWS CloudFormation

  • Allow non-kafka power users to have a simple declarative way to define what they need in Kafka

Install

To install the CLI, simply run

pip install cfn-kafka-admin

To install the lambda functions, see functions_installation

Usage

This project is made of two parts that will allow you to manage ACLs, Topics and their associated schemas, using AWS CloudFormation.

If you are using AWS MSK, which we highly recommend, a majority of these functionalities can be done with native AWS implementations. However, this has been used and tested with MSK too and works (schemas excluded, see AWS Glue Schema Registry )

1. The Lambda Functions

First of all, you need to deploy the AWS Lambda Functions into your AWS Account in order to use them as CustomResources in AWS CloudFormation. The reason we went for Lambda and Custom Resource vs new AWS Resources, is because you need access to brokers and Schema registry, which might be private.

2. The CLI

The files in which you will define your ACLs, Topics and Schemas follow a strict JSON definition, to ensure that input is conform and help ensure successful deployment. When the CLI runs, it will generate a new CloudFormation template that will be what’s used to define the resources.

Indices and tables