kuma

Форк
0
84 строки · 2.4 Кб
1
package observability
2

3
import (
4
	"fmt"
5

6
	. "github.com/onsi/ginkgo/v2"
7
	. "github.com/onsi/gomega"
8

9
	. "github.com/kumahq/kuma/test/framework"
10
	"github.com/kumahq/kuma/test/framework/client"
11
	"github.com/kumahq/kuma/test/framework/deployments/democlient"
12
	obs "github.com/kumahq/kuma/test/framework/deployments/observability"
13
	"github.com/kumahq/kuma/test/framework/deployments/testserver"
14
	"github.com/kumahq/kuma/test/framework/envs/kubernetes"
15
)
16

17
func traceAllK8s(meshName string, url string) string {
18
	return fmt.Sprintf(`
19
apiVersion: kuma.io/v1alpha1
20
kind: MeshTrace
21
metadata:
22
  name: trace-all
23
  namespace: kuma-system
24
  labels:
25
    kuma.io/mesh: %s
26
spec:
27
  targetRef:
28
    kind: Mesh
29
  default:
30
    tags:
31
      - name: team
32
        literal: core
33
    backends:
34
      - type: Zipkin
35
        zipkin:
36
          url: %s
37
`, meshName, url)
38
}
39

40
func PluginTest() {
41
	ns := "meshtrace"
42
	obsNs := "obs-meshtrace"
43
	obsDeployment := "obs-trace-deployment"
44
	mesh := "meshtrace"
45

46
	var obsClient obs.Observability
47
	BeforeAll(func() {
48
		err := NewClusterSetup().
49
			Install(NamespaceWithSidecarInjection(ns)).
50
			Install(MeshKubernetes(mesh)).
51
			Install(democlient.Install(democlient.WithNamespace(ns), democlient.WithMesh(mesh))).
52
			Install(testserver.Install(testserver.WithMesh(mesh), testserver.WithNamespace(ns))).
53
			Install(obs.Install(obsDeployment, obs.WithNamespace(obsNs), obs.WithComponents(obs.JaegerComponent))).
54
			Setup(kubernetes.Cluster)
55
		obsClient = obs.From(obsDeployment, kubernetes.Cluster)
56
		Expect(err).ToNot(HaveOccurred())
57
	})
58
	E2EAfterAll(func() {
59
		Expect(kubernetes.Cluster.TriggerDeleteNamespace(ns)).To(Succeed())
60
		Expect(kubernetes.Cluster.DeleteMesh(mesh)).To(Succeed())
61
		Expect(kubernetes.Cluster.DeleteDeployment(obsDeployment)).To(Succeed())
62
	})
63

64
	It("should emit traces to jaeger", func() {
65
		// given MeshTrace and with tracing backend
66
		err := YamlK8s(traceAllK8s(mesh, obsClient.ZipkinCollectorURL()))(kubernetes.Cluster)
67
		Expect(err).ToNot(HaveOccurred())
68

69
		Eventually(func(g Gomega) {
70
			_, err := client.CollectEchoResponse(
71
				kubernetes.Cluster, "demo-client", "test-server",
72
				client.FromKubernetesPod(ns, "demo-client"),
73
			)
74
			g.Expect(err).ToNot(HaveOccurred())
75
			srvs, err := obsClient.TracedServices()
76
			g.Expect(err).ToNot(HaveOccurred())
77
			g.Expect(srvs).To(Equal([]string{
78
				fmt.Sprintf("demo-client_%s_svc", ns),
79
				"jaeger-query",
80
				fmt.Sprintf("test-server_%s_svc_80", ns),
81
			}))
82
		}, "30s", "1s").Should(Succeed())
83
	})
84
}
85

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.