kuma
72 строки · 2.3 Кб
1package jobs
2
3import (
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/deployments/testserver"
9"github.com/kumahq/kuma/test/framework/envs/kubernetes"
10)
11
12func Jobs() {
13It("should terminate jobs without mTLS", func() {
14const namespace = "jobs"
15const mesh = "jobs"
16
17E2EDeferCleanup(func() {
18Expect(kubernetes.Cluster.TriggerDeleteNamespace(namespace)).To(Succeed())
19Expect(kubernetes.Cluster.DeleteMesh(mesh)).To(Succeed())
20})
21
22err := NewClusterSetup().
23Install(NamespaceWithSidecarInjection(namespace)).
24Install(MeshKubernetes(mesh)).
25Install(testserver.Install(
26testserver.WithNamespace(namespace),
27testserver.WithMesh(mesh),
28)).
29Setup(kubernetes.Cluster)
30Expect(err).ToNot(HaveOccurred())
31
32// when
33err = kubernetes.Cluster.Install(DemoClientJobK8s(namespace, mesh, "test-server_jobs_svc_80.mesh"))
34
35// then CP terminates the job by sending /quitquitquit to Envoy Admin and verifies connection using self-signed certs
36Expect(err).ToNot(HaveOccurred())
37
38// and Dataplane object is deleted
39Eventually(func(g Gomega) {
40out, err := kubernetes.Cluster.GetKumactlOptions().RunKumactlAndGetOutput("get", "dataplanes", "--mesh", mesh)
41g.Expect(err).ToNot(HaveOccurred())
42g.Expect(out).ToNot(ContainSubstring("demo-job-client"))
43}, "30s", "1s").Should(Succeed())
44})
45
46It("should terminate jobs with mTLS", func() {
47const namespace = "jobs-mtls"
48const mesh = "jobs-mtls"
49
50E2EDeferCleanup(func() {
51Expect(kubernetes.Cluster.TriggerDeleteNamespace(namespace)).To(Succeed())
52Expect(kubernetes.Cluster.DeleteMesh(mesh)).To(Succeed())
53})
54
55err := NewClusterSetup().
56Install(NamespaceWithSidecarInjection(namespace)).
57Install(MTLSMeshKubernetes(mesh)).
58Install(MeshTrafficPermissionAllowAllKubernetes(mesh)).
59Install(testserver.Install(
60testserver.WithNamespace(namespace),
61testserver.WithMesh(mesh),
62)).
63Setup(kubernetes.Cluster)
64Expect(err).ToNot(HaveOccurred())
65
66// when
67err = kubernetes.Cluster.Install(DemoClientJobK8s(namespace, mesh, "test-server_jobs-mtls_svc_80.mesh"))
68
69// then CP terminates the job by sending /quitquitquit to Envoy Admin and verifies connection using mTLS certs
70Expect(err).ToNot(HaveOccurred())
71})
72}
73