Dagger
Search

tests

checks for the envoy daggerverse module.

Installation

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

Entrypoint

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

Types

Tests 🔗

admin() 🔗

Admin runs the boot-and-probe tests — Envoy comes up, we hit the admin endpoint or assert misconfigurations fail at boot, no upstream traffic.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
parallelInteger !0No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 admin --envoy-tag string --parallel integer
func (m *MyModule) Example(ctx context.Context, envoyTag string, parallel int)   {
	return dag.
			Tests().
			Admin(ctx, envoyTag, parallel)
}
@function
async def example(envoytag: str, parallel: int) -> None:
	return await (
		dag.tests()
		.admin(envoytag, parallel)
	)
@func()
async example(envoyTag: string, parallel: number): Promise<void> {
	return dag
		.tests()
		.admin(envoyTag, parallel)
}

adminEndpointServesReady() 🔗

AdminEndpointServesReady asserts the admin /ready endpoint returns HTTP 200 from a fresh probe container service-bound to a proxy whose minimal valid config is one HTTP listener wired to one cluster.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 admin-endpoint-serves-ready --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			Adminendpointservesready(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.adminendpointservesready(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.adminEndpointServesReady(envoyTag)
}

all() 🔗

All runs every envoy test as a convenience for local dagger call all invocations. CI does NOT call All: each of the three sub-aggregators below (Validation, Admin, RoundTrips) carries its own `directive, so GH Actions schedules each onto its own runner in parallel — running All on top would double-bill the same work.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
parallelInteger !0No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 all --envoy-tag string --parallel integer
func (m *MyModule) Example(ctx context.Context, envoyTag string, parallel int)   {
	return dag.
			Tests().
			All(ctx, envoyTag, parallel)
}
@function
async def example(envoytag: str, parallel: int) -> None:
	return await (
		dag.tests()
		.all(envoytag, parallel)
	)
@func()
async example(envoyTag: string, parallel: number): Promise<void> {
	return dag
		.tests()
		.all(envoyTag, parallel)
}

configFileOverridesRendered() 🔗

ConfigFileOverridesRendered asserts that WithConfigFile fully replaces the rendered bootstrap; listeners and clusters added via WithListener/WithCluster are ignored when an override is set.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 config-file-overrides-rendered
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Configfileoverridesrendered(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.configfileoverridesrendered()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.configFileOverridesRendered()
}

customHttpFilterBodyIsSpliced() 🔗

CustomHttpFilterBodyIsSpliced asserts that a CustomHttpFilter’s caller-supplied YAML body lands as the filter’s typed_config in the rendered HCM http_filters chain.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 custom-http-filter-body-is-spliced
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Customhttpfilterbodyisspliced(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.customhttpfilterbodyisspliced()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.customHttpFilterBodyIsSpliced()
}

customListenerBodyIsSpliced() 🔗

CustomListenerBodyIsSpliced asserts that a CustomListener’s caller-supplied YAML body round-trips verbatim under static_resources.listeners with the builder-supplied name keyed in.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 custom-listener-body-is-spliced
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Customlistenerbodyisspliced(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.customlistenerbodyisspliced()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.customListenerBodyIsSpliced()
}

defaultClusterTypeIsStrictDns() 🔗

DefaultClusterTypeIsStrictDns asserts a cluster built with default clusterType renders as type: STRICT_DNS in the rendered bootstrap YAML.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 default-cluster-type-is-strict-dns
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Defaultclustertypeisstrictdns(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.defaultclustertypeisstrictdns()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.defaultClusterTypeIsStrictDns()
}

l4TcpRoundTrip() 🔗

L4TcpRoundTrip stands up an alpine nc echo upstream behind an Envoy TcpListener and asserts that bytes sent through Envoy come back on the same TCP connection.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 l-4-tcp-round-trip --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			L4tcproundtrip(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.l4tcproundtrip(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.l4TcpRoundTrip(envoyTag)
}

l4TcpTlsRoundTrip() 🔗

L4TcpTlsRoundTrip stands up an nc echo upstream behind an Envoy TLS-terminated TcpListener and asserts an openssl s_client probe can complete a TLS round-trip with marker bytes echoed back.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 l-4-tcp-tls-round-trip --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			L4tcptlsroundtrip(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.l4tcptlsroundtrip(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.l4TcpTlsRoundTrip(envoyTag)
}

l7HttpRoundTrip() 🔗

L7HttpRoundTrip stands up an HTTP upstream behind an Envoy HttpListener and asserts a request through Envoy returns a fresh random marker served by the upstream.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 l-7-http-round-trip --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			L7httproundtrip(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.l7httproundtrip(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.l7HttpRoundTrip(envoyTag)
}

l7HttpsMtlsAcceptsAuthorizedClient() 🔗

L7HttpsMtlsAcceptsAuthorizedClient asserts that an mTLS-terminated listener accepts curl clients that present a leaf signed by the configured clientTrustStore CA.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 l-7-https-mtls-accepts-authorized-client --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			L7httpsmtlsacceptsauthorizedclient(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.l7httpsmtlsacceptsauthorizedclient(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.l7HttpsMtlsAcceptsAuthorizedClient(envoyTag)
}

l7HttpsMtlsRejectsAnonymousClient() 🔗

L7HttpsMtlsRejectsAnonymousClient asserts that an mTLS-terminated HttpListener refuses clients that don’t present a cert signed by the configured clientTrustStore CA — curl exits non-zero.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 l-7-https-mtls-rejects-anonymous-client --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			L7httpsmtlsrejectsanonymousclient(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.l7httpsmtlsrejectsanonymousclient(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.l7HttpsMtlsRejectsAnonymousClient(envoyTag)
}

l7HttpsRoundTrip() 🔗

L7HttpsRoundTrip stands up a plaintext HTTP upstream behind an Envoy TLS-terminated HttpListener and asserts a client trusting the CA can complete an HTTPS round-trip.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 l-7-https-round-trip --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			L7httpsroundtrip(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.l7httpsroundtrip(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.l7HttpsRoundTrip(envoyTag)
}

mtlsServerSecurityRequiresClientCert() 🔗

MtlsServerSecurityRequiresClientCert asserts that mTLS adds require_client_certificate + a validation_context.trusted_ca pointing at the listener’s trust PEM mount path.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 mtls-server-security-requires-client-cert
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mtlsserversecurityrequiresclientcert(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mtlsserversecurityrequiresclientcert()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mtlsServerSecurityRequiresClientCert()
}

mtlsUpstreamSecurityIncludesClientLeaf() 🔗

MtlsUpstreamSecurityIncludesClientLeaf asserts that mTLS upstream renders both validation_context AND tls_certificates referencing the cluster keystore PKCS#12 path + env-var password.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 mtls-upstream-security-includes-client-leaf
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Mtlsupstreamsecurityincludesclientleaf(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.mtlsupstreamsecurityincludesclientleaf()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.mtlsUpstreamSecurityIncludesClientLeaf()
}

plaintextServerSecurityRendersNoTransportSocket() 🔗

PlaintextServerSecurityRendersNoTransportSocket asserts that a listener built with PlaintextServerSecurity is byte-identical to one built with nil security (no transport_socket in either).

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 plaintext-server-security-renders-no-transport-socket
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Plaintextserversecurityrendersnotransportsocket(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.plaintextserversecurityrendersnotransportsocket()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.plaintextServerSecurityRendersNoTransportSocket()
}

plaintextUpstreamSecurityRendersNoTransportSocket() 🔗

PlaintextUpstreamSecurityRendersNoTransportSocket asserts that PlaintextUpstreamSecurity renders the same cluster as nil upstream.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 plaintext-upstream-security-renders-no-transport-socket
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Plaintextupstreamsecurityrendersnotransportsocket(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.plaintextupstreamsecurityrendersnotransportsocket()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.plaintextUpstreamSecurityRendersNoTransportSocket()
}

rejectsDuplicateListenerName() 🔗

RejectsDuplicateListenerName asserts that wiring two listeners sharing the same name into a Proxy causes ConfigFile() to return a non-nil error.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 rejects-duplicate-listener-name
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Rejectsduplicatelistenername(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.rejectsduplicatelistenername()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.rejectsDuplicateListenerName()
}

rejectsInvalidComponentName() 🔗

RejectsInvalidComponentName asserts that the typed component factories reject names that don’t match [A-Za-z0-9_-]+ with a non-nil error. AC calls out Envoy.Cluster and Envoy.VirtualHost explicitly; RoutePrefix’s cluster arg shares the same validator.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 rejects-invalid-component-name
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Rejectsinvalidcomponentname(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.rejectsinvalidcomponentname()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.rejectsInvalidComponentName()
}

rejectsUnknownClusterReference() 🔗

RejectsUnknownClusterReference asserts a listener whose filter chain references a cluster not registered via WithCluster causes ConfigFile() to return a non-nil error.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 rejects-unknown-cluster-reference
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Rejectsunknownclusterreference(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.rejectsunknownclusterreference()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.rejectsUnknownClusterReference()
}

rejectsUnknownClusterType() 🔗

RejectsUnknownClusterType asserts Envoy.Cluster rejects clusterType values outside {STATIC, STRICT_DNS, LOGICAL_DNS} with a non-nil error.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 rejects-unknown-cluster-type
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Rejectsunknownclustertype(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.rejectsunknownclustertype()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.rejectsUnknownClusterType()
}

roundTrips() 🔗

RoundTrips runs every L7/L4 + TLS/mTLS round-trip — each spins an Envoy proxy plus an upstream service plus a curl client. The heaviest of the three groups.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
parallelInteger !0No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 round-trips --envoy-tag string --parallel integer
func (m *MyModule) Example(ctx context.Context, envoyTag string, parallel int)   {
	return dag.
			Tests().
			Roundtrips(ctx, envoyTag, parallel)
}
@function
async def example(envoytag: str, parallel: int) -> None:
	return await (
		dag.tests()
		.roundtrips(envoytag, parallel)
	)
@func()
async example(envoyTag: string, parallel: number): Promise<void> {
	return dag
		.tests()
		.roundTrips(envoyTag, parallel)
}

serviceWithoutConfigFails() 🔗

ServiceWithoutConfigFails asserts that Service() on a Proxy with no listeners, clusters, or override produces a container whose admin port never opens (the envoy binary refuses to start without -c).

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 service-without-config-fails --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			Servicewithoutconfigfails(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.servicewithoutconfigfails(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.serviceWithoutConfigFails(envoyTag)
}

tlsServerSecurityRendersDownstreamTlsContext() 🔗

TlsServerSecurityRendersDownstreamTlsContext asserts that an HttpListener built with TlsServerSecurity renders a downstream TLS transport_socket on its filter chain referencing the listener’s PKCS#12 mount path and a password env var, with no require_client_certificate.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tls-server-security-renders-downstream-tls-context
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Tlsserversecurityrendersdownstreamtlscontext(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.tlsserversecurityrendersdownstreamtlscontext()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.tlsServerSecurityRendersDownstreamTlsContext()
}

tlsUpstreamSecurityRendersUpstreamTlsContext() 🔗

TlsUpstreamSecurityRendersUpstreamTlsContext asserts that a Cluster built with TlsUpstreamSecurity renders an UpstreamTlsContext transport_socket on the cluster with a validation_context pointing at the upstream trust PEM path.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tls-upstream-security-renders-upstream-tls-context
func (m *MyModule) Example(ctx context.Context)   {
	return dag.
			Tests().
			Tlsupstreamsecurityrendersupstreamtlscontext(ctx)
}
@function
async def example() -> None:
	return await (
		dag.tests()
		.tlsupstreamsecurityrendersupstreamtlscontext()
	)
@func()
async example(): Promise<void> {
	return dag
		.tests()
		.tlsUpstreamSecurityRendersUpstreamTlsContext()
}

upstreamMtlsRoundTrip() 🔗

UpstreamMtlsRoundTrip asserts Envoy presents a client leaf to a mTLS upstream that verifies it against its own clientTrust CA.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 upstream-mtls-round-trip --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			Upstreammtlsroundtrip(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.upstreammtlsroundtrip(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.upstreamMtlsRoundTrip(envoyTag)
}

upstreamTlsRoundTrip() 🔗

UpstreamTlsRoundTrip stands up a python HTTPS upstream and asserts Envoy connects to it over TLS when the cluster’s UpstreamSecurity truststore matches the upstream’s server cert CA.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
envoyTagString !"v1.32.1"No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 upstream-tls-round-trip --envoy-tag string
func (m *MyModule) Example(ctx context.Context, envoyTag string)   {
	return dag.
			Tests().
			Upstreamtlsroundtrip(ctx, envoyTag)
}
@function
async def example(envoytag: str) -> None:
	return await (
		dag.tests()
		.upstreamtlsroundtrip(envoytag)
	)
@func()
async example(envoyTag: string): Promise<void> {
	return dag
		.tests()
		.upstreamTlsRoundTrip(envoyTag)
}

validation() 🔗

Validation runs the pure-render and config-validation tests — no Envoy service is booted, just the proxy config-rendering paths and the security renderers. The fastest of the three groups.

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
parallelInteger !0No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/envoy/tests@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 validation --parallel integer
func (m *MyModule) Example(ctx context.Context, parallel int)   {
	return dag.
			Tests().
			Validation(ctx, parallel)
}
@function
async def example(parallel: int) -> None:
	return await (
		dag.tests()
		.validation(parallel)
	)
@func()
async example(parallel: number): Promise<void> {
	return dag
		.tests()
		.validation(parallel)
}