Init etcd should be the behavior of the administrator in the control plane.
We can split the current CLI into data plane CLI and control plane CLI. The schema writing we are discussing now is the work of the control plane CLI. JunXu Chen <[email protected]>于2020年11月12日 周四下午5:37写道: > Sure, I know that APISIX should be read-only to ETCD. But we also have > `init_etcd`. And when saving json schema to ETCD, only schema can be saved, > but custom data cannot be saved, similar to a part of `init_etcd`. So I > think it's OK. After that, I temporarily can't think of a better way to > write the schema. What do you think? > > On Thu, Nov 12, 2020 at 3:20 PM Ming Wen <[email protected]> wrote: > > > IMO, APISIX should not write etcd, just only read. > > > > JunXu Chen <[email protected]>于2020年11月12日 周四上午7:58写道: > > > > > I think the main logic should be: > > > > > > When APISIX starts, read the key `/apisix/jsonschema` of ETCD. > > > > > > If the key does not exist or is empty, then read the JSON schema from > > > APISIX and save to the ETCD key `/apisix/jsonschema`. > > > > > > If the key already exists and is not empty, nothing will be done. > > > > > > APISIX provides a command line tool that can be used to manually update > > the > > > JSON schema, like: `apisix sync-schema`, > > > users can use this tool to update JSON schema when needed. > > > > > > > > > What do you think ? I also comment one the issue [1]. > > > > > > Any suggestion is welcome. Thanks. > > > > > > [1]https://github.com/apache/apisix/issues/2700#issuecomment-725730479 > > > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, Nov 9, 2020 at 9:33 PM dabue <[email protected]> wrote: > > > > > > > agree it. > > > > > > > > > > > > > > > > [email protected] > > > > > > > > From: YuanSheng Wang > > > > Date: 2020-11-09 18:19 > > > > To: [email protected] > > > > Subject: Re: Re: [DISCUSS] how to get different type of plugin schema > > in > > > > 2.0 manager-api > > > > I think we can create a github issue now, let us implement it. > > > > > > > > ^_^ > > > > > > > > On Mon, Nov 9, 2020 at 11:12 AM vincixu <[email protected]> wrote: > > > > > > > > > +1 > > > > > Data plane and control plane should share data with ETCD > > > > > > > > > > JunXu Chen <[email protected]> 于2020年11月4日周三 下午1:56写道: > > > > > > > > > > > +1 > > > > > > > > > > > > On Tue, Nov 3, 2020 at 6:47 PM 刘曦冉 <[email protected]> wrote: > > > > > > > > > > > > > Agreeing to move the generation tool to Apisix, I have a > > premature > > > > > > > recommendation for dashboard synchronization configuration: via > > > ETCD. > > > > > > > The 2.0 version of dashboard and Apisix share ETCD data, and we > > can > > > > > > > consider sharing configuration via ETCD as well. > > > > > > > This way allows Dashboard to add no additional configuration > > files > > > > and > > > > > > LuA > > > > > > > dependencies, and schema changes are handled entirely by Apisix > > > > > > > > > > > > > > On 2020/11/03 03:11:57 Zhang Chao wrote: > > > > > > > > Then the schema compatibility relationship should be showed > > > > > explicitly. > > > > > > > > > > > > > > > > > > > > > > > > On November 3, 2020 at 10:48:53 AM, YuanSheng Wang ( > > > > > > [email protected]) > > > > > > > > wrote: > > > > > > > > > > > > > > > > Here is the original discuss issue[1] (two more months ago) > > > > > > > > > > > > > > > > I think we can move this tool from `apisix-dashboard` to > > `apisix` > > > > > > first. > > > > > > > > Then the dashboard can copy the JSON schema file directly > from > > > > APISIX > > > > > > > > project. > > > > > > > > > > > > > > > > [1] https://github.com/apache/apisix/issues/2247 > > > > > > > > > > > > > > > > On Tue, Nov 3, 2020 at 10:08 AM Ming Wen <[email protected]> > > > wrote: > > > > > > > > > > > > > > > > > hello, dev, > > > > > > > > > This discussion was on github[1] at the beginning, and > > because > > > of > > > > > its > > > > > > > > > importance, I synced it to the mailing list. > > > > > > > > > > > > > > > > > > Because the dashboard project requires schema verification > > for > > > > > > > plug-ins, > > > > > > > > > upstreams, etc., and the definition of the schema is > written > > in > > > > the > > > > > > Lua > > > > > > > > > code of Apache APISIX. Therefore, we need a tool to > generate > > a > > > > json > > > > > > > > schema > > > > > > > > > file based on the Lua code of Apache APISIX so that it can > be > > > > used > > > > > by > > > > > > > the > > > > > > > > > Go and front-end code of the dashboard project. > > > > > > > > > > > > > > > > > > The current approach is: > > > > > > > > > 1. Integrate this tool in the dashboard project, mock the > > > > > environment > > > > > > > and > > > > > > > > > dependent libraries of Apache APISIX; > > > > > > > > > 2. After Apache APISIX modifies the plug-in schema, the > code > > of > > > > the > > > > > > > > > dashboard project needs to be modified synchronously; > > > > > > > > > In addition, how do we deal with user-defined plug-ins? > > > > > > > > > > > > > > > > > > And what I hope to achieve in the end is: > > > > > > > > > > > > > > > > > > 1. The tool for synchronizing schema has nothing to do with > > the > > > > > > > > > dashboard project. After all, this is a product that the > data > > > > plane > > > > > > > > > should > > > > > > > > > generate; > > > > > > > > > 2. When the schema of the data plane changes, there is no > > need > > > to > > > > > > > modify > > > > > > > > > the code of this tool; > > > > > > > > > 3. The dashboard project should not depend on Lua. > > > > > > > > > > > > > > > > > > what do you think? > > > > > > > > > > > > > > > > > > [1] https://github.com/apache/apisix-dashboard/issues/605 > > > > > > > > > > > > > > > > > > Thanks, > > > > > > > > > Ming Wen, Apache APISIX > > > > > > > > > > > > > > > > > > > > > | | > > > > > > > 刘曦冉 > > > > > > > | > > > > > > > | > > > > > > > 邮箱[email protected] > > > > > > > | > > > > > > > > > > > > > > 签名由 网易邮箱大师 定制 > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > *MembPhis* > > > > My GitHub: https://github.com/membphis > > > > Apache APISIX: https://github.com/apache/apisix > > > > > > > > > -- > > Thanks, > > Ming Wen, Apache APISIX & Apache SkyWalking > > Twitter: _WenMing > > > -- Thanks, Ming Wen, Apache APISIX & Apache SkyWalking Twitter: _WenMing
