Proposal: https://gist.github.com/JooKS-me/bd7cc7c759fd0df5d7c3a2fcdc2f5d1b
How to use: https://shenyu.apache.org/docs/user-guide/kubernetes-controller/build-deploy/
Implement a Kubernetes Ingress Controller for Apache ShenYu, it requires the following abilities:
- HTTP proxy
- TLS dynamic configuration
- Automatically change gateway configuration according to Endpoints
- Write shenyu-kubernetes-spring-boot-starter, embed ingress-controller into the gateway in the form of spring-boot-starter, and have pluggable capabilities.
- Refactor the core code of shenyu gateway to support the SNI protocol and lay the foundation for realizing the kubernetes ingress tls capability.
- Write the code of shenyu-ingress-controller to achieve the goals mentioned above.
- Provide unit tests and integration tests for the written code.
- Write usage and configuration documentation.
The goals of Gsoc 2023 have all been achieved.
Further optimization and expansion:
- The annotation based on ingress supports the unique functions of shenyu;
- Refactor to trigger horizontally.
- Support shenyu's unique functions based on CRD;
- Provide a separate architecture for shenyu kubernetes controller;
- Write helm chart for shenyu kubernetes controller;
- Implement the Kubernetes Gateway API;
- Connect with Kubernetes ecological projects such as Knative and KubeVela.
All code have been merged into master branch of Apache ShenYu.