Hi, community,
I would like to start a discussion about the feasibility of an APISIX sub-project called APISIX-Operator. *Background* When I got involved in formal enterprise-level development, I found that a proper Kubernetes Operator would quickly improve the project's development progress. Currently, I have a simple apisix-operator demo. You can refer to this link[1]. The Kubernetes Operator is a way to package, deploy, and manage Kubernetes applications. Kubernetes applications are deployed on Kubernetes and collected using the Kubernetes API and kubectl tools. Kubernetes operator is an application-specific controller that extends the capabilities of the Kubernetes API to create, configure, and manage instances of complex applications on behalf of Kubernetes users. For more information, refer to this article[2]. *Some advantages* I propose to create a subproject APISIX-operator of APISIX. The benefits include the following. 1. it is clear that this project will add a way for the community to use APISIX and that this approach will be more suitable for enterprise-level automated development and management. 2. Potentially, the project will increase the community's activity and promote the community's health and the APISIX project. *After adoption* If the community adopts this suggestion, I would like to discuss a few points regarding the features of the apisix-operator. 1. whether the community version of apisix-operator applies to cluster scope or namespace scope (if you are confused, check out this documentation[3]. 2. How do we specify where to store some internal go codes and some naming? 3. How to start the contribution process based on my simple demo[1]. *The ideal result I want to achieve* 1. Eventually this project was uploaded to OperatorHub[4] for use. 2. Eventually this project was reasonably well maintained by the community. *Conclusion* I will produce a full proposal after this discussion. Thanks, Chenwei Jiang (CheverJohn) [1] https://github.com/chever-john/apisix-operator/ <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fchever-john%2Fapisix-operator%2F&data=05%7C01%7C%7C5e8ef73b210d4b8e4bb808da8bbdc4f8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637975944415070770%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pGam%2BJuoGwvobibqjUl8R6RbzGM3G9IWQWO8C186t5A%3D&reserved=0> [2] https://www.redhat.com/en/topics/containers/what-is-a-kubernetes-operator <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.redhat.com%2Fen%2Ftopics%2Fcontainers%2Fwhat-is-a-kubernetes-operator&data=05%7C01%7C%7C5e8ef73b210d4b8e4bb808da8bbdc4f8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637975944415070770%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qd99BSzz2763P9ksl2wnK31zbNbbOYx9xJjDn1ZbNfc%3D&reserved=0> [3] https://sdk.operatorframework.io/docs/building-operators/golang/operator-scope/ <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsdk.operatorframework.io%2Fdocs%2Fbuilding-operators%2Fgolang%2Foperator-scope%2F&data=05%7C01%7C%7C5e8ef73b210d4b8e4bb808da8bbdc4f8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637975944415070770%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=hWNECLBuHbCYgC7kqhOqb5Tqgjl4k8znZ%2FUbiWjn02Q%3D&reserved=0> [4] https://operatorhub.io/ <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Foperatorhub.io%2F&data=05%7C01%7C%7C5e8ef73b210d4b8e4bb808da8bbdc4f8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637975944415070770%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=hp%2F3H5sb93Im%2BPijwfh5F%2FlwoHVdUyHqJNTnV1KQn3M%3D&reserved=0>