Skip to content

Commit 6dd29fa

Browse files
committed
Merge branch '1.8-kube-events' into kubernetes-1.8-test
2 parents 6958b58 + 3fca1e7 commit 6dd29fa

File tree

4 files changed

+202
-0
lines changed

4 files changed

+202
-0
lines changed

events-kube/events-kube-kafka.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
apiVersion: apps/v1beta2
2+
kind: Deployment
3+
metadata:
4+
name: events-kube-kafka
5+
namespace: kafka
6+
spec:
7+
replicas: 1
8+
strategy:
9+
type: RollingUpdate
10+
rollingUpdate:
11+
# prefer duplicate events over missed
12+
maxUnavailable: 0
13+
maxSurge: 1
14+
selector:
15+
matchLabels:
16+
app: events
17+
from: kube
18+
to: kafka
19+
template:
20+
metadata:
21+
labels:
22+
app: events
23+
from: kube
24+
to: kafka
25+
spec:
26+
containers:
27+
- name: kafkacat-curl
28+
image: solsson/kafkacat-curl@sha256:6ad61f2e6343359c3972d7a86815568c0a1d0560068134c5d702a152eb5123a0
29+
env:
30+
- name: BOOTSTRAP
31+
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
32+
- name: TOPIC
33+
value: ops-kube-events-all-json-001
34+
command:
35+
- /bin/bash
36+
- -ec
37+
- >
38+
curl
39+
-f
40+
-s
41+
--cacert /run/secrets/kubernetes.io/serviceaccount/ca.crt
42+
--header "Authorization: Bearer $(cat /run/secrets/kubernetes.io/serviceaccount/token)"
43+
https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api/v1/watch/events
44+
|
45+
kafkacat
46+
-b $BOOTSTRAP
47+
-t $TOPIC
48+
-P
49+
-z snappy
50+
-v
51+
-d broker,topic
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# If events-kube-kafka-* goes crashlooping you probably need this
2+
---
3+
kind: ClusterRole
4+
apiVersion: rbac.authorization.k8s.io/v1beta1
5+
metadata:
6+
name: events-watcher
7+
labels:
8+
origin: github.com_Yolean_kubernetes-kafka
9+
rules:
10+
- apiGroups:
11+
- ""
12+
resources:
13+
- events
14+
verbs:
15+
- watch
16+
---
17+
kind: ClusterRoleBinding
18+
apiVersion: rbac.authorization.k8s.io/v1beta1
19+
metadata:
20+
name: kafka-events-watcher
21+
labels:
22+
origin: github.com_Yolean_kubernetes-kafka
23+
roleRef:
24+
apiGroup: rbac.authorization.k8s.io
25+
kind: ClusterRole
26+
name: events-watcher
27+
subjects:
28+
- kind: ServiceAccount
29+
name: default
30+
namespace: kafka

events-kube/test/events-topic.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
kind: ConfigMap
3+
metadata:
4+
name: events-topic
5+
namespace: test-kafka
6+
apiVersion: v1
7+
data:
8+
9+
setup.sh: |-
10+
touch /tmp/testlog
11+
12+
tail -f /tmp/testlog
13+
14+
test.sh: |-
15+
exec >> /tmp/testlog
16+
exec 2>&1
17+
18+
PREVIOUS=$(sha1sum /tmp/event 2>/dev/null || echo "")
19+
kafkacat -b $BOOTSTRAP -t $TOPIC -C -o -1 -c 1 | tee /tmp/event
20+
CURRENT=$(sha1sum /tmp/event)
21+
[ "$PREVIOUS" == "$CURRENT" ] && echo "{\"test-result\": \"No new event in $TOPIC\"}" && exit 1
22+
23+
exit 0
24+
25+
quit-on-nonzero-exit.sh: |-
26+
exec >> /tmp/testlog
27+
exec 2>&1
28+
29+
exit 0
30+
31+
---
32+
apiVersion: apps/v1beta2
33+
kind: Deployment
34+
metadata:
35+
name: events-topic
36+
namespace: test-kafka
37+
spec:
38+
replicas: 1
39+
strategy:
40+
type: Recreate
41+
selector:
42+
matchLabels:
43+
test-target: events-topic
44+
test-type: readiness
45+
template:
46+
metadata:
47+
labels:
48+
test-target: events-topic
49+
test-type: readiness
50+
# for example:
51+
# readonly - can be used in production
52+
# isolated - read/write but in a manner that does not affect other services
53+
# load - unsuitable for production because it uses significant resources
54+
# chaos - unsuitable for production because it injects failure modes
55+
#test-use:
56+
spec:
57+
containers:
58+
- name: testcase
59+
image: solsson/kafkacat@sha256:ebebf47061300b14a4b4c2e1e4303ab29f65e4b95d34af1b14bb8f7ec6da7cef
60+
env:
61+
- name: BOOTSTRAP
62+
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
63+
- name: TOPIC
64+
value: ops-kube-events-all-json-001
65+
command:
66+
- /bin/bash
67+
- -e
68+
- /test/setup.sh
69+
readinessProbe:
70+
exec:
71+
command:
72+
- /bin/bash
73+
- -e
74+
- /test/test.sh
75+
initialDelaySeconds: 10
76+
periodSeconds: 60
77+
livenessProbe:
78+
exec:
79+
command:
80+
- /bin/bash
81+
- -e
82+
- /test/quit-on-nonzero-exit.sh
83+
volumeMounts:
84+
- name: config
85+
mountPath: /test
86+
volumes:
87+
- name: config
88+
configMap:
89+
name: events-topic
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: topic-ops-kube-events-all-json
5+
namespace: kafka
6+
spec:
7+
template:
8+
metadata:
9+
labels:
10+
app: topic-create
11+
topic-id: ops-kube-events-all-json
12+
topic-gen: "001"
13+
spec:
14+
containers:
15+
- name: kafka
16+
image: solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
17+
command:
18+
- ./bin/kafka-topics.sh
19+
- --zookeeper
20+
- zookeeper:2181
21+
- --create
22+
- --if-not-exists
23+
- --topic
24+
- ops-kube-events-all-json-001
25+
- --partitions
26+
- "1"
27+
- --replication-factor
28+
- "1"
29+
- --config
30+
# 8 days
31+
- retention.ms=691200000
32+
restartPolicy: Never

0 commit comments

Comments
 (0)