|  | --- | 
|  | title: Apache APISIX Ingress Controller Helm Chart | 
|  | --- | 
|  |  | 
|  | <!-- | 
|  | # | 
|  | # Licensed to the Apache Software Foundation (ASF) under one or more | 
|  | # contributor license agreements.  See the NOTICE file distributed with | 
|  | # this work for additional information regarding copyright ownership. | 
|  | # The ASF licenses this file to You under the Apache License, Version 2.0 | 
|  | # (the "License"); you may not use this file except in compliance with | 
|  | # the License.  You may obtain a copy of the License at | 
|  | # | 
|  | #     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, | 
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | # See the License for the specific language governing permissions and | 
|  | # limitations under the License. | 
|  | # | 
|  | --> | 
|  |  | 
|  | ## Prerequisites | 
|  |  | 
|  | - [Kubernetes 1.12+](https://kubernetes.io/docs/setup/) | 
|  | - [Apache APISIX](https://apisix.apache.org/docs/apisix/installation-guide/) | 
|  | - [Helm v3.0+](https://helm.sh/docs/intro/quickstart/#install-helm) | 
|  |  | 
|  | ## Install | 
|  |  | 
|  | To install apisix-ingress-controller which release name is `apisix-ingress-controller`: | 
|  |  | 
|  | ```bash | 
|  | helm repo add apisix https://charts.apiseven.com | 
|  | 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: | 
|  |  | 
|  | ```bash | 
|  | helm uninstall apisix-ingress-controller --namespace ingress-apisix | 
|  | ``` | 
|  |  | 
|  | ## Deployment Options | 
|  |  | 
|  | ### ingress version | 
|  |  | 
|  | By default apisix-ingress-controller watches the [Ingress](https://kubernetes.io/docs/concepts/services-networking/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: | 
|  |  | 
|  | ```shell | 
|  | 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: | 
|  |  | 
|  | ```shell | 
|  | helm install apisix-ingress-controller apisix/apisix-ingress-controller --namespace ingress-apisix --set config.kubernetes.ingressVersion=networking/v1beta1 | 
|  | ``` | 
|  |  | 
|  | ## Upgrade Considerations | 
|  |  | 
|  | ### CRD | 
|  |  | 
|  | CRDs upgrading is special as helm chart will skip to apply these resources when they already exist. | 
|  |  | 
|  | > With the arrival of Helm 3, we removed the old crd-install hooks for a more simple methodology. There is now a special directory called crds that you can create in your chart to hold your CRDs. These CRDs are not templated, but will be installed by default when running a helm install for the chart. If the CRD already exists, it will be skipped with a warning. If you wish to skip the CRD installation step, you can pass the --skip-crds flag. | 
|  |  | 
|  | In such a case, you may need to apply these CRDs by yourself. | 
|  |  | 
|  | ```shell | 
|  | cd /path/to/apisix-ingress-controller | 
|  | kubectl apply -k samples/deploy/crd/ | 
|  | ``` |