@@ -65,10 +65,9 @@ services:
6565 - ' 9091:9092'
6666 healthcheck :
6767 << : *health_check
68- test : ['CMD', '/opt/bitnami/kafka/bin/kafka-broker-api-versions.sh', '--bootstrap-server', 'localhost:9092']
6968 environment :
7069 << : *common_config
71- KAFKA_CFG_ADVERTISED_LISTENERS : ' PLAINTEXT://localhost:9094 ,DOCKER://broker-single:19092'
70+ KAFKA_CFG_ADVERTISED_LISTENERS : ' PLAINTEXT://localhost:9091 ,DOCKER://broker-single:19092'
7271 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS : ' 1@broker-single:29092'
7372 # Replication options
7473 KAFKA_CFG_DEFAULT_REPLICATION_FACTOR : ' 1'
@@ -90,7 +89,7 @@ services:
9089 # Ports configuration
9190 KAFKA_CFG_LISTENERS : ' SASL_PLAINTEXT://:9092,PLAINTEXT://:19092,CONTROLLER://:29092'
9291 KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP : ' SASL_PLAINTEXT:SASL_PLAINTEXT,PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT'
93- KAFKA_CFG_ADVERTISED_LISTENERS : ' SASL_PLAINTEXT://localhost:9092 ,PLAINTEXT://localhost:19092'
92+ KAFKA_CFG_ADVERTISED_LISTENERS : ' SASL_PLAINTEXT://localhost:9095 ,PLAINTEXT://localhost:19092'
9493 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS : ' 1@broker-sasl:29092'
9594 KAFKA_CFG_INTER_BROKER_LISTENER_NAME : ' PLAINTEXT'
9695 # Replication options
@@ -110,6 +109,7 @@ services:
110109
111110 broker-sasl-oauthbearer :
112111 image : bitnami/kafka:${KAFKA_VERSION}
112+ container_name : broker-sasl-oauthbearer
113113 ports :
114114 - ' 9096:9092' # SASL
115115 healthcheck : *health_check
@@ -120,7 +120,7 @@ services:
120120 # Ports configuration
121121 KAFKA_CFG_LISTENERS : ' SASL_PLAINTEXT://:9092,PLAINTEXT://:19092,CONTROLLER://:29092'
122122 KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP : ' SASL_PLAINTEXT:SASL_PLAINTEXT,PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT'
123- KAFKA_CFG_ADVERTISED_LISTENERS : ' SASL_PLAINTEXT://localhost:9092 ,PLAINTEXT://localhost:19092'
123+ KAFKA_CFG_ADVERTISED_LISTENERS : ' SASL_PLAINTEXT://localhost:9096 ,PLAINTEXT://localhost:19092'
124124 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS : ' 1@broker-sasl-oauthbearer:29092'
125125 KAFKA_CFG_INTER_BROKER_LISTENER_NAME : ' PLAINTEXT'
126126 # Replication options
@@ -139,3 +139,58 @@ services:
139139 KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL : ' PLAIN'
140140 KAFKA_CFG_SASL_OAUTHBEARER_EXPECTED_ISSUER : kafka
141141 KAFKA_CFG_SASL_OAUTHBEARER_EXPECTED_AUDIENCE : users
142+
143+ kdc :
144+ image : alpine:latest
145+ container_name : kdc
146+ ports :
147+ - ' 8000:88/tcp'
148+ - ' 8000:88/udp'
149+ - ' 8001:749'
150+ volumes :
151+ - ' ./data/kerberos/kdc/krb5.conf:/etc/krb5.conf:ro'
152+ - ' ./data/kerberos/kdc/kdc.conf:/var/lib/krb5kdc/kdc.conf:ro'
153+ - ' ./data/kerberos/kdc/init.sh:/init.sh:ro'
154+ - ' ./data/kerberos/data:/data'
155+ entrypoint : ['/bin/sh', '/init.sh']
156+ healthcheck :
157+ test : ['CMD', 'kadmin.local', '-q', 'list_principals']
158+ interval : 10s
159+ timeout : 5s
160+ retries : 5
161+
162+ broker-sasl-kerberos :
163+ image : bitnami/kafka:${KAFKA_VERSION}
164+ container_name : broker-sasl-kerberos
165+ ports :
166+ - ' 9097:9092'
167+ healthcheck : *health_check
168+ volumes :
169+ - ' ./data/jaas/jaas-kerberos.conf:/opt/bitnami/kafka/config/kafka_jaas.conf'
170+ - ' ./data/kerberos/krb5.conf:/etc/krb5.conf'
171+ - ' ./data/kerberos/data/broker.keytab:/opt/bitnami/kafka/config/kafka.keytab'
172+ depends_on :
173+ kdc :
174+ condition : service_healthy
175+ environment :
176+ << : *common_config
177+ # Ports configuration
178+ KAFKA_CFG_LISTENERS : ' SASL_PLAINTEXT://:9092,PLAINTEXT://:19092,CONTROLLER://:29092'
179+ KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP : ' SASL_PLAINTEXT:SASL_PLAINTEXT,PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT'
180+ KAFKA_CFG_ADVERTISED_LISTENERS : ' SASL_PLAINTEXT://localhost:9097,PLAINTEXT://localhost:19092'
181+ KAFKA_CFG_CONTROLLER_QUORUM_VOTERS : ' 1@broker-sasl-kerberos:29092'
182+ KAFKA_CFG_INTER_BROKER_LISTENER_NAME : ' PLAINTEXT'
183+ # Replication options
184+ KAFKA_CFG_DEFAULT_REPLICATION_FACTOR : ' 1'
185+ KAFKA_CFG_MIN_INSYNC_REPLICAS : ' 1'
186+ KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR : ' 1'
187+ KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR : ' 1'
188+ KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR : ' 1'
189+ # SASL
190+ KAFKA_CLIENT_USERS : ' admin'
191+ KAFKA_CLIENT_PASSWORDS : ' admin'
192+ KAFKA_CFG_SASL_ENABLED_MECHANISMS : ' GSSAPI'
193+ KAFKA_CFG_SUPER_USERS :
' User:admin;User:broker/[email protected] ;User:admin-keytab/[email protected] ;User:admin-password/[email protected] ' 194+ KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND : ' false'
195+ KAFKA_CFG_SASL_KERBEROS_SERVICE_NAME : ' kafka'
196+ KAFKA_OPTS : ' -Djava.security.auth.login.config=/opt/bitnami/kafka/config/kafka_jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf'
0 commit comments