Skip to main content
Version: 1.6.1


How do I bind a Service with an Upstream?#

All resources are uniquely identified by the namespace/name/port combination. If this combination is the same, the Service and the Upstream will be binded.

While modifying a CRD, how does the binded resources perceive it?#

This is a cascading update problem. See Design for more details.

Can I use both CRDs and the Admin API together to configure Routes?#

No. CRDs are declarative and when applied they are translated to APISIX configuration. Configuring APISIX through Admin API would not change the CRDs.

Why is there an error like "list upstreams failed, err: http get failed, url:, err: status: 401"?#

APISIX Ingress controller does not support configuring admin_key for APISIX. Removing admin_key from both your configuration file (config.yaml and config-default.yaml) when deploying APISIX will fix this issue.

How does APISIX Ingress controller retry?#

If an error occurs while parsing the CRD and translating the configuration to APISIX, a retry will be triggered.

Delays are used while retrying. It retries once per second at first and after five retries, it will be decreased to one retry per minute until it succeeds.

How do I update the CRDs when updating APISIX Ingress controller?#

The Helm chart will skip applying these CRDs if they already exist.

In such cases, you can apply the CRDs manually:

kubectl apply -k samples/deploy/crd/

With Helm 3, old CRD-install hooks were replaced by a simpler system. You can now create a special directory called crds in your charts for holding CRDs.

These CRDs are not templated but will be installed by default when running helm install. If the CRD already exists, it will be skipped with a warning. You can skip the CRD installation step by passing the --skip-crds flag.

Why is there an error like "no matches for kind "ApisixRoute" in version """ when I try to create a Route?#

Make sure that you have the correct version of the CRDs installed in your cluster (see updating CRDs). ApisixRoute has two versions: v2beta3 and v2.

Also check your ApisixRoute definition for the correct version by running:

kubectl get crd -o jsonpath='{ .spec.versions[*].name }' -A

How do I modify the Admin API key in APISIX Ingress?#

You can change the Admin API key in two ways:

  1. Modify the key in both apisix/values.yaml and apisix/apisix-ingress-controller/values.yaml files.
  2. You can also set this imperatively by passing the flag --set ingress-controller.config.apisix.adminKey=<new key> --set admin.credentials.admin=<new key> to the helm install command.