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
| Product | Compatible controller chart | Notes |
|---|---|---|
| APISIX Ingress Controller | 1.3.0 | Includes the Gateway API 1.6 CRDs, current APISIX CRDs, RBAC, and v1 TCPRoute and UDPRoute webhook paths. |
| API7 Ingress Controller | 0.1.26 | Includes 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/apisixchart, where the controller is enabled as part of the APISIX release by settingingress-controller.enabled=true. - As a separate Helm release using the
apisix/apisix-ingress-controllerchart.
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:
- APISIX Helm chart values reference table
- APISIX Helm chart
values.yaml - APISIX Ingress Controller Helm chart values reference table
- APISIX Ingress Controller Helm chart
values.yaml - API7 Ingress Controller Helm chart values reference table
- API7 Ingress Controller Helm chart
values.yaml
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.