--- kind: ConfigMap metadata: name: test-basic-with-kafkacat namespace: default apiVersion: v1 data: setup.sh: |- touch /tmp/testlog touch /tmp/produce tail -f /tmp/produce | kafkacat -P -b $BOOTSTRAP -t test-basic-with-kafkacat -v > /tmp/producer.out 2> /tmp/producer.err & kafkacat -C -b $BOOTSTRAP -t test-basic-with-kafkacat -q -f '[%p,%o] %s\n' > /tmp/consumer.out 2> /tmp/consumer.err & tail -f /tmp/testlog test.sh: |- exec >> /tmp/testlog exec 2>&1 unique=$(date -Ins) echo "Test $unique" >> /tmp/produce sleep 1 LAST=$(tail -n 1 /tmp/consumer.out | tee -a /tmp/testlog) [ "$LAST" == *"$unique" ] || { echo "Last message '$LAST' doesn't contain marker '$unique'" #kafkacat -C -b $BOOTSTRAP -t test-basic-with-kafkacat -o -1 -e | grep $unique #echo "Producer output:" #cat /tmp/producer.out #echo "Producer err:" #cat /tmp/producer.err #exit 1 } exit 0 quit-on-nonzero-exit.sh: |- exec >> /tmp/testlog exec 2>&1 exit 0 --- apiVersion: batch/v1 kind: Job metadata: name: test-basic-with-kafkacat namespace: default spec: template: spec: containers: - name: topic-create image: solsson/kafka:1.0.0@sha256:17fdf1637426f45c93c65826670542e36b9f3394ede1cb61885c6a4befa8f72d command: - ./bin/kafka-topics.sh - --zookeeper - zookeeper.kafka.svc.cluster.local:2181 - --create - --if-not-exists - --topic - test-basic-with-kafkacat - --partitions - "1" - --replication-factor - "2" restartPolicy: Never --- apiVersion: apps/v1beta1 kind: Deployment metadata: name: test-basic-with-kafkacat namespace: default spec: replicas: 1 strategy: type: Recreate template: metadata: labels: test-target: kube-test test-type: readiness # for example: # readonly - can be used in production # isolated - read/write but in a manner that does not affect other services # load - unsuitable for production because it uses significant resources # chaos - unsuitable for production because it injects failure modes #test-use: spec: containers: - name: testcase image: solsson/kafkacat@sha256:ebebf47061300b14a4b4c2e1e4303ab29f65e4b95d34af1b14bb8f7ec6da7cef env: - name: BOOTSTRAP #value: kafka-0.broker.kafka.svc.cluster.local:9092,kafka-1.broker.kafka.svc.cluster.local:9092,kafka-2.broker.kafka.svc.cluster.local:9092 value: kafka-0.broker.kafka.svc.cluster.local:9092 command: - /bin/bash - -e - /test/setup.sh readinessProbe: exec: command: - /bin/bash - -e - /test/test.sh initialDelaySeconds: 10 periodSeconds: 10 livenessProbe: exec: command: - /bin/bash - -e - /test/quit-on-nonzero-exit.sh volumeMounts: - name: config mountPath: /test volumes: - name: config configMap: name: test-basic-with-kafkacat