version: '3.7' services: captureproxy: image: 'migrations/capture_proxy:latest' networks: - migrations ports: - "9200:9200" command: /runJavaWithClasspath.sh org.opensearch.migrations.trafficcapture.proxyserver.Main --kafkaConnection kafka:9092 --destinationUri https://elasticsearch:9200 --insecureDestination --listenPort 9200 --sslConfigFile /usr/share/elasticsearch/config/proxy_tls.yml depends_on: - kafka - elasticsearch elasticsearch: image: 'migrations/elasticsearch_searchguard:latest' networks: - migrations ports: - '19200:9200' zookeeper: image: docker.io/bitnami/zookeeper:3.8 networks: - migrations ports: - "2181:2181" volumes: - "zookeeper_data:/bitnami" environment: - ALLOW_ANONYMOUS_LOGIN=yes kafka: image: docker.io/bitnami/kafka:3.4 networks: - migrations ports: - "9092:9092" volumes: - "kafka_data:/bitnami" environment: - ALLOW_PLAINTEXT_LISTENER=yes - KAFKA_ENABLE_KRAFT=no - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_LISTENERS=PLAINTEXT://:9092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 depends_on: - zookeeper replayer: image: 'migrations/traffic_replayer:latest' networks: - migrations depends_on: kafka: condition: service_started opensearchtarget: condition: service_started trafficcomparator: condition: service_healthy command: /bin/sh -c "/runJavaWithClasspath.sh org.opensearch.migrations.replay.TrafficReplayer https://opensearchtarget:9200 --auth-header-value Basic\\ YWRtaW46YWRtaW4= --insecure --kafka-traffic-brokers kafka:9092 --kafka-traffic-topic logging-traffic-topic --kafka-traffic-group-id default-logging-group | nc trafficcomparator 9220" opensearchtarget: image: 'opensearchproject/opensearch:latest' environment: - discovery.type=single-node networks: - migrations ports: - "29200:9200" trafficcomparator: image: 'migrations/traffic_comparator:latest' networks: - migrations ports: - "9220:9220" healthcheck: test: "lsof -i -P -n" volumes: - ${TRAFFIC_COMPARATOR_DIRECTORY}:/trafficComparator - sharedComparatorSqlResults:/shared command: /bin/sh -c "cd trafficComparator && pip3 install --editable . && nc -v -l -p 9220 | tee /dev/stderr | trafficcomparator -vv stream | trafficcomparator dump-to-sqlite --db /shared/comparisons.db" jupyter_notebook: image: 'migrations/jupyter_notebook:latest' networks: - migrations ports: - "8888:8888" volumes: - ${TRAFFIC_COMPARATOR_DIRECTORY}:/trafficComparator - sharedComparatorSqlResults:/shared environment: # this needs to match the output db that traffic_comparator writes to - COMPARISONS_DB_LOCATION=/shared/comparisons.db command: /bin/sh -c 'cd trafficComparator && pip3 install --editable ".[data]" && jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root' opensearch-benchmarks: image: 'migrations/open_search_benchmark:latest' networks: - migrations depends_on: - captureproxy volumes: zookeeper_data: driver: local kafka_data: driver: local sharedComparatorSqlResults: driver: local networks: migrations: driver: bridge