UuidRequestIdConfig Builder
matiasrege opened this issue · comments
We need to be able to set the configuration pack_trace_reason
of UuidRequestIdConfig and we didn't find the specific builder.
we try to do this:
HttpConnectionManager.Builder builder = HttpConnectionManager.newBuilder();
builder.setRequestIdExtension(RequestIDExtension.newBuilder()
.setTypedConfig(Any.pack(TypedStruct.newBuilder()
.setTypeUrl("type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig")
.setValue(Struct.newBuilder()
.putFields("pack_trace_reason", Value.newBuilder()
.setBoolValue(false)
.build())
.build())
.build())));
but this create this configuration in envoy:
"request_id_extension": {
"typed_config": {
"@type": "type.googleapis.com/udpa.type.v1.TypedStruct",
"type_url": "type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig",
"value": {
"pack_trace_reason": false
}
}
}
With this error:
Didn't find a registered implementation for type: 'udpa.type.v1.TypedStruct'
Sorry for the very basic question, but what would be the correct way to configure UuidRequestIdConfig without having a builder?
Try this:
builder.setRequestIdExtension(RequestIDExtension.newBuilder()
.setTypedConfig(Any.newBuilder()
.setTypeUrl("type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig")
.setValue(Struct.newBuilder()
.putFields("pack_trace_reason", Value.newBuilder()
.setBoolValue(false)
.build())
.build()
.toByteString())
.build()));
This is sort of a hack, I think the real issue is that our Protos our outdated.
I'm working on making the process of protobuf update automatic. I'll have a PR ready probably later today so we're done with those type of issues once and for all 😊