Dagger
Search

envoy

(envoyproxy/envoy) as a service for local development and testing,
with a builder API for composing L7 (HTTP) and L4 (TCP) listeners
and their referenced clusters into a static-resources Envoy
bootstrap without writing the YAML by hand. TLS / mTLS terminates
on listeners (downstream) and authenticates clusters (upstream)
via per-listener / per-cluster *ServerSecurity / *UpstreamSecurity
profiles. Dynamic configuration (xDS) lands in a separate
follow-up.

Installation

dagger install github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453

Entrypoint

Return Type
Envoy
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
func (m *MyModule) Example() *dagger.Envoy  {
	return dag.
			Envoy()
}
@function
def example() -> dagger.Envoy:
	return (
		dag.envoy()
	)
@func()
example(): Envoy {
	return dag
		.envoy()
}

Types

Envoy 🔗

Envoy is the top-level builder type. All component factories hang off of it.

cluster() 🔗

Cluster builds a Cluster optionally configured with upstream TLS / mTLS via an UpstreamSecurity profile. clusterType defaults to “STRICT_DNS”; unknown values return a non-nil error. A nil or plaintext upstream produces the same plaintext cluster as before.

Return Type
Cluster !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
clusterTypeString !"STRICT_DNS"No description provided
upstreamUpstreamSecurity -No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, clusterType string) *dagger.EnvoyCluster  {
	return dag.
			Envoy().
			Cluster(name, clusterType)
}
@function
def example(name: str, clustertype: str) -> dagger.EnvoyCluster:
	return (
		dag.envoy()
		.cluster(name, clustertype)
	)
@func()
example(name: string, clusterType: string): EnvoyCluster {
	return dag
		.envoy()
		.cluster(name, clusterType)
}

customHttpFilter() 🔗

CustomHttpFilter builds an HTTP filter whose typed_config body is the caller-supplied YAML, spliced verbatim. yamlBody is validated via yaml.Unmarshal at construction time.

Return Type
HttpFilter !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
yamlBodyString !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 custom-http-filter --name string --yaml-body string
func (m *MyModule) Example(name string, yamlBody string) *dagger.EnvoyHttpFilter  {
	return dag.
			Envoy().
			Customhttpfilter(name, yamlBody)
}
@function
def example(name: str, yamlbody: str) -> dagger.EnvoyHttpFilter:
	return (
		dag.envoy()
		.customhttpfilter(name, yamlbody)
	)
@func()
example(name: string, yamlBody: string): EnvoyHttpFilter {
	return dag
		.envoy()
		.customHttpFilter(name, yamlBody)
}

customListener() 🔗

CustomListener builds a Listener whose body is the caller-supplied YAML, spliced verbatim under static_resources.listeners with name keyed in by the builder. The yamlBody must NOT include a top-level name: key (the builder splices that from the argument).

Return Type
Listener !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
yamlBodyString !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 custom-listener --name string --yaml-body string
func (m *MyModule) Example(name string, yamlBody string) *dagger.EnvoyListener  {
	return dag.
			Envoy().
			Customlistener(name, yamlBody)
}
@function
def example(name: str, yamlbody: str) -> dagger.EnvoyListener:
	return (
		dag.envoy()
		.customlistener(name, yamlbody)
	)
@func()
example(name: string, yamlBody: string): EnvoyListener {
	return dag
		.envoy()
		.customListener(name, yamlBody)
}

endpoint() 🔗

Endpoint builds an Endpoint, validating host (non-empty) and port (1..65535).

Return Type
Endpoint !
Arguments
NameTypeDefault ValueDescription
hostString !-No description provided
portInteger !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 endpoint --host string --port integer
func (m *MyModule) Example(host string, port int) *dagger.EnvoyEndpoint  {
	return dag.
			Envoy().
			Endpoint(host, port)
}
@function
def example(host: str, port: int) -> dagger.EnvoyEndpoint:
	return (
		dag.envoy()
		.endpoint(host, port)
	)
@func()
example(host: string, port: number): EnvoyEndpoint {
	return dag
		.envoy()
		.endpoint(host, port)
}

httpConnectionManager() 🔗

HttpConnectionManager builds an HCM bound to routeConfig.

Return Type
HttpConnectionManager !
Arguments
NameTypeDefault ValueDescription
statPrefixString !-No description provided
routeConfigRouteConfig !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(statPrefix string, routeConfig *dagger.EnvoyRouteConfig) *dagger.EnvoyHttpConnectionManager  {
	return dag.
			Envoy().
			Httpconnectionmanager(statPrefix, routeConfig)
}
@function
def example(statprefix: str, routeconfig: dagger.EnvoyRouteConfig) -> dagger.EnvoyHttpConnectionManager:
	return (
		dag.envoy()
		.httpconnectionmanager(statprefix, routeconfig)
	)
@func()
example(statPrefix: string, routeConfig: EnvoyRouteConfig): EnvoyHttpConnectionManager {
	return dag
		.envoy()
		.httpConnectionManager(statPrefix, routeConfig)
}

httpListener() 🔗

HttpListener builds an L7 listener bound at address:port whose filter chain delegates to hcm. A nil or plaintext security profile renders the existing plaintext listener; TLS / MTLS mints a per-listener server leaf certificate from the supplied CA at factory time and embeds the transport_socket block in the filter chain.

Return Type
Listener !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
addressString !"0.0.0.0"No description provided
portInteger !-No description provided
hcmHttpConnectionManager !-No description provided
securityServerSecurity -No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, address string, port int, hcm *dagger.EnvoyHttpConnectionManager) *dagger.EnvoyListener  {
	return dag.
			Envoy().
			Httplistener(name, address, port, hcm)
}
@function
def example(name: str, address: str, port: int, hcm: dagger.EnvoyHttpConnectionManager) -> dagger.EnvoyListener:
	return (
		dag.envoy()
		.httplistener(name, address, port, hcm)
	)
