Skip to content

Commit

Permalink
design: Run Envoy Gateway locally on host (#1382)
Browse files Browse the repository at this point in the history
* design: Run Envoy Gateway locally on host

Relates to #1001
& #1035

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* lint

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* lint

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

---------

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
  • Loading branch information
arkodg committed May 4, 2023
1 parent b84b88a commit 7d7ff25
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
49 changes: 49 additions & 0 deletions docs/latest/design/local-envoy-gateway.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Running Envoy Gateway locally

## Overview

Today, Envoy Gateway runs only on Kubernetes. This is an ideal solution
when the applications are running in Kubernetes.
However there might be cases when the applications are running on the host which would
require Envoy Gateway to run locally.

## Goals

* Define an API to allow Envoy Gateway to retrieve configuration while running locally.
* Define an API to allow Envoy Gateway to deploy the managed Envoy Proxy fleet on the host
machine.

## Non Goals

* Support multiple ways to retrieve configuration while running locally.
* Support multiple ways to deploy the Envoy Proxy fleet locally on the host.

## API

* The `provider` field within the `EnvoyGateway` configuration only supports
`Kubernetes` today which provides two features - the ability to retrieve
resources from the Kubernetes API Server as well as deploy the managed
Envoy Proxy fleet on Kubernetes.
* This document proposes adding a new top level `provider` type called `Custom`
with two fields called `resource` and `infrastructure` to allow the user to configure
the sub providers for providing resource configuration and an infrastructure to deploy
the Envoy Proxy data plane in.
* A `File` resource provider will be introduced to enable retrieveing configuration locally
by reading from the configuration from a file.
* A `Host` infrastructure provider will be introduced to allow Envoy Gateway to spawn a
Envoy Proxy child process on the host.

Here is an example configuration

```
provider:
type: Custom
custom:
resource:
type: File
file:
path: "config.yaml"
infrastructure:
type: Host
host: {}
```
1 change: 1 addition & 0 deletions docs/latest/design_docs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ Learn about the internal details of Envoy Gateway.
design/request-authentication
design/bootstrap
design/extending-envoy-gateway
design/local-envoy-gateway

0 comments on commit 7d7ff25

Please sign in to comment.