# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Kafka
spec:
    description: An open-source distributed event streaming platform
    icon: https://cdn.zeabur.com/kafka.png
    tags:
        - Database
        - Event
        - Data
    readme: |
        # Apache Kafka

        [Apache Kafka](https://kafka.apache.org) is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.

        Note that for _external_ connections to the broker, i.e., those from outside the Zeabur private networking, you may need to adjust the configuration. This could be from your local machine or a more complicated setup. If the latter is true, you will need to change the value `localhost` in `KAFKA_ADVERTISED_LISTENERS` to the forwarded hostname and port, which you can find in the "Networking" tab. For _internal_ connections between services within the project, please use `kafka.zeabur.internal:29092`.
    services:
        - name: zookeeper
          template: PREBUILT
          spec:
            id: zookeeper
            source:
                image: confluentinc/cp-zookeeper:latest
            ports:
                - id: service
                  port: 2181
                  type: TCP
            env:
                ZOOKEEPER_CLIENT_PORT:
                    default: "2181"
                ZOOKEEPER_TICK_TIME:
                    default: "2000"
        - name: kafka
          icon: https://cdn.zeabur.com/kafka.png
          template: PREBUILT
          spec:
            id: kafka
            source:
                image: confluentinc/cp-kafka:latest
            ports:
                - id: broker
                  port: 9092
                  type: TCP
                - id: internal
                  port: 29092
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/kafka/data
            env:
                KAFKA_ADVERTISED_LISTENERS:
                    default: PLAINTEXT://kafka.zeabur.internal:29092,PLAINTEXT_HOST://localhost:9092
                KAFKA_BROKER_ID:
                    default: "1"
                KAFKA_INTER_BROKER_LISTENER_NAME:
                    default: PLAINTEXT
                KAFKA_LISTENER_SECURITY_PROTOCOL_MAP:
                    default: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
                KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR:
                    default: "1"
                KAFKA_ZOOKEEPER_CONNECT:
                    default: zookeeper.zeabur.internal:2181
localization:
    ja-JP:
        description: オープンソースの分散イベントストリーミングプラットフォーム
        readme: |
            # Apache Kafka

            [Apache Kafka](https://kafka.apache.org) はオープンソースの分散イベントストリーミングプラットフォームで、数千社の企業が高性能データパイプライン、ストリーミング分析、データ統合、およびミッションクリティカルなアプリケーションのために使用しています。

            注意：**外部** から broker への接続、例えば Zeabur ネットワーク外（ローカルホストや、より複雑なマルチクラスター設定など）からアクセスする場合、`KAFKA_ADVERTISED_LISTENERS` の `localhost` 値を転送先のホスト名とポートに変更する必要があります。「Networking」タブで確認できます。プロジェクト内のサービス間の内部接続の場合も、`kafka.zeabur.internal:29092` を使用してください。
    zh-CN:
        description: 开源的分布式事件流平台
        readme: |
            # Apache Kafka

            [Apache Kafka](https://kafka.apache.org) 是一个开源的分布式事件流平台，数以千计的公司使用它来构建高性能数据管道、流分析、数据集成以及关键任务应用程序。

            注意：如果是从 **外部** 连接到 broker，比如从 Zeabur 网络以外（如本地或更复杂的多集群设置）访问，你需要将 `KAFKA_ADVERTISED_LISTENERS` 中的 `localhost` 值更改为转发的主机名和端口，可以在“Networking”标签中看到。如果是项目中服务之间的内部连接，请使用 `kafka.zeabur.internal:29092`。
    zh-TW:
        description: 開源的分散式事件串流平台
        readme: |
            # Apache Kafka

            [Apache Kafka](https://kafka.apache.org) 是一個開源的分散式事件串流平台，數以千計的公司使用它來建構高效能資料管道、串流分析、資料整合以及用在關鍵任務上的應用程式。

            注意：如果是從 **外部** 連接到 broker，比如從 Zeabur 網路以外（如本機或更複雜的多叢集設定）存取，你需要將 `KAFKA_ADVERTISED_LISTENERS` 中的 `localhost` 值更改為轉送的主機名稱和連線埠，可以在「Networking」標籤中看到。如果是專案中服務之間的內部連線，請使用 `kafka.zeabur.internal:29092`。
