Skip to content

Commit

Permalink
Verify number of traces in verify-traces steps (#509)
Browse files Browse the repository at this point in the history
* Verify number of traces in verify-traces steps

* speed up telemetrygen by generating 10 traces instead of running
  for 30 seconds
* use Tempo API where applicable

Resolves: #98
Resolves: #490
Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* Increment multitenancy and upgrade test steps

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* Create minio storage before each test writing to the storage

* we need deterministic (empty) storage before tests which write or read
  from the storage

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* Use TLS cert in smoketest-with-jaeger, revert to use the Jaeger API in the upgrade test

* use Jaeger API to keep the upgrade test simple (without mounting TLS
  certs)

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* pin registry.gitlab.com/gitlab-ci-utils/curl-jq image

---------

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Co-authored-by: Pavol Loffay <p.loffay@gmail.com>
  • Loading branch information
andreasgerstmayr and pavolloffay authored Jul 26, 2023
1 parent 1e7414d commit 41b128c
Show file tree
Hide file tree
Showing 34 changed files with 774 additions and 533 deletions.
3 changes: 0 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,6 @@ e2e:
# OpenShift end-to-tests
.PHONY: prepare-e2e-openshift
prepare-e2e-openshift: deploy-minio
kubectl apply -f ./bundle/openshift/manifests/tempo-operator-manager-config_v1_configmap.yaml -n $(OPERATOR_NAMESPACE)
kubectl rollout restart deployment/tempo-operator-controller -n $(OPERATOR_NAMESPACE)
kubectl rollout status deployment/tempo-operator-controller -n $(OPERATOR_NAMESPACE) --timeout=30s

.PHONY: e2e-openshift
e2e-openshift:
Expand Down
346 changes: 1 addition & 345 deletions tests/e2e-openshift/multitenancy/00-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,351 +1,7 @@
---
apiVersion: v1
# Do not assert on data because cookieSecret is randomly generated by the operator
#data:
kind: Secret
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
type: Opaque
---
apiVersion: v1
data:
rbac.yaml: ""
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
annotations:
service.beta.openshift.io/inject-cabundle: "true"
name: tempo-simplest-gateway-cabundle
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
---
apiVersion: v1
automountServiceAccountToken: true
kind: ServiceAccount
metadata:
annotations:
serviceaccounts.openshift.io/oauth-redirectreference.dev: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"tempo-simplest-gateway"}}'
serviceaccounts.openshift.io/oauth-redirectreference.prod: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"tempo-simplest-gateway"}}'
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
rules:
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tempo-simplest-gateway
subjects:
- kind: ServiceAccount
name: tempo-simplest-gateway
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
spec:
selector:
matchLabels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
template:
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
spec:
containers:
- name: tempo-gateway
args:
- --traces.tenant-header=x-scope-orgid
- --web.listen=0.0.0.0:8080
- --web.internal.listen=0.0.0.0:8081
- --traces.write.endpoint=tempo-simplest-distributor.kuttl-multitenancy.svc.cluster.local:4317
- --traces.read.endpoint=https://tempo-simplest-query-frontend.kuttl-multitenancy.svc.cluster.local:16686
- --grpc.listen=0.0.0.0:8090
- --rbac.config=/etc/tempo-gateway/cm/rbac.yaml
- --tenants.config=/etc/tempo-gateway/secret/tenants.yaml
- --log.level=info
- --tls.internal.server.key-file=/var/run/tls/server/tls.key
- --tls.internal.server.cert-file=/var/run/tls/server/tls.crt
- --traces.tls.key-file=/var/run/tls/server/tls.key
- --traces.tls.cert-file=/var/run/tls/server/tls.crt
- --traces.tls.ca-file=/var/run/ca/service-ca.crt
- --tls.server.cert-file=/etc/tempo-gateway/serving-certs/tls.crt
- --tls.server.key-file=/etc/tempo-gateway/serving-certs/tls.key
- --tls.healthchecks.server-ca-file=/etc/tempo-gateway/cabundle/service-ca.crt
- --tls.healthchecks.server-name=tempo-simplest-gateway.kuttl-multitenancy.svc.cluster.local
- --web.healthchecks.url=https://localhost:8080
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8090
name: grpc-public
protocol: TCP
- containerPort: 8081
name: internal
protocol: TCP
- containerPort: 8080
name: public
protocol: TCP
volumeMounts:
- mountPath: /etc/tempo-gateway/cm
name: rbac
readOnly: true
- mountPath: /etc/tempo-gateway/secret/tenants.yaml
name: tenant
readOnly: true
subPath: tenants.yaml
- mountPath: /var/run/ca
name: tempo-simplest-ca-bundle
- mountPath: /var/run/tls/server
name: tempo-simplest-gateway-mtls
- mountPath: /etc/tempo-gateway/serving-certs
name: serving-certs
readOnly: true
- mountPath: /etc/tempo-gateway/cabundle
name: cabundle
readOnly: true
- name: opa
args:
- --log.level=warn
- --opa.admin-groups=system:cluster-admins,cluster-admin,dedicated-admin
- --web.listen=:8082
- --web.internal.listen=:8083
- --web.healthchecks.url=http://localhost:8082
- --opa.package=tempostack
- --openshift.mappings=dev=tempo.grafana.com
- --openshift.mappings=prod=tempo.grafana.com
serviceAccountName: tempo-simplest-gateway
volumes:
- configMap:
defaultMode: 420
items:
- key: rbac.yaml
path: rbac.yaml
name: tempo-simplest-gateway
name: rbac
- name: tenant
secret:
defaultMode: 420
items:
- key: tenants.yaml
path: tenants.yaml
secretName: tempo-simplest-gateway
- configMap:
defaultMode: 420
name: tempo-simplest-ca-bundle
name: tempo-simplest-ca-bundle
- name: tempo-simplest-gateway-mtls
secret:
defaultMode: 420
secretName: tempo-simplest-gateway-mtls
- name: serving-certs
secret:
defaultMode: 420
secretName: tempo-simplest-gateway-tls
- name: cabundle
configMap:
name: tempo-simplest-gateway-cabundle
status:
readyReplicas: 1
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
spec:
port:
targetPort: public
tls:
termination: passthrough
to:
kind: Service
name: tempo-simplest-gateway
weight: 100
wildcardPolicy: None
---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.openshift.io/serving-cert-secret-name: tempo-simplest-gateway-tls
labels:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
name: tempo-simplest-gateway
namespace: kuttl-multitenancy
ownerReferences:
- apiVersion: tempo.grafana.com/v1alpha1
blockOwnerDeletion: true
controller: true
kind: TempoStack
name: simplest
spec:
ports:
- name: grpc-public
port: 8090
protocol: TCP
targetPort: 8090
- name: internal
port: 8081
protocol: TCP
targetPort: 8081
- name: public
port: 8080
protocol: TCP
targetPort: 8080
selector:
app.kubernetes.io/component: gateway
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: tempo-operator
app.kubernetes.io/name: tempo
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tempo-simplest-compactor
namespace: kuttl-multitenancy
status:
readyReplicas: 1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tempo-simplest-distributor
namespace: kuttl-multitenancy
status:
readyReplicas: 1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tempo-simplest-querier
namespace: kuttl-multitenancy
status:
readyReplicas: 1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tempo-simplest-query-frontend
namespace: kuttl-multitenancy
status:
readyReplicas: 1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: tempo-simplest-ingester
name: minio
namespace: kuttl-multitenancy
status:
readyReplicas: 1
Loading

0 comments on commit 41b128c

Please sign in to comment.