feat: support TLS for ingress v1 (#634)

Signed-off-by: Ling Samuel <lingsamuelgrace@gmail.com>
5 files changed
tree: 6ad18d231037714229b8995458e7d0d64814fc47
  1. .github/
  2. cmd/
  3. conf/
  4. docs/
  5. pkg/
  6. releases/
  7. samples/
  8. test/
  9. utils/
  10. .asf.yaml
  11. .dockerignore
  12. .gitignore
  13. .gitmodules
  14. .golangci.yml
  15. .licenserc.yaml
  16. .markdownlint.yml
  17. CHANGELOG.md
  18. Dockerfile
  19. go.mod
  20. go.sum
  21. install.md
  22. LICENSE
  23. link-check-config.json
  24. main.go
  25. Makefile
  26. NOTICE
  27. README.md
  28. tools.go
README.md

Apache APISIX for Kubernetes

Go Report Card

Use Apache APISIX for Kubernetes Ingress.

All configurations in apisix-ingress-controller are defined with Kubernetes CRDs (Custom Resource Definitions). Support configuring plugins, service registration discovery mechanism for upstreams, load balancing and more in Apache APISIX.

apisix-ingress-controller is an Apache APISIX control plane component. Currently it serves for Kubernetes clusters. In the future, we plan to separate the submodule to adapt to more deployment modes, such as virtual machine clusters.

The technical architecture of apisix-ingress-controller:

Status

This project is currently general availability.

Features

  • Declarative configuration for Apache APISIX with Custom Resource Definitions(CRDs), using k8s yaml struct with minimum learning curve.
  • Hot-reload during yaml apply.
  • Native Kubernetes Ingress (both v1 and v1beta1) support.
  • Auto register k8s endpoint to upstream (Apache APISIX) node.
  • Support load balancing based on pod (upstream nodes).
  • Out of box support for node health check.
  • Plug-in extension supports hot configuration and immediate effect.
  • Support SSL and mTLS for routes.
  • Support traffic split and canary deployments.
  • Support TCP 4 layer proxy.
  • Ingress controller itself as a pluggable hot-reload component.
  • Multi-cluster configuration distribution.

More about comparison among multiple Ingress Controllers.

Internal Architecture

Prerequisites

Apisix ingress controller requires Kubernetes version 1.15+. From the version 1.0.0, APISIX-ingress-controller need to work with Apache APISIX version 2.7+.

Apache APISIX Ingress vs. Kubernetes Ingress Nginx

Contributor over time

Contributor over time

Get started

Todos

  • Support UDP definition. #116
  • Support GRPC definition. #114
  • Add a complete demo. #9
  • More todos will display in issues

Documents

FAQ

User stories

Contributing

We welcome all kinds of contributions from the open-source community, individuals and partners.

Community

Milestone

Terminology

  • Ingress APISIX: the whole service that contains the proxy (Apache APISIX) and ingress controller (apisix ingress controller).
  • apisix-ingress-controller: the ingress controller component.

License

Apache License 2.0