This repository contains a docker compose deployment configuration for a Kafka service based on Confluent image. This configuration is made up of three Kafka brokers and one Zookeeper. Java Authentication and Authorization Service (JAAS) is used for SASL_PLAINTEXT username and password authentication without an SSL certificate.
.
├── configs
│ ├── env.dev
│ └── kafka_server_jaas.conf
├── Resources
│ ├── docker-output.png
├── KAFKA_SASL_PLAINTEXT-docker-compose.yml
├── LICENSE
└── README.md
You may create multiple environment files such as env.dev and env.prod. The file contains some configurations for your docker deployment and its made possible using docker compose.
| Variable | Default Value | Used For? |
|---|---|---|
| PUBLIC_IP | localhost | Network interface |
| SECURITY_PROTOCOL | SASL_PLAINTEXT | PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL |
| ZOOKEEPER_IMAGE_TAG | latest | Confluent Zookeeper image version |
| KAFKA_IMAGE_TAG | latest | Confluent Kafka image version |
| KAFKA_BROKER_N_PORT | 9093-9095 | Kafka brokers ports |
In this configuration we are using SASL_PLAINTEXT user and passwor configuration to authenticate with the service. By default JAAS is used. In order to tell JAAS how to authorize clients, kafka_server_jaas.conf should be configured. This configuration file is going to mounted inside a voluem in directory /etc/kafka/configs. PlainLoginModule has been used for SASL_PLAINTEXT auth.
| Variable | Default Value | Note |
|---|---|---|
| username | theengineroom | User Name to be used for Auth |
| password | 1tY=ZP43t20 | Password to be used for Auth |
user_username |
1tY=ZP43t20 | username should be replaced with the actual username(theengineroom) |
You can simply deploy your configuration using docker compose by using this command:
docker-compose --env-file ./configs/env.dev -f KAFKA_SASL_PLAINTEXT-docker-compose.yml up
Give us a ⭐️!
Licensed under Apache 2.0 License.
