Skip to content

Commit d9ff5df

Browse files
committed
chore: added e2e tests for extensions
Signed-off-by: Ankit152 <[email protected]>
1 parent 07787f4 commit d9ff5df

File tree

4 files changed

+335
-0
lines changed

4 files changed

+335
-0
lines changed

.chloggen/service-extension.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: enhancement
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action)
5+
component: collector
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: support for creating a service for extensions when ports are specified.
9+
10+
# One or more tracking issues related to the change
11+
issues: []
12+
13+
# (Optional) One or more lines of additional information to render under the primary note.
14+
# These lines will be padded with 2 spaces and then inserted directly into the document.
15+
# Use pipe (|) for multiline entries.
16+
subtext:

tests/e2e/extension/00-assert.yaml

+272
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
apiVersion: v1
2+
items:
3+
- apiVersion: apps/v1
4+
kind: Deployment
5+
metadata:
6+
annotations:
7+
deployment.kubernetes.io/revision: "1"
8+
generation: 1
9+
labels:
10+
app.kubernetes.io/component: opentelemetry-collector
11+
app.kubernetes.io/instance: default.jaeger-inmemory
12+
app.kubernetes.io/managed-by: opentelemetry-operator
13+
app.kubernetes.io/name: jaeger-inmemory-collector
14+
app.kubernetes.io/part-of: opentelemetry
15+
app.kubernetes.io/version: latest
16+
name: jaeger-inmemory-collector
17+
ownerReferences:
18+
- apiVersion: opentelemetry.io/v1beta1
19+
blockOwnerDeletion: true
20+
controller: true
21+
kind: OpenTelemetryCollector
22+
name: jaeger-inmemory
23+
spec:
24+
replicas: 1
25+
selector:
26+
matchLabels:
27+
app.kubernetes.io/component: opentelemetry-collector
28+
app.kubernetes.io/instance: default.jaeger-inmemory
29+
app.kubernetes.io/managed-by: opentelemetry-operator
30+
app.kubernetes.io/part-of: opentelemetry
31+
strategy:
32+
rollingUpdate:
33+
maxSurge: 25%
34+
maxUnavailable: 25%
35+
type: RollingUpdate
36+
template:
37+
metadata:
38+
annotations:
39+
prometheus.io/path: /metrics
40+
prometheus.io/port: "8888"
41+
prometheus.io/scrape: "true"
42+
creationTimestamp: null
43+
labels:
44+
app.kubernetes.io/component: opentelemetry-collector
45+
app.kubernetes.io/instance: default.jaeger-inmemory
46+
app.kubernetes.io/managed-by: opentelemetry-operator
47+
app.kubernetes.io/name: jaeger-inmemory-collector
48+
app.kubernetes.io/part-of: opentelemetry
49+
app.kubernetes.io/version: latest
50+
spec:
51+
containers:
52+
- args:
53+
- --config=/conf/collector.yaml
54+
env:
55+
- name: POD_NAME
56+
valueFrom:
57+
fieldRef:
58+
apiVersion: v1
59+
fieldPath: metadata.name
60+
image: jaegertracing/jaeger-snapshot:latest
61+
imagePullPolicy: Always
62+
name: otc-container
63+
ports:
64+
- containerPort: 16686
65+
name: jaeger
66+
protocol: TCP
67+
- containerPort: 8888
68+
name: metrics
69+
protocol: TCP
70+
- containerPort: 4317
71+
name: otlp-grpc
72+
protocol: TCP
73+
- containerPort: 4318
74+
name: otlp-http
75+
protocol: TCP
76+
resources: {}
77+
terminationMessagePath: /dev/termination-log
78+
terminationMessagePolicy: File
79+
volumeMounts:
80+
- mountPath: /conf
81+
name: otc-internal
82+
dnsConfig: {}
83+
dnsPolicy: ClusterFirst
84+
restartPolicy: Always
85+
schedulerName: default-scheduler
86+
securityContext: {}
87+
serviceAccount: jaeger-inmemory-collector
88+
serviceAccountName: jaeger-inmemory-collector
89+
shareProcessNamespace: false
90+
terminationGracePeriodSeconds: 30
91+
kind: List
92+
metadata:
93+
resourceVersion: ""
94+
---
95+
apiVersion: v1
96+
kind: ServiceAccount
97+
metadata:
98+
labels:
99+
app.kubernetes.io/component: opentelemetry-collector
100+
app.kubernetes.io/instance: default.jaeger-inmemory
101+
app.kubernetes.io/managed-by: opentelemetry-operator
102+
app.kubernetes.io/name: jaeger-inmemory-collector
103+
app.kubernetes.io/part-of: opentelemetry
104+
app.kubernetes.io/version: latest
105+
name: jaeger-inmemory-collector
106+
ownerReferences:
107+
- apiVersion: opentelemetry.io/v1beta1
108+
blockOwnerDeletion: true
109+
controller: true
110+
kind: OpenTelemetryCollector
111+
name: jaeger-inmemory
112+
---
113+
apiVersion: v1
114+
kind: Service
115+
metadata:
116+
labels:
117+
app.kubernetes.io/component: opentelemetry-collector
118+
app.kubernetes.io/instance: default.jaeger-inmemory
119+
app.kubernetes.io/managed-by: opentelemetry-operator
120+
app.kubernetes.io/name: jaeger-inmemory-collector
121+
app.kubernetes.io/part-of: opentelemetry
122+
app.kubernetes.io/version: latest
123+
operator.opentelemetry.io/collector-service-type: base
124+
name: jaeger-inmemory-collector
125+
ownerReferences:
126+
- apiVersion: opentelemetry.io/v1beta1
127+
blockOwnerDeletion: true
128+
controller: true
129+
kind: OpenTelemetryCollector
130+
name: jaeger-inmemory
131+
spec:
132+
internalTrafficPolicy: Cluster
133+
ipFamilies:
134+
- IPv4
135+
ipFamilyPolicy: SingleStack
136+
ports:
137+
- name: jaeger
138+
port: 16686
139+
protocol: TCP
140+
targetPort: 16686
141+
- appProtocol: grpc
142+
name: otlp-grpc
143+
port: 4317
144+
protocol: TCP
145+
targetPort: 4317
146+
- appProtocol: http
147+
name: otlp-http
148+
port: 4318
149+
protocol: TCP
150+
targetPort: 4318
151+
selector:
152+
app.kubernetes.io/component: opentelemetry-collector
153+
app.kubernetes.io/instance: default.jaeger-inmemory
154+
app.kubernetes.io/managed-by: opentelemetry-operator
155+
app.kubernetes.io/part-of: opentelemetry
156+
sessionAffinity: None
157+
type: ClusterIP
158+
status:
159+
loadBalancer: {}
160+
---
161+
apiVersion: v1
162+
kind: Service
163+
metadata:
164+
annotations:
165+
service.beta.openshift.io/serving-cert-secret-name: jaeger-inmemory-collector-headless-tls
166+
labels:
167+
app.kubernetes.io/component: opentelemetry-collector
168+
app.kubernetes.io/instance: default.jaeger-inmemory
169+
app.kubernetes.io/managed-by: opentelemetry-operator
170+
app.kubernetes.io/name: jaeger-inmemory-collector
171+
app.kubernetes.io/part-of: opentelemetry
172+
app.kubernetes.io/version: latest
173+
operator.opentelemetry.io/collector-headless-service: Exists
174+
operator.opentelemetry.io/collector-service-type: headless
175+
name: jaeger-inmemory-collector-headless
176+
ownerReferences:
177+
- apiVersion: opentelemetry.io/v1beta1
178+
blockOwnerDeletion: true
179+
controller: true
180+
kind: OpenTelemetryCollector
181+
name: jaeger-inmemory
182+
spec:
183+
clusterIP: None
184+
clusterIPs:
185+
- None
186+
internalTrafficPolicy: Cluster
187+
ipFamilies:
188+
- IPv4
189+
ipFamilyPolicy: SingleStack
190+
ports:
191+
- name: jaeger
192+
port: 16686
193+
protocol: TCP
194+
targetPort: 16686
195+
- appProtocol: grpc
196+
name: otlp-grpc
197+
port: 4317
198+
protocol: TCP
199+
targetPort: 4317
200+
- appProtocol: http
201+
name: otlp-http
202+
port: 4318
203+
protocol: TCP
204+
targetPort: 4318
205+
selector:
206+
app.kubernetes.io/component: opentelemetry-collector
207+
app.kubernetes.io/instance: default.jaeger-inmemory
208+
app.kubernetes.io/managed-by: opentelemetry-operator
209+
app.kubernetes.io/part-of: opentelemetry
210+
sessionAffinity: None
211+
type: ClusterIP
212+
status:
213+
loadBalancer: {}
214+
---
215+
apiVersion: v1
216+
kind: Service
217+
metadata:
218+
labels:
219+
app.kubernetes.io/component: opentelemetry-collector
220+
app.kubernetes.io/instance: default.jaeger-inmemory
221+
app.kubernetes.io/managed-by: opentelemetry-operator
222+
app.kubernetes.io/name: jaeger-inmemory-collector-monitoring
223+
app.kubernetes.io/part-of: opentelemetry
224+
app.kubernetes.io/version: latest
225+
operator.opentelemetry.io/collector-monitoring-service: Exists
226+
operator.opentelemetry.io/collector-service-type: monitoring
227+
name: jaeger-inmemory-collector-monitoring
228+
ownerReferences:
229+
- apiVersion: opentelemetry.io/v1beta1
230+
blockOwnerDeletion: true
231+
controller: true
232+
kind: OpenTelemetryCollector
233+
name: jaeger-inmemory
234+
spec:
235+
internalTrafficPolicy: Cluster
236+
ipFamilies:
237+
- IPv4
238+
ipFamilyPolicy: SingleStack
239+
ports:
240+
- name: monitoring
241+
port: 8888
242+
protocol: TCP
243+
targetPort: 8888
244+
selector:
245+
app.kubernetes.io/component: opentelemetry-collector
246+
app.kubernetes.io/instance: default.jaeger-inmemory
247+
app.kubernetes.io/managed-by: opentelemetry-operator
248+
app.kubernetes.io/part-of: opentelemetry
249+
sessionAffinity: None
250+
type: ClusterIP
251+
status:
252+
loadBalancer: {}
253+
---
254+
apiVersion: v1
255+
kind: Service
256+
metadata:
257+
labels:
258+
app.kubernetes.io/component: opentelemetry-collector
259+
app.kubernetes.io/instance: default.jaeger-inmemory
260+
app.kubernetes.io/managed-by: opentelemetry-operator
261+
app.kubernetes.io/part-of: opentelemetry
262+
app.kubernetes.io/version: latest
263+
operator.opentelemetry.io/collector-extension-service: Exists
264+
operator.opentelemetry.io/collector-service-type: extension
265+
spec:
266+
selector:
267+
app.kubernetes.io/component: opentelemetry-collector
268+
app.kubernetes.io/instance: default.jaeger-inmemory
269+
app.kubernetes.io/managed-by: opentelemetry-operator
270+
app.kubernetes.io/part-of: opentelemetry
271+
status:
272+
loadBalancer: {}

tests/e2e/extension/00-install.yaml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: opentelemetry.io/v1beta1
2+
kind: OpenTelemetryCollector
3+
metadata:
4+
name: jaeger-inmemory
5+
spec:
6+
image: jaegertracing/jaeger-snapshot:latest
7+
ports:
8+
- name: jaeger
9+
port: 16686
10+
config:
11+
service:
12+
extensions: [jaeger_storage, jaeger_query]
13+
pipelines:
14+
traces:
15+
receivers: [otlp]
16+
exporters: [jaeger_storage_exporter]
17+
extensions:
18+
jaeger_query:
19+
storage:
20+
traces: memstore
21+
jaeger_storage:
22+
backends:
23+
memstore:
24+
memory:
25+
max_traces: 100000
26+
receivers:
27+
otlp:
28+
protocols:
29+
grpc:
30+
http:
31+
exporters:
32+
jaeger_storage_exporter:
33+
trace_storage: memstore
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
creationTimestamp: null
6+
name: extension-test
7+
spec:
8+
steps:
9+
- name: step-00
10+
try:
11+
- apply:
12+
file: 00-install.yaml
13+
- assert:
14+
file: 00-assert.yaml

0 commit comments

Comments
 (0)