Apache Kafka Native Deployments in Podman - a quick note.
I’ve been played with Kafka native deployments in Podman a lot, a small footprint and with KRaft there’s no Zookeeper dependencies and so on.
In order to get it running though you need to be very explicit in your environment variables to get it running properly.
As the process.roles setting is blank by default the deployment will not start, it needs a value.
Here’s what I’m using for my local single-node deployments.
 podman run -d \
    --name "kafka-native" \
    --pod "kafka-podname-1" \
    -e KAFKA_NODE_ID=1 \
    -e KAFKA_ADVERTISED_LISTENERS="PLAINTEXT://localhost:9092" \
    -e KAFKA_PROCESS_ROLES=broker,controller \
    -e KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
    -e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
    -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
    -e KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
    -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
    -e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
    -e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
    -e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
    -e KAFKA_NUM_PARTITIONS=3 \
    --label "kafka.id=kafka-podname-1" \
    apache/kafka-native:latest