🤔 Introducing APISIX AI Gateway – Built for LLMs and AI workloads. Learn More

Apache APISIX Ingress Controller Helm Chart

Prerequisites

Install

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

helm repo add apisix https://apache.github.io/apisix-helm-chart
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.

Uninstall

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

CRD

Helm installs the APISIX CRDs in crds/ on helm install only and skips them on helm upgrade, so apply them yourself when upgrading:

helm pull apisix/apisix-ingress-controller --untar
kubectl apply --server-side -f apisix-ingress-controller/crds/apisixic-crds.yaml

The Gateway API CRDs are chart-managed and controlled by crds.gatewayAPI.enabled (default true). CRDs not created by this release (for example by GKE or another chart) are left untouched, and chart-managed ones are kept on helm uninstall. Set crds.gatewayAPI.enabled=false when another component owns the CRDs and you render the chart with helm template or Argo CD.