Skip to content

Commit

Permalink
design: Run Envoy Gateway locally on host
Browse files Browse the repository at this point in the history
Relates to envoyproxy#1001
& envoyproxy#1035

Signed-off-by: Arko Dasgupta <arko@tetrate.io>
  • Loading branch information
arkodg committed May 1, 2023
1 parent 642a4d4 commit b571bcf
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
48 changes: 48 additions & 0 deletions docs/latest/design/local-envoy-gateway.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# 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 multple 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 b571bcf

Please sign in to comment.