Skip to content

Commit 7a6d393

Browse files
committed
fix: For the openedx-events broker, use kafka _everywhere_ instead of redis
Devstack is currently split between services pre-configured to use redis, and others pre-configured to use kafka. This results in the exceedingly dumb result of events produced via one broker, but never consumed because the consuming apps are hooked up to the other broker.
1 parent fa6c178 commit 7a6d393

File tree

7 files changed

+43
-13
lines changed

7 files changed

+43
-13
lines changed

docker-compose-host.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ services:
4141
- ${DEVSTACK_WORKSPACE}/src:/edx/src
4242
- ${PWD}/py_configuration_files/cms.py:/edx/app/edxapp/edx-platform/cms/envs/devstack.py
4343
- ${PWD}/py_configuration_files/lms.py:/edx/app/edxapp/edx-platform/lms/envs/devstack.py
44+
- ${PWD}/py_private_requirements/lms.txt:/edx/private_requirements.txt
4445
lms-worker:
4546
volumes:
4647
- ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform
@@ -71,6 +72,7 @@ services:
7172
- ${DEVSTACK_WORKSPACE}/src:/edx/src
7273
- ${PWD}/py_configuration_files/cms.py:/edx/app/edxapp/edx-platform/cms/envs/devstack.py
7374
- ${PWD}/py_configuration_files/lms.py:/edx/app/edxapp/edx-platform/lms/envs/devstack.py
75+
- ${PWD}/py_private_requirements/cms.txt:/edx/private_requirements.txt
7476
cms-worker:
7577
volumes:
7678
- ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform
@@ -95,7 +97,11 @@ services:
9597
- ${DEVSTACK_WORKSPACE}/enterprise-subsidy:/edx/app/enterprise-subsidy
9698
- ${DEVSTACK_WORKSPACE}/src:/edx/src
9799
- ${PWD}/py_configuration_files/enterprise_subsidy.py:/edx/app/enterprise-subsidy/enterprise_subsidy/settings/devstack.py
98-
100+
enterprise-subsidy-consume_learner_credit_course_enrollment_lifecycle:
101+
volumes:
102+
- ${DEVSTACK_WORKSPACE}/enterprise-subsidy:/edx/app/enterprise-subsidy
103+
- ${DEVSTACK_WORKSPACE}/src:/edx/src
104+
- ${PWD}/py_configuration_files/enterprise_subsidy.py:/edx/app/enterprise-subsidy/enterprise_subsidy/settings/devstack.py
99105
enterprise-catalog:
100106
volumes:
101107
- ${DEVSTACK_WORKSPACE}/enterprise-catalog:/edx/app/enterprise_catalog/enterprise_catalog

docker-compose.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ services:
449449

450450
lms:
451451
# Switch to `--settings devstack_with_worker` if you want to use lms-worker
452-
command: bash -c 'source /edx/app/edxapp/edxapp_env && while true; do python /edx/app/edxapp/edx-platform/manage.py lms runserver 0.0.0.0:18000 --settings devstack; sleep 2; done'
452+
command: bash -c 'source /edx/app/edxapp/edxapp_env && (pip install -r /edx/private_requirements.txt; while true; do python /edx/app/edxapp/edx-platform/manage.py lms runserver 0.0.0.0:18000 --settings devstack; sleep 2; done)'
453453
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.lms"
454454
hostname: lms.devstack.edx
455455
depends_on:
@@ -638,7 +638,7 @@ services:
638638

639639
cms:
640640
# Switch to `--settings devstack_with_worker` if you want to use cms-worker
641-
command: bash -c 'source /edx/app/edxapp/edxapp_env && while true; do python /edx/app/edxapp/edx-platform/manage.py cms runserver 0.0.0.0:18010 --settings devstack; sleep 2; done'
641+
command: bash -c 'source /edx/app/edxapp/edxapp_env && (pip install -r /edx/private_requirements.txt; while true; do python /edx/app/edxapp/edx-platform/manage.py lms runserver 0.0.0.0:18000 --settings devstack; sleep 2; done)'
642642
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.cms"
643643
hostname: cms.devstack.edx
644644
depends_on:
@@ -905,6 +905,22 @@ services:
905905
volumes:
906906
- /edx/var/enterprise-subsidy
907907

908+
enterprise-subsidy-consume_learner_credit_course_enrollment_lifecycle:
909+
image: edxops/enterprise-subsidy-dev
910+
container_name: edx.devstack.enterprise-subsidy-consume_learner_credit_course_enrollment_lifecycle
911+
depends_on:
912+
- mysql80
913+
- memcached
914+
command: >-
915+
bash -c 'while true; do python /edx/app/enterprise-subsidy/manage.py consume_events -t learner-credit-course-enrollment-lifecycle -g enterprise_subsidy_dev; sleep 2; done'
916+
tty: true
917+
environment:
918+
DJANGO_SETTINGS_MODULE: enterprise_subsidy.settings.devstack
919+
working_dir: /edx/app/enterprise-subsidy
920+
ports:
921+
- "18281:18281"
922+
stdin_open: true
923+
908924
# ==========================================================================
909925
# edX Microfrontends
910926
#

py_configuration_files/cms.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,11 @@ def should_show_debug_toolbar(request): # lint-amnesty, pylint: disable=missing
297297

298298
#################### Event bus backend ########################
299299

300-
EVENT_BUS_PRODUCER = 'edx_event_bus_redis.create_producer'
301-
EVENT_BUS_REDIS_CONNECTION_URL = 'redis://:[email protected]:6379/'
300+
EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL = 'http://edx.devstack.schema-registry:8081'
301+
EVENT_BUS_KAFKA_BOOTSTRAP_SERVERS = 'edx.devstack.kafka:29092'
302+
EVENT_BUS_PRODUCER = 'edx_event_bus_kafka.create_producer'
303+
EVENT_BUS_CONSUMER = 'edx_event_bus_kafka.KafkaEventConsumer'
302304
EVENT_BUS_TOPIC_PREFIX = 'dev'
303-
EVENT_BUS_CONSUMER = 'edx_event_bus_redis.RedisEventConsumer'
304305

305306
course_catalog_event_setting = EVENT_BUS_PRODUCER_CONFIG['org.openedx.content_authoring.course.catalog_info.changed.v1']
306307
course_catalog_event_setting['course-catalog-info-changed']['enabled'] = True

py_configuration_files/course_discovery.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,10 @@
8686

8787
CELERY_TASK_ALWAYS_EAGER = False
8888

89-
EVENT_BUS_CONSUMER = 'edx_event_bus_redis.RedisEventConsumer'
90-
EVENT_BUS_PRODUCER = 'edx_event_bus_redis.create_producer'
91-
EVENT_BUS_REDIS_CONNECTION_URL = 'redis://:[email protected]:6379/'
89+
EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL = 'http://edx.devstack.schema-registry:8081'
90+
EVENT_BUS_KAFKA_BOOTSTRAP_SERVERS = 'edx.devstack.kafka:29092'
91+
EVENT_BUS_PRODUCER = 'edx_event_bus_kafka.create_producer'
92+
EVENT_BUS_CONSUMER = 'edx_event_bus_kafka.KafkaEventConsumer'
9293
EVENT_BUS_TOPIC_PREFIX = 'dev'
9394

9495
#####################################################################

py_configuration_files/lms.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,10 @@
8080

8181
################################ DEBUG TOOLBAR ################################
8282

83-
INSTALLED_APPS += ['debug_toolbar']
83+
INSTALLED_APPS += (
84+
'debug_toolbar',
85+
'edx_event_bus_kafka',
86+
)
8487
MIDDLEWARE += [
8588
'lms.djangoapps.discussion.django_comment_client.utils.QueryCountDebugMiddleware',
8689
'debug_toolbar.middleware.DebugToolbarMiddleware',
@@ -504,10 +507,11 @@ def should_show_debug_toolbar(request): # lint-amnesty, pylint: disable=missing
504507
CLOSEST_CLIENT_IP_FROM_HEADERS = []
505508

506509
#################### Event bus backend ########################
507-
EVENT_BUS_PRODUCER = 'edx_event_bus_redis.create_producer'
508-
EVENT_BUS_REDIS_CONNECTION_URL = 'redis://:[email protected]:6379/'
510+
EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL = 'http://edx.devstack.schema-registry:8081'
511+
EVENT_BUS_KAFKA_BOOTSTRAP_SERVERS = 'edx.devstack.kafka:29092'
512+
EVENT_BUS_PRODUCER = 'edx_event_bus_kafka.create_producer'
513+
EVENT_BUS_CONSUMER = 'edx_event_bus_kafka.KafkaEventConsumer'
509514
EVENT_BUS_TOPIC_PREFIX = 'dev'
510-
EVENT_BUS_CONSUMER = 'edx_event_bus_redis.RedisEventConsumer'
511515

512516
certificate_revoked_event_config = EVENT_BUS_PRODUCER_CONFIG['org.openedx.learning.certificate.revoked.v1']
513517
certificate_revoked_event_config['learning-certificate-lifecycle']['enabled'] = True

py_private_requirements/cms.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
confluent-kafka[avro,schema-registry]==2.10.0

py_private_requirements/lms.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
confluent-kafka[avro,schema-registry]==2.10.0

0 commit comments

Comments
 (0)