version 0.3.0
doc: add changelog (#243)

2 files changed
tree: 8776e93ade0042fbc5145167912b5d69dd8ecc8d
  1. .actions/
  2. .asf.yaml
  3. .github/
  4. .gitignore
  5. .markdownlint.yml
  6. CHANGELOG.md
  7. Dockerfile
  8. LICENSE
  9. Makefile
  10. NOTICE
  11. README.md
  12. charts/
  13. cmd/
  14. conf.json
  15. conf/
  16. docs/
  17. go.mod
  18. go.sum
  19. main.go
  20. pkg/
  21. samples/
  22. test/
  23. utils/
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). Such as configure plugins, Support 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 considered experimental.

Features

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

Modules

1. Ingress types Submodule

  • Define the CRD(CustomResourceDefinition) needed by Apache APISIX

  • Currently supports ApisixRoute/ApisixService/ApisixUpstream´╝îand other service and route level plugins.

  • Can be packaged as a stand-alone binary, keep in sync with the ingress definition.

  • CRD design

2. APISIX types Submodule

  • Define interface objects to match concepts from Apache APISIX like route, service, upstream, and plugin.

  • Can be a packaged as a stand-alone binary, need to match with compatible Apache APISIX version.

  • Add new types to this module to support new features.

3. Seven submodule

  • Contain main application logic.

  • Sync the k8s cluster states to Apache APISIX, based on Apisix-types object.

4.Ingress-controller Submodule

  • Driver process for ingress controller, watches k8s apiserver.

  • Match and covert Apisix-ingress-types to Apisix-types before handing the control over to the above module seven.

Get more implementation details.

Get started

Todos

  • Support UDP definition. #116
  • Support TCP definition. #115
  • 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