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

move Golang extension from contrib to standard #31685

Open
2 of 4 tasks
doujiang24 opened this issue Jan 8, 2024 · 8 comments
Open
2 of 4 tasks

move Golang extension from contrib to standard #31685

doujiang24 opened this issue Jan 8, 2024 · 8 comments
Labels

Comments

@doujiang24
Copy link
Member

doujiang24 commented Jan 8, 2024

Motivation

Make people use the standard version with confidence.
Some people have expressed concerns about the contrib version, i.e. the thread in enovy-go slack channel.

Status

The latest envoy 1.28.0 should be stable enough.
All knowned bug are fixed in envoy 1.28.0. And no new bugs reported since 1.28.0.

Nearly ~100 improvements, and ~5 bugfixes since first merged in contrib.
i.e. retired the GODEBUG=cgocheck=0 env requirement.

Test

Doc

There are some baisc doc about how to develop and build plugin, and examples for how to implement golang plugins.

  • need more detailed doc about the Go APIs, for implementing Golang plugins.

Question

In addition to these TODOs, what else needs to address? Or, any other requirements?
cc @mattklein123 @alyssawilk @phlax @wbpcode Any advice & guidance? Thanks very much!

Maybe it could be done in the 1.31 release? if there are no big blocking issue.

@doujiang24 doujiang24 added the triage Issue requires triage label Jan 8, 2024
@phlax phlax added area/extension area/golang area/contrib and removed triage Issue requires triage labels Jan 8, 2024
@alyssawilk
Copy link
Contributor

This list looks great to me. The one thing I think you're missing is maintainer sponsorship - not sure if you've already gotten someone to sign on or if you want to cc the maintainers list and see who is game for sponsoring.

@doujiang24
Copy link
Member Author

Thank you for your kind words. We don’t have a maintainer sponsor yet. Would you be interested in sponsoring us? It would be an honor for us. 🙏

@alyssawilk
Copy link
Contributor

Unfortunately good as I think the extension is, I don't have the cycles to spin up context and do reviews.
@envoyproxy/envoy-maintainers anyone game to take this one on? I think it's a good addition to the project and @doujiang24 has been doing fantastic work with bug fixes so hopefully sponsorship wouldn't be a large burden.

@wbpcode
Copy link
Member

wbpcode commented Jan 9, 2024

I think there may be huge of review work to move this extension.

I can help in code quality but I am not familiar with the cgo, so we still need another maintainer who are familiar to or at least interest in that.

@ADustyOldMuffin
Copy link

I'd like to add an extra comment for the docs side, the lifecycle of all of the functions and golang features (like the unit function, vars, etc) should be documented to help people.

Copy link

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale stalebot believes this issue/PR has not been touched recently label Feb 17, 2024
@phlax phlax added no stalebot Disables stalebot from closing an issue and removed stale stalebot believes this issue/PR has not been touched recently labels Feb 17, 2024
@Olshansk
Copy link

@doujiang24 We're currently considering using this for production mission-critical services. Do you think the golang extension are in that stage?

@doujiang24
Copy link
Member Author

@Olshansk Yep, I think it's ready for production, we have using it in production over a year.

The main risk comes from the stability of the API.
However, this is not a big problem. What this means:
When you upgrade Envoy, you need to upgrade Go-SDK to the corresponding version and recompile the golang plugin.
If there are API changes, you may need to change the way the API is called.

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

No branches or pull requests

6 participants