Skip to content

Commit

Permalink
feat(dev): Use newer kafka & zookeeper images to support Apple arm64
Browse files Browse the repository at this point in the history
The current zookeeper image we use fails to execute on Apple's arm64 machines (see [issue][1]) for details).

Only upgrading the version of both when executing on Apple arm64 machines.

Fixes #28570.

[1]: confluentinc/kafka-images#80 (comment)
  • Loading branch information
armenzg committed Oct 6, 2021
1 parent 87063c8 commit e23a576
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
4 changes: 4 additions & 0 deletions .github/actions/setup-sentry/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,12 +158,16 @@ runs:
# TODO: Use devservices kafka. See https://github.com/getsentry/sentry/pull/20986#issuecomment-704510570
if [ "$NEED_KAFKA" = "true" ]; then
# This is *not* the production version. Unclear reason as to why this was chosen
# https://github.com/getsentry/ops/blob/c823e62f930ecc6c97bb08898c71e49edc7232f6/cookbooks/getsentry/attributes/default.rb#L631
docker run \
--name sentry_zookeeper \
-d --network host \
-e ZOOKEEPER_CLIENT_PORT=2181 \
confluentinc/cp-zookeeper:4.1.0
# This is the production version; do not change w/o changing it there as well
# https://github.com/getsentry/ops/blob/c823e62f930ecc6c97bb08898c71e49edc7232f6/cookbooks/getsentry/attributes/default.rb#L643
docker run \
--name sentry_kafka \
-d --network host \
Expand Down
14 changes: 12 additions & 2 deletions src/sentry/conf/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import sys
import tempfile
from datetime import timedelta
from platform import platform as pf
from urllib.parse import urlparse

from django.conf.global_settings import * # NOQA
Expand Down Expand Up @@ -1697,6 +1698,8 @@ def build_cdc_postgres_init_db_volume(settings):
)


APPLE_ARM64 = pf().startswith("mac") and pf().endswith("arm64-arm-64bit")

SENTRY_DEVSERVICES = {
"redis": lambda settings, options: (
{
Expand Down Expand Up @@ -1749,15 +1752,22 @@ def build_cdc_postgres_init_db_volume(settings):
),
"zookeeper": lambda settings, options: (
{
"image": "confluentinc/cp-zookeeper:5.1.2",
# On Apple arm64, we upgrade to version 6.x allows zookeeper to run properly on Apple's arm64
# See details https://github.com/confluentinc/kafka-images/issues/80#issuecomment-855511438
"image": "confluentinc/cp-zookeeper:6.2.0"
if APPLE_ARM64
else "confluentinc/cp-zookeeper:5.1.2",
"environment": {"ZOOKEEPER_CLIENT_PORT": "2181"},
"volumes": {"zookeeper": {"bind": "/var/lib/zookeeper"}},
"only_if": "kafka" in settings.SENTRY_EVENTSTREAM or settings.SENTRY_USE_RELAY,
}
),
"kafka": lambda settings, options: (
{
"image": "confluentinc/cp-kafka:5.1.2",
# On Apple arm64, we upgrade to version 6.x to match zookeeper's version (I believe they both release together)
"image": "confluentinc/cp-kafka:6.2.0"
if APPLE_ARM64
else "confluentinc/cp-kafka:5.1.2",
"ports": {"9092/tcp": 9092},
"environment": {
"KAFKA_ZOOKEEPER_CONNECT": "{containers[zookeeper][name]}:2181",
Expand Down

0 comments on commit e23a576

Please sign in to comment.