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

Helm/Docker support for emqx-exproto and emqx-extension-hook #573

Open
daadu opened this issue Aug 11, 2020 · 5 comments
Open

Helm/Docker support for emqx-exproto and emqx-extension-hook #573

daadu opened this issue Aug 11, 2020 · 5 comments
Assignees
Labels
Milestone

Comments

@daadu
Copy link
Contributor

daadu commented Aug 11, 2020

emqx-exproto and emqx-extension-hook are the newly released plugins, they require access to "custom code" written by user and "python3/java(coming soon)" runtime. Current Helm chart does not support this.

Possible Solution

  1. Let user provide a docker registry that contains the code that needs to be executed, the Helm chart should make it a "sidecar" pod, the /code volume of the "sidecar" should be mounted to /extension. This is will give emqx access to user defined "code"
  2. These plugins require "python3" or "java" runtimes inside the "emqx" docker, one solution that I can think of is to have variant of emqx docker images - emqx-4.2.3 tag for simple emqx, emqx-py3-4.2.3 tag for emqx+python3 and emqx-java-4.2.3 for emqx+java. The emqx-py3-* and emqx-java-* tagged docker images will have python and java runtimes inside the image. This could be done by using multi-stage docker build. Also an additional feature could be make the py3 and java runtimes tuneable - eg. user can change heap size of JVM, etc. using environment variables.
@daadu
Copy link
Contributor Author

daadu commented Aug 11, 2020

Please give me feedback on the proposed solution. I am interested on working on this feature.

@daadu
Copy link
Contributor Author

daadu commented Aug 11, 2020

Also could consider adding support for emqx-lua-hook

@Rory-Z
Copy link
Member

Rory-Z commented Aug 12, 2020

Hi, @daadu
Thank you for your suggestion, we will further discuss the solution to this issue.
CC @HJianBo
Do you have any ideas ?

@Rory-Z Rory-Z added the feature label Aug 12, 2020
@Rory-Z Rory-Z added this to the 4.2.0 milestone Aug 12, 2020
@daadu
Copy link
Contributor Author

daadu commented Aug 13, 2020

@zhanghongtong I have mentioned in Possible Solution section.

@HJianBo
Copy link
Member

HJianBo commented Dec 1, 2020

Hi @daadu We plan to refactor the implementation of these two plugins in 4.3. The new implementation will make procedure calls based on gRPC instead of the erlang port. In this way, the two plug-ins have a very flexible deployment approach

@HJianBo HJianBo modified the milestones: 4.2.0, 4.3.0 Dec 1, 2020
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

3 participants