Skip to content

Commit

Permalink
Use opentracing_grpc_propagate_context when necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
andremarianiello committed Dec 1, 2018
1 parent fdeeac3 commit b80b199
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ IMAGE = $(REGISTRY)/$(IMGNAME)
MULTI_ARCH_IMG = $(IMAGE)-$(ARCH)

# Set default base image dynamically for each arch
BASEIMAGE?=quay.io/kubernetes-ingress-controller/nginx-$(ARCH):0.70
BASEIMAGE?=quay.io/kubernetes-ingress-controller/nginx-$(ARCH):0.71

ifeq ($(ARCH),arm)
QEMUARCH=arm
Expand Down
15 changes: 15 additions & 0 deletions internal/ingress/controller/template/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ var (
"stripLocationModifer": stripLocationModifer,
"buildCustomErrorDeps": buildCustomErrorDeps,
"collectCustomErrorsPerServer": collectCustomErrorsPerServer,
"opentracingPropagateContext": opentracingPropagateContext,
}
)

Expand Down Expand Up @@ -954,3 +955,17 @@ func collectCustomErrorsPerServer(input interface{}) []int {

return uniqueCodes
}

func opentracingPropagateContext(loc interface{}) string {
location, ok := loc.(*ingress.Location)
if !ok {
glog.Errorf("expected a '*ingress.Location' type but %T was returned", loc)
return "opentracing_propagate_context"
}

if location.BackendProtocol == "GRPC" || location.BackendProtocol == "GRPCS" {
return "opentracing_grpc_propagate_context"
}

return "opentracing_propagate_context"
}
18 changes: 18 additions & 0 deletions internal/ingress/controller/template/template_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -834,3 +834,21 @@ func TestEscapeLiteralDollar(t *testing.T) {
t.Errorf("Expected %v but returned %v", expected, escapedPath)
}
}

func Test_opentracingPropagateContext(t *testing.T) {
tests := map[interface{}]string{
&ingress.Location{BackendProtocol: "HTTP"}: "opentracing_propagate_context",
&ingress.Location{BackendProtocol: "HTTPS"}: "opentracing_propagate_context",
&ingress.Location{BackendProtocol: "GRPC"}: "opentracing_grpc_propagate_context",
&ingress.Location{BackendProtocol: "GRPCS"}: "opentracing_grpc_propagate_context",
&ingress.Location{BackendProtocol: "AJP"}: "opentracing_propagate_context",
"not a location": "opentracing_propagate_context",
}

for loc, expectedDirective := range tests {
actualDirective := opentracingPropagateContext(loc)
if actualDirective != expectedDirective {
t.Errorf("Expected %v but returned %v", expectedDirective, actualDirective)
}
}
}
2 changes: 1 addition & 1 deletion rootfs/etc/nginx/template/nginx.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -1015,7 +1015,7 @@ stream {
set $location_path "{{ $location.Path | escapeLiteralDollar }}";

{{ if $all.Cfg.EnableOpentracing }}
opentracing_propagate_context;
{{ opentracingPropagateContext $location }};
{{ end }}

rewrite_by_lua_block {
Expand Down

0 comments on commit b80b199

Please sign in to comment.