demo/kafka
Four-node dynamic KRaft example with a plaintext single-node dev cluster and a three-node TLS/SCRAM HA baseline
demo/kafka declares two Kafka 4.x dynamic KRaft clusters across four nodes: the plaintext single-node development cluster kf-meta, and the three-node TLS/SCRAM/ACL demonstration cluster kf-test.
Overview
- Config Name:
demo/kafka - Node Count: 4
kf-meta: Single combined Broker/Controller node in plaintext modekf-test: Three combined nodes with TLS/SCRAM/ACL, topic replication factor 3, andmin.insync.replicas=2- Module Status: KAFKA BETA
./configure -c demo/kafka -s
./deploy.yml
./kafka.yml -l kf-meta
./kafka.yml -l kf-test
deploy.yml only deploys the core path and does not run the KAFKA playbook automatically. Each kafka.yml run must select one complete Kafka cluster; the role rejects convergence against only part of a cluster.
Content
Source: pigsty/conf/demo/kafka.yml
---
#==============================================================#
# File : kafka.yml
# Desc : pigsty: 4 node kafka demo (dynamic KRaft)
# Ctime : 2026-07-17
# Mtime : 2026-07-17
# Docs : https://pigsty.io/docs/kafka
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright : 2018-2026 Ruohang Feng / Vonng ([email protected])
#==============================================================#
# One pass installation with:
# ./deploy.yml
# ./kafka.yml -l kf-main
# ./kafka.yml -l kf-test
#==============================================================#
# 1. kf-meta-1 @ 10.10.10.10:9092 single-node dev cluster (plaintext)
# 2. kf-test-1 @ 10.10.10.11:9092 \
# 3. kf-test-2 @ 10.10.10.12:9092 --- 3-node secure HA demo baseline (scram)
# 4. kf-test-3 @ 10.10.10.13:9092 / dynamic KRaft, TLS/SCRAM/ACL, RF=3/minISR=2
#==============================================================#
# kafka clients are cluster-aware and connect to every broker directly:
# bootstrap with e.g. 10.10.10.11:9092,10.10.10.12:9092,10.10.10.13:9092
all:
children:
# infra cluster for proxy, monitor, alert, etc..
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
# single-node kafka dev cluster: combined broker/controller, plaintext
kf-meta:
hosts:
10.10.10.10: { kafka_seq: 1 }
vars:
kafka_cluster: kf-meta
kafka_topics:
- { name: quickstart.events ,partitions: 1 ,replication_factor: 1 ,config: { retention.ms: 86400000 } }
# 3-node secure HA demo baseline: dynamic KRaft, TLS/SCRAM/ACL, RF=3/minISR=2
kf-test:
hosts:
10.10.10.11: { kafka_seq: 1 }
10.10.10.12: { kafka_seq: 2 }
10.10.10.13: { kafka_seq: 3 }
vars:
kafka_cluster: kf-test
kafka_security: scram
kafka_users: # app principal with prefixed topic/group acls
- name: test-app
password: KafkaApp.Test
acls:
- { resource: topic ,name: 'test.' ,pattern: prefixed ,operations: [ Read, Write, Describe ] }
- { resource: group ,name: 'test.' ,pattern: prefixed ,operations: [ Read ] }
- { resource: cluster ,name: kafka-cluster ,operations: [ Describe, IdempotentWrite ] }
kafka_topics:
- name: test.events
partitions: 3
replication_factor: 3
config: { min.insync.replicas: 2 ,cleanup.policy: delete ,retention.ms: 604800000 }
vars:
version: v4.5.0 # pigsty version string
admin_ip: 10.10.10.10 # admin node ip address
region: default # upstream mirror region: default|china|europe
infra_portal: # infra services exposed via portal
home : { domain: i.pigsty } # default domain name
# kafka & java packages are required in the local repo for the kafka module (if using local repo)
repo_extra_packages: [ kafka-stack ,java-runtime ]
#----------------------------------------------#
# PASSWORD : https://pigsty.io/docs/setup/security/
#----------------------------------------------#
grafana_admin_password: pigsty
grafana_view_password: DBUser.Viewer
...
Explanation
kf-metacreatesquickstart.eventsfor single-node development and connectivity tests.kf-testcreates thetest-appSCRAM user, prefix ACLs, and the three-replicatest.eventstopic.- Online installation maps the platform packages
kafka-stackandjava-runtime; when using only a local repository, cache both complete package groups first. - Addresses and passwords in the template are demonstration values. Replace them for your topology and security requirements before deployment.
See the KAFKA module for operations, security, and scaling constraints.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.