Skip to main content

Helm Charts

APISIX and API7 Ingress Controllers can be deployed using Helm charts. There are separate charts for these controllers, with different configuration options and deployment approaches.

Released Versions

ProductCompatible controller chartNotes
APISIX Ingress Controller1.3.0Includes the Gateway API 1.6 CRDs, current APISIX CRDs, RBAC, and v1 TCPRoute and UDPRoute webhook paths.
API7 Ingress Controller0.1.26Includes the Gateway API 1.6 CRDs, current APISIX CRDs, ConfigMap and L4RoutePolicy RBAC, and v1 TCPRoute and UDPRoute webhook paths.

APISIX Helm Chart

APISIX Helm Chart provides Helm-based installation and management of APISIX components on Kubernetes.

APISIX Ingress Controller can be deployed on Kubernetes in two ways:

  • Embedded with the apisix/apisix chart, where the controller is enabled as part of the APISIX release by setting ingress-controller.enabled=true.
  • As a separate Helm release using the apisix/apisix-ingress-controller chart.

The installation command in the Getting Started tutorial uses the current APISIX umbrella chart after confirming that it includes Ingress Controller chart 1.3.0 or a later compatible version. It deploys the controller together with APISIX in a single Helm release. The ingress controller pod runs alongside the APISIX gateway pod, but only one Helm release (apisix) appears in helm ls.

Alternatively, you can deploy the APISIX Ingress Controller independently from APISIX as a separate Helm release. The following example command shows how to install the APISIX Ingress Controller as a separate release:

# replace with your configuration details
helm install apisix-ingress-controller \
--create-namespace \
-n aic \
--set gatewayProxy.createDefault=true \
--set gatewayProxy.provider.controlPlane.auth.adminKey.value=edd1c9f034335f136f87ad84b625c8f1 \
--set apisix.adminService.namespace=aic \
--set apisix.adminService.name=apisix-admin \
--set apisix.adminService.port=9180 \
apisix/apisix-ingress-controller

API7 Helm Chart

API7 Helm Chart provides a Helm-based method for installing and managing API7 components on Kubernetes.

API7 Ingress Controller has its own dedicated Helm chart, designed to deploy only the ingress controller component, which connects to an existing API7 control plane. Unlike the APISIX Helm chart, the API7 Gateway chart does not include an option to deploy the ingress controller as part of the same release.

For installation, API7 Dashboard guides you through deploying both the Ingress Controller and the Gateway on Kubernetes, generating the necessary deployment scripts and commands along the way.

For the CRD-first upgrade procedure, see Upgrade Ingress Controller.

Helm Chart Values

Helm chart values define the configuration of a chart. They can come from the chart's default values.yaml file or be overridden during installation or upgrade to customize the deployment.

View Default Values

To view the default values provided by a Helm chart, run:

helm show values <repo>/<chart-name>

# For example:
# helm show values apisix/apisix
# helm show values apisix/apisix-ingress-controller
# helm show values api7/api7-ingress-controller

This command displays the values.yaml packaged with the chart. It does not read values from an installed release. To inspect the values currently associated with a release, use helm get values.

For the authoritative chart references, see the values reference tables for readable field descriptions and values.yaml for the raw default values and nesting:

View Installed Values

To view the chart values associated with an installed release, including defaults and overrides, run:

helm get values <release-name> -n <namespace> --all

This command shows the chart input values. It does not show config.yaml after the chart templates render those values.

View the Rendered Controller Configuration

To inspect all Kubernetes resources rendered for an installed release, run:

helm get manifest <release-name> -n <namespace>

In the rendered manifest, locate the ConfigMap whose data contains config.yaml and note its metadata.name. To print config.yaml from the live ConfigMap, run:

kubectl get configmap <configmap-name> -n <namespace> \
-o jsonpath='{.data.config\.yaml}{"\n"}'

The Helm manifest shows what the release rendered. The live ConfigMap shows the configuration currently stored in the cluster, including any changes made outside Helm.

Update Values

To update a Helm release, you can edit its effective values and apply the changes.

First, export the full set of values for the release to a file, including both chart defaults and any overrides:

helm get values <release-name> -n <namespace> --all -o yaml > my-values.yaml

Next, open the exported values file and update the parameter values.

Finally, apply the updated values to your release:

helm upgrade <release-name> <chart-name> -n <namespace> -f my-values.yaml

If Argo CD manages the rendered chart resources, or Flux manages the Helm release, update the pinned chart version or values in Git instead of running helm upgrade. See Prepare for GitOps for CRD ownership, secret handling, reconciliation, and rollback guidance.