From b826e36e9e58a50f9ccdcc90147669480969e863 Mon Sep 17 00:00:00 2001 From: vgonuguntla Date: Tue, 13 Sep 2022 06:32:33 -0700 Subject: [PATCH] [MESH-1656] - Adding plugin info to EnvoyFilter Signed-off-by: vgonuguntla --- admiral/pkg/clusters/envoyfilter.go | 9 +++++++- admiral/pkg/clusters/envoyfilter_test.go | 26 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/admiral/pkg/clusters/envoyfilter.go b/admiral/pkg/clusters/envoyfilter.go index 116aeffd..e6c8e691 100644 --- a/admiral/pkg/clusters/envoyfilter.go +++ b/admiral/pkg/clusters/envoyfilter.go @@ -21,6 +21,7 @@ var ( ) const hostsKey = "hosts: " +const pluginKey = "plugin: " func createOrUpdateEnvoyFilter(ctx context.Context, rc *RemoteController, routingPolicy *v1.RoutingPolicy, eventType admiral.EventType, workloadIdentityKey string, admiralCache *AdmiralCache, workloadSelectorMap map[string]string) (*networking.EnvoyFilter, error) { @@ -87,7 +88,8 @@ func constructEnvoyFilterStruct(routingPolicy *v1.RoutingPolicy, workloadSelecto if len(common.GetEnvoyFilterAdditionalConfig()) != 0 { envoyFilterStringConfig += common.GetEnvoyFilterAdditionalConfig() + "\n" } - envoyFilterStringConfig += getHosts(routingPolicy) + envoyFilterStringConfig += getHosts(routingPolicy) + "\n" + envoyFilterStringConfig += getPlugin(routingPolicy) configuration := structpb.Struct{ Fields: map[string]*structpb.Value{ @@ -184,3 +186,8 @@ func getHosts(routingPolicy *v1.RoutingPolicy) string { hosts = strings.TrimSuffix(hosts, ",") return hostsKey + hosts } + +func getPlugin(routingPolicy *v1.RoutingPolicy) string { + plugin := routingPolicy.Spec.Plugin + return pluginKey + plugin +} \ No newline at end of file diff --git a/admiral/pkg/clusters/envoyfilter_test.go b/admiral/pkg/clusters/envoyfilter_test.go index 4737062a..4f8ada9c 100644 --- a/admiral/pkg/clusters/envoyfilter_test.go +++ b/admiral/pkg/clusters/envoyfilter_test.go @@ -144,3 +144,29 @@ func TestGetHosts(t *testing.T) { hosts := getHosts(routingPolicyFoo) assert.Equal(t, "hosts: e2e.testservice.mesh,e2e2.testservice.mesh", hosts) } + +func TestGetPlugin(t *testing.T) { + routingPolicyFoo := &v1.RoutingPolicy{ + TypeMeta: time2.TypeMeta{}, + ObjectMeta: time2.ObjectMeta{ + Labels: map[string]string{ + "identity": "foo", + "admiral.io/env": "stage", + }, + }, + Spec: model.RoutingPolicy{ + Plugin: "test", + Hosts: []string{"e2e.testservice.mesh,e2e2.testservice.mesh"}, + Config: map[string]string{ + "cachePrefix": "cache-v1", + "cachettlSec": "86400", + "routingServiceUrl": "e2e.test.routing.service.mesh", + "pathPrefix": "/sayhello,/v1/company/{id}/", + }, + }, + Status: v1.RoutingPolicyStatus{}, + } + + plugin := getPlugin(routingPolicyFoo) + assert.Equal(t, "plugin: test",plugin) +} \ No newline at end of file