<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Extensibility on Envoy Gateway</title><link>/docs/tasks/extensibility/</link><description>Recent content in Extensibility on Envoy Gateway</description><generator>Hugo</generator><language>en</language><atom:link href="/docs/tasks/extensibility/index.xml" rel="self" type="application/rss+xml"/><item><title>Build a Wasm image</title><link>/docs/tasks/extensibility/build-wasm-image/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/tasks/extensibility/build-wasm-image/</guid><description>&lt;p&gt;Envoy Gateway supports two types of Wasm extensions within the &lt;a href="../../../api/extension_types#envoyextensionpolicy"&gt;EnvoyExtensionPolicy&lt;/a&gt; API: HTTP Wasm Extensions and Image Wasm Extensions.
Packaging a Wasm extension as an OCI image is beneficial because it simplifies versioning and distribution for users.
Additionally, users can leverage existing image toolchain to build and manage Wasm images.&lt;/p&gt;
&lt;p&gt;This document describes how to build OCI images which are consumable by Envoy Gateway.&lt;/p&gt;



&lt;h2 id="wasm-image-formats"&gt;Wasm Image Formats&lt;a class="td-heading-self-link" href="#wasm-image-formats" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;There are two types of images that are supported by Envoy Gateway. One is in the Docker format, and another is the standard
OCI specification compliant format. Please note that both of them are supported by any OCI registries. You can choose
either format depending on your preference, and both types of images are consumable by Envoy Gateway &lt;a href="../../../api/extension_types#envoyextensionpolicy"&gt;EnvoyExtensionPolicy&lt;/a&gt; API.&lt;/p&gt;</description></item><item><title>Envoy Patch Policy</title><link>/docs/tasks/extensibility/envoy-patch-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/tasks/extensibility/envoy-patch-policy/</guid><description>&lt;p&gt;This task explains the usage of the &lt;a href="../../../api/extension_types#envoypatchpolicy"&gt;EnvoyPatchPolicy&lt;/a&gt; API.
&lt;strong&gt;Note:&lt;/strong&gt; This API is meant for users extremely familiar with Envoy &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/dynamic_configuration"&gt;xDS&lt;/a&gt; semantics.
Also before considering this API for production use cases, please be aware that this API
is unstable and the outcome may change across versions. Use at your own risk.&lt;/p&gt;



&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="../../../api/extension_types#envoypatchpolicy"&gt;EnvoyPatchPolicy&lt;/a&gt; API allows user to modify the output &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/dynamic_configuration"&gt;xDS&lt;/a&gt;
configuration generated by Envoy Gateway intended for EnvoyProxy,
using &lt;a href="https://datatracker.ietf.org/doc/html/rfc6902"&gt;JSON Patch&lt;/a&gt; semantics.&lt;/p&gt;</description></item><item><title>Envoy Gateway Extension Server</title><link>/docs/tasks/extensibility/extension-server/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/tasks/extensibility/extension-server/</guid><description>&lt;p&gt;This task explains how to extend Envoy Gateway using an Extension Server. Envoy Gateway
can be configured to call an external server over gRPC with the xDS configuration &lt;em&gt;before&lt;/em&gt;
it is sent to Envoy Proxy. The external server can modify the provided configuration
programmatically using any semantics supported by the &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/dynamic_configuration"&gt;xDS&lt;/a&gt; API.&lt;/p&gt;
&lt;p&gt;Using an extension server allows vendors to add xDS configuration that Envoy Gateway itself
doesn&amp;rsquo;t support with a very high level of control over the generated xDS configuration.&lt;/p&gt;</description></item><item><title>External Processing</title><link>/docs/tasks/extensibility/ext-proc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/tasks/extensibility/ext-proc/</guid><description>&lt;p&gt;This task provides instructions for configuring external processing.&lt;/p&gt;
&lt;p&gt;External processing calls an external gRPC service to process HTTP requests and responses.
The external processing service can inspect and mutate requests and responses.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="../../../api/extension_types#envoyextensionpolicy"&gt;EnvoyExtensionPolicy&lt;/a&gt; that allows the user to configure external processing.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt; and &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; resource.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>Lua Extensions</title><link>/docs/tasks/extensibility/lua/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/tasks/extensibility/lua/</guid><description>&lt;p&gt;This task provides instructions for extending Envoy Gateway with Lua extensions.&lt;/p&gt;
&lt;p&gt;Lua extensions allow you to extend the functionality of Envoy Gateway by running custom code against HTTP requests and responses,
without modifying the Envoy Gateway binary. These comparatively light-weight extensions are written in the Lua scripting language using APIs defined &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter#stream-handle-api"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Envoy Gateway allows the user to configure Lua extensions using the &lt;a href="../../../api/extension_types#envoyextensionpolicy"&gt;EnvoyExtensionPolicy&lt;/a&gt; CRD.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; resource. If linked to both, the resource linked to the route takes precedence over those linked to Gateway.&lt;/p&gt;</description></item><item><title>Wasm Extensions</title><link>/docs/tasks/extensibility/wasm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/tasks/extensibility/wasm/</guid><description>&lt;p&gt;This task provides instructions for extending Envoy Gateway with WebAssembly (Wasm) extensions.&lt;/p&gt;
&lt;p&gt;Wasm extensions allow you to extend the functionality of Envoy Gateway by running custom code against HTTP requests and responses,
without modifying the Envoy Gateway binary. These extensions can be written in any language that compiles to Wasm, such as C++, Rust, AssemblyScript, or TinyGo.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="../../../api/extension_types#envoyextensionpolicy"&gt;EnvoyExtensionPolicy&lt;/a&gt; that allows the user to configure Wasm extensions.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt; and &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; resource.&lt;/p&gt;</description></item></channel></rss>