From 1cc6bdd3c578ac7c8c2e1e56274603b9f8e8fe49 Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Sun, 2 Jun 2024 14:06:45 +0200
Subject: [PATCH] Simplified version: only kafka run as a container - less code
 to ensure topic

---
 docker-compose.yml                   | 16 +++++++++-------
 go.work                              |  2 +-
 src/hello-kafka/Dockerfile           | 13 -------------
 src/hello-kafka/docker-entrypoint.sh | 11 -----------
 src/hello-kafka/main.go              |  2 +-
 src/hello-kafka/topic.go             | 16 ++--------------
 6 files changed, 13 insertions(+), 47 deletions(-)
 delete mode 100644 src/hello-kafka/Dockerfile
 delete mode 100644 src/hello-kafka/docker-entrypoint.sh

diff --git a/docker-compose.yml b/docker-compose.yml
index ef7f183..341cde8 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,14 +1,16 @@
 version: "3"
 services:
-  hello-kafka:
-    build:
-      context: ./src
-      dockerfile: hello-kafka/Dockerfile
-    environment:
-      - KAFKA_CONNECT=kafka:9092 # Be careful, this is not the port 29092
+#  hello-kafka:
+#    build:
+#      context: ./src
+#      dockerfile: hello-kafka/Dockerfile
+#    environment:
+#      - KAFKA_CONNECT=kafka:9092 # Be careful, this is not the port 29092
   kafka:
     image: bitnami/kafka:3.3.2
     container_name: kafka
+    ports:
+      - 9092:9092
     environment:
       - KAFKA_ENABLE_KRAFT=yes
       - KAFKA_CFG_NODE_ID=1
@@ -16,7 +18,7 @@ services:
       - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
       - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
       - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
-      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
+      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
       - KAFKA_CFG_BROKER_ID=1
       - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093
       - ALLOW_PLAINTEXT_LISTENER=yes
diff --git a/go.work b/go.work
index 12b31f8..d6376d5 100644
--- a/go.work
+++ b/go.work
@@ -1,3 +1,3 @@
 go 1.20
 
-use ./src/hello-kata
+use ./src/hello-kafka
diff --git a/src/hello-kafka/Dockerfile b/src/hello-kafka/Dockerfile
deleted file mode 100644
index 7fe82ad..0000000
--- a/src/hello-kafka/Dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-FROM golang:1.20-buster
-
-WORKDIR /go/src/app
-COPY ./hello-kafka .
-
-RUN go mod download
-RUN go install
-
-RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh
-RUN chmod +x ./wait-for-it.sh ./docker-entrypoint.sh
-
-ENTRYPOINT ["./docker-entrypoint.sh"]
-CMD ["hello-kata"]
\ No newline at end of file
diff --git a/src/hello-kafka/docker-entrypoint.sh b/src/hello-kafka/docker-entrypoint.sh
deleted file mode 100644
index c9621cd..0000000
--- a/src/hello-kafka/docker-entrypoint.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-set -e
-
-# Wait for DB
-if [ -n "$KAFKA_CONNECT" ]; then
-    /go/src/app/wait-for-it.sh "$KAFKA_CONNECT" -t 20
-fi
-
-# Run the main container command.
-exec "$@"
\ No newline at end of file
diff --git a/src/hello-kafka/main.go b/src/hello-kafka/main.go
index df7dda8..fdaa9c9 100644
--- a/src/hello-kafka/main.go
+++ b/src/hello-kafka/main.go
@@ -8,7 +8,7 @@ import (
 )
 
 const (
-	KafkaHost = "kafka:9092"
+	KafkaHost = "localhost:9092"
 	Topic     = "hello-kafka"
 )
 
diff --git a/src/hello-kafka/topic.go b/src/hello-kafka/topic.go
index 5623467..d4e9525 100644
--- a/src/hello-kafka/topic.go
+++ b/src/hello-kafka/topic.go
@@ -2,26 +2,14 @@ package main
 
 import (
 	"log"
-	"net"
-	"strconv"
 
 	"github.com/segmentio/kafka-go"
 )
 
 func ensureTopic(topic string, numPartitions int) {
-	conn, err := kafka.Dial("tcp", KafkaHost)
-	if err != nil {
-		panic(err.Error())
-	}
-	defer conn.Close()
-
-	controller, err := conn.Controller()
-	if err != nil {
-		panic(err.Error())
-	}
 	var controllerConn *kafka.Conn
-	controllerConn, err =
-		kafka.Dial("tcp", net.JoinHostPort(controller.Host, strconv.Itoa(controller.Port)))
+	controllerConn, err :=
+		kafka.Dial("tcp", KafkaHost)
 	if err != nil {
 		panic(err.Error())
 	}
-- 
GitLab