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

Kelon-Gateway (using Envoy) #82

Open
2 of 4 tasks
Daniel-Seifert opened this issue Feb 5, 2020 · 8 comments
Open
2 of 4 tasks

Kelon-Gateway (using Envoy) #82

Daniel-Seifert opened this issue Feb 5, 2020 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@Daniel-Seifert
Copy link

Daniel-Seifert commented Feb 5, 2020

Description

In order to make the usage of Kelon in business applications as easy as possible (i.e. solve OIDC-Authentification and configure global CORS-Settings) Kelon should be coupled with Envoy.

Therefore we need to:

  • Evaluate the kind of coupling to use (integrate envoy in Kelon's binary or use it as external gateway which is configured by Kelon)
  • Configure Envoy for CORS and OIDC-Endpoint in this example deployment
  • Allow usage of envoy as gateway that is completely configured by Kelon
  • Add configuration options for cors and oidc to Kelons config in case envoy is activated by a flag

This issue would also resolve #54 and #33

Resulting architecture after deciding to use Envoy as externally deployed gateway.
IMG_7A5F0146DF53-1

@dcseifert dcseifert self-assigned this Feb 5, 2020
@dcseifert dcseifert added this to the Capability test milestone Feb 5, 2020
@dcseifert
Copy link
Contributor

@mkjoerg spec valid?

@containerpope
Copy link
Collaborator

@dcseifert see updates above

@dcseifert
Copy link
Contributor

After reading the latest Envoy Docs I suggest to use the "External Envoy" approach. This is mostly based on the fact that the Envoy Docs point out that:

Out of process architecture: Envoy is a self contained process that is designed to run alongside every application server.

which means that, despite the fact that Envoy is written in C++11, Envoy can be not easily included into Kelon's binaries itself.

For the external approach Envoy has to be set-up via a minimal static bootstrap-config which enables Envoy to gather all further dynamic configuration from Kelon afterwards.

@mkjoerg Right now I'm afraid that we're only re-implementing the Envoy-Config into Kelon (which should definitely be weighted agains configuring Envoy itself!) Remember that Kelon is statically configured (such as Envoy would be) and already implements Envoy's External-Auth interface #34

@dcseifert
Copy link
Contributor

The next step is to extend our example App-Store-Example so that is also includes a fully configured Envoy-Proxy. Afterwards we can make assumptions about the configuration overhead of keeping the envoy config separately from Kelon.

@containerpope
Copy link
Collaborator

@dcseifert confirmed, please change ticket description accordingly :)

@dcseifert
Copy link
Contributor

Created an issue with the current configuration problem of envoy here

@dcseifert
Copy link
Contributor

The latest version of Envoy ext Auth should be re-integrated into kelon to enable using it in a service mesh.

@dcseifert
Copy link
Contributor

There is also following Envoy-Plugin available for the OPA itself which might not be used directly but for inspirational purposes.

@dcseifert dcseifert added the enhancement New feature or request label Jul 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants