Merge pull request #6956 from timmysilv/timmy/base-image

update nginx base image, handle jaeger propagation format
This commit is contained in:
Kubernetes Prow Robot 2021-03-26 10:32:43 -07:00 committed by GitHub
commit 844a02c276
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 49 additions and 4 deletions

View file

@ -51,7 +51,7 @@ endif
REGISTRY ?= gcr.io/k8s-staging-ingress-nginx REGISTRY ?= gcr.io/k8s-staging-ingress-nginx
BASE_IMAGE ?= k8s.gcr.io/ingress-nginx/nginx:v20210115-gba0502603@sha256:224da667cf3047998ea691e9766fedd1eab94257a39df81374bfa14536da3688 BASE_IMAGE ?= k8s.gcr.io/ingress-nginx/nginx:v20210324-g8baef769d@sha256:fcfa3e9d1f8ec3141efedbf77cf659640f452a9c22165c78006ea462b84d06f6
GOARCH=$(ARCH) GOARCH=$(ARCH)

2
TAG
View file

@ -1 +1 @@
v0.45.0-dev.0 v0.46.0-dev.0

View file

@ -854,6 +854,10 @@ Specifies the endpoint to use when uploading traces to a collector. This takes p
Specifies the service name to use for any traces created. _**default:**_ nginx Specifies the service name to use for any traces created. _**default:**_ nginx
## jaeger-propagation-format
Specifies the traceparent/tracestate propagation format. _**default:**_ jaeger
## jaeger-sampler-type ## jaeger-sampler-type
Specifies the sampler to be used when sampling traces. The available samplers are: const, probabilistic, ratelimiting, remote. _**default:**_ const Specifies the sampler to be used when sampling traces. The available samplers are: const, probabilistic, ratelimiting, remote. _**default:**_ const

View file

@ -64,6 +64,9 @@ jaeger-endpoint
# specifies the service name to use for any traces created, Default: nginx # specifies the service name to use for any traces created, Default: nginx
jaeger-service-name jaeger-service-name
# specifies the traceparent/tracestate propagation format
jaeger-propagation-format
# specifies the sampler to be used when sampling traces. # specifies the sampler to be used when sampling traces.
# The available samplers are: const, probabilistic, ratelimiting, remote, Default: const # The available samplers are: const, probabilistic, ratelimiting, remote, Default: const
jaeger-sampler-type jaeger-sampler-type

View file

@ -562,6 +562,9 @@ type Configuration struct {
// Default: nginx // Default: nginx
JaegerServiceName string `json:"jaeger-service-name"` JaegerServiceName string `json:"jaeger-service-name"`
// JaegerPropagationFormat specifies the traceparent/tracestate propagation format
JaegerPropagationFormat string `json:"jaeger-propagation-format"`
// JaegerSamplerType specifies the sampler to be used when sampling traces. // JaegerSamplerType specifies the sampler to be used when sampling traces.
// The available samplers are: const, probabilistic, ratelimiting, remote // The available samplers are: const, probabilistic, ratelimiting, remote
// Default: const // Default: const
@ -867,6 +870,7 @@ func NewDefault() Configuration {
ZipkinServiceName: "nginx", ZipkinServiceName: "nginx",
ZipkinSampleRate: 1.0, ZipkinSampleRate: 1.0,
JaegerCollectorPort: 6831, JaegerCollectorPort: 6831,
JaegerPropagationFormat: "jaeger",
JaegerServiceName: "nginx", JaegerServiceName: "nginx",
JaegerSamplerType: "const", JaegerSamplerType: "const",
JaegerSamplerParam: "1", JaegerSamplerParam: "1",

View file

@ -1033,6 +1033,7 @@ const zipkinTmpl = `{
const jaegerTmpl = `{ const jaegerTmpl = `{
"service_name": "{{ .JaegerServiceName }}", "service_name": "{{ .JaegerServiceName }}",
"propagation_format": "{{ .JaegerPropagationFormat }}",
"sampler": { "sampler": {
"type": "{{ .JaegerSamplerType }}", "type": "{{ .JaegerSamplerType }}",
"param": {{ .JaegerSamplerParam }}, "param": {{ .JaegerSamplerParam }},

View file

@ -17,6 +17,8 @@ limitations under the License.
package settings package settings
import ( import (
"fmt"
"net/http"
"strings" "strings"
"time" "time"
@ -31,8 +33,9 @@ const (
zipkinCollectorHost = "zipkin-collector-host" zipkinCollectorHost = "zipkin-collector-host"
jaegerCollectorHost = "jaeger-collector-host" jaegerCollectorHost = "jaeger-collector-host"
jaegerSamplerHost = "jaeger-sampler-host" jaegerSamplerHost = "jaeger-sampler-host"
jaegerPropagationFormat = "jaeger-propagation-format"
// jaegerEndpoint = "jaeger-endpoint" // jaegerEndpoint = "jaeger-endpoint"
datadogCollectorHost = "datadog-collector-host" datadogCollectorHost = "datadog-collector-host"
@ -175,6 +178,36 @@ var _ = framework.IngressNginxDescribe("Configure OpenTracing", func() {
assert.NotContains(ginkgo.GinkgoT(), log, "Unexpected failure reloading the backend", "reloading nginx after a configmap change") assert.NotContains(ginkgo.GinkgoT(), log, "Unexpected failure reloading the backend", "reloading nginx after a configmap change")
}) })
ginkgo.It("should propagate the w3c header when configured with jaeger", func() {
host := "jaeger-w3c"
config := map[string]string{}
config[enableOpentracing] = "true"
config[jaegerCollectorHost] = "127.0.0.1"
config[jaegerPropagationFormat] = "w3c"
f.SetNginxConfigMapData(config)
framework.Sleep(10 * time.Second)
log, err := f.NginxLogs()
assert.Nil(ginkgo.GinkgoT(), err, "obtaining nginx logs")
assert.NotContains(ginkgo.GinkgoT(), log, "Unexpected failure reloading the backend", "reloading nginx after a configmap change")
ing := framework.NewSingleIngress(host, "/", host, f.Namespace, framework.EchoService, 80, nil)
f.EnsureIngress(ing)
f.WaitForNginxServer(host,
func(server string) bool {
return strings.Contains(server, fmt.Sprintf("server_name %s ;", host))
})
f.HTTPTestClient().
GET("/").
WithHeader("Host", host).
Expect().
Status(http.StatusOK).
Body().
Match("traceparent=[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}")
})
/* /*
ginkgo.It("should enable opentracing using jaeger with an HTTP endpoint", func() { ginkgo.It("should enable opentracing using jaeger with an HTTP endpoint", func() {
config := map[string]string{} config := map[string]string{}