Die Adressen DOCKER und LOCALHOST über ACLs abgesichert
[demos/kafka/training] / README.sh
index c839f35..3e1f0db 100755 (executable)
--- a/README.sh
+++ b/README.sh
@@ -2,33 +2,48 @@
 
 if [ "$1" = "cleanup" ]
 then
-  docker-compose down -t0 -v --remove-orphans
+  docker-compose -f docker/docker-compose.yml down -t0 -v --remove-orphans
   exit
 fi
 
-docker-compose up -d kafka-1 kafka-2 kafka-3
-docker-compose ps
-echo "Waiting for the Kafka-Cluster to become ready..."
-docker-compose run --rm cli cub kafka-ready -b kafka:9092 3 60 > /dev/null 2>&1 || exit 1
-
-docker-compose up -t0 -d cli
-sleep 1
-docker-compose logs setup
-
-echo
-echo "Hilfe-Ausgabe von kafkacat"
-echo
-docker-compose exec -T cli kafkacat -h
-echo
-echo "Nachrichten schreiben mit kafkacat"
-echo
-docker-compose exec -T cli kafkacat -P -b kafka:9092 -t test << EOF
-Hallo Welt!
-Nachricht #1
-Nachricht #2
-Nachricht #3
-EOF
-echo
-echo "Nachrichten lesen mit kafkacat"
-echo
-docker-compose exec cli kafkacat -C -b kafka:9092 -t test -o beginning -e
+( cd docker; ./README.sh )
+
+docker-compose -f docker/docker-compose.yml up --remove-orphans setup || exit 1
+docker-compose -f docker/docker-compose.yml ps
+
+# Nicht nötig, da `super.users=User:ANONYMOUS` gesetzt wurde
+# Ohne diesen Eintrag wären diverse ACLs nötig, bevor BROKER funktioniert!
+# docker-compose exec cli kafka-acls --authorizer-properties zookeeper.connect=zookeeper zookeeper:2181 --add --allow-principal User:ANONYMOUS --operation ALL --topic __CruiseControlMetrics --group=*
+
+# schema-registry
+docker-compose -f docker/docker-compose.yml exec cli kafka-acls \
+  --authorizer-properties zookeeper.connect=zookeeper \
+  --add \
+  --allow-principal User:schemaregistry \
+  --topic _schemas \
+  --consumer --group=schema-registry \
+  --producer
+docker-compose -f docker/docker-compose.yml exec cli kafka-acls \
+  --authorizer-properties zookeeper.connect=zookeeper \
+  --add \
+  --allow-principal User:schemaregistry \
+  --topic _schemas \
+  --operation=DescribeConfigs
+
+kafkacat -L -b :9092 -Xsecurity.protocol=sasl_plaintext -Xsasl.mechanisms=PLAIN -Xsasl.username=client -Xsasl.password=client-secret
+
+docker-compose -f docker/docker-compose.yml up -d schema-registry
+while [[ ! $(http :8085/subjects 2> /dev/null) ]]; do echo Waiting for schema-registry; sleep 1; done
+cat user-v1.schema|http POST http://localhost:8085/subjects/user/versions "Content-Type:application/vnd.schemaregistry.v1+json"
+http GET http://0:8085/subjects/user/versions/1/schema
+
+# kafka-connect
+docker-compose -f docker/docker-compose.yml exec cli kafka-acls \
+  --authorizer-properties zookeeper.connect=zookeeper \
+  --add \
+  --allow-principal User:connect \
+  --topic __connect \
+  --resource-pattern-type prefixed \
+  --consumer --group=kafka-connect \
+  --producer
+while [[ ! $(http :8083/connectors 2> /dev/null) ]]; do echo Waiting for schema-registry; sleep 1; done