@func()
example(name: string, address: string, port: number, hcm: EnvoyHttpConnectionManager): EnvoyListener {
	return dag
		.envoy()
		.httpListener(name, address, port, hcm)
}

mtlsServerSecurity() 🔗

MtlsServerSecurity returns a ServerSecurity profile that terminates mTLS on the listener. caKeyStore signs the per-listener server leaf; clientTrustStore holds the CA(s) the listener will accept incoming client certs from (asymmetric trust is allowed).

Return Type
ServerSecurity !
Arguments
NameTypeDefault ValueDescription
caKeyStoreFile !-No description provided
caKeyStorePasswordSecret !-No description provided
clientTrustStoreFile !-No description provided
clientTrustStorePasswordSecret !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 mtls-server-security --ca-key-store file:path --ca-key-store-password env:MYSECRET --client-trust-store file:path --client-trust-store-password env:MYSECRET
func (m *MyModule) Example(caKeyStore *dagger.File, caKeyStorePassword *dagger.Secret, clientTrustStore *dagger.File, clientTrustStorePassword *dagger.Secret) *dagger.EnvoyServerSecurity  {
	return dag.
			Envoy().
			Mtlsserversecurity(caKeyStore, caKeyStorePassword, clientTrustStore, clientTrustStorePassword)
}
@function
def example(cakeystore: dagger.File, cakeystorepassword: dagger.Secret, clienttruststore: dagger.File, clienttruststorepassword: dagger.Secret) -> dagger.EnvoyServerSecurity:
	return (
		dag.envoy()
		.mtlsserversecurity(cakeystore, cakeystorepassword, clienttruststore, clienttruststorepassword)
	)
@func()
example(caKeyStore: File, caKeyStorePassword: Secret, clientTrustStore: File, clientTrustStorePassword: Secret): EnvoyServerSecurity {
	return dag
		.envoy()
		.mtlsServerSecurity(caKeyStore, caKeyStorePassword, clientTrustStore, clientTrustStorePassword)
}

mtlsUpstreamSecurity() 🔗

MtlsUpstreamSecurity returns an UpstreamSecurity profile that opens an mTLS connection to upstreams: the upstream’s server cert is validated against trustStore, and Envoy presents its own client leaf from keyStore.

Return Type
UpstreamSecurity !
Arguments
NameTypeDefault ValueDescription
keyStoreFile !-No description provided
keyStorePasswordSecret !-No description provided
trustStoreFile !-No description provided
trustStorePasswordSecret !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 mtls-upstream-security --key-store file:path --key-store-password env:MYSECRET --trust-store file:path --trust-store-password env:MYSECRET
func (m *MyModule) Example(keyStore *dagger.File, keyStorePassword *dagger.Secret, trustStore *dagger.File, trustStorePassword *dagger.Secret) *dagger.EnvoyUpstreamSecurity  {
	return dag.
			Envoy().
			Mtlsupstreamsecurity(keyStore, keyStorePassword, trustStore, trustStorePassword)
}
@function
def example(keystore: dagger.File, keystorepassword: dagger.Secret, truststore: dagger.File, truststorepassword: dagger.Secret) -> dagger.EnvoyUpstreamSecurity:
	return (
		dag.envoy()
		.mtlsupstreamsecurity(keystore, keystorepassword, truststore, truststorepassword)
	)
@func()
example(keyStore: File, keyStorePassword: Secret, trustStore: File, trustStorePassword: Secret): EnvoyUpstreamSecurity {
	return dag
		.envoy()
		.mtlsUpstreamSecurity(keyStore, keyStorePassword, trustStore, trustStorePassword)
}

plaintextServerSecurity() 🔗

PlaintextServerSecurity returns a ServerSecurity profile configured for unencrypted, unauthenticated traffic.

Return Type
ServerSecurity !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 plaintext-server-security
func (m *MyModule) Example() *dagger.EnvoyServerSecurity  {
	return dag.
			Envoy().
			Plaintextserversecurity()
}
@function
def example() -> dagger.EnvoyServerSecurity:
	return (
		dag.envoy()
		.plaintextserversecurity()
	)
@func()
example(): EnvoyServerSecurity {
	return dag
		.envoy()
		.plaintextServerSecurity()
}

plaintextUpstreamSecurity() 🔗

PlaintextUpstreamSecurity returns an UpstreamSecurity profile configured for unencrypted, unauthenticated cluster traffic.

Return Type
UpstreamSecurity !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 plaintext-upstream-security
func (m *MyModule) Example() *dagger.EnvoyUpstreamSecurity  {
	return dag.
			Envoy().
			Plaintextupstreamsecurity()
}
@function
def example() -> dagger.EnvoyUpstreamSecurity:
	return (
		dag.envoy()
		.plaintextupstreamsecurity()
	)
@func()
example(): EnvoyUpstreamSecurity {
	return dag
		.envoy()
		.plaintextUpstreamSecurity()
}

proxy() 🔗

Proxy returns a Proxy backed by the envoyproxy/envoy image at /envoyproxy/envoy:. configFile, when supplied, fully replaces the rendered bootstrap; clusters added via WithCluster are ignored when an override is set, and listeners added via WithListener are ignored for rendering but still drive container port exposure so callers can expose ports from an override config.

Return Type
Proxy !
Arguments
NameTypeDefault ValueDescription
registryString !"docker.io"No description provided
tagString !"v1.32.1"No description provided
adminPortInteger !9901No description provided
configFileFile -No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer
func (m *MyModule) Example(registry string, tag string, adminPort int) *dagger.EnvoyProxy  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort)
}
@function
def example(registry: str, tag: str, adminport: int) -> dagger.EnvoyProxy:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
	)
