Skip to content

Commit

Permalink
Update default values for Envoy extension proxy types
Browse files Browse the repository at this point in the history
  • Loading branch information
cthain committed Jun 12, 2023
1 parent 27206d9 commit 295709f
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The following list outlines the field hierarchy, data types, and requirements fo

Click on a property name to view additional details, including default values.

- [`ProxyType`](#proxytype): string | required
- [`ProxyType`](#proxytype): string | `connect-proxy`
- [`Debug`](#debug): bool | `false`
- [`Patches`](#patches): list | required
- [`ResourceFilter`](#patches-resourcefilter): map
Expand Down Expand Up @@ -69,7 +69,6 @@ Specifies the type of Envoy proxy that the extension applies to. The only suppor
#### Values

- Default: `connect-proxy`
- This field is required.
- Data type: String

### `Debug`
Expand Down
35 changes: 16 additions & 19 deletions website/content/docs/connect/proxies/envoy-extensions/usage/lua.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ Envoy filters support setting and getting dynamic metadata, allowing a filter to

To use the Lua Envoy extension, configure the following arguments in the `EnvoyExtensions` block:

| Arguments | Description |
| -------------- | ------------------------------------------------------------------------------------------------ |
| `ProxyType` | Determines the proxy type the extension applies to. The only supported value is `connect-proxy`. |
| `ListenerType` | Specifies if the extension is applied to the `inbound` or `outbound` listener. |
| `Script` | The Lua script that is configured to run by the HTTP Lua filter. |
- `ProxyType`: string | `connect-proxy` - Determines the proxy type the extension applies to. The only supported value is `connect-proxy`.
- `ListenerType`: string | required - Specifies if the extension is applied to the `inbound` or `outbound` listener.
- `Script`: string | required - The Lua script that is configured to run by the HTTP Lua filter.

## Workflow

Expand All @@ -44,16 +42,15 @@ The following example configures the Lua Envoy extension on every service by usi
<CodeBlockConfig filename="lua-envoy-extension-proxy-defaults.hcl">

```hcl
Kind = "proxy-defaults"
Name = "global"
Protocol = "http"
Kind = "proxy-defaults"
Name = "global"
Protocol = "http"
EnvoyExtensions {
Name = "builtin/lua"
Arguments = {
ProxyType = "connect-proxy"
Listener = "inbound"
Script = <<-EOS
Listener = "inbound"
Script = <<-EOS
function envoy_on_request(request_handle)
meta = request_handle:streamInfo():dynamicMetadata()
m = meta:get("consul")
Expand Down Expand Up @@ -159,7 +156,7 @@ $ kubectl apply lua-envoy-extension-proxy-defaults.yaml

In the following example, the `service-defaults` configure the Lua Envoy extension to insert the HTTP Lua filter for service `myservice` and add the Consul service name to the`x-consul-service` header for all inbound requests. The `ListenerType` makes it so that the extension applies only on the inbound listener of the service's connect proxy.

<CodeBlockConfig filename="lua-envoy-extension.json">
<CodeBlockConfig filename="lua-envoy-extension.hcl">

```hcl
Kind = "service-defaults"
Expand All @@ -170,8 +167,8 @@ EnvoyExtensions = [
Arguments = {
ProxyType = "connect-proxy"
Listener = "inbound"
Script = <<EOF
Listener = "inbound"
Script = <<EOF
function envoy_on_request(request_handle)
local service = request_handle:streamInfo():dynamicMetadata():get("consul")["service"]
request_handle:headers():add("x-consul-service", service)
Expand All @@ -188,7 +185,7 @@ Alternatively, you can apply the same extension configuration to [`proxy-default

You can also specify multiple Lua filters through the Envoy extensions. They will not override each other.

<CodeBlockConfig filename="lua-envoy-extension.json">
<CodeBlockConfig filename="lua-envoy-extension.hcl">

```hcl
Kind = "service-defaults"
Expand All @@ -198,8 +195,8 @@ EnvoyExtensions = [
Name = "builtin/lua",
Arguments = {
ProxyType = "connect-proxy"
Listener = "inbound"
Script = <<-EOF
Listener = "inbound"
Script = <<-EOF
function envoy_on_request(request_handle)
meta = request_handle:streamInfo():dynamicMetadata()
m = meta:get("consul")
Expand All @@ -212,8 +209,8 @@ end
Name = "builtin/lua",
Arguments = {
ProxyType = "connect-proxy"
Listener = "inbound"
Script = <<-EOF
Listener = "inbound"
Script = <<-EOF
function envoy_on_request(request_handle)
meta = request_handle:streamInfo():dynamicMetadata()
m = meta:get("consul")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,30 @@ In the following service defaults configuration entry example, Consul adds a new
<CodeBlockConfig filename="property-override-extension-service-defaults.hcl">

```hcl
Kind = "service-defaults"
Name = "global"
Protocol = "http"
Kind = "service-defaults"
Name = "global"
Protocol = "http"
EnvoyExtensions = [
{
Name = "builtin/property-override"
Arguments = {
ProxyType = "connect-proxy",
ProxyType = "connect-proxy"
Patches = [
{
ResourceFilter = {
ResourceType = "cluster",
TrafficDirection = "outbound"
ResourceType = "cluster"
TrafficDirection = "outbound"
Services = [{
Name = "other-svc"
}],
Op = "add"
Path = "/upstream_connection_options/tcp_keepalive/keepalive_probes",
Value = 5,
}]
}
Op = "add"
Path = "/upstream_connection_options/tcp_keepalive/keepalive_probes"
Value = 5
}
]
}
]
}
}
]
```
</CodeBlockConfig>
Expand Down

0 comments on commit 295709f

Please sign in to comment.