So erstellen Sie eine alte Version von NGINX Ingress Controller und patchen sie

In diesem HOWTO werden wir den Fehler in der alten Version von nginx ingress controller v0.20.0 beheben und lernen, wie Sie mit Go-Abhängigkeiten älterer Versionen über dep + vendor arbeiten .


einfach


Der Originalartikel wurde mit Zustimmung des Autors von der Website vitya.top übernommen .


Problem


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  #  ,      internal 

( 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-.


All Articles