#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#


services:
  broker-a:
    extends:
      file: ../../../base/docker-compose.base.yml
      service: broker-a

  broker-b:
    extends:
      file: ../../../base/docker-compose.base.yml
      service: broker-b

  oap:
    extends:
      file: ../../../base/docker-compose.base.yml
      service: oap
    environment:
      SW_KAFKA_FETCHER: default
      SW_KAFKA_FETCHER_SERVERS: broker-a:9092,broker-b:9092
      SW_KAFKA_FETCHER_PARTITIONS: 2
      SW_KAFKA_FETCHER_PARTITIONS_FACTOR: 1
      SW_NAMESPACE: 'e2e'
    depends_on:
      broker-a:
        condition: service_healthy
      broker-b:
        condition: service_healthy
    ports:
      - "12800"

  provider:
    extends:
      file: ../../../base/docker-compose.base.yml
      service: fastapi-provider
    environment:
      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
      SW_AGENT_PROTOCOL: kafka
      SW_KAFKA_BOOTSTRAP_SERVERS: broker-a:9092,broker-b:9092
      SW_KAFKA_NAMESPACE: 'e2e'

    command: [ "run", "-p", "gunicorn", "fastapi_provider:app", "--workers", "3", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:9090" ]
    depends_on:
      oap:
        condition: service_healthy
    ports:
      - "9090"

  consumer:
    extends:
      file: ../../../base/docker-compose.base.yml
      service: fastapi-consumer
    environment:
      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
      SW_AGENT_PROTOCOL: kafka
      SW_KAFKA_BOOTSTRAP_SERVERS: broker-a:9092,broker-b:9092
      SW_KAFKA_NAMESPACE: 'e2e'

    command: [ "run", "-p", "gunicorn", "fastapi_consumer:app", "--workers", "3", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:9090" ]
    depends_on:
      provider:
        condition: service_healthy
    ports:
      - "9090"
networks:
  e2e: