envoyproxy / java-control-plane

Java implementation of an Envoy gRPC control plane

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UuidRequestIdConfig Builder

matiasrege opened this issue · comments

commented

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 😊

commented

Thanks @slonka!, I builder the jar with #184 and I already have the builder.

We will wait for the new version ;).