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@a17bf411228ae3d544c7c18bcf08dd04c295d453Entrypoint
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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| clusterType | String ! | "STRICT_DNS" | No description provided |
| upstream | UpstreamSecurity | - | 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| yamlBody | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
custom-http-filter --name string --yaml-body stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| yamlBody | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
custom-listener --name string --yaml-body stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| host | String ! | - | No description provided |
| port | Integer ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
endpoint --host string --port integerfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| statPrefix | String ! | - | No description provided |
| routeConfig | RouteConfig ! | - | 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| address | String ! | "0.0.0.0" | No description provided |
| port | Integer ! | - | No description provided |
| hcm | HttpConnectionManager ! | - | No description provided |
| security | ServerSecurity | - | 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| caKeyStore | File ! | - | No description provided |
| caKeyStorePassword | Secret ! | - | No description provided |
| clientTrustStore | File ! | - | No description provided |
| clientTrustStorePassword | Secret ! | - | 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:MYSECRETfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| keyStore | File ! | - | No description provided |
| keyStorePassword | Secret ! | - | No description provided |
| trustStore | File ! | - | No description provided |
| trustStorePassword | Secret ! | - | 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:MYSECRETfunc (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-securityfunc (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-securityfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| registry | String ! | "docker.io" | No description provided |
| tag | String ! | "v1.32.1" | No description provided |
| adminPort | Integer ! | 9901 | No description provided |
| configFile | File | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
proxy --registry string --tag string --admin-port integerfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
route-config --name stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| prefix | String ! | - | No description provided |
| cluster | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
route-prefix --prefix string --cluster stringfunc (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-filterfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| address | String ! | "0.0.0.0" | No description provided |
| port | Integer ! | - | No description provided |
| proxy | TcpProxy ! | - | No description provided |
| security | ServerSecurity | - | 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| statPrefix | String ! | - | No description provided |
| cluster | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
tcp-proxy --stat-prefix string --cluster stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| caKeyStore | File ! | - | No description provided |
| caKeyStorePassword | Secret ! | - | 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:MYSECRETfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| trustStore | File ! | - | No description provided |
| trustStorePassword | Secret ! | - | 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:MYSECRETfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | 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 string2func (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| ep | Endpoint ! | - | 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 \
namefunc (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 \
bodyfunc (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 \
hostfunc (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 \
portfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| f | HttpFilter ! | - | 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 \
namefunc (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-hostsfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| v | VirtualHost ! | - | 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 \
registryfunc (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 \
tagfunc (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-portfunc (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 \
overridefunc (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 \
listenersfunc (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 \
clustersfunc (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-hostsfunc (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-svcsfunc (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-endpointfunc (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-filefunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | 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 stringfunc (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 \
servicefunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| c | Cluster ! | - | 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| f | File ! | - | 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:pathfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| l | Listener ! | - | 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| host | String ! | - | No description provided |
| svc | Service ! | - | 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:PORTfunc (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 \
prefixfunc (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 \
clusterfunc (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-prefixfunc (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 \
clusterfunc (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 \
namefunc (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 \
domainsfunc (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 \
routesfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| route | Route ! | - | 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)
}