Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.

Commit 37ff02e

Browse files
author
Rebecca Graber
authored
feat: add kafka containers to devstack (#854)
1 parent 87b9f99 commit 37ff02e

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

docker-compose.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,60 @@ services:
133133
- ../edx-e2e-tests/upload_files:/edx/app/e2e/edx-e2e-tests/upload_files
134134
- ../edx-platform/common/test/data:/edx/app/edxapp/edx-platform/common/test/data
135135

136+
# Events broker
137+
kafka:
138+
image: confluentinc/cp-server:6.2.1
139+
hostname: kafka.devstack.edx
140+
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.kafka"
141+
depends_on:
142+
- zookeeper
143+
ports:
144+
- "9092:9092"
145+
- "9101:9101"
146+
environment:
147+
KAFKA_BROKER_ID: 1
148+
KAFKA_ZOOKEEPER_CONNECT: 'edx.devstack.zookeeper:2181'
149+
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
150+
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://edx.devstack.kafka:29092,PLAINTEXT_HOST://localhost:9092
151+
KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
152+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
153+
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
154+
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
155+
KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
156+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
157+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
158+
KAFKA_JMX_PORT: 9101
159+
KAFKA_JMX_HOSTNAME: localhost
160+
KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://edx.devstack.schema-registry:8081
161+
CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: edx.devstack.kafka:29092
162+
CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1
163+
CONFLUENT_METRICS_ENABLE: 'true'
164+
CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous'
165+
networks:
166+
default:
167+
aliases:
168+
- edx.devstack.kafka
169+
170+
# RESTful interface to the Kafka cluster
171+
kafka-rest-proxy:
172+
image: confluentinc/cp-kafka-rest:6.2.1
173+
depends_on:
174+
- kafka
175+
- schema-registry
176+
ports:
177+
- 8082:8082
178+
hostname: kafka-rest-proxy.devstack.edx
179+
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.kafka-rest-proxy"
180+
environment:
181+
KAFKA_REST_HOST_NAME: edx.devstack.kafka-rest-proxy
182+
KAFKA_REST_BOOTSTRAP_SERVERS: 'edx.devstack.kafka:29092'
183+
KAFKA_REST_LISTENERS: "http://0.0.0.0:8082"
184+
KAFKA_REST_SCHEMA_REGISTRY_URL: 'http://edx.devstack.schema-registry:8081'
185+
networks:
186+
default:
187+
aliases:
188+
- edx.devstack.kafka-rest-proxy
189+
136190
memcached:
137191
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.memcached"
138192
hostname: memcached.devstack.edx
@@ -188,6 +242,40 @@ services:
188242
aliases:
189243
- edx.devstack.redis
190244

245+
# storage layer for data schemas in Kafka
246+
schema-registry:
247+
image: confluentinc/cp-schema-registry:6.2.1
248+
hostname: schema-registry.devstack.edx
249+
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.schema-registry"
250+
depends_on:
251+
- kafka
252+
ports:
253+
- "8081:8081"
254+
environment:
255+
SCHEMA_REGISTRY_HOST_NAME: schema-registry.devstack.edx
256+
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'edx.devstack.kafka:29092'
257+
SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081
258+
networks:
259+
default:
260+
aliases:
261+
- edx.devstack.schema-registry
262+
263+
# needed by Kafka to keep track of nodes, topics, and messages.
264+
zookeeper:
265+
image: confluentinc/cp-zookeeper:6.2.1
266+
hostname: zookeeper.devstack.edx
267+
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.zookeeper"
268+
ports:
269+
- "2181:2181"
270+
environment:
271+
ZOOKEEPER_CLIENT_PORT: 2181
272+
ZOOKEEPER_TICK_TIME: 2000
273+
networks:
274+
default:
275+
aliases:
276+
- edx.devstack.zookeeper
277+
278+
191279
# ================================================
192280
# edX services
193281
# ================================================

0 commit comments

Comments
 (0)