Apache APISIX Helm Charts

repository·master·Indexed 43 days ago

https://github.com/apache/apisix-helm-chart

Helm charts for deploying Apache APISIX components on Kubernetes clusters, including the core gateway, Ingress Controller, and the deprecated Dashboard. Supports Kubernetes v1.14+ and Helm 3, featuring configurations for Admin API, Nginx subsystems, custom HTTP plugins, service discovery, and admission webhooks.

Tokens
14.1K
Snippets
46
Records
61
Agent score
53%

What's inside Apache APISIX

  1. Overview of Apache APISIX Helm Charts

    master

    Apache APISIX Helm Charts are used to install Apache APISIX components on Kubernetes. The repository provides charts for the following components:

    • Apache APISIX: The core API gateway.
    • Apache APISIX Ingress Controller: Manages APISIX resources within Kubernetes.
    • Apache APISIX Dashboard (DEPRECATED): A GUI for managing APISIX.

    Important Usage Note: When using the APISIX Ingress Controller, it automatically manipulates certain APISIX resources. To avoid conflicts, do not modify resources labeled managed-by: apisix-ingress-controllers via the APISIX Dashboard.

  2. Quick Start: Install APISIX with Dashboard and Ingress Controller

    master

    For a rapid setup that includes the Apache APISIX Dashboard and the Apache APISIX Ingress Controller, use the following single command. This command enables the dashboard, enables the ingress controller, and configures the ingress controller to look for the APISIX service in the apisix namespace.

    helm repo add apisix https://apache.github.io/apisix-helm-chart && helm repo update && helm upgrade --install apisix apisix/apisix --create-namespace  --namespace apisix --set dashboard.enabled=true --set ingress-controller.enabled=true --set ingress-controller.config.apisix.serviceNamespace=apisix
  3. Install Apache APISIX in standalone mode

    master

    To run Apache APISIX in standalone mode (without ETCD), configure the deployment mode and role using the following Helm flags:

    • apisix.deployment.mode=standalone
    • etcd.enabled=false
    • apisix.deployment.role=data_plane
    helm install apisix apisix/apisix --set apisix.deployment.mode=standalone --set etcd.enabled=false --set apisix.deployment.role=data_plane
  4. Upgrade APISIX Ingress Controller CRDs

    master

    Helm only installs the APISIX CRDs located in crds/ during the initial helm install. It skips them during helm upgrade. To upgrade the CRDs, you must pull the chart and apply them manually using kubectl with the --server-side flag.

    Note on Gateway API CRDs:

    • Gateway API CRDs are managed by the chart via crds.gatewayAPI.enabled (defaults to true).
    • If another component (like GKE) already owns these CRDs, set crds.gatewayAPI.enabled=false when using helm template or Argo CD to avoid conflicts.
    # Manually apply CRDs during an upgrade
    helm pull apisix/apisix-ingress-controller --untar
    kubectl apply --server-side -f apisix-ingress-controller/crds/apisixic-crds.yaml
  5. Using legacy v1.x APISIX Helm Charts

    master
    The transition from v1.x to v2.x of the APISIX Helm chart included breaking changes. If your environment requires the v1.x behavior or you are unable to upgrade, you should use the apisix/1.x branch available in the repository instead of the main branch.
  6. Install the deprecated Apache APISIX Dashboard chart

    master

    The Apache APISIX Dashboard chart bootstraps a dashboard deployment on a Kubernetes cluster.

    Warning: This chart is deprecated and no longer maintained. The new Dashboard will be integrated directly into APISIX. Use this chart only if you are currently using the old version of the APISIX Dashboard.

    Prerequisites

    • Kubernetes version 1.14+
    • Helm 3 (only Helm 3 is supported)

    Installation Steps

    1. Add the APISIX Helm repository:
      helm repo add apisix https://apache.github.io/apisix-helm-chart
      helm repo update
    2. Install the chart into your desired namespace (e.g., ingress-apisix):
      helm install [RELEASE_NAME] apisix/apisix-dashboard --namespace ingress-apisix --create-namespace
    helm repo add apisix https://apache.github.io/apisix-helm-chart
    helm repo update
    helm install [RELEASE_NAME] apisix/apisix-dashboard --namespace ingress-apisix --create-namespace
  7. Install Apache APISIX Ingress Controller

    master

    To install the apisix-ingress-controller using Helm, add the APISIX repository, update your local charts, and run the install command. By default, the controller will attempt to connect to the APISIX admin service using the naming convention <apisix.serviceName>.<apisix.serviceNamespace>.svc.clusterDomain.

    If you need to specify a custom location for the APISIX admin service, override this behavior by setting the apisix.serviceFullname value in your Helm configuration.

    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
  8. Install the Apache APISIX Dashboard Helm Chart

    master

    To install the Apache APISIX Dashboard using Helm, ensure you have Kubernetes 1.12+, Apache APISIX, and Helm v3.0+ installed. Use the following commands to add the repository and install the chart into the apisix namespace with the release name apisix-dashboard.

    WARNING

    This chart is deprecated and no longer maintained. The new Dashboard will be directly integrated into APISIX, eliminating the need for this chart. Use this only if you require the legacy version.

    helm repo add apisix https://apache.github.io/apisix-helm-chart
    helm repo update
    helm install apisix-dashboard apisix/apisix-dashboard --create-namespace --namespace apisix
  9. Uninstall or Upgrade the APISIX Dashboard chart

    master

    Uninstall

    To remove all Kubernetes components associated with the chart and delete the release:

    helm uninstall [RELEASE_NAME] --namespace ingress-apisix

    Upgrade

    To upgrade an existing installation:

    helm upgrade [RELEASE_NAME] [CHART] --install
    # Uninstall
    helm uninstall [RELEASE_NAME] --namespace ingress-apisix
    
    # Upgrade
    helm upgrade [RELEASE_NAME] [CHART] --install