Cara membuat versi lama NGINX Ingress Controller dan menambalnya

Dalam HOWTO ini, kami akan memperbaiki bug di versi kuno nginx ingress controller v0.20.0 dan mempelajari cara bekerja dengan dependensi Go versi lama melalui vendor dep + .


sederhana


Artikel asli diambil dengan persetujuan penulis dari situs vitya.top .


Masalah


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