En este CÓMO, repararemos el error en la versión antigua de nginx ingress controller v0.20.0 y aprenderemos cómo trabajar con las dependencias Go de versiones anteriores a través de dep + vendor .

El artículo original fue tomado con el consentimiento del autor del sitio vitya.top .
Problema
ingress-nginx v0.20.0 rewrite. (v0.32.0), :
path: /service/api/v1/tokens
rewrite-target: /api/v1/tokens
/ YAML- Ingress, ingress-nginx 0.20.0 rewrite /api/v1/tokens//. , - , - .
NGINX Ingress, . :
- ( ).
- Ingress Controller, .
, .
location.Rewrite.Target strings.TrimSuffix(location.Rewrite.Target, "/").
:
go get k8s.io/ingress-nginx
cd ~/go/src/k8.io/ingress-inginx
, :
git checkout v0.20.0
Makefile. 40 :
vim Makefile
( sed -i -e 's/^ALL_ARCH.*/ALL_ARCH = amd64/g'
)
:
vim internal/ingress/controller/template/template.go +539
( — . "")
Docker- Go:
vim build/go-in-docker.sh
:
- E2E_IMAGE docker.myregistry.com/ops/golang:1.10.7-alpine3.8-v7;
- --entrypoint ${FLAGS}.
:
git add -A
git commit -m "Fix trailing slash bug"
:
dep ensure =v
( 5):
make
tagged quay.io/kubernetes-ingress-controller/nginx-ingress-controller-amd64:0.20.0
:
docker tag quay.io/kubernetes-ingress-controller/nginx-ingress-controller-amd64:0.20.0 docker.myregistry.com/ops/nginx-ingress-controller:0.20.0-patched-2
docker push docker.myregistry.com/ops/nginx-ingress-controller:0.20.0-patched-2
!
, Kubernetes-.