-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
Implement the InternalUpstreamTransport functionality including metadata passthrough as specified in the Envoy internal upstream transport configuration.
Background
For complete waypoint proxy support, we need to implement metadata passthrough from downstream connections to internal upstream connections. This enables features like original destination preservation and custom metadata flow.
Configuration Structure to Support
transport_socket:
name: "internal_upstream"
typed_config:
"@type": "type.googleapis.com/envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport"
passthrough_metadata:
- kind:
host: {}
name: "envoy.filters.listener.original_dst"
- kind:
cluster: {}
name: "custom.metadata.key"
transport_socket:
name: "raw_buffer"Core Functionality Needed
async fn apply_internal_upstream_transport(
connection: &mut InternalConnection,
transport: &InternalUpstreamTransport,
downstream_metadata: &DownstreamConnectionMetadata,
) -> Result<()> {
for metadata_source in &transport.passthrough_metadata {
let value = extract_metadata(downstream_metadata, metadata_source)?;
connection.set_metadata(&metadata_source.name, value);
}
// Handle nested transport socket...
}Dependencies
- Blocked by: Cluster Internal Connection Support #107
Metadata
Metadata
Assignees
Labels
No labels