kuma

Форк
0
67 строк · 1.7 Кб
1
package delegated
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/envs/kubernetes"
12
	"github.com/kumahq/kuma/test/server/types"
13
)
14

15
func MeshProxyPatch(config *Config) func() {
16
	GinkgoHelper()
17

18
	return func() {
19
		It("should add a header using Lua filter", func() {
20
			// given
21
			meshProxyPatch := fmt.Sprintf(`
22
apiVersion: kuma.io/v1alpha1 
23
kind: MeshProxyPatch
24
metadata:
25
  name: backend-lua-filter
26
  namespace: %s
27
  labels:
28
    kuma.io/mesh: %s
29
spec:
30
  targetRef:
31
    kind: Mesh
32
  default:
33
    appendModifications:
34
      - httpFilter:
35
          operation: AddBefore
36
          match:
37
            name: envoy.filters.http.router
38
            origin: outbound
39
          value: |
40
            name: envoy.filters.http.lua
41
            typedConfig:
42
              '@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
43
              inline_code: |
44
                function envoy_on_request(request_handle)
45
                  request_handle:headers():add("X-Header", "test")
46
                end
47
`, config.CpNamespace, config.Mesh)
48

49
			// when
50
			err := kubernetes.Cluster.Install(framework.YamlK8s(meshProxyPatch))
51

52
			// then
53
			Expect(err).ToNot(HaveOccurred())
54
			Eventually(func() ([]types.EchoResponse, error) {
55
				return client.CollectResponses(
56
					kubernetes.Cluster,
57
					"demo-client",
58
					fmt.Sprintf("http://%s/test-server", config.KicIP),
59
					client.FromKubernetesPod(config.NamespaceOutsideMesh, "demo-client"),
60
				)
61
			}, "30s", "1s").Should(ContainElement(HaveField(
62
				`Received.Headers`,
63
				HaveKeyWithValue("X-Header", ContainElement("test")),
64
			)))
65
		})
66
	}
67
}
68

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

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

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

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