@func()
example(registry: string, tag: string, adminPort: number): EnvoyProxy {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
}

routeConfig() 🔗

RouteConfig builds an empty RouteConfig.

Return Type
RouteConfig !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 route-config --name string
func (m *MyModule) Example(name string) *dagger.EnvoyRouteConfig  {
	return dag.
			Envoy().
			Routeconfig(name)
}
@function
def example(name: str) -> dagger.EnvoyRouteConfig:
	return (
		dag.envoy()
		.routeconfig(name)
	)
@func()
example(name: string): EnvoyRouteConfig {
	return dag
		.envoy()
		.routeConfig(name)
}

routePrefix() 🔗

RoutePrefix builds a route matching paths with the given prefix and forwarding to cluster.

Return Type
Route !
Arguments
NameTypeDefault ValueDescription
prefixString !-No description provided
clusterString !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 route-prefix --prefix string --cluster string
func (m *MyModule) Example(prefix string, cluster string) *dagger.EnvoyRoute  {
	return dag.
			Envoy().
			Routeprefix(prefix, cluster)
}
@function
def example(prefix: str, cluster: str) -> dagger.EnvoyRoute:
	return (
		dag.envoy()
		.routeprefix(prefix, cluster)
	)
@func()
example(prefix: string, cluster: string): EnvoyRoute {
	return dag
		.envoy()
		.routePrefix(prefix, cluster)
}

routerHttpFilter() 🔗

RouterHttpFilter returns the terminal envoy.filters.http.router filter. Per the Envoy contract this must be the last filter in the http_filters chain; the builder does NOT enforce ordering — Envoy rejects the bootstrap at startup if violated.

Return Type
HttpFilter !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 router-http-filter
func (m *MyModule) Example() *dagger.EnvoyHttpFilter  {
	return dag.
			Envoy().
			Routerhttpfilter()
}
@function
def example() -> dagger.EnvoyHttpFilter:
	return (
		dag.envoy()
		.routerhttpfilter()
	)
@func()
example(): EnvoyHttpFilter {
	return dag
		.envoy()
		.routerHttpFilter()
}

tcpListener() 🔗

TcpListener builds an L4 listener bound at address:port whose filter chain delegates to proxy. Accepts the same *ServerSecurity union as HttpListener — TLS / mTLS terminates on the listener and the resulting transport_socket lives on the filter chain alongside the tcp_proxy filter.

Return Type
Listener !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
addressString !"0.0.0.0"No description provided
portInteger !-No description provided
proxyTcpProxy !-No description provided
securityServerSecurity -No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, address string, port int, proxy *dagger.EnvoyTcpProxy) *dagger.EnvoyListener  {
	return dag.
			Envoy().
			Tcplistener(name, address, port, proxy)
}
@function
def example(name: str, address: str, port: int, proxy: dagger.EnvoyTcpProxy) -> dagger.EnvoyListener:
	return (
		dag.envoy()
		.tcplistener(name, address, port, proxy)
	)
@func()
example(name: string, address: string, port: number, proxy: EnvoyTcpProxy): EnvoyListener {
	return dag
		.envoy()
		.tcpListener(name, address, port, proxy)
}

tcpProxy() 🔗

TcpProxy builds a TcpProxy network filter targeting cluster.

Return Type
TcpProxy !
Arguments
NameTypeDefault ValueDescription
statPrefixString !-No description provided
clusterString !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tcp-proxy --stat-prefix string --cluster string
func (m *MyModule) Example(statPrefix string, cluster string) *dagger.EnvoyTcpProxy  {
	return dag.
			Envoy().
			Tcpproxy(statPrefix, cluster)
}
@function
def example(statprefix: str, cluster: str) -> dagger.EnvoyTcpProxy:
	return (
		dag.envoy()
		.tcpproxy(statprefix, cluster)
	)
@func()
example(statPrefix: string, cluster: string): EnvoyTcpProxy {
	return dag
		.envoy()
		.tcpProxy(statPrefix, cluster)
}

tlsServerSecurity() 🔗

TlsServerSecurity returns a ServerSecurity profile that terminates TLS on the listener. caKeyStore is a PKCS#12 archive containing the CA cert + private key used to mint a per-listener leaf certificate.

Return Type
ServerSecurity !
Arguments
NameTypeDefault ValueDescription
caKeyStoreFile !-No description provided
caKeyStorePasswordSecret !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tls-server-security --ca-key-store file:path --ca-key-store-password env:MYSECRET
func (m *MyModule) Example(caKeyStore *dagger.File, caKeyStorePassword *dagger.Secret) *dagger.EnvoyServerSecurity  {
	return dag.
			Envoy().
			Tlsserversecurity(caKeyStore, caKeyStorePassword)
}
@function
def example(cakeystore: dagger.File, cakeystorepassword: dagger.Secret) -> dagger.EnvoyServerSecurity:
	return (
		dag.envoy()
		.tlsserversecurity(cakeystore, cakeystorepassword)
	)
@func()
example(caKeyStore: File, caKeyStorePassword: Secret): EnvoyServerSecurity {
	return dag
		.envoy()
		.tlsServerSecurity(caKeyStore, caKeyStorePassword)
}

tlsUpstreamSecurity() 🔗

TlsUpstreamSecurity returns an UpstreamSecurity profile that opens a TLS connection to upstreams. trustStore is a PKCS#12 archive of the CA(s) used to verify the upstream’s server cert.

Return Type
UpstreamSecurity !
Arguments
NameTypeDefault ValueDescription
trustStoreFile !-No description provided
trustStorePasswordSecret !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tls-upstream-security --trust-store file:path --trust-store-password env:MYSECRET
func (m *MyModule) Example(trustStore *dagger.File, trustStorePassword *dagger.Secret) *dagger.EnvoyUpstreamSecurity  {
	return dag.
			Envoy().
			Tlsupstreamsecurity(trustStore, trustStorePassword)
}
@function
def example(truststore: dagger.File, truststorepassword: dagger.Secret) -> dagger.EnvoyUpstreamSecurity:
	return (
		dag.envoy()
		.tlsupstreamsecurity(truststore, truststorepassword)
	)
@func()
example(trustStore: File, trustStorePassword: Secret): EnvoyUpstreamSecurity {
	return dag
		.envoy()
		.tlsUpstreamSecurity(trustStore, trustStorePassword)
}

virtualHost() 🔗

VirtualHost builds an empty VirtualHost.

Return Type
VirtualHost !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
domains[String ! ] !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 virtual-host --name string --domains string1 --domains string2
func (m *MyModule) Example(name string, domains []string) *dagger.EnvoyVirtualHost  {
	return dag.
			Envoy().
			Virtualhost(name, domains)
}
@function
def example(name: str, domains: List[str]) -> dagger.EnvoyVirtualHost:
	return (
		dag.envoy()
		.virtualhost(name, domains)
	)
@func()
example(name: string, domains: string[]): EnvoyVirtualHost {
	return dag
		.envoy()
		.virtualHost(name, domains)
}

Cluster 🔗

Cluster is a named upstream cluster of Endpoints, optionally configured with TLS / mTLS to the upstream side.

name() 🔗

Return Type
String !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, name string, clusterType string) string  {
	return dag.
			Envoy().
			Cluster(name, clusterType).
			Name(ctx)
}
@function
async def example(name: str, clustertype: str) -> str:
	return await (
		dag.envoy()
		.cluster(name, clustertype)
		.name()
	)
@func()
async example(name: string, clusterType: string): Promise<string> {
	return dag
		.envoy()
		.cluster(name, clusterType)
		.name()
}

kind() 🔗

Return Type
String !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, name string, clusterType string) string  {
	return dag.
			Envoy().
			Cluster(name, clusterType).
			Kind(ctx)
}
@function
async def example(name: str, clustertype: str) -> str:
	return await (
		dag.envoy()
		.cluster(name, clustertype)
		.kind()
	)
@func()
async example(name: string, clusterType: string): Promise<string> {
	return dag
		.envoy()
		.cluster(name, clusterType)
		.kind()
}

endpoints() 🔗

Return Type
[Endpoint ! ] !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, clusterType string) []*dagger.EnvoyEndpoint  {
	return dag.
			Envoy().
			Cluster(name, clusterType).
			Endpoints()
}
@function
def example(name: str, clustertype: str) -> List[dagger.EnvoyEndpoint]:
	return (
		dag.envoy()
		.cluster(name, clustertype)
		.endpoints()
	)
@func()
example(name: string, clusterType: string): EnvoyEndpoint[] {
	return dag
		.envoy()
		.cluster(name, clusterType)
		.endpoints()
}

withEndpoint() 🔗

WithEndpoint appends an Endpoint to the cluster and returns a new cluster value.

Return Type
Cluster !
Arguments
NameTypeDefault ValueDescription
epEndpoint !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, clusterType string, ep *dagger.EnvoyEndpoint) *dagger.EnvoyCluster  {
	return dag.
			Envoy().
			Cluster(name, clusterType).
			Withendpoint(ep)
}
@function
def example(name: str, clustertype: str, ep: dagger.EnvoyEndpoint) -> dagger.EnvoyCluster:
	return (
		dag.envoy()
		.cluster(name, clustertype)
		.withendpoint(ep)
	)
@func()
example(name: string, clusterType: string, ep: EnvoyEndpoint): EnvoyCluster {
	return dag
		.envoy()
		.cluster(name, clusterType)
		.withEndpoint(ep)
}

UpstreamSecurity 🔗

UpstreamSecurity describes how an Envoy cluster authenticates and encrypts traffic to upstream endpoints. Plaintext is the default; TLS validates the upstream’s server cert; mTLS additionally presents a client leaf to the upstream.

HttpFilter 🔗

HttpFilter is a single HTTP filter that participates in the HttpConnectionManager’s filter chain. Body is the YAML body of the filter’s typed_config map; for the terminal router filter Body is empty (the typed_config has a fixed shape and is filled in at render time).

name() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 router-http-filter \
 name
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Envoy().
			Routerhttpfilter().
			Name(ctx)
}
@function
async def example() -> str:
	return await (
		dag.envoy()
		.routerhttpfilter()
		.name()
	)
@func()
async example(): Promise<string> {
	return dag
		.envoy()
		.routerHttpFilter()
		.name()
}

body() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 router-http-filter \
 body
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Envoy().
			Routerhttpfilter().
			Body(ctx)
}
@function
async def example() -> str:
	return await (
		dag.envoy()
		.routerhttpfilter()
		.body()
	)
@func()
async example(): Promise<string> {
	return dag
		.envoy()
		.routerHttpFilter()
		.body()
}

Listener 🔗

Listener is a single Envoy listener — either typed (HttpListener/TcpListener) or opaque (CustomListener). Body is the YAML body for the listener excluding the top-level name: key, which is keyed in at render time from Name. ClusterRefs lists cluster names this listener references in its filter chain so (*Proxy).ConfigFile() can validate references against the registered cluster set; it is empty for CustomListener whose body is opaque.

name() 🔗

