From e9c4f2f64e815f013e750ebed92554a220320ee7 Mon Sep 17 00:00:00 2001 From: Nikita Volodin Date: Wed, 28 Feb 2024 21:25:48 -0500 Subject: [PATCH] wip: delay sidecar direction determination --- .../pkg/envoyfilter/filter.go | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/privacy-profile-composer/pkg/envoyfilter/filter.go b/privacy-profile-composer/pkg/envoyfilter/filter.go index c2ea173a..0baf5c3f 100644 --- a/privacy-profile-composer/pkg/envoyfilter/filter.go +++ b/privacy-profile-composer/pkg/envoyfilter/filter.go @@ -17,11 +17,6 @@ import ( ) func NewFilter(callbacks api.FilterCallbackHandler, config *config) (api.StreamFilter, error) { - sidecarDirection, err := common.GetDirection(callbacks) - if err != nil { - return nil, err - } - tracer, err := common.NewZipkinTracer(config.zipkinUrl) if err != nil { return nil, fmt.Errorf("unable to create tracer: %+v\n", err) @@ -38,24 +33,23 @@ func NewFilter(callbacks api.FilterCallbackHandler, config *config) (api.StreamF } return &Filter{ - callbacks: callbacks, - config: config, - tracer: tracer, - sidecarDirection: sidecarDirection, - opa: opaObj, + callbacks: callbacks, + config: config, + tracer: tracer, + opa: opaObj, }, nil } type Filter struct { api.PassThroughStreamFilter - callbacks api.FilterCallbackHandler - config *config - tracer *common.ZipkinTracer - opa *sdk.OPA - sidecarDirection common.SidecarDirection + callbacks api.FilterCallbackHandler + config *config + tracer *common.ZipkinTracer + opa *sdk.OPA // Runtime state of the filter + sidecarDirection common.SidecarDirection parentSpanContext model.SpanContext headerMetadata common.HeaderMetadata } @@ -64,6 +58,22 @@ type Filter struct { func (f *Filter) DecodeHeaders(header api.RequestHeaderMap, endStream bool) api.StatusType { log.Println(">>> DECODE HEADERS") + log.Println("get property xds.node") + v, err := f.callbacks.GetProperty("xds.node") + if err != nil { + log.Printf("error getting key: %v\n", err) + } else { + log.Printf("%+v\n", v) + } + + sidecarDirection, err := common.GetDirection(f.callbacks) + if err != nil { + log.Println(err) + } else { + log.Printf("determined sidecar direction: \"%s\"\n", sidecarDirection) + } + f.sidecarDirection = sidecarDirection + f.parentSpanContext = f.tracer.Extract(header) span := f.tracer.StartSpan("test span in decode headers", zipkin.Parent(f.parentSpanContext))