Add additional header when debug is enabled
This commit is contained in:
parent
857c3b098b
commit
ef4476ecc4
3 changed files with 41 additions and 5 deletions
|
@ -30,6 +30,11 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx-error-server
|
- name: nginx-error-server
|
||||||
image: quay.io/kubernetes-ingress-controller/custom-error-pages-amd64:0.2
|
image: quay.io/kubernetes-ingress-controller/custom-error-pages-amd64:0.3
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
# Setting the environment variable DEBUG we can see the headers sent
|
||||||
|
# by the ingress controller to the backend in the client response.
|
||||||
|
# env:
|
||||||
|
# - name: DEBUG
|
||||||
|
# value: "true"
|
||||||
|
|
|
@ -3,7 +3,7 @@ all: all-container
|
||||||
BUILDTAGS=
|
BUILDTAGS=
|
||||||
|
|
||||||
# Use the 0.0 tag for testing, it shouldn't clobber any release builds
|
# Use the 0.0 tag for testing, it shouldn't clobber any release builds
|
||||||
TAG?=0.2
|
TAG?=0.3
|
||||||
REGISTRY?=quay.io/kubernetes-ingress-controller
|
REGISTRY?=quay.io/kubernetes-ingress-controller
|
||||||
GOOS?=linux
|
GOOS?=linux
|
||||||
DOCKER?=docker
|
DOCKER?=docker
|
||||||
|
@ -26,11 +26,11 @@ ARCH ?= $(shell go env GOARCH)
|
||||||
GOARCH = ${ARCH}
|
GOARCH = ${ARCH}
|
||||||
DUMB_ARCH = ${ARCH}
|
DUMB_ARCH = ${ARCH}
|
||||||
|
|
||||||
BASEIMAGE?=alpine:3.6
|
BASEIMAGE?=alpine:3.7
|
||||||
|
|
||||||
ALL_ARCH = amd64 arm arm64 ppc64le
|
ALL_ARCH = amd64 arm arm64 ppc64le
|
||||||
|
|
||||||
QEMUVERSION=v2.9.1
|
QEMUVERSION=v2.12.0
|
||||||
|
|
||||||
IMGNAME = custom-error-pages
|
IMGNAME = custom-error-pages
|
||||||
IMAGE = $(REGISTRY)/$(IMGNAME)
|
IMAGE = $(REGISTRY)/$(IMGNAME)
|
||||||
|
@ -74,7 +74,7 @@ ifeq ($(ARCH),amd64)
|
||||||
else
|
else
|
||||||
# When cross-building, only the placeholder "CROSS_BUILD_" should be removed
|
# When cross-building, only the placeholder "CROSS_BUILD_" should be removed
|
||||||
# Register /usr/bin/qemu-ARCH-static as the handler for ARM binaries in the kernel
|
# Register /usr/bin/qemu-ARCH-static as the handler for ARM binaries in the kernel
|
||||||
$(DOCKER) run --rm --privileged multiarch/qemu-user-static:register --reset
|
# $(DOCKER) run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
curl -sSL https://github.com/multiarch/qemu-user-static/releases/download/$(QEMUVERSION)/x86_64_qemu-$(QEMUARCH)-static.tar.gz | tar -xz -C $(TEMP_DIR)/rootfs
|
curl -sSL https://github.com/multiarch/qemu-user-static/releases/download/$(QEMUVERSION)/x86_64_qemu-$(QEMUARCH)-static.tar.gz | tar -xz -C $(TEMP_DIR)/rootfs
|
||||||
$(SED_I) "s/CROSS_BUILD_//g" $(DOCKERFILE)
|
$(SED_I) "s/CROSS_BUILD_//g" $(DOCKERFILE)
|
||||||
endif
|
endif
|
||||||
|
@ -103,3 +103,8 @@ build: clean
|
||||||
|
|
||||||
release: all-container all-push
|
release: all-container all-push
|
||||||
echo "done"
|
echo "done"
|
||||||
|
|
||||||
|
.PHONY: register-qemu
|
||||||
|
register-qemu:
|
||||||
|
# Register /usr/bin/qemu-ARCH-static as the handler for binaries in multiple platforms
|
||||||
|
$(DOCKER) run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
|
|
|
@ -40,6 +40,21 @@ const (
|
||||||
// ContentType name of the header that defines the format of the reply
|
// ContentType name of the header that defines the format of the reply
|
||||||
ContentType = "Content-Type"
|
ContentType = "Content-Type"
|
||||||
|
|
||||||
|
// OriginalURI name of the header with the original URL from NGINX
|
||||||
|
OriginalURI = "X-Original-URI"
|
||||||
|
|
||||||
|
// Namespace name of the header that contains information about the Ingress namespace
|
||||||
|
Namespace = "X-Namespace"
|
||||||
|
|
||||||
|
// IngressName name of the header that contains the matched Ingress
|
||||||
|
IngressName = "X-Ingress-Name"
|
||||||
|
|
||||||
|
// ServiceName name of the header that contains the matched Service in the Ingress
|
||||||
|
ServiceName = "X-Service-Name"
|
||||||
|
|
||||||
|
// ServicePort name of the header that contains the matched Service port in the Ingress
|
||||||
|
ServicePort = "X-Service-Port"
|
||||||
|
|
||||||
// ErrFilesPathVar is the name of the environment variable indicating
|
// ErrFilesPathVar is the name of the environment variable indicating
|
||||||
// the location on disk of files served by the handler.
|
// the location on disk of files served by the handler.
|
||||||
ErrFilesPathVar = "ERROR_FILES_PATH"
|
ErrFilesPathVar = "ERROR_FILES_PATH"
|
||||||
|
@ -67,6 +82,17 @@ func errorHandler(path string) func(http.ResponseWriter, *http.Request) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
ext := "html"
|
ext := "html"
|
||||||
|
|
||||||
|
if os.Getenv("DEBUG") != "" {
|
||||||
|
w.Header().Set(FormatHeader, r.Header.Get(FormatHeader))
|
||||||
|
w.Header().Set(CodeHeader, r.Header.Get(CodeHeader))
|
||||||
|
w.Header().Set(ContentType, r.Header.Get(ContentType))
|
||||||
|
w.Header().Set(OriginalURI, r.Header.Get(OriginalURI))
|
||||||
|
w.Header().Set(Namespace, r.Header.Get(Namespace))
|
||||||
|
w.Header().Set(IngressName, r.Header.Get(IngressName))
|
||||||
|
w.Header().Set(ServiceName, r.Header.Get(ServiceName))
|
||||||
|
w.Header().Set(ServicePort, r.Header.Get(ServicePort))
|
||||||
|
}
|
||||||
|
|
||||||
format := r.Header.Get(FormatHeader)
|
format := r.Header.Get(FormatHeader)
|
||||||
if format == "" {
|
if format == "" {
|
||||||
format = "text/html"
|
format = "text/html"
|
||||||
|
|
Loading…
Reference in a new issue