Skip to content

Commit

Permalink
[Chore] Add interoperability tests for Tempo and OpenShift Serverless (
Browse files Browse the repository at this point in the history
…#923)

* Add interoperability jobs for Tempo and OpenShift Serverless

* Fix upgrade test
  • Loading branch information
IshwarKanse authored Jun 24, 2024
1 parent ca84dd2 commit 0ed0494
Show file tree
Hide file tree
Showing 35 changed files with 2,071 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ GEN_API_DOCS_VERSION ?= v0.6.0
ENVTEST_VERSION ?= latest
OPERATOR_SDK_VERSION ?= 1.32.0
CERTMANAGER_VERSION ?= 1.9.1
CHAINSAW_VERSION ?= v0.2.0
CHAINSAW_VERSION ?= v0.2.4

## Tool Binaries
KUSTOMIZE ?= $(LOCALBIN)/kustomize-$(KUSTOMIZE_VERSION)
Expand Down
2 changes: 1 addition & 1 deletion tests/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ RUN curl -LO https://github.com/kudobuilder/kuttl/releases/download/v0.15.0/kube
&& mv kubectl-kuttl_0.15.0_linux_x86_64 /usr/local/bin/kuttl

# Install chainsaw
RUN go install github.com/kyverno/[email protected].0
RUN go install github.com/kyverno/[email protected].4

# Install kubectl and oc
RUN curl -L -o oc.tar.gz https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/latest/openshift-client-linux.tar.gz \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata:
name: otel-tempo-serverless
spec:
# The test case needs to run serially as it creates resources in static namespaces knative-serving knative-eventing.
concurrent: false
namespace: chainsaw-otel-tempo-serverless
steps:
- name: Install Minio object store
try:
- apply:
file: install-minio.yaml
- assert:
file: install-minio-assert.yaml
- name: Install TempoStack
try:
- apply:
file: install-tempo.yaml
- assert:
file: install-tempo-assert.yaml
- name: Create the OTEL collector instance
try:
- apply:
file: create-otel-collector.yaml
- assert:
file: create-otel-collector-assert.yaml
- name: Create Knative serving instance
try:
- apply:
file: create-knative-serving.yaml
- assert:
file: create-knative-serving-assert.yaml
- name: Create Knative eventing instance
try:
- apply:
file: create-knative-eventing.yaml
- assert:
file: create-knative-eventing-assert.yaml
- name: Create Knative service app instance
try:
- apply:
file: create-knative-app.yaml
- assert:
file: create-knative-app-assert.yaml
- name: Generate Traces by probing the Knative service app instance
try:
- apply:
file: generate-traces.yaml
- assert:
file: generate-traces-assert.yaml
- name: Verify the Traces in Tempo instance
try:
- apply:
file: verify-traces.yaml
- assert:
file: verify-traces-assert.yaml
cleanup:
- delete:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: serverless-app
namespace: chainsaw-otel-tempo-serverless
- delete:
ref:
apiVersion: serving.knative.dev/v1
kind: Route
name: serverless-app
namespace: chainsaw-otel-tempo-serverless
- delete:
ref:
apiVersion: networking.internal.knative.dev/v1alpha1
kind: Ingress
name: serverless-app
namespace: chainsaw-otel-tempo-serverless
- delete:
ref:
apiVersion: operator.knative.dev/v1beta1
kind: KnativeEventing
name: serverless
namespace: knative-eventing
- delete:
ref:
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
name: serverless
namespace: knative-serving

Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: helloworld-go
serving.knative.dev/configuration: serverless-app
serving.knative.dev/service: serverless-app
namespace: chainsaw-otel-tempo-serverless
status:
availableReplicas: 1
readyReplicas: 1
replicas: 1

---
apiVersion: v1
kind: Service
metadata:
name: serverless-app
namespace: chainsaw-otel-tempo-serverless
spec:
externalName: kourier-internal.knative-serving-ingress.svc.cluster.local
ports:
- name: http2
port: 80
protocol: TCP
targetPort: 80
type: ExternalName

---
apiVersion: v1
kind: Service
metadata:
name: serverless-app-00001
namespace: chainsaw-otel-tempo-serverless
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8012
- name: https
port: 443
protocol: TCP
targetPort: 8112

---
apiVersion: v1
kind: Service
metadata:
name: serverless-app-00001-private
namespace: chainsaw-otel-tempo-serverless
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8012
- name: https
port: 443
protocol: TCP
targetPort: 8112
- name: http-autometric
port: 9090
protocol: TCP
targetPort: http-autometric
- name: http-usermetric
port: 9091
protocol: TCP
targetPort: http-usermetric
- name: http-queueadm
port: 8022
protocol: TCP
targetPort: 8022
- name: http-istio
port: 8012
protocol: TCP
targetPort: 8012

---
apiVersion: v1
kind: Pod
metadata:
labels:
app: helloworld-go
status:
containerStatuses:
- name: queue-proxy
ready: true
started: true
- name: user-container
ready: true
started: true
phase: Running
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: serverless-app
namespace: chainsaw-otel-tempo-serverless
spec:
template:
metadata:
labels:
app: helloworld-go
annotations:
autoscaling.knative.dev/minScale: "1"
autoscaling.knative.dev/target: "1"
spec:
containers:
- image: quay.io/openshift-knative/helloworld:v1.2
imagePullPolicy: Always
resources:
requests:
cpu: "200m"
env:
- name: TARGET
value: "Go Sample v1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: eventing-controller
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: eventing-webhook
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: imc-controller
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: imc-dispatcher
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt-broker-controller
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt-broker-filter
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt-broker-ingress
namespace: knative-eventing
status:
availableReplicas: 2
readyReplicas: 2
replicas: 2

---
apiVersion: v1
kind: Pod
metadata:
labels:
app: eventing-controller
app.kubernetes.io/component: eventing-controller
app.kubernetes.io/name: knative-eventing
namespace: knative-eventing
status:
containerStatuses:
- name: eventing-controller
ready: true
started: true
- name: kube-rbac-proxy
ready: true
started: true
phase: Running

---
apiVersion: batch/v1
kind: Job
metadata:
labels:
app: storage-version-migration-eventing
app.kubernetes.io/component: storage-version-migration-job
app.kubernetes.io/name: knative-eventing
namespace: knative-eventing
status:
succeeded: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: project.openshift.io/v1
kind: Project
metadata:
name: knative-eventing
spec: {}

---
apiVersion: operator.knative.dev/v1beta1
kind: KnativeEventing
metadata:
name: serverless
namespace: knative-eventing
spec:
config:
tracing:
backend: "zipkin"
zipkin-endpoint: "http://serverless-collector-headless.chainsaw-otel-tempo-serverless.svc:9411/api/v2/spans"
debug: "false"
sample-rate: "0.1"
Loading

0 comments on commit 0ed0494

Please sign in to comment.