kuma

Форк
0
80 строк · 2.7 Кб
1
package reachableservices
2

3
import (
4
	. "github.com/onsi/ginkgo/v2"
5
	. "github.com/onsi/gomega"
6

7
	. "github.com/kumahq/kuma/test/framework"
8
	"github.com/kumahq/kuma/test/framework/client"
9
	"github.com/kumahq/kuma/test/framework/deployments/testserver"
10
	"github.com/kumahq/kuma/test/framework/envs/kubernetes"
11
)
12

13
func ReachableServices() {
14
	meshName := "reachable-svc"
15
	namespace := "reachable-svc"
16

17
	BeforeAll(func() {
18
		err := NewClusterSetup().
19
			Install(MTLSMeshKubernetes(meshName)).
20
			Install(MeshTrafficPermissionAllowAllKubernetes(meshName)).
21
			Install(NamespaceWithSidecarInjection(namespace)).
22
			Install(testserver.Install(
23
				testserver.WithName("client-server"),
24
				testserver.WithMesh(meshName),
25
				testserver.WithNamespace(namespace),
26
				testserver.WithReachableServices("first-test-server_reachable-svc_svc_80"),
27
			)).
28
			Install(testserver.Install(
29
				testserver.WithName("first-test-server"),
30
				testserver.WithMesh(meshName),
31
				testserver.WithNamespace(namespace),
32
			)).
33
			Install(testserver.Install(
34
				testserver.WithName("second-test-server"),
35
				testserver.WithMesh(meshName),
36
				testserver.WithNamespace(namespace),
37
			)).
38
			Setup(kubernetes.Cluster)
39
		Expect(err).ToNot(HaveOccurred())
40
	})
41

42
	E2EAfterAll(func() {
43
		Expect(kubernetes.Cluster.TriggerDeleteNamespace(namespace)).To(Succeed())
44
		Expect(kubernetes.Cluster.DeleteMesh(meshName)).To(Succeed())
45
	})
46

47
	It("should be able to connect to reachable services", func() {
48
		Eventually(func(g Gomega) {
49
			_, err := client.CollectFailure(
50
				kubernetes.Cluster, "client-server", "first-test-server_reachable-svc_svc_80.mesh",
51
				client.FromKubernetesPod(namespace, "client-server"),
52
			)
53
			g.Expect(err).ToNot(HaveOccurred())
54
		}, "30s", "1s").Should(Succeed())
55
	})
56

57
	It("should not connect to non reachable service", func() {
58
		Consistently(func(g Gomega) {
59
			// when trying to connect to non-reachable services via Kuma DNS
60
			response, err := client.CollectFailure(
61
				kubernetes.Cluster, "client-server", "second-test-server_reachable-svc_svc_80.mesh",
62
				client.FromKubernetesPod(namespace, "client-server"),
63
			)
64
			// then it fails because Kuma DP has no such DNS
65
			g.Expect(err).ToNot(HaveOccurred())
66
			g.Expect(response.Exitcode).To(Equal(6))
67
		}).Should(Succeed())
68

69
		Consistently(func(g Gomega) {
70
			// when trying to connect to non-reachable service via Kubernetes DNS
71
			response, err := client.CollectFailure(
72
				kubernetes.Cluster, "client-server", "second-test-server",
73
				client.FromKubernetesPod(namespace, "client-server"),
74
			)
75
			// then it fails because we don't encrypt traffic to unknown destination in the mesh
76
			g.Expect(err).ToNot(HaveOccurred())
77
			g.Expect(response.Exitcode).To(Or(Equal(52), Equal(56)))
78
		}).Should(Succeed())
79
	})
80
}
81

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

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

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

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