Apache APISIX is a dynamic, real-time, high-performance API gateway.
APISIX provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more.
You can use Apache APISIX to handle traditional north-south traffic, as well as east-west traffic between services. It can also be used as a k8s ingress controller.
This chart bootstraps all the components needed to run Apache APISIX on a Kubernetes Cluster using Helm.
➜ helm repo add apisix https://charts.apiseven.com ➜ helm repo update ➜ helm install apisix/apisix --generate-name
To install the chart with the release name my-apisix
:
➜ helm repo add apisix https://charts.apiseven.com ➜ helm repo update ➜ helm install my-apisix apisix/apisix
To uninstall/delete a Helm release my-apisix
:
➜ helm delete my-apisix
The command removes all the Kubernetes components associated with the chart and deletes the release.
The following tables lists the configurable parameters of the apisix chart and their default values per section/component:
Parameter | Description | Default |
---|---|---|
global.imagePullSecrets | Global Docker registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
Parameter | Description | Default |
---|---|---|
apisix.enabled | Enable or disable Apache APISIX itself | true |
apisix.image.repository | Apache APISIX image repository | apache/apisix |
apisix.image.tag | Apache APISIX image tag | {TAG_NAME} (the latest Apache APISIX image tag) |
apisix.image.pullPolicy | Apache APISIX image pull policy | IfNotPresent |
apisix.replicaCount | Apache APISIX deploy replica count | 1 |
apisix.podAnnotations | Annotations to add to each pod | {} |
apisix.podSecurityContext | Set the securityContext for Apache APISIX pods | {} |
apisix.securityContext | Set the securityContext for Apache APISIX container | {} |
apisix.resources | Set pod resource requests & limits | {} |
apisix.nodeSelector | Node labels for Apache APISIX pod assignment | {} |
apisix.tolerations | List of node taints to tolerate | {} |
apisix.affinity | Set affinity for Apache APISIX deploy | {} |
apisix.podAntiAffinity.enabled | Enable or disable podAntiAffinity | false |
Apache APISIX service parameters, this determines how users can access itself.
Parameter | Description | Default |
---|---|---|
gateway.type | Apache APISIX service type for user access itself | NodePort |
gateway.externalTrafficPolicy | Setting how the Service route external traffic | Cluster |
gateway.http | Apache APISIX service settings for http | |
gateway.tls | Apache APISIX service settings for tls | |
gateway.stream | Apache APISIX service settings for stream | |
gateway.ingress | Using ingress access Apache APISIX service |
Parameter | Description | Default |
---|---|---|
admin.enabled | Enable or disable Apache APISIX admin API | true |
admin.port | which port to use for Apache APISIX admin API | 9180 |
admin.servicePort | Service port to use for Apache APISIX admin API | 9180 |
admin.type | Apache APISIX admin API service type | ClusterIP |
admin.externalIPs | IPs for which nodes in the cluster will also accept traffic for the servic | [] |
admin.cors | Apache APISIX admin API support CORS response headers | true |
admin.credentials.admin | Apache APISIX admin API admin role credentials | edd1c9f034335f136f87ad84b625c8f1 |
admin.credentials.viewer | Apache APISIX admin API viewer role credentials | 4054f7cf07e344346cd3f287985e76a2 |
admin.allow.ipList | the IP range allowed to Apache APISIX admin API | true |
Default enabled plugins. See configmap template for details.
Configurations for etcd sub chart.
Configurations for apisix-dashboard sub chart.
Configurations for Apache APISIX ingress-controller sub chart.