kuma
110 строк · 2.7 Кб
1package meshretry2
3import (4"fmt"5
6"github.com/gruntwork-io/terratest/modules/k8s"7. "github.com/onsi/ginkgo/v2"8. "github.com/onsi/gomega"9
10"github.com/kumahq/kuma/pkg/plugins/policies/meshretry/api/v1alpha1"11. "github.com/kumahq/kuma/test/framework"12"github.com/kumahq/kuma/test/framework/envs/kubernetes"13)
14
15func API() {16meshName := "meshretry-api"17
18BeforeAll(func() {19err := NewClusterSetup().20Install(MeshKubernetes(meshName)).21Setup(kubernetes.Cluster)22Expect(err).ToNot(HaveOccurred())23
24// Delete the default meshretry policy25Expect(DeleteMeshPolicyOrError(26kubernetes.Cluster,27v1alpha1.MeshRetryResourceTypeDescriptor,28fmt.Sprintf("mesh-retry-all-%s", meshName),29)).To(Succeed())30})31
32E2EAfterEach(func() {33Expect(DeleteMeshResources(kubernetes.Cluster, meshName, v1alpha1.MeshRetryResourceTypeDescriptor)).To(Succeed())34})35
36E2EAfterAll(func() {37Expect(kubernetes.Cluster.DeleteMesh(meshName)).To(Succeed())38})39
40It("should create MeshRetry policy", func() {41// given no MeshRetry42mrls, err := kubernetes.Cluster.GetKumactlOptions().KumactlList("meshretries", meshName)43Expect(err).ToNot(HaveOccurred())44Expect(mrls).To(BeEmpty())45
46// when47Expect(YamlK8s(fmt.Sprintf(`48apiVersion: kuma.io/v1alpha1
49kind: MeshRetry
50metadata:
51name: mesh-retry
52namespace: %s
53labels:
54kuma.io/mesh: %s
55spec:
56targetRef:
57kind: Mesh
58to:
59- targetRef:
60kind: MeshService
61name: backend
62default:
63tcp:
64maxConnectAttempt: 5
65http:
66numRetries: 10
67`, Config.KumaNamespace, meshName))(kubernetes.Cluster)).To(Succeed())68
69// then70mrls, err = kubernetes.Cluster.GetKumactlOptions().KumactlList("meshretries", meshName)71Expect(err).ToNot(HaveOccurred())72Expect(mrls).To(HaveLen(1))73Expect(mrls[0]).To(Equal(fmt.Sprintf("mesh-retry.%s", Config.KumaNamespace)))74})75
76It("should deny creating policy in the non-system namespace", func() {77// given no MeshRetry78mrls, err := kubernetes.Cluster.GetKumactlOptions().KumactlList("meshretries", meshName)79Expect(err).ToNot(HaveOccurred())80Expect(mrls).To(BeEmpty())81
82// when83err = k8s.KubectlApplyFromStringE(84kubernetes.Cluster.GetTesting(),85kubernetes.Cluster.GetKubectlOptions(), fmt.Sprintf(`86apiVersion: kuma.io/v1alpha1
87kind: MeshRetry
88metadata:
89name: mesh-retry
90namespace: default
91labels:
92kuma.io/mesh: %s
93spec:
94targetRef:
95kind: Mesh
96to:
97- targetRef:
98kind: MeshService
99name: backend
100default:
101tcp:
102maxConnectAttempt: 5
103http:
104numRetries: 10
105`, meshName))106
107Expect(err).To(HaveOccurred())108Expect(err.Error()).To(ContainSubstring(fmt.Sprintf("policy can only be created in the system namespace:%s", Config.KumaNamespace)))109})110}
111