Skip to content

Commit 68fedc4

Browse files
committed
Add e2e test case
Signed-off-by: Janario Oliveira <[email protected]>
1 parent 42aa502 commit 68fedc4

9 files changed

+256
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
apiVersion: opentelemetry.io/v1alpha1
2+
kind: OpenTelemetryCollector
3+
metadata:
4+
name: sidecar
5+
spec:
6+
config: |
7+
receivers:
8+
otlp:
9+
protocols:
10+
grpc:
11+
http:
12+
processors:
13+
14+
exporters:
15+
debug:
16+
17+
service:
18+
pipelines:
19+
traces:
20+
receivers: [otlp]
21+
processors: []
22+
exporters: [debug]
23+
mode: sidecar
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: opentelemetry.io/v1alpha1
2+
kind: Instrumentation
3+
metadata:
4+
name: sdk-only
5+
spec:
6+
exporter:
7+
endpoint: http://localhost:4317

tests/e2e/env-vars/01-assert.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
annotations:
5+
instrumentation.opentelemetry.io/inject-sdk: "true"
6+
sidecar.opentelemetry.io/inject: "true"
7+
labels:
8+
app: my-deploy
9+
spec:
10+
(containers[?name == 'myapp']):
11+
- name: myapp
12+
env:
13+
- name: OTEL_SERVICE_NAME
14+
value: my-deploy
15+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
16+
value: http://localhost:4317
17+
- name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME
18+
valueFrom:
19+
fieldRef:
20+
apiVersion: v1
21+
fieldPath: metadata.name
22+
- name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME
23+
valueFrom:
24+
fieldRef:
25+
apiVersion: v1
26+
fieldPath: spec.nodeName
27+
- name: OTEL_RESOURCE_ATTRIBUTES
28+
value:
29+
( contains(@, 'k8s.container.name=myapp') ): true
30+
( contains(@, 'k8s.pod.name=$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME)') ): true
31+
( contains(@, 'k8s.replicaset.name=my-deploy-') ): true
32+
( contains(@, 'k8s.deployment.name=my-deploy') ): true
33+
( contains(@, concat('k8s.namespace.name=', $namespace)) ): true
34+
( contains(@, 'k8s.node.name=$(OTEL_RESOURCE_ATTRIBUTES_NODE_NAME)') ): true
35+
( contains(@, 'service.version=main') ): true

tests/e2e/env-vars/01-deployment.yaml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: my-deploy
5+
spec:
6+
selector:
7+
matchLabels:
8+
app: my-deploy
9+
replicas: 1
10+
template:
11+
metadata:
12+
labels:
13+
app: my-deploy
14+
annotations:
15+
sidecar.opentelemetry.io/inject: "true"
16+
instrumentation.opentelemetry.io/inject-sdk: "true"
17+
spec:
18+
containers:
19+
- name: myapp
20+
image: ghcr.io/open-telemetry/opentelemetry-operator/e2e-test-app-python:main

tests/e2e/env-vars/02-assert.yaml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
annotations:
5+
instrumentation.opentelemetry.io/inject-sdk: "true"
6+
sidecar.opentelemetry.io/inject: "true"
7+
labels:
8+
job-name: my-cron-job-exec
9+
ownerReferences:
10+
- apiVersion: batch/v1
11+
kind: Job
12+
name: my-cron-job-exec
13+
spec:
14+
(containers[?name == 'myapp']):
15+
- name: myapp
16+
env:
17+
- name: OTEL_SERVICE_NAME
18+
value: my-cron-job
19+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
20+
- name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME
21+
valueFrom:
22+
fieldRef:
23+
apiVersion: v1
24+
fieldPath: metadata.name
25+
- name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME
26+
valueFrom:
27+
fieldRef:
28+
apiVersion: v1
29+
fieldPath: spec.nodeName
30+
- name: OTEL_RESOURCE_ATTRIBUTES
31+
value:
32+
( contains(@, 'k8s.container.name=myapp') ): true
33+
( contains(@, 'k8s.pod.name=$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME)') ): true
34+
( contains(@, 'k8s.job.name=my-cron-job-exec') ): true
35+
( contains(@, 'k8s.cronjob.name=my-cron-job') ): true
36+
( contains(@, concat('k8s.namespace.name=', $namespace)) ): true
37+
( contains(@, 'k8s.node.name=$(OTEL_RESOURCE_ATTRIBUTES_NODE_NAME)') ): true
38+
( contains(@, 'service.version=main') ): true

