6
. "github.com/onsi/ginkgo/v2"
7
. "github.com/onsi/gomega"
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"
15
func MeshProxyPatch(config *Config) func() {
19
It("should add a header using Lua filter", func() {
21
meshProxyPatch := fmt.Sprintf(`
22
apiVersion: kuma.io/v1alpha1
25
name: backend-lua-filter
37
name: envoy.filters.http.router
40
name: envoy.filters.http.lua
42
'@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
44
function envoy_on_request(request_handle)
45
request_handle:headers():add("X-Header", "test")
47
`, config.CpNamespace, config.Mesh)
50
err := kubernetes.Cluster.Install(framework.YamlK8s(meshProxyPatch))
53
Expect(err).ToNot(HaveOccurred())
54
Eventually(func() ([]types.EchoResponse, error) {
55
return client.CollectResponses(
58
fmt.Sprintf("http://%s/test-server", config.KicIP),
59
client.FromKubernetesPod(config.NamespaceOutsideMesh, "demo-client"),
61
}, "30s", "1s").Should(ContainElement(HaveField(
63
HaveKeyWithValue("X-Header", ContainElement("test")),