Skip to content

Commit 5e6583f

Browse files
committed
Add e2e test case for multi-cluster by exposing OTEL collector.
1 parent c8d75ed commit 5e6583f

15 files changed

+624
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: project.openshift.io/v1
2+
kind: Project
3+
metadata:
4+
name: kuttl-multi-cluster-send
5+
status:
6+
phase: Active
7+
8+
apiVersion: project.openshift.io/v1
9+
kind: Project
10+
metadata:
11+
name: kuttl-multi-cluster-receive
12+
status:
13+
phase: Active
14+
15+
---
16+
apiVersion: cert-manager.io/v1
17+
kind: ClusterIssuer
18+
metadata:
19+
name: letsencrypt-staging
20+
spec:
21+
acme:
22+
preferredChain: ""
23+
privateKeySecretRef:
24+
name: private-key-lets-encrypt
25+
server: https://acme-staging-v02.api.letsencrypt.org/directory
26+
solvers:
27+
- http01:
28+
ingress:
29+
class: openshift-default
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: kuttl-multi-cluster-send
5+
6+
---
7+
apiVersion: v1
8+
kind: Namespace
9+
metadata:
10+
name: kuttl-multi-cluster-receive
11+
12+
---
13+
apiVersion: cert-manager.io/v1
14+
kind: ClusterIssuer
15+
metadata:
16+
name: letsencrypt-staging
17+
namespace: observability
18+
spec:
19+
acme:
20+
preferredChain: ""
21+
privateKeySecretRef:
22+
name: private-key-lets-encrypt
23+
server: https://acme-staging-v02.api.letsencrypt.org/directory
24+
solvers:
25+
- http01:
26+
ingress:
27+
class: openshift-default
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app: jaeger
6+
app.kubernetes.io/component: all-in-one
7+
app.kubernetes.io/instance: jaeger-allinone
8+
app.kubernetes.io/managed-by: jaeger-operator
9+
app.kubernetes.io/name: jaeger-allinone
10+
app.kubernetes.io/part-of: jaeger
11+
name: jaeger-allinone
12+
namespace: kuttl-multi-cluster-receive
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: jaeger
24+
app.kubernetes.io/component: service-collector
25+
app.kubernetes.io/instance: jaeger-allinone
26+
app.kubernetes.io/managed-by: jaeger-operator
27+
app.kubernetes.io/name: jaeger-allinone-collector
28+
app.kubernetes.io/part-of: jaeger
29+
name: jaeger-allinone-collector
30+
namespace: kuttl-multi-cluster-receive
31+
spec:
32+
ports:
33+
- name: http-zipkin
34+
port: 9411
35+
protocol: TCP
36+
targetPort: 9411
37+
- name: tls-grpc-jaeger
38+
port: 14250
39+
protocol: TCP
40+
targetPort: 14250
41+
- name: http-c-tchan-trft
42+
port: 14267
43+
protocol: TCP
44+
targetPort: 14267
45+
- name: http-c-binary-trft
46+
port: 14268
47+
protocol: TCP
48+
targetPort: 14268
49+
- name: admin-http
50+
port: 14269
51+
protocol: TCP
52+
targetPort: 14269
53+
- name: grpc-otlp
54+
port: 4317
55+
protocol: TCP
56+
targetPort: 4317
57+
- name: http-otlp
58+
port: 4318
59+
protocol: TCP
60+
targetPort: 4318
61+
selector:
62+
app: jaeger
63+
app.kubernetes.io/component: all-in-one
64+
app.kubernetes.io/instance: jaeger-allinone
65+
app.kubernetes.io/managed-by: jaeger-operator
66+
app.kubernetes.io/name: jaeger-allinone
67+
app.kubernetes.io/part-of: jaeger
68+
type: ClusterIP
69+
70+
---
71+
apiVersion: v1
72+
kind: Service
73+
metadata:
74+
labels:
75+
app: jaeger
76+
app.kubernetes.io/component: service-query
77+
app.kubernetes.io/instance: jaeger-allinone
78+
app.kubernetes.io/managed-by: jaeger-operator
79+
app.kubernetes.io/name: jaeger-allinone-query
80+
app.kubernetes.io/part-of: jaeger
81+
name: jaeger-allinone-query
82+
namespace: kuttl-multi-cluster-receive
83+
spec:
84+
ports:
85+
- name: http-query
86+
port: 16686
87+
protocol: TCP
88+
targetPort: 16686
89+
- name: grpc-query
90+
port: 16685
91+
protocol: TCP
92+
targetPort: 16685
93+
- name: admin-http
94+
port: 16687
95+
protocol: TCP
96+
targetPort: 16687
97+
selector:
98+
app: jaeger
99+
app.kubernetes.io/component: all-in-one
100+
app.kubernetes.io/instance: jaeger-allinone
101+
app.kubernetes.io/managed-by: jaeger-operator
102+
app.kubernetes.io/name: jaeger-allinone
103+
app.kubernetes.io/part-of: jaeger
104+
type: ClusterIP
105+
106+
---
107+
apiVersion: route.openshift.io/v1
108+
kind: Route
109+
metadata:
110+
labels:
111+
app: jaeger
112+
app.kubernetes.io/component: query-route
113+
app.kubernetes.io/instance: jaeger-allinone
114+
app.kubernetes.io/managed-by: jaeger-operator
115+
app.kubernetes.io/name: jaeger-allinone
116+
app.kubernetes.io/part-of: jaeger
117+
name: jaeger-allinone
118+
namespace: kuttl-multi-cluster-receive
119+
spec:
120+
port:
121+
targetPort: http-query
122+
tls:
123+
termination: edge
124+
to:
125+
kind: Service
126+
name: jaeger-allinone-query
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: jaegertracing.io/v1
2+
kind: Jaeger
3+
metadata:
4+
name: jaeger-allinone
5+
namespace: kuttl-multi-cluster-receive
6+
spec:
7+
strategy: allinone
8+
ingress:
9+
security: none
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app.kubernetes.io/component: opentelemetry-collector
6+
app.kubernetes.io/instance: kuttl-multi-cluster-receive.otlp-receiver
7+
app.kubernetes.io/managed-by: opentelemetry-operator
8+
app.kubernetes.io/name: otlp-receiver-collector
9+
app.kubernetes.io/part-of: opentelemetry
10+
app.kubernetes.io/version: latest
11+
name: otlp-receiver-collector
12+
namespace: kuttl-multi-cluster-receive
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-multi-cluster-receive.otlp-receiver
25+
app.kubernetes.io/managed-by: opentelemetry-operator
26+
app.kubernetes.io/name: otlp-receiver-collector
27+
app.kubernetes.io/part-of: opentelemetry
28+
app.kubernetes.io/version: latest
29+
name: otlp-receiver-collector
30+
namespace: kuttl-multi-cluster-receive
31+
spec:
32+
ports:
33+
- appProtocol: http
34+
name: otlp-http
35+
port: 4318
36+
protocol: TCP
37+
targetPort: 4318
38+
- appProtocol: http
39+
name: otlp-http-legacy
40+
port: 55681
41+
protocol: TCP
42+
targetPort: 4318
43+
selector:
44+
app.kubernetes.io/component: opentelemetry-collector
45+
app.kubernetes.io/instance: kuttl-multi-cluster-receive.otlp-receiver
46+
app.kubernetes.io/managed-by: opentelemetry-operator
47+
app.kubernetes.io/part-of: opentelemetry
48+
type: ClusterIP
49+
50+
---
51+
apiVersion: v1
52+
kind: Service
53+
metadata:
54+
labels:
55+
app.kubernetes.io/component: opentelemetry-collector
56+
app.kubernetes.io/instance: kuttl-multi-cluster-receive.otlp-receiver
57+
app.kubernetes.io/managed-by: opentelemetry-operator
58+
app.kubernetes.io/name: otlp-receiver-collector
59+
app.kubernetes.io/part-of: opentelemetry
60+
app.kubernetes.io/version: latest
61+
operator.opentelemetry.io/collector-headless-service: Exists
62+
name: otlp-receiver-collector-headless
63+
namespace: kuttl-multi-cluster-receive
64+
spec:
65+
ports:
66+
- appProtocol: http
67+
name: otlp-http
68+
port: 4318
69+
protocol: TCP
70+
targetPort: 4318
71+
- appProtocol: http
72+
name: otlp-http-legacy
73+
port: 55681
74+
protocol: TCP
75+
targetPort: 4318
76+
selector:
77+
app.kubernetes.io/component: opentelemetry-collector
78+
app.kubernetes.io/instance: kuttl-multi-cluster-receive.otlp-receiver
79+
app.kubernetes.io/managed-by: opentelemetry-operator
80+
app.kubernetes.io/part-of: opentelemetry
81+
type: ClusterIP
82+
83+
---
84+
apiVersion: route.openshift.io/v1
85+
kind: Route
86+
metadata:
87+
annotations:
88+
acme.cert-manager.io/http01-ingress-class: openshift-default
89+
labels:
90+
app.kubernetes.io/instance: kuttl-multi-cluster-receive.otlp-receiver
91+
app.kubernetes.io/managed-by: opentelemetry-operator
92+
app.kubernetes.io/name: otlp-http-legacy-otlp-receiver-route
93+
name: otlp-http-legacy-otlp-receiver-route
94+
namespace: kuttl-multi-cluster-receive
95+
spec:
96+
path: /otlp-http-legacy
97+
port:
98+
targetPort: otlp-http-legac
99+
tls:
100+
termination: edge
101+
to:
102+
kind: Service
103+
name: otlp-receiver-collector
104+
105+
---
106+
apiVersion: route.openshift.io/v1
107+
kind: Route
108+
metadata:
109+
annotations:
110+
acme.cert-manager.io/http01-ingress-class: openshift-default
111+
labels:
112+
app.kubernetes.io/instance: kuttl-multi-cluster-receive.otlp-receiver
113+
app.kubernetes.io/managed-by: opentelemetry-operator
114+
app.kubernetes.io/name: otlp-http-otlp-receiver-route
115+
name: otlp-http-otlp-receiver-route
116+
namespace: kuttl-multi-cluster-receive
117+
spec:
118+
path: /otlp-http
119+
port:
120+
targetPort: otlp-http
121+
tls:
122+
termination: edge
123+
to:
124+
kind: Service
125+
name: otlp-receiver-collector
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: ./create_bearer_token_creds.sh
5+
6+
---
7+
apiVersion: kuttl.dev/v1beta1
8+
kind: TestStep
9+
commands:
10+
- script: ./create_otlp_receiver.sh
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app.kubernetes.io/component: opentelemetry-collector
6+
app.kubernetes.io/instance: kuttl-multi-cluster-send.otel-sender
7+
app.kubernetes.io/managed-by: opentelemetry-operator
8+
app.kubernetes.io/name: otel-sender-collector
9+
app.kubernetes.io/part-of: opentelemetry
10+
app.kubernetes.io/version: latest
11+
name: otel-sender-collector
12+
namespace: kuttl-multi-cluster-send
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-multi-cluster-send.otel-sender
25+
app.kubernetes.io/managed-by: opentelemetry-operator
26+
app.kubernetes.io/name: otel-sender-collector
27+
app.kubernetes.io/part-of: opentelemetry
28+
app.kubernetes.io/version: latest
29+
name: otel-sender-collector
30+
namespace: kuttl-multi-cluster-send
31+
spec:
32+
ports:
33+
- name: opencensus
34+
port: 55678
35+
protocol: TCP
36+
targetPort: 55678
37+
- appProtocol: grpc
38+
name: otlp-grpc
39+
port: 4317
40+
protocol: TCP
41+
targetPort: 4317
42+
- appProtocol: http
43+
name: otlp-http
44+
port: 4318
45+
protocol: TCP
46+
targetPort: 4318
47+
- appProtocol: http
48+
name: otlp-http-legacy
49+
port: 55681
50+
protocol: TCP
51+
targetPort: 4318
52+
- appProtocol: http
53+
name: zipkin
54+
port: 9411
55+
protocol: TCP
56+
targetPort: 9411
57+
selector:
58+
app.kubernetes.io/component: opentelemetry-collector
59+
app.kubernetes.io/instance: kuttl-multi-cluster-send.otel-sender
60+
app.kubernetes.io/managed-by: opentelemetry-operator
61+
app.kubernetes.io/part-of: opentelemetry

0 commit comments

Comments
 (0)