Return Type
String !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, name string, address string, port int, proxy *dagger.EnvoyTcpProxy) string  {
	return dag.
			Envoy().
			Tcplistener(name, address, port, proxy).
			Name(ctx)
}
@function
async def example(name: str, address: str, port: int, proxy: dagger.EnvoyTcpProxy) -> str:
	return await (
		dag.envoy()
		.tcplistener(name, address, port, proxy)
		.name()
	)
@func()
async example(name: string, address: string, port: number, proxy: EnvoyTcpProxy): Promise<string> {
	return dag
		.envoy()
		.tcpListener(name, address, port, proxy)
		.name()
}

body() 🔗

Return Type
String !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, name string, address string, port int, proxy *dagger.EnvoyTcpProxy) string  {
	return dag.
			Envoy().
			Tcplistener(name, address, port, proxy).
			Body(ctx)
}
@function
async def example(name: str, address: str, port: int, proxy: dagger.EnvoyTcpProxy) -> str:
	return await (
		dag.envoy()
		.tcplistener(name, address, port, proxy)
		.body()
	)
@func()
async example(name: string, address: string, port: number, proxy: EnvoyTcpProxy): Promise<string> {
	return dag
		.envoy()
		.tcpListener(name, address, port, proxy)
		.body()
}

clusterRefs() 🔗

Return Type
[String ! ] !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, name string, address string, port int, proxy *dagger.EnvoyTcpProxy) []string  {
	return dag.
			Envoy().
			Tcplistener(name, address, port, proxy).
			Clusterrefs(ctx)
}
@function
async def example(name: str, address: str, port: int, proxy: dagger.EnvoyTcpProxy) -> List[str]:
	return await (
		dag.envoy()
		.tcplistener(name, address, port, proxy)
		.clusterrefs()
	)
@func()
async example(name: string, address: string, port: number, proxy: EnvoyTcpProxy): Promise<string[]> {
	return dag
		.envoy()
		.tcpListener(name, address, port, proxy)
		.clusterRefs()
}

Endpoint 🔗

Endpoint is a single upstream address (host + port) that a Cluster resolves to.

host() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 endpoint --host string --port integer \
 host
func (m *MyModule) Example(ctx context.Context, host string, port int) string  {
	return dag.
			Envoy().
			Endpoint(host, port).
			Host(ctx)
}
@function
async def example(host: str, port: int) -> str:
	return await (
		dag.envoy()
		.endpoint(host, port)
		.host()
	)
@func()
async example(host: string, port: number): Promise<string> {
	return dag
		.envoy()
		.endpoint(host, port)
		.host()
}

port() 🔗

Return Type
Integer !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 endpoint --host string --port integer \
 port
func (m *MyModule) Example(ctx context.Context, host string, port int) int  {
	return dag.
			Envoy().
			Endpoint(host, port).
			Port(ctx)
}
@function
async def example(host: str, port: int) -> int:
	return await (
		dag.envoy()
		.endpoint(host, port)
		.port()
	)
@func()
async example(host: string, port: number): Promise<number> {
	return dag
		.envoy()
		.endpoint(host, port)
		.port()
}

HttpConnectionManager 🔗

HttpConnectionManager is the L7 network filter that decodes HTTP frames, applies an ordered filter chain, and dispatches to a route_config.

statPrefix() 🔗

Return Type
String !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(ctx context.Context, statPrefix string, routeConfig *dagger.EnvoyRouteConfig) string  {
	return dag.
			Envoy().
			Httpconnectionmanager(statPrefix, routeConfig).
			Statprefix(ctx)
}
@function
async def example(statprefix: str, routeconfig: dagger.EnvoyRouteConfig) -> str:
	return await (
		dag.envoy()
		.httpconnectionmanager(statprefix, routeconfig)
		.statprefix()
	)
@func()
async example(statPrefix: string, routeConfig: EnvoyRouteConfig): Promise<string> {
	return dag
		.envoy()
		.httpConnectionManager(statPrefix, routeConfig)
		.statPrefix()
}

routeConfig() 🔗

Return Type
RouteConfig !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(statPrefix string, routeConfig *dagger.EnvoyRouteConfig) *dagger.EnvoyRouteConfig  {
	return dag.
			Envoy().
			Httpconnectionmanager(statPrefix, routeConfig).
			Routeconfig()
}
@function
def example(statprefix: str, routeconfig: dagger.EnvoyRouteConfig) -> dagger.EnvoyRouteConfig:
	return (
		dag.envoy()
		.httpconnectionmanager(statprefix, routeconfig)
		.routeconfig()
	)
@func()
example(statPrefix: string, routeConfig: EnvoyRouteConfig): EnvoyRouteConfig {
	return dag
		.envoy()
		.httpConnectionManager(statPrefix, routeConfig)
		.routeConfig()
}

httpFilters() 🔗

Return Type
[HttpFilter ! ] !
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(statPrefix string, routeConfig *dagger.EnvoyRouteConfig) []*dagger.EnvoyHttpFilter  {
	return dag.
			Envoy().
			Httpconnectionmanager(statPrefix, routeConfig).
			Httpfilters()
}
@function
def example(statprefix: str, routeconfig: dagger.EnvoyRouteConfig) -> List[dagger.EnvoyHttpFilter]:
	return (
		dag.envoy()
		.httpconnectionmanager(statprefix, routeconfig)
		.httpfilters()
	)
@func()
example(statPrefix: string, routeConfig: EnvoyRouteConfig): EnvoyHttpFilter[] {
	return dag
		.envoy()
		.httpConnectionManager(statPrefix, routeConfig)
		.httpFilters()
}

withHttpFilter() 🔗

WithHttpFilter appends an HTTP filter to the HCM.