tests/e2e/env-vars/02-cronjob.yaml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
apiVersion: batch/v1
2+
kind: CronJob
3+
metadata:
4+
name: my-cron-job
5+
spec:
6+
schedule: "* * * * *"
7+
suspend: true
8+
jobTemplate:
9+
spec:
10+
template:
11+
metadata:
12+
annotations:
13+
sidecar.opentelemetry.io/inject: "true"
14+
instrumentation.opentelemetry.io/inject-sdk: "true"
15+
spec:
16+
restartPolicy: Never
17+
containers:
18+
- name: myapp
19+
image: ghcr.io/open-telemetry/opentelemetry-operator/e2e-test-app-python:main
20+
imagePullPolicy: IfNotPresent
21+
command:
22+
- echo
23+
- ok

tests/e2e/env-vars/03-assert.yaml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
annotations:
5+
instrumentation.opentelemetry.io/inject-sdk: "true"
6+
sidecar.opentelemetry.io/inject: "true"
7+
labels:
8+
job-name: my-job
9+
ownerReferences:
10+
- apiVersion: batch/v1
11+
kind: Job
12+
name: my-job
13+
spec:
14+
(containers[?name == 'myapp']):
15+
- name: myapp
16+
env:
17+
- name: OTEL_SERVICE_NAME
18+
value: my-job
19+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
20+
- name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME
21+
valueFrom:
22+
fieldRef:
23+
apiVersion: v1
24+
fieldPath: metadata.name
25+
- name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME
26+
valueFrom:
27+
fieldRef:
28+
apiVersion: v1
29+
fieldPath: spec.nodeName
30+
- name: OTEL_RESOURCE_ATTRIBUTES
31+
value:
32+
( contains(@, 'k8s.container.name=myapp') ): true
33+
( contains(@, 'k8s.pod.name=$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME)') ): true
34+
( contains(@, 'k8s.job.name=my-job') ): true
35+
( contains(@, concat('k8s.namespace.name=', $namespace)) ): true
36+
( contains(@, 'k8s.node.name=$(OTEL_RESOURCE_ATTRIBUTES_NODE_NAME)') ): true
37+
( contains(@, 'service.version=main') ): true

tests/e2e/env-vars/03-job.yaml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: my-job
5+
spec:
6+
template:
7+
metadata:
8+
annotations:
9+
sidecar.opentelemetry.io/inject: "true"
10+
instrumentation.opentelemetry.io/inject-sdk: "true"
11+
spec:
12+
restartPolicy: Never
13+
containers:
14+
- name: myapp
15+
image: ghcr.io/open-telemetry/opentelemetry-operator/e2e-test-app-python:main
16+
imagePullPolicy: IfNotPresent
17+
command:
18+
- echo
19+
- ok

tests/e2e/env-vars/chainsaw-test.yaml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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: service-name
7+
spec:
8+
steps:
9+
- name: step-00
10+
try:
11+
- apply:
12+
file: 00-install-collector.yaml
13+
- apply:
14+
file: 00-install-instrumentation.yaml
15+
# Deployment
16+
- name: step-01
17+
try:
18+
- apply:
19+
file: 01-deployment.yaml
20+
- assert:
21+
file: 01-assert.yaml
22+
catch:
23+
- podLogs:
24+
selector: app=my-deploy
25+
# CronJob
26+
- name: step-02
27+
try:
28+
- apply:
29+
file: 02-cronjob.yaml
30+
- command:
31+
entrypoint: kubectl
32+
args:
33+
- -n
34+
- ${NAMESPACE}
35+
- create
36+
- job
37+
- --from
38+
- cronjob/my-cron-job
39+
- my-cron-job-exec
40+
- assert:
41+
file: 02-assert.yaml
42+
catch:
43+
- podLogs:
44+
selector: job-name=my-cron-job-exec
45+
# Job
46+
- name: step-03
47+
try:
48+
- apply:
49+
file: 03-job.yaml
50+
- assert:
51+
file: 03-assert.yaml
52+
catch:
53+
- podLogs:
54+
selector: job-name=my-job

0 commit comments

Comments
 (0)