This document explains how to get started with developing for Apache APISIX Ingress controller.
go mod download
to download modules to local cache. By the way, if you are a developer in China, we suggest you setting GOPROXY
to https://goproxy.cn
to speed up the downloading.cd /path/to/apisix-ingress-controller make build ./apisix-ingress-controller version
cd /path/to/apisix-ingress-controller make unit-test
cd /path/to/apisix-ingress-controller make e2e-test
Note the running of e2e cases is somewhat slow, so please be patient.
cd /path/to/apisix-ingress-controller make build-image IMAGE_TAG=a.b.c
The Dockerfile in this repository is only for development, not for release.
We assume all prerequisites above mentioned are met, what's more, since we want to run apisix-ingress-controller in bare-metal environment, please make sure both the proxy service and admin api service of Apache APISIX are exposed outside of the Kubernetes cluster, e.g. configuring them as NodePort services.
Let's assume the Admin API service address of Apache APISIX is http://192.168.65.2:31156
. Next launch the ingress-apisix-controller by the following command.
cd /path/to/apisix-ingress-controller ./apisix-ingress-controller ingress \ --kubeconfig /path/to/kubeconfig \ --http-listen :8080 \ --log-output stderr \ --apisix-base-url http://192.168.65.2:31156/apisix/admin --apisix-admin-key edd1c9f034335f136f87ad84b625c8f1
Something you need to pay attention to:
--kubeconfig
, if you are using Minikube, the file path should be ~/.kube/config
.--apisix-admin-key
, if you have changed the admin key in Apache APISIX, also changing it here, if you disable the authentication if Apache APISIX, just removing this option.