Return Type
HttpConnectionManager !
Arguments
NameTypeDefault ValueDescription
fHttpFilter !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(statPrefix string, routeConfig *dagger.EnvoyRouteConfig, f *dagger.EnvoyHttpFilter) *dagger.EnvoyHttpConnectionManager  {
	return dag.
			Envoy().
			Httpconnectionmanager(statPrefix, routeConfig).
			Withhttpfilter(f)
}
@function
def example(statprefix: str, routeconfig: dagger.EnvoyRouteConfig, f: dagger.EnvoyHttpFilter) -> dagger.EnvoyHttpConnectionManager:
	return (
		dag.envoy()
		.httpconnectionmanager(statprefix, routeconfig)
		.withhttpfilter(f)
	)
@func()
example(statPrefix: string, routeConfig: EnvoyRouteConfig, f: EnvoyHttpFilter): EnvoyHttpConnectionManager {
	return dag
		.envoy()
		.httpConnectionManager(statPrefix, routeConfig)
		.withHttpFilter(f)
}

RouteConfig 🔗

RouteConfig is a named route configuration (a set of virtual hosts).

name() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 route-config --name string \
 name
func (m *MyModule) Example(ctx context.Context, name string) string  {
	return dag.
			Envoy().
			Routeconfig(name).
			Name(ctx)
}
@function
async def example(name: str) -> str:
	return await (
		dag.envoy()
		.routeconfig(name)
		.name()
	)
@func()
async example(name: string): Promise<string> {
	return dag
		.envoy()
		.routeConfig(name)
		.name()
}

virtualHosts() 🔗

Return Type
[VirtualHost ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 route-config --name string \
 virtual-hosts
func (m *MyModule) Example(name string) []*dagger.EnvoyVirtualHost  {
	return dag.
			Envoy().
			Routeconfig(name).
			Virtualhosts()
}
@function
def example(name: str) -> List[dagger.EnvoyVirtualHost]:
	return (
		dag.envoy()
		.routeconfig(name)
		.virtualhosts()
	)
@func()
example(name: string): EnvoyVirtualHost[] {
	return dag
		.envoy()
		.routeConfig(name)
		.virtualHosts()
}

withVirtualHost() 🔗

WithVirtualHost appends a VirtualHost to the route config.

Return Type
RouteConfig !
Arguments
NameTypeDefault ValueDescription
vVirtualHost !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, v *dagger.EnvoyVirtualHost) *dagger.EnvoyRouteConfig  {
	return dag.
			Envoy().
			Routeconfig(name).
			Withvirtualhost(v)
}
@function
def example(name: str, v: dagger.EnvoyVirtualHost) -> dagger.EnvoyRouteConfig:
	return (
		dag.envoy()
		.routeconfig(name)
		.withvirtualhost(v)
	)
@func()
example(name: string, v: EnvoyVirtualHost): EnvoyRouteConfig {
	return dag
		.envoy()
		.routeConfig(name)
		.withVirtualHost(v)
}

ServerSecurity 🔗

ServerSecurity describes how an Envoy listener authenticates and encrypts traffic from downstream clients. Plaintext is the default; TLS and mTLS modes carry the PKI material needed to terminate TLS on the listener and (for mTLS) verify client certificates.

Proxy 🔗

Proxy is a running Envoy instance with a composed (or caller-supplied) static-resources bootstrap.

registry() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 registry
func (m *MyModule) Example(ctx context.Context, registry string, tag string, adminPort int) string  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Registry(ctx)
}
@function
async def example(registry: str, tag: str, adminport: int) -> str:
	return await (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.registry()
	)
@func()
async example(registry: string, tag: string, adminPort: number): Promise<string> {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.registry()
}

tag() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 tag
func (m *MyModule) Example(ctx context.Context, registry string, tag string, adminPort int) string  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Tag(ctx)
}
@function
async def example(registry: str, tag: str, adminport: int) -> str:
	return await (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.tag()
	)
@func()
async example(registry: string, tag: string, adminPort: number): Promise<string> {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.tag()
}

adminPort() 🔗

Return Type
Integer !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 admin-port
func (m *MyModule) Example(ctx context.Context, registry string, tag string, adminPort int) int  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Adminport(ctx)
}
@function
async def example(registry: str, tag: str, adminport: int) -> int:
	return await (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.adminport()
	)
@func()
async example(registry: string, tag: string, adminPort: number): Promise<number> {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.adminPort()
}

override() 🔗

Return Type
File !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 override
func (m *MyModule) Example(registry string, tag string, adminPort int) *dagger.File  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Override()
}
@function
def example(registry: str, tag: str, adminport: int) -> dagger.File:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.override()
	)
@func()
example(registry: string, tag: string, adminPort: number): File {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.override()
}

listeners() 🔗

Return Type
[Listener ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 listeners
func (m *MyModule) Example(registry string, tag string, adminPort int) []*dagger.EnvoyListener  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Listeners()
}
@function
def example(registry: str, tag: str, adminport: int) -> List[dagger.EnvoyListener]:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.listeners()
	)
@func()
example(registry: string, tag: string, adminPort: number): EnvoyListener[] {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.listeners()
}

clusters() 🔗

Return Type
[Cluster ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 clusters
func (m *MyModule) Example(registry string, tag string, adminPort int) []*dagger.EnvoyCluster  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Clusters()
}
@function
def example(registry: str, tag: str, adminport: int) -> List[dagger.EnvoyCluster]:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.clusters()
	)
@func()
example(registry: string, tag: string, adminPort: number): EnvoyCluster[] {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.clusters()
}

bindingHosts() 🔗

