Hi,

I have the following things to know:

* What is the goal of this project?  which are not within its scope
* We know that there are already many projects, including Ingress and
Dashboard, which can be installed and deployed through Helm. What
advantages does this project have over Helm charts?
* Focusing on APISIX itself, it needs etcd, will the etcd life cycle be
managed?
* APISIX also has some external plugins, is it possible to manage the life
cycle of external plugins through this project?
* If there is such a project, then I hope its CRD is carefully designed to
be a project as extensible as prometheus-operator.


Honestly, I like the operator pattern, and I like Helm too.  But I don't
want to discuss which of the two is better here, it's a question that is
often discussed in the community.  I am more concerned about what value it
can bring to the APISIX community and to our users.  Of course, if a
project is born, I also want to know who is willing to maintain it and let
it grow.

Best
Jintao Zhang


在 2022年9月1日星期四,Chever John <cheverjonat...@gmail.com> 写道:

> 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%
> 7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik
> 1haWwiLCJXVCI6Mn0%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%7C84df9e7fe9f640afb435aaaaaaaa
> aaaa%7C1%7C0%7C637975944415070770%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
> MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%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%
> 7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik
> 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=hWNECLBuHbCYgC7kqhOqb5Tqgjl4k8
> znZ%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%7C84df9e7fe9f640afb435aaaaaaaa
> aaaa%7C1%7C0%7C637975944415070770%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
> MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
> 7C%7C%7C&sdata=hp%2F3H5sb93Im%2BPijwfh5F%2FlwoHVdUyHqJNTnV1KQn3M%3D&
> reserved=0>
>

Reply via email to