Skip to content

Commit abcc30b

Browse files
authored
Add e2e test case for OTEL Kafka receiver and exporter. (#2274)
1 parent 4dfdba0 commit abcc30b

12 files changed

+507
-0
lines changed
+180
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: kuttl-kafka
5+
6+
---
7+
apiVersion: apps/v1
8+
kind: Deployment
9+
metadata:
10+
labels:
11+
app.kubernetes.io/instance: my-cluster
12+
app.kubernetes.io/managed-by: strimzi-cluster-operator
13+
app.kubernetes.io/name: entity-operator
14+
app.kubernetes.io/part-of: strimzi-my-cluster
15+
strimzi.io/cluster: my-cluster
16+
strimzi.io/component-type: entity-operator
17+
strimzi.io/kind: Kafka
18+
strimzi.io/name: my-cluster-entity-operator
19+
name: my-cluster-entity-operator
20+
namespace: kuttl-kafka
21+
status:
22+
availableReplicas: 1
23+
readyReplicas: 1
24+
replicas: 1
25+
26+
---
27+
apiVersion: v1
28+
kind: Pod
29+
metadata:
30+
name: my-cluster-kafka-0
31+
namespace: kuttl-kafka
32+
status:
33+
phase: Running
34+
35+
---
36+
apiVersion: v1
37+
kind: Pod
38+
metadata:
39+
name: my-cluster-zookeeper-0
40+
namespace: kuttl-kafka
41+
status:
42+
phase: Running
43+
44+
---
45+
apiVersion: v1
46+
kind: Service
47+
metadata:
48+
labels:
49+
app.kubernetes.io/instance: my-cluster
50+
app.kubernetes.io/managed-by: strimzi-cluster-operator
51+
app.kubernetes.io/name: kafka
52+
app.kubernetes.io/part-of: strimzi-my-cluster
53+
strimzi.io/cluster: my-cluster
54+
strimzi.io/component-type: kafka
55+
strimzi.io/discovery: "true"
56+
strimzi.io/kind: Kafka
57+
strimzi.io/name: my-cluster-kafka
58+
name: my-cluster-kafka-bootstrap
59+
namespace: kuttl-kafka
60+
spec:
61+
ports:
62+
- name: tcp-replication
63+
port: 9091
64+
protocol: TCP
65+
targetPort: 9091
66+
- name: tcp-clients
67+
port: 9092
68+
protocol: TCP
69+
targetPort: 9092
70+
- name: tcp-clientstls
71+
port: 9093
72+
protocol: TCP
73+
targetPort: 9093
74+
selector:
75+
strimzi.io/cluster: my-cluster
76+
strimzi.io/kind: Kafka
77+
strimzi.io/name: my-cluster-kafka
78+
79+
---
80+
apiVersion: v1
81+
kind: Service
82+
metadata:
83+
labels:
84+
app.kubernetes.io/instance: my-cluster
85+
app.kubernetes.io/managed-by: strimzi-cluster-operator
86+
app.kubernetes.io/name: kafka
87+
app.kubernetes.io/part-of: strimzi-my-cluster
88+
strimzi.io/cluster: my-cluster
89+
strimzi.io/component-type: kafka
90+
strimzi.io/kind: Kafka
91+
strimzi.io/name: my-cluster-kafka
92+
name: my-cluster-kafka-brokers
93+
namespace: kuttl-kafka
94+
spec:
95+
ports:
96+
- name: tcp-ctrlplane
97+
port: 9090
98+
protocol: TCP
99+
targetPort: 9090
100+
- name: tcp-replication
101+
port: 9091
102+
protocol: TCP
103+
targetPort: 9091
104+
- name: tcp-kafkaagent
105+
port: 8443
106+
protocol: TCP
107+
targetPort: 8443
108+
- name: tcp-clients
109+
port: 9092
110+
protocol: TCP
111+
targetPort: 9092
112+
- name: tcp-clientstls
113+
port: 9093
114+
protocol: TCP
115+
targetPort: 9093
116+
publishNotReadyAddresses: true
117+
selector:
118+
strimzi.io/cluster: my-cluster
119+
strimzi.io/kind: Kafka
120+
strimzi.io/name: my-cluster-kafka
121+
122+
---
123+
apiVersion: v1
124+
kind: Service
125+
metadata:
126+
labels:
127+
app.kubernetes.io/instance: my-cluster
128+
app.kubernetes.io/managed-by: strimzi-cluster-operator
129+
app.kubernetes.io/name: zookeeper
130+
app.kubernetes.io/part-of: strimzi-my-cluster
131+
strimzi.io/cluster: my-cluster
132+
strimzi.io/component-type: zookeeper
133+
strimzi.io/kind: Kafka
134+
strimzi.io/name: my-cluster-zookeeper
135+
name: my-cluster-zookeeper-client
136+
namespace: kuttl-kafka
137+
spec:
138+
ports:
139+
- name: tcp-clients
140+
port: 2181
141+
protocol: TCP
142+
targetPort: 2181
143+
selector:
144+
strimzi.io/cluster: my-cluster
145+
strimzi.io/kind: Kafka
146+
strimzi.io/name: my-cluster-zookeeper
147+
148+
---
149+
apiVersion: v1
150+
kind: Service
151+
metadata:
152+
labels:
153+
app.kubernetes.io/instance: my-cluster
154+
app.kubernetes.io/managed-by: strimzi-cluster-operator
155+
app.kubernetes.io/name: zookeeper
156+
app.kubernetes.io/part-of: strimzi-my-cluster
157+
strimzi.io/cluster: my-cluster
158+
strimzi.io/component-type: zookeeper
159+
strimzi.io/kind: Kafka
160+
strimzi.io/name: my-cluster-zookeeper
161+
name: my-cluster-zookeeper-nodes
162+
namespace: kuttl-kafka
163+
spec:
164+
ports:
165+
- name: tcp-clients
166+
port: 2181
167+
protocol: TCP
168+
targetPort: 2181
169+
- name: tcp-clustering
170+
port: 2888
171+
protocol: TCP
172+
targetPort: 2888
173+
- name: tcp-election
174+
port: 3888
175+
protocol: TCP
176+
targetPort: 3888
177+
selector:
178+
strimzi.io/cluster: my-cluster
179+
strimzi.io/kind: Kafka
180+
strimzi.io/name: my-cluster-zookeeper
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#For creating the Kafka instance, install the AMQ streams operator https://access.redhat.com/documentation/en-us/red_hat_amq_streams/2.5/html/getting_started_with_amq_streams_on_openshift/proc-deploying-cluster-operator-hub-str
2+
3+
apiVersion: v1
4+
kind: Namespace
5+
metadata:
6+
name: kuttl-kafka
7+
8+
---
9+
apiVersion: kafka.strimzi.io/v1beta2
10+
kind: Kafka
11+
metadata:
12+
name: my-cluster
13+
namespace: kuttl-kafka
14+
spec:
15+
entityOperator:
16+
topicOperator:
17+
reconciliationIntervalSeconds: 90
18+
userOperator:
19+
reconciliationIntervalSeconds: 120
20+
kafka:
21+
config:
22+
log.message.format.version: 3.5.0
23+
message.max.bytes: 10485760
24+
offsets.topic.replication.factor: 1
25+
ssl.cipher.suites: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
26+
ssl.enabled.protocols: TLSv1.2
27+
ssl.protocol: TLSv1.2
28+
transaction.state.log.min.isr: 1
29+
transaction.state.log.replication.factor: 1
30+
jvmOptions:
31+
-Xms: 1024m
32+
-Xmx: 1024m
33+
listeners:
34+
- configuration:
35+
useServiceDnsDomain: true
36+
name: plain
37+
port: 9092
38+
tls: false
39+
type: internal
40+
- authentication:
41+
type: tls
42+
name: tls
43+
port: 9093
44+
tls: true
45+
type: internal
46+
replicas: 1
47+
resources:
48+
limits:
49+
cpu: "1"
50+
memory: 4Gi
51+
requests:
52+
cpu: "1"
53+
memory: 4Gi
54+
storage:
55+
type: ephemeral
56+
version: 3.5.0
57+
zookeeper:
58+
replicas: 1
59+
storage:
60+
type: ephemeral
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: kafka.strimzi.io/v1beta2
2+
kind: KafkaTopic
3+
metadata:
4+
name: otlp-spans
5+
namespace: kuttl-kafka
6+
spec:
7+
config:
8+
retention.ms: 300000
9+
segment.bytes: 1073741824
10+
partitions: 1
11+
replicas: 1
12+
status:
13+
topicName: otlp-spans
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: kafka.strimzi.io/v1beta1
2+
kind: KafkaTopic
3+
metadata:
4+
labels:
5+
strimzi.io/cluster: my-cluster
6+
name: otlp-spans
7+
namespace: kuttl-kafka
8+
spec:
9+
config:
10+
retention.ms: 300000
11+
segment.bytes: 1073741824
12+
partitions: 1
13+
replicas: 1
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app.kubernetes.io/component: opentelemetry-collector
6+
app.kubernetes.io/instance: kuttl-kafka.kafka-receiver
7+
app.kubernetes.io/managed-by: opentelemetry-operator
8+
app.kubernetes.io/name: kafka-receiver-collector
9+
app.kubernetes.io/part-of: opentelemetry
10+
app.kubernetes.io/version: latest
11+
name: kafka-receiver-collector
12+
namespace: kuttl-kafka
13+
status:
14+
availableReplicas: 1
15+
readyReplicas: 1
16+
replicas: 1
17+
18+
---
19+
apiVersion: v1
20+
kind: Service
21+
metadata:
22+
labels:
23+
app.kubernetes.io/component: opentelemetry-collector
24+
app.kubernetes.io/instance: kuttl-kafka.kafka-receiver
25+
app.kubernetes.io/managed-by: opentelemetry-operator
26+
app.kubernetes.io/name: kafka-receiver-collector-monitoring
27+
name: kafka-receiver-collector-monitoring
28+
namespace: kuttl-kafka
29+
spec:
30+
ports:
31+
- name: monitoring
32+
port: 8888
33+
protocol: TCP
34+
targetPort: 8888
35+
selector:
36+
app.kubernetes.io/component: opentelemetry-collector
37+
app.kubernetes.io/instance: kuttl-kafka.kafka-receiver
38+
app.kubernetes.io/managed-by: opentelemetry-operator
39+
type: ClusterIP
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: opentelemetry.io/v1alpha1
2+
kind: OpenTelemetryCollector
3+
metadata:
4+
name: kafka-receiver
5+
namespace: kuttl-kafka
6+
spec:
7+
mode: "deployment"
8+
config: |
9+
receivers:
10+
kafka/traces:
11+
brokers: ["my-cluster-kafka-brokers.kuttl-kafka.svc:9092"]
12+
protocol_version: 3.5.0
13+
topic: otlp-spans
14+
exporters:
15+
debug:
16+
verbosity: detailed
17+
service:
18+
pipelines:
19+
traces:
20+
receivers: [kafka/traces]
21+
processors: []
22+
exporters: [debug]

0 commit comments

Comments
 (0)