Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[discuss] need a way to support v3 protocol of etcd #1542

Closed
membphis opened this issue May 6, 2020 · 16 comments
Closed

[discuss] need a way to support v3 protocol of etcd #1542

membphis opened this issue May 6, 2020 · 16 comments
Assignees

Comments

@membphis
Copy link
Member

membphis commented May 6, 2020

use a new component etcd proxy (maybe a process or a Nginx server).

user -> etcd proxy -> admin API -> etcd v3.

image

@nic-chen
Copy link
Member

nic-chen commented May 7, 2020

proxy mode will make the system complicated. I prefer to provide a conversion interface in the resty-etcd library for now, which can convert the respond data of the v3 interface into the format of the v2 interface to achieve compatibility.

@moonming
Copy link
Member

moonming commented May 8, 2020

why not support etcd v3 directly?

@bingchengxiaobing117
Copy link

I have tried etcd v3 procotol, but I often run out of time in watchdir api. If you are interested, you can discuss it together, the detail see:
api7/lua-resty-etcd#56

@membphis
Copy link
Member Author

why not support etcd v3 directly?

The Admin API and apisix core depend on the etcd v2 protocol.

If we support etcd v3 directly, it will be a big PR. But I love to support etcd v3 directly, v3 is future.

@Yiyiyimu
Copy link
Member

Hi @nic-chen , I'm interested in this project for summer-2020. Do you have some guideline/evaluation tasks or suggestions to get familiar with this project?

@moonming
Copy link
Member

@Yiyiyimu are you come from https://cwiki.apache.org/confluence/display/APISIX/Open+Source+Promotion+Plan+-+Summer+2020+Tasks?
I think you can start from how to use https://github.com/api7/lua-resty-etcd, and th different from etcd v2 and v3 protocol.

@moonming
Copy link
Member

@nic-chen what do you think?

@moonming
Copy link
Member

@Yiyiyimu IMO, I suggest you to use etcd v3 directly in Apache APISIX, not the etcd proxy mode.

@Yiyiyimu
Copy link
Member

@Yiyiyimu are you come from https://cwiki.apache.org/confluence/display/APISIX/Open+Source+Promotion+Plan+-+Summer+2020+Tasks?
I think you can start from how to use https://github.com/api7/lua-resty-etcd, and th different from etcd v2 and v3 protocol.

Thank you @moonming for the quick reply!

Yes I do come from the promotion plan. I'll give it a try on lua-resty-etcd these days.

@moonming
Copy link
Member

moonming commented May 22, 2020 via email

@nic-chen
Copy link
Member

@Yiyiyimu

I suggest that you could install Apache APISIX using the master branch source code,
and then configure and use it according to the documentation,
so that you can understand how APISIX and etcd work,
and then look at the source code to understand how lua-resty-etcd v2 is used in APISIX.

If you do not have openresty development experience, you need to familiarize yourself with openresty first.

As @moonming said, we have discussed and reached an agreement to directly use v3 instead of v2 without data format compatibility.

please feel free to contact us when you need any help. Thanks.

@Yiyiyimu
Copy link
Member

Thank you @nic-chen for your stepwise suggestions! BTW, which way do you recommend to contact the mentors and the community, email subscription, gitter or some other ways?

@moonming
Copy link
Member

moonming commented May 23, 2020 via email

@moonming
Copy link
Member

@Yiyiyimu we can discuss this issue in the dev mailing list: [email protected], thx

@Yiyiyimu
Copy link
Member

Yiyiyimu commented May 30, 2020 via email

@nic-chen
Copy link
Member

nic-chen commented Jun 4, 2020

hi @Yiyiyimu

Is there any progress?

please feel free to contact us if you have any problem with this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants