Add TraceContextOption enum to ZipkinTracingProvider (#3566)

* Add TraceContextOption enum to ZipkinTracingProvider

Add support for configuring trace context propagation format in Zipkin
tracing provider. This enables users to choose between B3-only headers
(default) or dual B3/W3C header support for better interoperability
with W3C trace context systems.

Changes:
- Add TraceContextOption enum with USE_B3 and USE_B3_WITH_W3C_PROPAGATION values
- Add trace_context_option field to ZipkinTracingProvider message
- Maintain backward compatibility with USE_B3 as default

* Add TraceContextOption enum to ZipkinTracingProvider
Add support for configuring trace context propagation format in Zipkin
tracing provider. This enables users to choose between B3-only headers
(default) or dual B3/W3C header support for better interoperability
with W3C trace context systems.

Changes:
- Add TraceContextOption enum with USE_B3 and USE_B3_WITH_W3C_PROPAGATION values
- Add trace_context_option field to ZipkinTracingProvider message
- Maintain backward compatibility with USE_B3 as default

* Add support for configuring trace context propagation format in Zipkin
tracing provider. This enables users to choose between B3-only headers
(default) or dual B3/W3C header support for better interoperability
with W3C trace context systems.

Changes:
- Add TraceContextOption enum with USE_B3 and USE_B3_WITH_W3C_PROPAGATION values
- Add trace_context_option field to ZipkinTracingProvider message
- Maintain backward compatibility with USE_B3 as default
This commit is contained in:
Prashanth Josyula 2025-09-19 04:09:28 -07:00 committed by GitHub
parent 59f420b4bf
commit 32bc595e98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 299 additions and 155 deletions

View File

@ -456,6 +456,58 @@ func (MeshConfig_ServiceScopeConfigs_Scope) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 4, 0}
}
// Available trace context options for handling different trace header formats.
type MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption int32
const (
// Use B3 headers only (default behavior).
MeshConfig_ExtensionProvider_ZipkinTracingProvider_USE_B3 MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption = 0
// Enable B3 and W3C dual header support:
// - For downstream: Extract from B3 headers first, fallback to W3C traceparent if B3 is unavailable.
// - For upstream: Inject both B3 and W3C traceparent headers.
// When this option is NOT set, only B3 headers are used for both extraction and injection.
MeshConfig_ExtensionProvider_ZipkinTracingProvider_USE_B3_WITH_W3C_PROPAGATION MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption = 1
)
// Enum value maps for MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption.
var (
MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption_name = map[int32]string{
0: "USE_B3",
1: "USE_B3_WITH_W3C_PROPAGATION",
}
MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption_value = map[string]int32{
"USE_B3": 0,
"USE_B3_WITH_W3C_PROPAGATION": 1,
}
)
func (x MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption) Enum() *MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption {
p := new(MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption)
*p = x
return p
}
func (x MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[8].Descriptor()
}
func (MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[8]
}
func (x MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption.Descriptor instead.
func (MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 6, 3, 0}
}
// TraceContext selects the context propagation headers used for
// distributed tracing.
type MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext int32
@ -510,11 +562,11 @@ func (x MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext
}
func (MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[8].Descriptor()
return file_mesh_v1alpha1_config_proto_enumTypes[9].Descriptor()
}
func (MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[8]
return &file_mesh_v1alpha1_config_proto_enumTypes[9]
}
func (x MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Number() protoreflect.EnumNumber {
@ -575,11 +627,11 @@ func (x MeshConfig_ProxyPathNormalization_NormalizationType) String() string {
}
func (MeshConfig_ProxyPathNormalization_NormalizationType) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[9].Descriptor()
return file_mesh_v1alpha1_config_proto_enumTypes[10].Descriptor()
}
func (MeshConfig_ProxyPathNormalization_NormalizationType) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[9]
return &file_mesh_v1alpha1_config_proto_enumTypes[10]
}
func (x MeshConfig_ProxyPathNormalization_NormalizationType) Number() protoreflect.EnumNumber {
@ -628,11 +680,11 @@ func (x MeshConfig_TLSConfig_TLSProtocol) String() string {
}
func (MeshConfig_TLSConfig_TLSProtocol) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[10].Descriptor()
return file_mesh_v1alpha1_config_proto_enumTypes[11].Descriptor()
}
func (MeshConfig_TLSConfig_TLSProtocol) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[10]
return &file_mesh_v1alpha1_config_proto_enumTypes[11]
}
func (x MeshConfig_TLSConfig_TLSProtocol) Number() protoreflect.EnumNumber {
@ -3097,9 +3149,13 @@ type MeshConfig_ExtensionProvider_ZipkinTracingProvider struct {
Enable_64BitTraceId bool `protobuf:"varint,4,opt,name=enable_64bit_trace_id,json=enable64bitTraceId,proto3" json:"enable_64bit_trace_id,omitempty"`
// Optional. Specifies the endpoint of Zipkin API.
// The default value is "/api/v2/spans".
Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`
// Optional. Determines which trace context format to use for trace header extraction and propagation.
// This controls both downstream request header extraction and upstream request header injection.
// The default value is USE_B3 to maintain backward compatibility.
TraceContextOption MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption `protobuf:"varint,6,opt,name=trace_context_option,json=traceContextOption,proto3,enum=istio.mesh.v1alpha1.MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption" json:"trace_context_option,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) Reset() {
@ -3167,6 +3223,13 @@ func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetPath() string {
return ""
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetTraceContextOption() MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption {
if x != nil {
return x.TraceContextOption
}
return MeshConfig_ExtensionProvider_ZipkinTracingProvider_USE_B3
}
// Defines configuration for a Lightstep tracer.
// Note: Lightstep has moved to OpenTelemetry-based integrations. Istio 1.15+
// will generate OpenTelemetry-compatible configuration when using this option.
@ -5050,7 +5113,7 @@ var File_mesh_v1alpha1_config_proto protoreflect.FileDescriptor
const file_mesh_v1alpha1_config_proto_rawDesc = "" +
"\n" +
"\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\x1a)networking/v1alpha3/virtual_service.proto\"\xa5m\n" +
"\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\x1a)networking/v1alpha3/virtual_service.proto\"\xf7n\n" +
"\n" +
"MeshConfig\x12*\n" +
"\x11proxy_listen_port\x18\x04 \x01(\x05R\x0fproxyListenPort\x129\n" +
@ -5133,7 +5196,7 @@ const file_mesh_v1alpha1_config_proto_rawDesc = "" +
"\ftls_settings\x18\x02 \x01(\v2,.istio.networking.v1alpha3.ClientTLSSettingsR\vtlsSettings\x12B\n" +
"\x0frequest_timeout\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x0erequestTimeout\x12\x1f\n" +
"\vistiod_side\x18\x04 \x01(\bR\n" +
"istiodSide\x1a\xf0>\n" +
"istiodSide\x1a\xc2@\n" +
"\x11ExtensionProvider\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x8b\x01\n" +
"\x14envoy_ext_authz_http\x18\x02 \x01(\v2X.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProviderH\x00R\x11envoyExtAuthzHttp\x12\x8b\x01\n" +
@ -5189,13 +5252,18 @@ const file_mesh_v1alpha1_config_proto_rawDesc = "" +
"\tfail_open\x18\x03 \x01(\bR\bfailOpen\x12*\n" +
"\x11clear_route_cache\x18\a \x01(\bR\x0fclearRouteCache\x12&\n" +
"\x0fstatus_on_error\x18\x04 \x01(\tR\rstatusOnError\x12\x99\x01\n" +
"\x1dinclude_request_body_in_check\x18\x06 \x01(\v2W.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBodyR\x19includeRequestBodyInCheck\x1a\xb2\x01\n" +
"\x1dinclude_request_body_in_check\x18\x06 \x01(\v2W.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBodyR\x19includeRequestBodyInCheck\x1a\x84\x03\n" +
"\x15ZipkinTracingProvider\x12\x18\n" +
"\aservice\x18\x01 \x01(\tR\aservice\x12\x12\n" +
"\x04port\x18\x02 \x01(\rR\x04port\x12$\n" +
"\x0emax_tag_length\x18\x03 \x01(\rR\fmaxTagLength\x121\n" +
"\x15enable_64bit_trace_id\x18\x04 \x01(\bR\x12enable64bitTraceId\x12\x12\n" +
"\x04path\x18\x05 \x01(\tR\x04path\x1a\x91\x01\n" +
"\x04path\x18\x05 \x01(\tR\x04path\x12\x8c\x01\n" +
"\x14trace_context_option\x18\x06 \x01(\x0e2Z.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.TraceContextOptionR\x12traceContextOption\"A\n" +
"\x12TraceContextOption\x12\n" +
"\n" +
"\x06USE_B3\x10\x00\x12\x1f\n" +
"\x1bUSE_B3_WITH_W3C_PROPAGATION\x10\x01\x1a\x91\x01\n" +
"\x18LightstepTracingProvider\x12\x18\n" +
"\aservice\x18\x01 \x01(\tR\aservice\x12\x12\n" +
"\x04port\x18\x02 \x01(\rR\x04port\x12!\n" +
@ -5381,7 +5449,7 @@ func file_mesh_v1alpha1_config_proto_rawDescGZIP() []byte {
return file_mesh_v1alpha1_config_proto_rawDescData
}
var file_mesh_v1alpha1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 11)
var file_mesh_v1alpha1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
var file_mesh_v1alpha1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 46)
var file_mesh_v1alpha1_config_proto_goTypes = []any{
(Resource)(0), // 0: istio.mesh.v1alpha1.Resource
@ -5392,154 +5460,156 @@ var file_mesh_v1alpha1_config_proto_goTypes = []any{
(MeshConfig_OutboundTrafficPolicy_Mode)(0), // 5: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode
(MeshConfig_InboundTrafficPolicy_Mode)(0), // 6: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy.Mode
(MeshConfig_ServiceScopeConfigs_Scope)(0), // 7: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.Scope
(MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext)(0), // 8: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext
(MeshConfig_ProxyPathNormalization_NormalizationType)(0), // 9: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.NormalizationType
(MeshConfig_TLSConfig_TLSProtocol)(0), // 10: istio.mesh.v1alpha1.MeshConfig.TLSConfig.TLSProtocol
(*MeshConfig)(nil), // 11: istio.mesh.v1alpha1.MeshConfig
(*LabelSelector)(nil), // 12: istio.mesh.v1alpha1.LabelSelector
(*LabelSelectorRequirement)(nil), // 13: istio.mesh.v1alpha1.LabelSelectorRequirement
(*ConfigSource)(nil), // 14: istio.mesh.v1alpha1.ConfigSource
(*Certificate)(nil), // 15: istio.mesh.v1alpha1.Certificate
(*MeshConfig_OutboundTrafficPolicy)(nil), // 16: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy
(*MeshConfig_InboundTrafficPolicy)(nil), // 17: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy
(*MeshConfig_CertificateData)(nil), // 18: istio.mesh.v1alpha1.MeshConfig.CertificateData
(*MeshConfig_ServiceSettings)(nil), // 19: istio.mesh.v1alpha1.MeshConfig.ServiceSettings
(*MeshConfig_ServiceScopeConfigs)(nil), // 20: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs
(*MeshConfig_CA)(nil), // 21: istio.mesh.v1alpha1.MeshConfig.CA
(*MeshConfig_ExtensionProvider)(nil), // 22: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider
(*MeshConfig_DefaultProviders)(nil), // 23: istio.mesh.v1alpha1.MeshConfig.DefaultProviders
(*MeshConfig_ProxyPathNormalization)(nil), // 24: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization
(*MeshConfig_TLSConfig)(nil), // 25: istio.mesh.v1alpha1.MeshConfig.TLSConfig
(*MeshConfig_ServiceSettings_Settings)(nil), // 26: istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody)(nil), // 27: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider)(nil), // 28: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider)(nil), // 29: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider
(*MeshConfig_ExtensionProvider_ZipkinTracingProvider)(nil), // 30: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider
(*MeshConfig_ExtensionProvider_LightstepTracingProvider)(nil), // 31: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider
(*MeshConfig_ExtensionProvider_DatadogTracingProvider)(nil), // 32: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider
(*MeshConfig_ExtensionProvider_SkyWalkingTracingProvider)(nil), // 33: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SkyWalkingTracingProvider
(*MeshConfig_ExtensionProvider_StackdriverProvider)(nil), // 34: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider
(*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider)(nil), // 35: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider
(*MeshConfig_ExtensionProvider_PrometheusMetricsProvider)(nil), // 36: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.PrometheusMetricsProvider
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider)(nil), // 37: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider
(*MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider)(nil), // 38: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider
(*MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider)(nil), // 39: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider
(*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider)(nil), // 40: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider)(nil), // 41: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider
(*MeshConfig_ExtensionProvider_SDSProvider)(nil), // 42: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SDSProvider
(*MeshConfig_ExtensionProvider_HttpService)(nil), // 43: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
(*MeshConfig_ExtensionProvider_HttpHeader)(nil), // 44: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
(*MeshConfig_ExtensionProvider_ResourceDetectors)(nil), // 45: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors
(*MeshConfig_ExtensionProvider_GrpcService)(nil), // 46: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService
nil, // 47: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.IncludeAdditionalHeadersInCheckEntry
(*MeshConfig_ExtensionProvider_StackdriverProvider_Logging)(nil), // 48: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging
nil, // 49: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.LabelsEntry
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat)(nil), // 50: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat
(*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat)(nil), // 51: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler)(nil), // 52: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi)(nil), // 53: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi
(*MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector)(nil), // 54: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector
(*MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector)(nil), // 55: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector
nil, // 56: istio.mesh.v1alpha1.LabelSelector.MatchLabelsEntry
(*duration.Duration)(nil), // 57: google.protobuf.Duration
(*v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 58: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
(*ProxyConfig)(nil), // 59: istio.mesh.v1alpha1.ProxyConfig
(*wrappers.BoolValue)(nil), // 60: google.protobuf.BoolValue
(*v1alpha3.LocalityLoadBalancerSetting)(nil), // 61: istio.networking.v1alpha3.LocalityLoadBalancerSetting
(*v1alpha3.HTTPRetry)(nil), // 62: istio.networking.v1alpha3.HTTPRetry
(*v1alpha3.ClientTLSSettings)(nil), // 63: istio.networking.v1alpha3.ClientTLSSettings
(*wrappers.Int64Value)(nil), // 64: google.protobuf.Int64Value
(*_struct.Struct)(nil), // 65: google.protobuf.Struct
(MeshConfig_ExtensionProvider_ZipkinTracingProvider_TraceContextOption)(0), // 8: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.TraceContextOption
(MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext)(0), // 9: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext
(MeshConfig_ProxyPathNormalization_NormalizationType)(0), // 10: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.NormalizationType
(MeshConfig_TLSConfig_TLSProtocol)(0), // 11: istio.mesh.v1alpha1.MeshConfig.TLSConfig.TLSProtocol
(*MeshConfig)(nil), // 12: istio.mesh.v1alpha1.MeshConfig
(*LabelSelector)(nil), // 13: istio.mesh.v1alpha1.LabelSelector
(*LabelSelectorRequirement)(nil), // 14: istio.mesh.v1alpha1.LabelSelectorRequirement
(*ConfigSource)(nil), // 15: istio.mesh.v1alpha1.ConfigSource
(*Certificate)(nil), // 16: istio.mesh.v1alpha1.Certificate
(*MeshConfig_OutboundTrafficPolicy)(nil), // 17: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy
(*MeshConfig_InboundTrafficPolicy)(nil), // 18: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy
(*MeshConfig_CertificateData)(nil), // 19: istio.mesh.v1alpha1.MeshConfig.CertificateData
(*MeshConfig_ServiceSettings)(nil), // 20: istio.mesh.v1alpha1.MeshConfig.ServiceSettings
(*MeshConfig_ServiceScopeConfigs)(nil), // 21: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs
(*MeshConfig_CA)(nil), // 22: istio.mesh.v1alpha1.MeshConfig.CA
(*MeshConfig_ExtensionProvider)(nil), // 23: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider
(*MeshConfig_DefaultProviders)(nil), // 24: istio.mesh.v1alpha1.MeshConfig.DefaultProviders
(*MeshConfig_ProxyPathNormalization)(nil), // 25: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization
(*MeshConfig_TLSConfig)(nil), // 26: istio.mesh.v1alpha1.MeshConfig.TLSConfig
(*MeshConfig_ServiceSettings_Settings)(nil), // 27: istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody)(nil), // 28: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider)(nil), // 29: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider)(nil), // 30: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider
(*MeshConfig_ExtensionProvider_ZipkinTracingProvider)(nil), // 31: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider
(*MeshConfig_ExtensionProvider_LightstepTracingProvider)(nil), // 32: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider
(*MeshConfig_ExtensionProvider_DatadogTracingProvider)(nil), // 33: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider
(*MeshConfig_ExtensionProvider_SkyWalkingTracingProvider)(nil), // 34: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SkyWalkingTracingProvider
(*MeshConfig_ExtensionProvider_StackdriverProvider)(nil), // 35: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider
(*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider)(nil), // 36: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider
(*MeshConfig_ExtensionProvider_PrometheusMetricsProvider)(nil), // 37: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.PrometheusMetricsProvider
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider)(nil), // 38: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider
(*MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider)(nil), // 39: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider
(*MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider)(nil), // 40: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider
(*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider)(nil), // 41: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider)(nil), // 42: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider
(*MeshConfig_ExtensionProvider_SDSProvider)(nil), // 43: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SDSProvider
(*MeshConfig_ExtensionProvider_HttpService)(nil), // 44: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
(*MeshConfig_ExtensionProvider_HttpHeader)(nil), // 45: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
(*MeshConfig_ExtensionProvider_ResourceDetectors)(nil), // 46: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors
(*MeshConfig_ExtensionProvider_GrpcService)(nil), // 47: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService
nil, // 48: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.IncludeAdditionalHeadersInCheckEntry
(*MeshConfig_ExtensionProvider_StackdriverProvider_Logging)(nil), // 49: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging
nil, // 50: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.LabelsEntry
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat)(nil), // 51: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat
(*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat)(nil), // 52: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler)(nil), // 53: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi)(nil), // 54: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi
(*MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector)(nil), // 55: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector
(*MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector)(nil), // 56: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector
nil, // 57: istio.mesh.v1alpha1.LabelSelector.MatchLabelsEntry
(*duration.Duration)(nil), // 58: google.protobuf.Duration
(*v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 59: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
(*ProxyConfig)(nil), // 60: istio.mesh.v1alpha1.ProxyConfig
(*wrappers.BoolValue)(nil), // 61: google.protobuf.BoolValue
(*v1alpha3.LocalityLoadBalancerSetting)(nil), // 62: istio.networking.v1alpha3.LocalityLoadBalancerSetting
(*v1alpha3.HTTPRetry)(nil), // 63: istio.networking.v1alpha3.HTTPRetry
(*v1alpha3.ClientTLSSettings)(nil), // 64: istio.networking.v1alpha3.ClientTLSSettings
(*wrappers.Int64Value)(nil), // 65: google.protobuf.Int64Value
(*_struct.Struct)(nil), // 66: google.protobuf.Struct
}
var file_mesh_v1alpha1_config_proto_depIdxs = []int32{
57, // 0: istio.mesh.v1alpha1.MeshConfig.connect_timeout:type_name -> google.protobuf.Duration
57, // 1: istio.mesh.v1alpha1.MeshConfig.protocol_detection_timeout:type_name -> google.protobuf.Duration
58, // 2: istio.mesh.v1alpha1.MeshConfig.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
58, // 0: istio.mesh.v1alpha1.MeshConfig.connect_timeout:type_name -> google.protobuf.Duration
58, // 1: istio.mesh.v1alpha1.MeshConfig.protocol_detection_timeout:type_name -> google.protobuf.Duration
59, // 2: istio.mesh.v1alpha1.MeshConfig.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
1, // 3: istio.mesh.v1alpha1.MeshConfig.ingress_controller_mode:type_name -> istio.mesh.v1alpha1.MeshConfig.IngressControllerMode
3, // 4: istio.mesh.v1alpha1.MeshConfig.access_log_encoding:type_name -> istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding
59, // 5: istio.mesh.v1alpha1.MeshConfig.default_config:type_name -> istio.mesh.v1alpha1.ProxyConfig
16, // 6: istio.mesh.v1alpha1.MeshConfig.outbound_traffic_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy
17, // 7: istio.mesh.v1alpha1.MeshConfig.inbound_traffic_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy
14, // 8: istio.mesh.v1alpha1.MeshConfig.config_sources:type_name -> istio.mesh.v1alpha1.ConfigSource
60, // 9: istio.mesh.v1alpha1.MeshConfig.enable_auto_mtls:type_name -> google.protobuf.BoolValue
18, // 10: istio.mesh.v1alpha1.MeshConfig.ca_certificates:type_name -> istio.mesh.v1alpha1.MeshConfig.CertificateData
61, // 11: istio.mesh.v1alpha1.MeshConfig.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting
57, // 12: istio.mesh.v1alpha1.MeshConfig.dns_refresh_rate:type_name -> google.protobuf.Duration
60, // 5: istio.mesh.v1alpha1.MeshConfig.default_config:type_name -> istio.mesh.v1alpha1.ProxyConfig
17, // 6: istio.mesh.v1alpha1.MeshConfig.outbound_traffic_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy
18, // 7: istio.mesh.v1alpha1.MeshConfig.inbound_traffic_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy
15, // 8: istio.mesh.v1alpha1.MeshConfig.config_sources:type_name -> istio.mesh.v1alpha1.ConfigSource
61, // 9: istio.mesh.v1alpha1.MeshConfig.enable_auto_mtls:type_name -> google.protobuf.BoolValue
19, // 10: istio.mesh.v1alpha1.MeshConfig.ca_certificates:type_name -> istio.mesh.v1alpha1.MeshConfig.CertificateData
62, // 11: istio.mesh.v1alpha1.MeshConfig.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting
58, // 12: istio.mesh.v1alpha1.MeshConfig.dns_refresh_rate:type_name -> google.protobuf.Duration
4, // 13: istio.mesh.v1alpha1.MeshConfig.h2_upgrade_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicy
15, // 14: istio.mesh.v1alpha1.MeshConfig.certificates:type_name -> istio.mesh.v1alpha1.Certificate
19, // 15: istio.mesh.v1alpha1.MeshConfig.service_settings:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceSettings
20, // 16: istio.mesh.v1alpha1.MeshConfig.service_scope_configs:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs
60, // 17: istio.mesh.v1alpha1.MeshConfig.enable_prometheus_merge:type_name -> google.protobuf.BoolValue
60, // 18: istio.mesh.v1alpha1.MeshConfig.verify_certificate_at_client:type_name -> google.protobuf.BoolValue
21, // 19: istio.mesh.v1alpha1.MeshConfig.ca:type_name -> istio.mesh.v1alpha1.MeshConfig.CA
22, // 20: istio.mesh.v1alpha1.MeshConfig.extension_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider
23, // 21: istio.mesh.v1alpha1.MeshConfig.default_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.DefaultProviders
12, // 22: istio.mesh.v1alpha1.MeshConfig.discovery_selectors:type_name -> istio.mesh.v1alpha1.LabelSelector
24, // 23: istio.mesh.v1alpha1.MeshConfig.path_normalization:type_name -> istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization
62, // 24: istio.mesh.v1alpha1.MeshConfig.default_http_retry_policy:type_name -> istio.networking.v1alpha3.HTTPRetry
25, // 25: istio.mesh.v1alpha1.MeshConfig.mesh_mTLS:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig
25, // 26: istio.mesh.v1alpha1.MeshConfig.tls_defaults:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig
56, // 27: istio.mesh.v1alpha1.LabelSelector.matchLabels:type_name -> istio.mesh.v1alpha1.LabelSelector.MatchLabelsEntry
13, // 28: istio.mesh.v1alpha1.LabelSelector.matchExpressions:type_name -> istio.mesh.v1alpha1.LabelSelectorRequirement
63, // 29: istio.mesh.v1alpha1.ConfigSource.tls_settings:type_name -> istio.networking.v1alpha3.ClientTLSSettings
16, // 14: istio.mesh.v1alpha1.MeshConfig.certificates:type_name -> istio.mesh.v1alpha1.Certificate
20, // 15: istio.mesh.v1alpha1.MeshConfig.service_settings:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceSettings
21, // 16: istio.mesh.v1alpha1.MeshConfig.service_scope_configs:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs
61, // 17: istio.mesh.v1alpha1.MeshConfig.enable_prometheus_merge:type_name -> google.protobuf.BoolValue
61, // 18: istio.mesh.v1alpha1.MeshConfig.verify_certificate_at_client:type_name -> google.protobuf.BoolValue
22, // 19: istio.mesh.v1alpha1.MeshConfig.ca:type_name -> istio.mesh.v1alpha1.MeshConfig.CA
23, // 20: istio.mesh.v1alpha1.MeshConfig.extension_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider
24, // 21: istio.mesh.v1alpha1.MeshConfig.default_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.DefaultProviders
13, // 22: istio.mesh.v1alpha1.MeshConfig.discovery_selectors:type_name -> istio.mesh.v1alpha1.LabelSelector
25, // 23: istio.mesh.v1alpha1.MeshConfig.path_normalization:type_name -> istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization
63, // 24: istio.mesh.v1alpha1.MeshConfig.default_http_retry_policy:type_name -> istio.networking.v1alpha3.HTTPRetry
26, // 25: istio.mesh.v1alpha1.MeshConfig.mesh_mTLS:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig
26, // 26: istio.mesh.v1alpha1.MeshConfig.tls_defaults:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig
57, // 27: istio.mesh.v1alpha1.LabelSelector.matchLabels:type_name -> istio.mesh.v1alpha1.LabelSelector.MatchLabelsEntry
14, // 28: istio.mesh.v1alpha1.LabelSelector.matchExpressions:type_name -> istio.mesh.v1alpha1.LabelSelectorRequirement
64, // 29: istio.mesh.v1alpha1.ConfigSource.tls_settings:type_name -> istio.networking.v1alpha3.ClientTLSSettings
0, // 30: istio.mesh.v1alpha1.ConfigSource.subscribed_resources:type_name -> istio.mesh.v1alpha1.Resource
5, // 31: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.mode:type_name -> istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode
6, // 32: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy.mode:type_name -> istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy.Mode
26, // 33: istio.mesh.v1alpha1.MeshConfig.ServiceSettings.settings:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings
12, // 34: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.namespace_selector:type_name -> istio.mesh.v1alpha1.LabelSelector
12, // 35: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.services_selector:type_name -> istio.mesh.v1alpha1.LabelSelector
27, // 33: istio.mesh.v1alpha1.MeshConfig.ServiceSettings.settings:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings
13, // 34: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.namespace_selector:type_name -> istio.mesh.v1alpha1.LabelSelector
13, // 35: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.services_selector:type_name -> istio.mesh.v1alpha1.LabelSelector
7, // 36: istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.scope:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceScopeConfigs.Scope
63, // 37: istio.mesh.v1alpha1.MeshConfig.CA.tls_settings:type_name -> istio.networking.v1alpha3.ClientTLSSettings
57, // 38: istio.mesh.v1alpha1.MeshConfig.CA.request_timeout:type_name -> google.protobuf.Duration
28, // 39: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_ext_authz_http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider
29, // 40: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_ext_authz_grpc:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider
30, // 41: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.zipkin:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider
31, // 42: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.lightstep:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider
32, // 43: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.datadog:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider
34, // 44: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.stackdriver:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider
35, // 45: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opencensus:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider
33, // 46: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.skywalking:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SkyWalkingTracingProvider
41, // 47: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opentelemetry:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider
36, // 48: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.prometheus:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.PrometheusMetricsProvider
37, // 49: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_file_access_log:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider
38, // 50: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_http_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider
39, // 51: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_tcp_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider
40, // 52: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_otel_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider
42, // 53: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.sds:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SDSProvider
9, // 54: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.normalization:type_name -> istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.NormalizationType
10, // 55: istio.mesh.v1alpha1.MeshConfig.TLSConfig.min_protocol_version:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig.TLSProtocol
57, // 56: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.timeout:type_name -> google.protobuf.Duration
47, // 57: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.include_additional_headers_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.IncludeAdditionalHeadersInCheckEntry
27, // 58: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.include_request_body_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
57, // 59: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider.timeout:type_name -> google.protobuf.Duration
27, // 60: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider.include_request_body_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
64, // 61: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_attributes:type_name -> google.protobuf.Int64Value
64, // 62: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_annotations:type_name -> google.protobuf.Int64Value
64, // 63: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_message_events:type_name -> google.protobuf.Int64Value
48, // 64: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.logging:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging
8, // 65: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.context:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext
50, // 66: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.log_format:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat
51, // 67: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.log_format:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat
43, // 68: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
46, // 69: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.grpc:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService
45, // 70: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.resource_detectors:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors
52, // 71: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.dynatrace_sampler:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler
57, // 72: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService.timeout:type_name -> google.protobuf.Duration
44, // 73: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService.headers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
54, // 74: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.environment:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector
55, // 75: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.dynatrace:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector
57, // 76: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService.timeout:type_name -> google.protobuf.Duration
44, // 77: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService.initial_metadata:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
49, // 78: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.labels:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.LabelsEntry
65, // 79: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat.labels:type_name -> google.protobuf.Struct
65, // 80: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat.labels:type_name -> google.protobuf.Struct
53, // 81: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.http_service:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi
43, // 82: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi.http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
83, // [83:83] is the sub-list for method output_type
83, // [83:83] is the sub-list for method input_type
83, // [83:83] is the sub-list for extension type_name
83, // [83:83] is the sub-list for extension extendee
0, // [0:83] is the sub-list for field type_name
64, // 37: istio.mesh.v1alpha1.MeshConfig.CA.tls_settings:type_name -> istio.networking.v1alpha3.ClientTLSSettings
58, // 38: istio.mesh.v1alpha1.MeshConfig.CA.request_timeout:type_name -> google.protobuf.Duration
29, // 39: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_ext_authz_http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider
30, // 40: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_ext_authz_grpc:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider
31, // 41: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.zipkin:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider
32, // 42: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.lightstep:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider
33, // 43: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.datadog:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider
35, // 44: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.stackdriver:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider
36, // 45: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opencensus:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider
34, // 46: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.skywalking:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SkyWalkingTracingProvider
42, // 47: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opentelemetry:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider
37, // 48: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.prometheus:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.PrometheusMetricsProvider
38, // 49: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_file_access_log:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider
39, // 50: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_http_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider
40, // 51: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_tcp_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider
41, // 52: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_otel_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider
43, // 53: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.sds:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SDSProvider
10, // 54: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.normalization:type_name -> istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.NormalizationType
11, // 55: istio.mesh.v1alpha1.MeshConfig.TLSConfig.min_protocol_version:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig.TLSProtocol
58, // 56: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.timeout:type_name -> google.protobuf.Duration
48, // 57: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.include_additional_headers_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.IncludeAdditionalHeadersInCheckEntry
28, // 58: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.include_request_body_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
58, // 59: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider.timeout:type_name -> google.protobuf.Duration
28, // 60: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider.include_request_body_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
8, // 61: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.trace_context_option:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.TraceContextOption
65, // 62: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_attributes:type_name -> google.protobuf.Int64Value
65, // 63: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_annotations:type_name -> google.protobuf.Int64Value
65, // 64: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_message_events:type_name -> google.protobuf.Int64Value
49, // 65: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.logging:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging
9, // 66: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.context:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext
51, // 67: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.log_format:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat
52, // 68: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.log_format:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat
44, // 69: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
47, // 70: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.grpc:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService
46, // 71: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.resource_detectors:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors
53, // 72: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.dynatrace_sampler:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler
58, // 73: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService.timeout:type_name -> google.protobuf.Duration
45, // 74: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService.headers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
55, // 75: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.environment:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector
56, // 76: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.dynatrace:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector
58, // 77: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService.timeout:type_name -> google.protobuf.Duration
45, // 78: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService.initial_metadata:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
50, // 79: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.labels:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.LabelsEntry
66, // 80: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat.labels:type_name -> google.protobuf.Struct
66, // 81: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat.labels:type_name -> google.protobuf.Struct
54, // 82: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.http_service:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi
44, // 83: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi.http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
84, // [84:84] is the sub-list for method output_type
84, // [84:84] is the sub-list for method input_type
84, // [84:84] is the sub-list for extension type_name
84, // [84:84] is the sub-list for extension extendee
0, // [0:84] is the sub-list for field type_name
}
func init() { file_mesh_v1alpha1_config_proto_init() }
@ -5585,7 +5655,7 @@ func file_mesh_v1alpha1_config_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_mesh_v1alpha1_config_proto_rawDesc), len(file_mesh_v1alpha1_config_proto_rawDesc)),
NumEnums: 11,
NumEnums: 12,
NumMessages: 46,
NumExtensions: 0,
NumServices: 0,

View File

@ -783,6 +783,17 @@ message MeshConfig {
// Defines configuration for a Zipkin tracer.
message ZipkinTracingProvider {
// Available trace context options for handling different trace header formats.
enum TraceContextOption {
// Use B3 headers only (default behavior).
USE_B3 = 0;
// Enable B3 and W3C dual header support:
// - For downstream: Extract from B3 headers first, fallback to W3C traceparent if B3 is unavailable.
// - For upstream: Inject both B3 and W3C traceparent headers.
// When this option is NOT set, only B3 headers are used for both extraction and injection.
USE_B3_WITH_W3C_PROPAGATION = 1;
}
// REQUIRED. Specifies the service that the Zipkin API.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
@ -805,6 +816,11 @@ message MeshConfig {
// Optional. Specifies the endpoint of Zipkin API.
// The default value is "/api/v2/spans".
string path = 5;
// Optional. Determines which trace context format to use for trace header extraction and propagation.
// This controls both downstream request header extraction and upstream request header injection.
// The default value is USE_B3 to maintain backward compatibility.
TraceContextOption trace_context_option = 6;
}
// Defines configuration for a Lightstep tracer.

View File

@ -5,7 +5,7 @@ location: https://istio.io/docs/reference/config/istio.mesh.v1alpha1.html
layout: protoc-gen-docs
generator: protoc-gen-docs
weight: 20
number_of_entries: 83
number_of_entries: 84
---
<p>Configuration affecting the service mesh as a whole.</p>
@ -1435,6 +1435,51 @@ If true, will result in a 64 bit trace id being used.</p>
<p>Specifies the endpoint of Zipkin API.
The default value is &ldquo;/api/v2/spans&rdquo;.</p>
</td>
</tr>
<tr id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-trace_context_option">
<td><div class="field"><div class="name"><code><a href="#MeshConfig-ExtensionProvider-ZipkinTracingProvider-trace_context_option">traceContextOption</a></code></div>
<div class="type"><a href="#MeshConfig-ExtensionProvider-ZipkinTracingProvider-TraceContextOption">TraceContextOption</a></div>
</div></td>
<td>
<p>Determines which trace context format to use for trace header extraction and propagation.
This controls both downstream request header extraction and upstream request header injection.
The default value is USE_B3 to maintain backward compatibility.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h5 id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-TraceContextOption">TraceContextOption</h5>
<section>
<p>Available trace context options for handling different trace header formats.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-TraceContextOption-USE_B3">
<td><code><a href="#MeshConfig-ExtensionProvider-ZipkinTracingProvider-TraceContextOption-USE_B3">USE_B3</a></code></td>
<td>
<p>Use B3 headers only (default behavior).</p>
</td>
</tr>
<tr id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-TraceContextOption-USE_B3_WITH_W3C_PROPAGATION">
<td><code><a href="#MeshConfig-ExtensionProvider-ZipkinTracingProvider-TraceContextOption-USE_B3_WITH_W3C_PROPAGATION">USE_B3_WITH_W3C_PROPAGATION</a></code></td>
<td>
<p>Enable B3 and W3C dual header support:</p>
<ul>
<li>For downstream: Extract from B3 headers first, fallback to W3C traceparent if B3 is unavailable.</li>
<li>For upstream: Inject both B3 and W3C traceparent headers.
When this option is NOT set, only B3 headers are used for both extraction and injection.</li>
</ul>
</td>
</tr>
</tbody>

View File

@ -0,0 +1,13 @@
apiVersion: release-notes/v2
kind: feature
area: telemetry
issue: []
releaseNotes:
- |
**Added** `trace_context_option` field to `ZipkinTracingProvider` in MeshConfig to support configuring trace context propagation format. Users can now choose between B3-only headers (default) or dual B3/W3C header support for better interoperability with W3C trace context systems.
docs:
- https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/trace/v3/zipkin.proto#enum-config-trace-v3-zipkinconfig-tracecontextoption
- https://www.w3.org/TR/trace-context/