Skip to main content

Apache APISIX Ingress Controller Helm Chart



To install apisix-ingress-controller which release name is apisix-ingress-controller:

helm repo add apisix
helm repo update
helm install apisix-ingress-controller apisix/apisix-ingress-controller --namespace ingress-apisix --create-namespace

Note: APISIX Ingress Controller will try to establish a connection with APISIX admin in the location specified by apisix.serviceName and apisix.serviceNamespace values following the naming convention <serviceName.serviceNamespace.svc.clusterDomain>. You can override this behavior to specify a fully custom location by setting the apisix.serviceFullname value.


To uninstall/delete the apisix-ingress-controller release:

helm uninstall apisix-ingress-controller --namespace ingress-apisix

Deployment Options#

ingress version#

By default apisix-ingress-controller watches the Ingress resources in api group networking/v1, however, if your Kubernetes cluster is prior to v1.19, you need to change the ingress watching version.

If your Kubernetes version is older than v1.14, then:

helm install apisix-ingress-controller apisix/apisix-ingress-controller --namespace ingress-apisix --set config.kubernetes.ingressVersion=extensions/v1beta1

Or if your Kubernetes version is between v1.14 and v1.19, try below:

helm install apisix-ingress-controller apisix/apisix-ingress-controller --namespace ingress-apisix --set config.kubernetes.ingressVersion=networking/v1beta1

Upgrade Considerations#


CRDs upgrading is special as helm chart will skip to apply these resources when they already exist.

With the arrival of Helm 3, we removed the old crd-install hooks for a more simple methodology. There is now a special directory called crds that you can create in your chart to hold your CRDs. These CRDs are not templated, but will be installed by default when running a helm install for the chart. If the CRD already exists, it will be skipped with a warning. If you wish to skip the CRD installation step, you can pass the --skip-crds flag.

In such a case, you may need to apply these CRDs by yourself.

cd /path/to/apisix-ingress-controller
kubectl apply -k samples/deploy/crd/