aboutsummaryrefslogblamecommitdiff
path: root/test/basic-with-kafkacat.yml
blob: ca750acbb1170a23e0973f8b86915649426915cd (plain) (tree)
1
2
3
4
5
6
7
8
9
10


               

                                


              

                      
 




                                                                                                                              
                        
 
             

                        

                       












                                                                                    
 
          





                             



                    

                                




                          
                                                                                                          




                                                  
                         
                 
                                    


                              
               




                          

                                

             

                  


             
                              
                            





                                                                                   

                 
                      
                                                                                                       

                         

                                                                                                                                                     
                
                   
            
                        



                       
                


                                 



                       
                
                                           





                          
                                        
---
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