blob: abaea491988505b52d641a0ad44fb5090f429d7f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# https://github.com/Yolean/kubernetes-kafka/pull/140
---
kind: ConfigMap
metadata:
name: replication-config
namespace: test-kafka
apiVersion: v1
data:
setup.sh: |-
touch /tmp/testlog
tail -f /tmp/testlog
test.sh: |-
exec >> /tmp/testlog
exec 2>&1
set -e
kafkacat -L -b $BOOTSTRAP > /tmp/metadata
BROKERS=$(cat /tmp/metadata | grep -E ' [0-9]+ brokers:' | awk '{print $1}')
if (( $BROKERS == 1 )); then
echo "Only one broker; no need to check for >1 replication config."
exit 0
fi
WITH_TWO_OR_MORE=$(cat /tmp/metadata | grep -E ' replicas: [0-9]+,[0-9]+' | wc -l)
WITH_ONE=$(cat /tmp/metadata | grep -E ' replicas: [0-9]+, ' | wc -l)
if (( $WITH_TWO_OR_MORE == 0 )); then
echo "No partitions have >1 replica, so this is probably normal."
exit 0
fi
if (( $WITH_ONE > $MAX_SINGLE_REPLICA_PARTITIONS )); then
echo "$(date --iso-8601='ns') There are $WITH_ONE partitions with only one replica. Alerts for under-replicated partitions won't catch that."
exit 10
fi
echo "$(date --iso-8601='ns') $WITH_ONE partitions have one replica and WITH_TWO_OR_MORE have more"
exit 0
quit-on-nonzero-exit.sh: |-
exec >> /tmp/testlog
exec 2>&1
exit 0
---
apiVersion: apps/v1beta2
kind: ReplicaSet
metadata:
name: replication-config
namespace: test-kafka
spec:
# Note that this test sets a consumer group, but asserts assume that the tests gets its own messages
replicas: 1
selector:
matchLabels:
test-target: kafka-replication-config
test-type: readiness
template:
metadata:
labels:
test-target: kafka-replication-config
test-type: readiness
spec:
containers:
- name: testcase
image: solsson/kafkacat@sha256:b32eedf936f3cde44cd164ddc77dfcf7565a8af4e357ff6de1abe4389ca530c9
env:
- name: BOOTSTRAP
value: bootstrap.kafka:9092
- name: MAX_SINGLE_REPLICA_PARTITIONS
value: "0"
command:
- /bin/bash
- -e
- /test/setup.sh
readinessProbe:
exec:
command:
- /bin/bash
- -e
- /test/test.sh
initialDelaySeconds: 30
periodSeconds: 60
livenessProbe:
exec:
command:
- /bin/bash
- -e
- /test/quit-on-nonzero-exit.sh
volumeMounts:
- name: config
mountPath: /test
volumes:
- name: config
configMap:
name: replication-config
|