Return Type
[String ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 binding-hosts
func (m *MyModule) Example(ctx context.Context, registry string, tag string, adminPort int) []string  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Bindinghosts(ctx)
}
@function
async def example(registry: str, tag: str, adminport: int) -> List[str]:
	return await (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.bindinghosts()
	)
@func()
async example(registry: string, tag: string, adminPort: number): Promise<string[]> {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.bindingHosts()
}

bindingSvcs() 🔗

Return Type
[Service ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 binding-svcs
func (m *MyModule) Example(registry string, tag string, adminPort int) []*dagger.Service  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Bindingsvcs()
}
@function
def example(registry: str, tag: str, adminport: int) -> List[dagger.Service]:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.bindingsvcs()
	)
@func()
example(registry: string, tag: string, adminPort: number): Service[] {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.bindingSvcs()
}

adminEndpoint() 🔗

AdminEndpoint returns host:adminPort for the running proxy.

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 admin-endpoint
func (m *MyModule) Example(ctx context.Context, registry string, tag string, adminPort int) string  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Adminendpoint(ctx)
}
@function
async def example(registry: str, tag: str, adminport: int) -> str:
	return await (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.adminendpoint()
	)
@func()
async example(registry: string, tag: string, adminPort: number): Promise<string> {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.adminEndpoint()
}

configFile() 🔗

ConfigFile returns the file that will be mounted as Envoy’s -c argument: either the caller-supplied override or the rendered bootstrap. Returns a non-nil error if any listener references an unregistered cluster, or if two listeners share a name.

Return Type
File !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 config-file
func (m *MyModule) Example(registry string, tag string, adminPort int) *dagger.File  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Configfile()
}
@function
def example(registry: str, tag: str, adminport: int) -> dagger.File:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.configfile()
	)
@func()
example(registry: string, tag: string, adminPort: number): File {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.configFile()
}

listenerEndpoint() 🔗

ListenerEndpoint returns host:port for the named listener on the running proxy. Returns a non-nil error if no listener matches name or if the listener’s body has no recognizable socket_address.port_value.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
nameString !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 listener-endpoint --name string
func (m *MyModule) Example(ctx context.Context, registry string, tag string, adminPort int, name string) string  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Listenerendpoint(ctx, name)
}
@function
async def example(registry: str, tag: str, adminport: int, name: str) -> str:
	return await (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.listenerendpoint(name)
	)
@func()
async example(registry: string, tag: string, adminPort: number, name: string): Promise<string> {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.listenerEndpoint(name)
}

service() 🔗

Service returns the running Envoy container. Listens on AdminPort (admin) plus each registered listener’s port. When no override and no listeners/clusters are registered, launches with no -c flag so the envoy binary exits non-zero — exposed verbatim so callers can detect the misconfig via service-binding probes.

Return Type
Service !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 service
func (m *MyModule) Example(registry string, tag string, adminPort int) *dagger.Service  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Service()
}
@function
def example(registry: str, tag: str, adminport: int) -> dagger.Service:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.service()
	)
@func()
example(registry: string, tag: string, adminPort: number): Service {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.service()
}

withCluster() 🔗

WithCluster appends a cluster to the proxy.

Return Type
Proxy !
Arguments
NameTypeDefault ValueDescription
cCluster !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(registry string, tag string, adminPort int, c *dagger.EnvoyCluster) *dagger.EnvoyProxy  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Withcluster(c)
}
@function
def example(registry: str, tag: str, adminport: int, c: dagger.EnvoyCluster) -> dagger.EnvoyProxy:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.withcluster(c)
	)
@func()
example(registry: string, tag: string, adminPort: number, c: EnvoyCluster): EnvoyProxy {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.withCluster(c)
}

withConfigFile() 🔗

WithConfigFile fully replaces the rendered bootstrap.

Return Type
Proxy !
Arguments
NameTypeDefault ValueDescription
fFile !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 with-config-file --f file:path
func (m *MyModule) Example(registry string, tag string, adminPort int, f *dagger.File) *dagger.EnvoyProxy  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Withconfigfile(f)
}
@function
def example(registry: str, tag: str, adminport: int, f: dagger.File) -> dagger.EnvoyProxy:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.withconfigfile(f)
	)
@func()
example(registry: string, tag: string, adminPort: number, f: File): EnvoyProxy {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.withConfigFile(f)
}

withListener() 🔗

WithListener appends a listener to the proxy.

Return Type
Proxy !
Arguments
NameTypeDefault ValueDescription
lListener !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(registry string, tag string, adminPort int, l *dagger.EnvoyListener) *dagger.EnvoyProxy  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Withlistener(l)
}
@function
def example(registry: str, tag: str, adminport: int, l: dagger.EnvoyListener) -> dagger.EnvoyProxy:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.withlistener(l)
	)
@func()
example(registry: string, tag: string, adminPort: number, l: EnvoyListener): EnvoyProxy {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.withListener(l)
}

withServiceBinding() 🔗

WithServiceBinding binds an upstream service into Envoy’s network so cluster endpoints can reach it by hostname.

Return Type
Proxy !
Arguments
NameTypeDefault ValueDescription
hostString !-No description provided
svcService !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 proxy --registry string --tag string --admin-port integer \
 with-service-binding --host string --svc PROTOCOL://HOST:PORT
func (m *MyModule) Example(registry string, tag string, adminPort int, host string, svc *dagger.Service) *dagger.EnvoyProxy  {
	return dag.
			Envoy().
			Proxy(registry, tag, adminPort).
			Withservicebinding(host, svc)
}
@function
def example(registry: str, tag: str, adminport: int, host: str, svc: dagger.Service) -> dagger.EnvoyProxy:
	return (
		dag.envoy()
		.proxy(registry, tag, adminport)
		.withservicebinding(host, svc)
	)
@func()
example(registry: string, tag: string, adminPort: number, host: string, svc: Service): EnvoyProxy {
	return dag
		.envoy()
		.proxy(registry, tag, adminPort)
		.withServiceBinding(host, svc)
}

Route 🔗

Route is a single HTTP route (prefix match → cluster).

prefix() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 route-prefix --prefix string --cluster string \
 prefix
func (m *MyModule) Example(ctx context.Context, prefix string, cluster string) string  {
	return dag.
			Envoy().
			Routeprefix(prefix, cluster).
			Prefix(ctx)
}
@function
async def example(prefix: str, cluster: str) -> str:
	return await (
		dag.envoy()
		.routeprefix(prefix, cluster)
		.prefix()
	)
@func()
async example(prefix: string, cluster: string): Promise<string> {
	return dag
		.envoy()
		.routePrefix(prefix, cluster)
		.prefix()
}

cluster() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 route-prefix --prefix string --cluster string \
 cluster
func (m *MyModule) Example(ctx context.Context, prefix string, cluster string) string  {
	return dag.
			Envoy().
			Routeprefix(prefix, cluster).
			Cluster(ctx)
}
@function
async def example(prefix: str, cluster: str) -> str:
	return await (
		dag.envoy()
		.routeprefix(prefix, cluster)
		.cluster()
	)
@func()
async example(prefix: string, cluster: string): Promise<string> {
	return dag
		.envoy()
		.routePrefix(prefix, cluster)
		.cluster()
}

TcpProxy 🔗

TcpProxy is the network-level filter that forwards bytes from a TcpListener to a single cluster.

statPrefix() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tcp-proxy --stat-prefix string --cluster string \
 stat-prefix
func (m *MyModule) Example(ctx context.Context, statPrefix string, cluster string) string  {
	return dag.
			Envoy().
			Tcpproxy(statPrefix, cluster).
			Statprefix(ctx)
}
@function
async def example(statprefix: str, cluster: str) -> str:
	return await (
		dag.envoy()
		.tcpproxy(statprefix, cluster)
		.statprefix()
	)
@func()
async example(statPrefix: string, cluster: string): Promise<string> {
	return dag
		.envoy()
		.tcpProxy(statPrefix, cluster)
		.statPrefix()
}

cluster() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tcp-proxy --stat-prefix string --cluster string \
 cluster
func (m *MyModule) Example(ctx context.Context, statPrefix string, cluster string) string  {
	return dag.
			Envoy().
			Tcpproxy(statPrefix, cluster).
			Cluster(ctx)
}
@function
async def example(statprefix: str, cluster: str) -> str:
	return await (
		dag.envoy()
		.tcpproxy(statprefix, cluster)
		.cluster()
	)
@func()
async example(statPrefix: string, cluster: string): Promise<string> {
	return dag
		.envoy()
		.tcpProxy(statPrefix, cluster)
		.cluster()
}

VirtualHost 🔗

VirtualHost is a named virtual host with a domain list and an ordered set of routes.

name() 🔗

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 virtual-host --name string --domains string1 --domains string2 \
 name
func (m *MyModule) Example(ctx context.Context, name string, domains []string) string  {
	return dag.
			Envoy().
			Virtualhost(name, domains).
			Name(ctx)
}
@function
async def example(name: str, domains: List[str]) -> str:
	return await (
		dag.envoy()
		.virtualhost(name, domains)
		.name()
	)
@func()
async example(name: string, domains: string[]): Promise<string> {
	return dag
		.envoy()
		.virtualHost(name, domains)
		.name()
}

domains() 🔗

Return Type
[String ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 virtual-host --name string --domains string1 --domains string2 \
 domains
func (m *MyModule) Example(ctx context.Context, name string, domains []string) []string  {
	return dag.
			Envoy().
			Virtualhost(name, domains).
			Domains(ctx)
}
@function
async def example(name: str, domains: List[str]) -> List[str]:
	return await (
		dag.envoy()
		.virtualhost(name, domains)
		.domains()
	)
@func()
async example(name: string, domains: string[]): Promise<string[]> {
	return dag
		.envoy()
		.virtualHost(name, domains)
		.domains()
}

routes() 🔗

Return Type
[Route ! ] !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 virtual-host --name string --domains string1 --domains string2 \
 routes
func (m *MyModule) Example(name string, domains []string) []*dagger.EnvoyRoute  {
	return dag.
			Envoy().
			Virtualhost(name, domains).
			Routes()
}
@function
def example(name: str, domains: List[str]) -> List[dagger.EnvoyRoute]:
	return (
		dag.envoy()
		.virtualhost(name, domains)
		.routes()
	)
@func()
example(name: string, domains: string[]): EnvoyRoute[] {
	return dag
		.envoy()
		.virtualHost(name, domains)
		.routes()
}

withRoute() 🔗

WithRoute appends a route to the virtual host.

Return Type
VirtualHost !
Arguments
NameTypeDefault ValueDescription
routeRoute !-No description provided
Example
echo 'Custom types are not supported in shell examples'
func (m *MyModule) Example(name string, domains []string, route *dagger.EnvoyRoute) *dagger.EnvoyVirtualHost  {
	return dag.
			Envoy().
			Virtualhost(name, domains).
			Withroute(route)
}
@function
def example(name: str, domains: List[str], route: dagger.EnvoyRoute) -> dagger.EnvoyVirtualHost:
	return (
		dag.envoy()
		.virtualhost(name, domains)
		.withroute(route)
	)
@func()
example(name: string, domains: string[], route: EnvoyRoute): EnvoyVirtualHost {
	return dag
		.envoy()
		.virtualHost(name, domains)
		.withRoute(route)
}