From 68cba41b5aba328b5e560e067e2f2e1fec2e02e1 Mon Sep 17 00:00:00 2001 From: Douglas Reid Date: Thu, 25 Mar 2021 21:01:24 -0700 Subject: [PATCH] Add initial Telemetry API with Tracing support for sampling and custom tags (#1740) * Add initial Telemetry API definition * fix names and comments * Rename TracingConfig to Tracing * Remove TelemetryProviders and consolidate to just Tracing providers * add new extension providers to oneof * Remove providers from telemetry API * Add release note * Address comments * Add back providers, remove match, simplify Trace API * Collapse TracingRule into Tracing and remove deprecations in ProxyConfig * Move from address to service + port in providers * Remove exclude_mesh_tags * Revert to boolean control of span reporting * Cleanup documentation * Replace subdomain with telemetry type --- gen.sh | 3 +- kubernetes/customresourcedefinitions.gen.yaml | 143 + mesh/v1alpha1/config.pb.go | 2684 ++++++++++++++++- mesh/v1alpha1/config.proto | 151 +- mesh/v1alpha1/istio.mesh.v1alpha1.gen.json | 248 +- mesh/v1alpha1/istio.mesh.v1alpha1.pb.html | 427 ++- python/istio_api/mesh/v1alpha1/config_pb2.py | 513 +++- .../telemetry/v1alpha1/telemetry_pb2.py | 430 +++ ...xperimental-telemetry-api-for-tracing.yaml | 13 + telemetry/v1alpha1/telemetry.pb.go | 2247 ++++++++++++++ telemetry/v1alpha1/telemetry.pb.html | 398 +++ telemetry/v1alpha1/telemetry.proto | 225 ++ telemetry/v1alpha1/telemetry_deepcopy.gen.go | 163 + telemetry/v1alpha1/telemetry_json.gen.go | 100 + 14 files changed, 7535 insertions(+), 210 deletions(-) create mode 100644 python/istio_api/telemetry/v1alpha1/telemetry_pb2.py create mode 100644 releasenotes/notes/add-experimental-telemetry-api-for-tracing.yaml create mode 100644 telemetry/v1alpha1/telemetry.pb.go create mode 100644 telemetry/v1alpha1/telemetry.pb.html create mode 100644 telemetry/v1alpha1/telemetry.proto create mode 100644 telemetry/v1alpha1/telemetry_deepcopy.gen.go create mode 100644 telemetry/v1alpha1/telemetry_json.gen.go diff --git a/gen.sh b/gen.sh index c5a65426..10f5251c 100755 --- a/gen.sh +++ b/gen.sh @@ -23,7 +23,8 @@ buf generate \ --path type \ --path analysis \ --path authentication \ - --path meta + --path meta \ + --path telemetry # These folders do not have the full plugins used, as they are not full CRDs. # We pass them a custom configuration to exclude the non-required files diff --git a/kubernetes/customresourcedefinitions.gen.yaml b/kubernetes/customresourcedefinitions.gen.yaml index 1c69397a..3a74d59d 100644 --- a/kubernetes/customresourcedefinitions.gen.yaml +++ b/kubernetes/customresourcedefinitions.gen.yaml @@ -5828,3 +5828,146 @@ spec: status: {} --- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + labels: + app: istio-pilot + chart: istio + heritage: Tiller + istio: telemetry + release: istio + name: telemetries.telemetry.istio.io +spec: + group: telemetry.istio.io + names: + categories: + - istio-io + - telemetry-istio-io + kind: Telemetry + listKind: TelemetryList + plural: telemetries + shortNames: + - telemetry + singular: telemetry + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: 'CreationTimestamp is a timestamp representing the server time + when this object was created. It is not guaranteed to be set in happens-before + order across separate operations. Clients may not set this value. It is represented + in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for + lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + spec: + description: Telemetry defines how the telemetry is generated for workloads + within a mesh. + properties: + selector: + description: Optional. + properties: + matchLabels: + additionalProperties: + format: string + type: string + type: object + type: object + tracing: + description: Optional. + items: + properties: + customTags: + additionalProperties: + oneOf: + - not: + anyOf: + - required: + - literal + - required: + - environment + - required: + - header + - required: + - literal + - required: + - environment + - required: + - header + properties: + environment: + description: Environment adds the value of an environment + variable to each span. + properties: + defaultValue: + description: Optional. + format: string + type: string + name: + description: Name of the environment variable from + which to extract the tag value. + format: string + type: string + type: object + header: + description: RequestHeader adds the value of an header + from the request to each span. + properties: + defaultValue: + description: Optional. + format: string + type: string + name: + description: Name of the header from which to extract + the tag value. + format: string + type: string + type: object + literal: + description: Literal adds the same, hard-coded value to + each span. + properties: + value: + description: The tag value to use. + format: string + type: string + type: object + type: object + description: Optional. + type: object + disableSpanReporting: + description: Controls span reporting. + type: boolean + providers: + description: Optional. + items: + properties: + name: + description: Required. + format: string + type: string + type: object + type: array + randomSamplingPercentage: + format: double + type: number + type: object + type: array + type: object + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} + +--- diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index 36fba099..d83bfc3f 100644 --- a/mesh/v1alpha1/config.pb.go +++ b/mesh/v1alpha1/config.pb.go @@ -206,6 +206,55 @@ func (MeshConfig_OutboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptor_b5c7ece76d5d5022, []int{0, 0, 0} } +// TraceContext selects the context propagation headers used for +// distributed tracing. +type MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext int32 + +const ( + // $hide_from_docs + // Unspecified context. Should not be used for now, but added to reserve + // the 0 enum value if TraceContext is used outside of a repeated field. + MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_UNSPECIFIED MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 0 + // Use W3C Trace Context propagation using the `traceparent` HTTP header. + // See the + // [Trace Context documentation](https://www.w3.org/TR/trace-context/) for details. + MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_W3C_TRACE_CONTEXT MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 1 + // Use gRPC binary context propagation using the `grpc-trace-bin` http header. + MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_GRPC_BIN MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 2 + // Use Cloud Trace context propagation using the + // `X-Cloud-Trace-Context` http header. + MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_CLOUD_TRACE_CONTEXT MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 3 + // Use multi-header B3 context propagation using the `X-B3-TraceId`, + // `X-B3-SpanId`, and `X-B3-Sampled` HTTP headers. See + // [B3 header propagation README](https://github.com/openzipkin/b3-propagation) + // for details. + MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_B3 MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 4 +) + +var MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "W3C_TRACE_CONTEXT", + 2: "GRPC_BIN", + 3: "CLOUD_TRACE_CONTEXT", + 4: "B3", +} + +var MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_value = map[string]int32{ + "UNSPECIFIED": 0, + "W3C_TRACE_CONTEXT": 1, + "GRPC_BIN": 2, + "CLOUD_TRACE_CONTEXT": 3, + "B3": 4, +} + +func (x MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) String() string { + return proto.EnumName(MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_name, int32(x)) +} + +func (MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 5, 6, 0} +} + // MeshConfig defines mesh-wide settings for the Istio service mesh. type MeshConfig struct { // Port on which Envoy should listen for incoming connections from @@ -455,6 +504,8 @@ type MeshConfig struct { // Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy // can be used with an extension provider to delegate the authorization decision to a custom authorization system. ExtensionProviders []*MeshConfig_ExtensionProvider `protobuf:"bytes,57,rep,name=extension_providers,json=extensionProviders,proto3" json:"extensionProviders,omitempty"` + // Specifies extension providers to use by default in Istio configuration resources. + DefaultProviders *MeshConfig_DefaultProviders `protobuf:"bytes,60,opt,name=default_providers,json=defaultProviders,proto3" json:"defaultProviders,omitempty"` // A list of Kubernetes selectors that specify the set of namespaces that Istio considers when // computing configuration updates for sidecars. This can be used to reduce Istio's computational load // by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. @@ -781,6 +832,13 @@ func (m *MeshConfig) GetExtensionProviders() []*MeshConfig_ExtensionProvider { return nil } +func (m *MeshConfig) GetDefaultProviders() *MeshConfig_DefaultProviders { + if m != nil { + return m.DefaultProviders + } + return nil +} + func (m *MeshConfig) GetDiscoverySelectors() []*v1.LabelSelector { if m != nil { return m.DiscoverySelectors @@ -1214,6 +1272,11 @@ type MeshConfig_ExtensionProvider struct { // Types that are valid to be assigned to Provider: // *MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp // *MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc + // *MeshConfig_ExtensionProvider_Zipkin + // *MeshConfig_ExtensionProvider_Lightstep + // *MeshConfig_ExtensionProvider_Datadog + // *MeshConfig_ExtensionProvider_Stackdriver + // *MeshConfig_ExtensionProvider_Opencensus Provider isMeshConfig_ExtensionProvider_Provider `protobuf_oneof:"provider"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1265,9 +1328,29 @@ type MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp struct { type MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc struct { EnvoyExtAuthzGrpc *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider `protobuf:"bytes,3,opt,name=envoy_ext_authz_grpc,json=envoyExtAuthzGrpc,proto3,oneof" json:"envoyExtAuthzGrpc,omitempty"` } +type MeshConfig_ExtensionProvider_Zipkin struct { + Zipkin *MeshConfig_ExtensionProvider_ZipkinTracingProvider `protobuf:"bytes,4,opt,name=zipkin,proto3,oneof" json:"zipkin,omitempty"` +} +type MeshConfig_ExtensionProvider_Lightstep struct { + Lightstep *MeshConfig_ExtensionProvider_LightstepTracingProvider `protobuf:"bytes,5,opt,name=lightstep,proto3,oneof" json:"lightstep,omitempty"` +} +type MeshConfig_ExtensionProvider_Datadog struct { + Datadog *MeshConfig_ExtensionProvider_DatadogTracingProvider `protobuf:"bytes,6,opt,name=datadog,proto3,oneof" json:"datadog,omitempty"` +} +type MeshConfig_ExtensionProvider_Stackdriver struct { + Stackdriver *MeshConfig_ExtensionProvider_StackdriverProvider `protobuf:"bytes,7,opt,name=stackdriver,proto3,oneof" json:"stackdriver,omitempty"` +} +type MeshConfig_ExtensionProvider_Opencensus struct { + Opencensus *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider `protobuf:"bytes,8,opt,name=opencensus,proto3,oneof" json:"opencensus,omitempty"` +} func (*MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp) isMeshConfig_ExtensionProvider_Provider() {} func (*MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc) isMeshConfig_ExtensionProvider_Provider() {} +func (*MeshConfig_ExtensionProvider_Zipkin) isMeshConfig_ExtensionProvider_Provider() {} +func (*MeshConfig_ExtensionProvider_Lightstep) isMeshConfig_ExtensionProvider_Provider() {} +func (*MeshConfig_ExtensionProvider_Datadog) isMeshConfig_ExtensionProvider_Provider() {} +func (*MeshConfig_ExtensionProvider_Stackdriver) isMeshConfig_ExtensionProvider_Provider() {} +func (*MeshConfig_ExtensionProvider_Opencensus) isMeshConfig_ExtensionProvider_Provider() {} func (m *MeshConfig_ExtensionProvider) GetProvider() isMeshConfig_ExtensionProvider_Provider { if m != nil { @@ -1297,11 +1380,51 @@ func (m *MeshConfig_ExtensionProvider) GetEnvoyExtAuthzGrpc() *MeshConfig_Extens return nil } +func (m *MeshConfig_ExtensionProvider) GetZipkin() *MeshConfig_ExtensionProvider_ZipkinTracingProvider { + if x, ok := m.GetProvider().(*MeshConfig_ExtensionProvider_Zipkin); ok { + return x.Zipkin + } + return nil +} + +func (m *MeshConfig_ExtensionProvider) GetLightstep() *MeshConfig_ExtensionProvider_LightstepTracingProvider { + if x, ok := m.GetProvider().(*MeshConfig_ExtensionProvider_Lightstep); ok { + return x.Lightstep + } + return nil +} + +func (m *MeshConfig_ExtensionProvider) GetDatadog() *MeshConfig_ExtensionProvider_DatadogTracingProvider { + if x, ok := m.GetProvider().(*MeshConfig_ExtensionProvider_Datadog); ok { + return x.Datadog + } + return nil +} + +func (m *MeshConfig_ExtensionProvider) GetStackdriver() *MeshConfig_ExtensionProvider_StackdriverProvider { + if x, ok := m.GetProvider().(*MeshConfig_ExtensionProvider_Stackdriver); ok { + return x.Stackdriver + } + return nil +} + +func (m *MeshConfig_ExtensionProvider) GetOpencensus() *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider { + if x, ok := m.GetProvider().(*MeshConfig_ExtensionProvider_Opencensus); ok { + return x.Opencensus + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*MeshConfig_ExtensionProvider) XXX_OneofWrappers() []interface{} { return []interface{}{ (*MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp)(nil), (*MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc)(nil), + (*MeshConfig_ExtensionProvider_Zipkin)(nil), + (*MeshConfig_ExtensionProvider_Lightstep)(nil), + (*MeshConfig_ExtensionProvider_Datadog)(nil), + (*MeshConfig_ExtensionProvider_Stackdriver)(nil), + (*MeshConfig_ExtensionProvider_Opencensus)(nil), } } @@ -1529,6 +1652,484 @@ func (m *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) Ge return "" } +// Defines configuration for a Zipkin tracer. +type MeshConfig_ExtensionProvider_ZipkinTracingProvider struct { + // REQUIRED. Specifies the service that the Zipkin API. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "zipkin.default.svc.cluster.local" or "bar/zipkin.example.com". + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + // REQUIRED. Specifies the port of the service. + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + MaxTagLength uint32 `protobuf:"varint,3,opt,name=max_tag_length,json=maxTagLength,proto3" json:"maxTagLength,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) Reset() { + *m = MeshConfig_ExtensionProvider_ZipkinTracingProvider{} +} +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) String() string { + return proto.CompactTextString(m) +} +func (*MeshConfig_ExtensionProvider_ZipkinTracingProvider) ProtoMessage() {} +func (*MeshConfig_ExtensionProvider_ZipkinTracingProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 5, 2} +} +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MeshConfig_ExtensionProvider_ZipkinTracingProvider.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeshConfig_ExtensionProvider_ZipkinTracingProvider.Merge(m, src) +} +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) XXX_Size() int { + return m.Size() +} +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) XXX_DiscardUnknown() { + xxx_messageInfo_MeshConfig_ExtensionProvider_ZipkinTracingProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_MeshConfig_ExtensionProvider_ZipkinTracingProvider proto.InternalMessageInfo + +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetService() string { + if m != nil { + return m.Service + } + return "" +} + +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 +} + +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetMaxTagLength() uint32 { + if m != nil { + return m.MaxTagLength + } + return 0 +} + +// Defines configuration for a Lightstep tracer. +type MeshConfig_ExtensionProvider_LightstepTracingProvider struct { + // REQUIRED. Specifies the service for the Lightstep collector. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "lightstep.default.svc.cluster.local" or "bar/lightstep.example.com". + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + // REQUIRED. Specifies the port of the service. + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` + // The Lightstep access token. + AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken,proto3" json:"accessToken,omitempty"` + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + MaxTagLength uint32 `protobuf:"varint,4,opt,name=max_tag_length,json=maxTagLength,proto3" json:"maxTagLength,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) Reset() { + *m = MeshConfig_ExtensionProvider_LightstepTracingProvider{} +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) String() string { + return proto.CompactTextString(m) +} +func (*MeshConfig_ExtensionProvider_LightstepTracingProvider) ProtoMessage() {} +func (*MeshConfig_ExtensionProvider_LightstepTracingProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 5, 3} +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MeshConfig_ExtensionProvider_LightstepTracingProvider.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeshConfig_ExtensionProvider_LightstepTracingProvider.Merge(m, src) +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) XXX_Size() int { + return m.Size() +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) XXX_DiscardUnknown() { + xxx_messageInfo_MeshConfig_ExtensionProvider_LightstepTracingProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_MeshConfig_ExtensionProvider_LightstepTracingProvider proto.InternalMessageInfo + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetService() string { + if m != nil { + return m.Service + } + return "" +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetAccessToken() string { + if m != nil { + return m.AccessToken + } + return "" +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetMaxTagLength() uint32 { + if m != nil { + return m.MaxTagLength + } + return 0 +} + +// Defines configuration for a Datadog tracer. +type MeshConfig_ExtensionProvider_DatadogTracingProvider struct { + // REQUIRED. Specifies the service for the Datadog agent. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "datadog.default.svc.cluster.local" or "bar/datadog.example.com". + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + // REQUIRED. Specifies the port of the service. + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + MaxTagLength uint32 `protobuf:"varint,3,opt,name=max_tag_length,json=maxTagLength,proto3" json:"maxTagLength,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) Reset() { + *m = MeshConfig_ExtensionProvider_DatadogTracingProvider{} +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) String() string { + return proto.CompactTextString(m) +} +func (*MeshConfig_ExtensionProvider_DatadogTracingProvider) ProtoMessage() {} +func (*MeshConfig_ExtensionProvider_DatadogTracingProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 5, 4} +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MeshConfig_ExtensionProvider_DatadogTracingProvider.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeshConfig_ExtensionProvider_DatadogTracingProvider.Merge(m, src) +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) XXX_Size() int { + return m.Size() +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) XXX_DiscardUnknown() { + xxx_messageInfo_MeshConfig_ExtensionProvider_DatadogTracingProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_MeshConfig_ExtensionProvider_DatadogTracingProvider proto.InternalMessageInfo + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) GetService() string { + if m != nil { + return m.Service + } + return "" +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) GetMaxTagLength() uint32 { + if m != nil { + return m.MaxTagLength + } + return 0 +} + +// Defines configuration for Stackdriver. +type MeshConfig_ExtensionProvider_StackdriverProvider struct { + // debug enables trace output to stdout. + // $hide_from_docs + Debug bool `protobuf:"varint,1,opt,name=debug,proto3" json:"debug,omitempty"` + // The global default max number of attributes per span. + // default is 200. + // $hide_from_docs + MaxNumberOfAttributes *types.Int64Value `protobuf:"bytes,2,opt,name=max_number_of_attributes,json=maxNumberOfAttributes,proto3" json:"maxNumberOfAttributes,omitempty"` + // The global default max number of annotation events per span. + // default is 200. + // $hide_from_docs + MaxNumberOfAnnotations *types.Int64Value `protobuf:"bytes,3,opt,name=max_number_of_annotations,json=maxNumberOfAnnotations,proto3" json:"maxNumberOfAnnotations,omitempty"` + // The global default max number of message events per span. + // default is 200. + // $hide_from_docs + MaxNumberOfMessageEvents *types.Int64Value `protobuf:"bytes,4,opt,name=max_number_of_message_events,json=maxNumberOfMessageEvents,proto3" json:"maxNumberOfMessageEvents,omitempty"` + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + MaxTagLength uint32 `protobuf:"varint,5,opt,name=max_tag_length,json=maxTagLength,proto3" json:"maxTagLength,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) Reset() { + *m = MeshConfig_ExtensionProvider_StackdriverProvider{} +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) String() string { + return proto.CompactTextString(m) +} +func (*MeshConfig_ExtensionProvider_StackdriverProvider) ProtoMessage() {} +func (*MeshConfig_ExtensionProvider_StackdriverProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 5, 5} +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MeshConfig_ExtensionProvider_StackdriverProvider.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeshConfig_ExtensionProvider_StackdriverProvider.Merge(m, src) +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) XXX_Size() int { + return m.Size() +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) XXX_DiscardUnknown() { + xxx_messageInfo_MeshConfig_ExtensionProvider_StackdriverProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_MeshConfig_ExtensionProvider_StackdriverProvider proto.InternalMessageInfo + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) GetDebug() bool { + if m != nil { + return m.Debug + } + return false +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxNumberOfAttributes() *types.Int64Value { + if m != nil { + return m.MaxNumberOfAttributes + } + return nil +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxNumberOfAnnotations() *types.Int64Value { + if m != nil { + return m.MaxNumberOfAnnotations + } + return nil +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxNumberOfMessageEvents() *types.Int64Value { + if m != nil { + return m.MaxNumberOfMessageEvents + } + return nil +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxTagLength() uint32 { + if m != nil { + return m.MaxTagLength + } + return 0 +} + +// Defines configuration for an OpenCensus tracer writing to an OpenCensus backend. +type MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider struct { + // REQUIRED. Specifies the service for the OpenCensusAgent. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "ocagent.default.svc.cluster.local" or "bar/ocagent.example.com". + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + // REQUIRED. Specifies the port of the service. + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` + // Specifies the set of context propagation headers used for distributed + // tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified, + // the proxy will attempt to read each header for each request and will + // write all headers. + Context []MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext `protobuf:"varint,3,rep,packed,name=context,proto3,enum=istio.mesh.v1alpha1.MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext" json:"context,omitempty"` + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + MaxTagLength uint32 `protobuf:"varint,4,opt,name=max_tag_length,json=maxTagLength,proto3" json:"maxTagLength,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Reset() { + *m = MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider{} +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) String() string { + return proto.CompactTextString(m) +} +func (*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) ProtoMessage() {} +func (*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 5, 6} +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider.Merge(m, src) +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) XXX_Size() int { + return m.Size() +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) XXX_DiscardUnknown() { + xxx_messageInfo_MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider proto.InternalMessageInfo + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetService() string { + if m != nil { + return m.Service + } + return "" +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetContext() []MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext { + if m != nil { + return m.Context + } + return nil +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetMaxTagLength() uint32 { + if m != nil { + return m.MaxTagLength + } + return 0 +} + +// Holds the name references to the providers that will be used by default +// in other Istio configuration resources if the provider is not specified. +type MeshConfig_DefaultProviders struct { + // Name of the default provider for tracing. This must match a provider + // defined in `extension_providers` that is one of the support tracing + // providers. + Tracing string `protobuf:"bytes,1,opt,name=tracing,proto3" json:"tracing,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MeshConfig_DefaultProviders) Reset() { *m = MeshConfig_DefaultProviders{} } +func (m *MeshConfig_DefaultProviders) String() string { return proto.CompactTextString(m) } +func (*MeshConfig_DefaultProviders) ProtoMessage() {} +func (*MeshConfig_DefaultProviders) Descriptor() ([]byte, []int) { + return fileDescriptor_b5c7ece76d5d5022, []int{0, 6} +} +func (m *MeshConfig_DefaultProviders) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeshConfig_DefaultProviders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MeshConfig_DefaultProviders.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MeshConfig_DefaultProviders) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeshConfig_DefaultProviders.Merge(m, src) +} +func (m *MeshConfig_DefaultProviders) XXX_Size() int { + return m.Size() +} +func (m *MeshConfig_DefaultProviders) XXX_DiscardUnknown() { + xxx_messageInfo_MeshConfig_DefaultProviders.DiscardUnknown(m) +} + +var xxx_messageInfo_MeshConfig_DefaultProviders proto.InternalMessageInfo + +func (m *MeshConfig_DefaultProviders) GetTracing() string { + if m != nil { + return m.Tracing + } + return "" +} + // ConfigSource describes information about a configuration store inside a // mesh. A single control plane instance can interact with one or more data // sources. @@ -1687,6 +2288,7 @@ func init() { proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AccessLogEncoding", MeshConfig_AccessLogEncoding_name, MeshConfig_AccessLogEncoding_value) proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_H2UpgradePolicy", MeshConfig_H2UpgradePolicy_name, MeshConfig_H2UpgradePolicy_value) proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode", MeshConfig_OutboundTrafficPolicy_Mode_name, MeshConfig_OutboundTrafficPolicy_Mode_value) + proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext", MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_name, MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_value) proto.RegisterType((*MeshConfig)(nil), "istio.mesh.v1alpha1.MeshConfig") proto.RegisterType((*MeshConfig_OutboundTrafficPolicy)(nil), "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy") proto.RegisterType((*MeshConfig_CertificateData)(nil), "istio.mesh.v1alpha1.MeshConfig.CertificateData") @@ -1697,6 +2299,12 @@ func init() { proto.RegisterType((*MeshConfig_ExtensionProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider") proto.RegisterType((*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider") proto.RegisterType((*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider") + proto.RegisterType((*MeshConfig_ExtensionProvider_ZipkinTracingProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider") + proto.RegisterType((*MeshConfig_ExtensionProvider_LightstepTracingProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider") + proto.RegisterType((*MeshConfig_ExtensionProvider_DatadogTracingProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider") + proto.RegisterType((*MeshConfig_ExtensionProvider_StackdriverProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider") + proto.RegisterType((*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider)(nil), "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider") + proto.RegisterType((*MeshConfig_DefaultProviders)(nil), "istio.mesh.v1alpha1.MeshConfig.DefaultProviders") proto.RegisterType((*ConfigSource)(nil), "istio.mesh.v1alpha1.ConfigSource") proto.RegisterType((*Certificate)(nil), "istio.mesh.v1alpha1.Certificate") } @@ -1704,162 +2312,190 @@ func init() { func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptor_b5c7ece76d5d5022) } var fileDescriptor_b5c7ece76d5d5022 = []byte{ - // 2465 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x72, 0x1b, 0xc7, - 0xb9, 0x26, 0xc8, 0xb1, 0x34, 0x6c, 0x12, 0xc4, 0xb0, 0x49, 0x4a, 0x23, 0xc8, 0xa2, 0x28, 0xda, - 0x92, 0x68, 0x1d, 0x1f, 0xc0, 0xa4, 0x7c, 0x91, 0xed, 0xaa, 0x53, 0x87, 0x04, 0x20, 0x91, 0x30, - 0x44, 0xf0, 0x34, 0x41, 0xf9, 0xf6, 0xd0, 0xd5, 0x9c, 0x69, 0x00, 0x73, 0x38, 0x98, 0x9e, 0x74, - 0xf7, 0x50, 0xa4, 0xab, 0xb2, 0x82, 0x2c, 0x21, 0x6b, 0x48, 0x16, 0x90, 0x15, 0xa4, 0x2a, 0x2f, - 0x79, 0xc8, 0x02, 0x52, 0x7e, 0xc9, 0x12, 0xf2, 0x9a, 0xea, 0xcb, 0x00, 0x20, 0x89, 0x18, 0x76, - 0x2a, 0x95, 0x37, 0xcc, 0xd7, 0xff, 0xff, 0x75, 0xf7, 0xdf, 0xff, 0x15, 0xa0, 0x3c, 0xa0, 0xa2, - 0x5f, 0x3d, 0xdf, 0x26, 0x71, 0xda, 0x27, 0xdb, 0xd5, 0x80, 0x25, 0xdd, 0xa8, 0x57, 0x49, 0x39, - 0x93, 0x0c, 0xae, 0x44, 0x42, 0x46, 0xac, 0xa2, 0x24, 0x2a, 0xb9, 0x44, 0x79, 0xbd, 0xc7, 0x58, - 0x2f, 0xa6, 0x55, 0x2d, 0x72, 0x9a, 0x75, 0xab, 0x61, 0xc6, 0x89, 0x8c, 0x58, 0x62, 0x94, 0x6e, - 0xae, 0xbf, 0xe5, 0x24, 0x4d, 0x29, 0x17, 0x76, 0xfd, 0xde, 0xd5, 0x0d, 0x53, 0xce, 0x2e, 0x2e, - 0xed, 0xd2, 0xb3, 0x84, 0xca, 0xb7, 0x8c, 0x9f, 0x45, 0x49, 0x2f, 0x17, 0x78, 0x5e, 0x0d, 0xa9, - 0x90, 0x51, 0xa2, 0x77, 0xc0, 0x3c, 0x8b, 0xa9, 0x95, 0xfd, 0xf8, 0xec, 0x85, 0xa8, 0x44, 0xac, - 0x4a, 0xd2, 0x68, 0x40, 0x82, 0x7e, 0x94, 0x50, 0x7e, 0x59, 0x4d, 0xcf, 0x7a, 0x0a, 0x10, 0xd5, - 0x01, 0x95, 0xa4, 0x7a, 0xbe, 0x5d, 0xed, 0xd1, 0x84, 0x72, 0x22, 0x69, 0x68, 0xb4, 0x36, 0xff, - 0xb0, 0x05, 0xc0, 0x6b, 0x2a, 0xfa, 0x35, 0x7d, 0x4d, 0xf8, 0x0c, 0x2c, 0xeb, 0xfd, 0x71, 0x1c, - 0x09, 0x49, 0x13, 0x9c, 0x32, 0x2e, 0x7d, 0x67, 0xa3, 0xb0, 0xf5, 0x0e, 0x2a, 0xe9, 0x85, 0x96, - 0xc6, 0x8f, 0x18, 0x97, 0xf0, 0x09, 0x30, 0x10, 0xee, 0x4b, 0x99, 0x1a, 0xc9, 0x77, 0xb4, 0x64, - 0x51, 0xc3, 0xfb, 0x52, 0xa6, 0x5a, 0x6e, 0x0f, 0x94, 0x02, 0x96, 0x24, 0x34, 0x90, 0x58, 0x46, - 0x03, 0xca, 0x32, 0xe9, 0xdf, 0xda, 0x28, 0x6c, 0x2d, 0xec, 0xdc, 0xab, 0x18, 0xcb, 0x54, 0x72, - 0xcb, 0x54, 0xea, 0xd6, 0x72, 0x68, 0xc9, 0x6a, 0x74, 0x8c, 0x02, 0xfc, 0x1a, 0x94, 0xb5, 0x50, - 0xc0, 0x62, 0x1c, 0x52, 0x49, 0x03, 0x7d, 0xfb, 0x9c, 0xee, 0xd9, 0x34, 0x3a, 0x3f, 0x57, 0xae, - 0xe7, 0xba, 0x39, 0x31, 0x03, 0x45, 0x19, 0xa4, 0xf8, 0x8c, 0xd2, 0x94, 0xc4, 0xd1, 0x39, 0xf5, - 0xdf, 0xd5, 0x5c, 0xcd, 0x8a, 0x79, 0xe9, 0x91, 0xfd, 0xf3, 0xf7, 0x7e, 0x5e, 0xa9, 0x99, 0xa3, - 0x45, 0x2c, 0x39, 0x62, 0x2c, 0x3e, 0xa6, 0x52, 0x46, 0x49, 0x4f, 0x54, 0x3a, 0xb5, 0xa3, 0xd1, - 0xef, 0x20, 0xfd, 0x2a, 0x67, 0x44, 0x8b, 0x72, 0xec, 0x0b, 0xbe, 0x07, 0x8a, 0x51, 0xd2, 0xe3, - 0x54, 0x08, 0x1c, 0xc4, 0x44, 0x08, 0xff, 0xf6, 0x46, 0x61, 0x6b, 0x1e, 0x2d, 0x5a, 0xb0, 0xa6, - 0x30, 0xf8, 0x14, 0x94, 0x72, 0x21, 0x41, 0xf9, 0x79, 0x14, 0x50, 0xdf, 0xd5, 0x62, 0x4b, 0x16, - 0x3e, 0x36, 0x28, 0x1c, 0x80, 0xbb, 0x43, 0x36, 0x96, 0x48, 0xce, 0xe2, 0x98, 0x72, 0x3c, 0x60, - 0x21, 0xf5, 0xe7, 0x37, 0x0a, 0x5b, 0x4b, 0x3b, 0x9f, 0x54, 0x26, 0xb8, 0x6c, 0x65, 0xf4, 0xe2, - 0x95, 0x03, 0xbb, 0xef, 0x50, 0xfb, 0x35, 0x0b, 0x29, 0x5a, 0x8b, 0x26, 0xc1, 0xf0, 0x03, 0xe0, - 0x8d, 0xce, 0x15, 0xd3, 0x40, 0x32, 0xee, 0x7f, 0xac, 0x0f, 0x56, 0x1a, 0x1e, 0xcc, 0xc0, 0xf0, - 0x31, 0x58, 0xa2, 0x09, 0x39, 0x8d, 0x29, 0x96, 0x9c, 0x04, 0x51, 0xd2, 0xf3, 0x17, 0x37, 0x0a, - 0x5b, 0x2e, 0x2a, 0x1a, 0xb4, 0x63, 0x40, 0xe5, 0x44, 0x24, 0x08, 0x14, 0x61, 0xcc, 0x7a, 0xb8, - 0x1b, 0xc5, 0xd4, 0x2f, 0x6a, 0xc2, 0xa2, 0x81, 0x5b, 0xac, 0xf7, 0x32, 0x8a, 0xa9, 0x72, 0xcc, - 0x71, 0x39, 0xc6, 0x07, 0x44, 0xfa, 0xbe, 0xd9, 0x7a, 0x24, 0xa9, 0x61, 0x48, 0xc0, 0xca, 0x98, - 0x2c, 0x4d, 0x02, 0x16, 0xaa, 0xfd, 0xef, 0x6b, 0x83, 0x6c, 0x4f, 0x33, 0xc8, 0x6e, 0xce, 0xd6, - 0xb0, 0x8a, 0x68, 0x99, 0x5c, 0x87, 0x60, 0x1d, 0x3c, 0xb4, 0xb7, 0xa3, 0xc9, 0x39, 0xbb, 0xc4, - 0x63, 0xfb, 0xe5, 0x0f, 0xb6, 0xa5, 0xaf, 0x7b, 0xdf, 0x88, 0x35, 0x94, 0xd4, 0x90, 0x39, 0x7f, - 0xbd, 0x2f, 0x41, 0x39, 0x8c, 0xc4, 0x18, 0x8d, 0x89, 0x3a, 0xca, 0x15, 0x91, 0xff, 0x42, 0x13, - 0xdc, 0xb5, 0x12, 0x9a, 0xa1, 0x65, 0xd7, 0x5b, 0xac, 0x07, 0x5f, 0x81, 0xa5, 0x90, 0x76, 0x49, - 0x16, 0x4b, 0x6c, 0x72, 0x94, 0xbf, 0xa4, 0x5d, 0x77, 0x63, 0xe2, 0x05, 0x8f, 0x54, 0x48, 0x9a, - 0x1b, 0xa2, 0xa2, 0xd5, 0xb3, 0x31, 0x3f, 0x00, 0x77, 0x59, 0x26, 0x4f, 0x59, 0x96, 0x84, 0xea, - 0xad, 0xba, 0xdd, 0x28, 0xc0, 0x29, 0x8b, 0xa3, 0xe0, 0xd2, 0x5f, 0xd6, 0x8c, 0x53, 0x7d, 0xa8, - 0x6d, 0xd5, 0x3b, 0x46, 0xfb, 0x48, 0x2b, 0xa3, 0x35, 0x36, 0x09, 0x86, 0xfb, 0x60, 0xc9, 0x9c, - 0x17, 0x0b, 0x96, 0xf1, 0x80, 0x0a, 0xff, 0xce, 0xc6, 0xdc, 0xd6, 0xc2, 0xce, 0xa3, 0x89, 0xbb, - 0x98, 0x1d, 0x8e, 0xb5, 0x24, 0x2a, 0x06, 0x63, 0x5f, 0x02, 0xd6, 0x81, 0x67, 0x1f, 0x81, 0x64, - 0x92, 0xe1, 0x81, 0x8c, 0x85, 0xff, 0x5f, 0xfa, 0xc4, 0xe5, 0x1b, 0xa9, 0x60, 0x8f, 0xb1, 0xf8, - 0x0d, 0x89, 0x33, 0x8a, 0xac, 0x5b, 0xee, 0x66, 0x92, 0xbd, 0x96, 0xb1, 0x80, 0x8f, 0xc0, 0xa2, - 0xe4, 0x99, 0x90, 0x38, 0x64, 0x03, 0x12, 0x25, 0x7e, 0x59, 0x3b, 0xd5, 0x82, 0xc6, 0xea, 0x1a, - 0x82, 0x1f, 0x81, 0xd5, 0x71, 0x11, 0x4c, 0xe2, 0x88, 0x08, 0x2a, 0xfc, 0xca, 0xc6, 0xdc, 0xd6, - 0x3c, 0x82, 0x63, 0xa2, 0xbb, 0x66, 0x05, 0x7e, 0x03, 0x4a, 0x01, 0xc1, 0x01, 0xe5, 0x32, 0xea, - 0x46, 0x01, 0x91, 0x54, 0xf8, 0x5f, 0xe8, 0x5b, 0x56, 0xa7, 0xd9, 0xb2, 0x36, 0xd2, 0xa9, 0x13, - 0x49, 0xd0, 0x52, 0x40, 0xc6, 0x20, 0x01, 0x3f, 0x07, 0xf7, 0xf2, 0x67, 0xb7, 0x9e, 0x86, 0xe9, - 0x85, 0x4a, 0xbe, 0x58, 0x32, 0xff, 0xa1, 0x3e, 0xd0, 0x1d, 0x2b, 0x60, 0xdd, 0xac, 0xa1, 0x97, - 0x3b, 0x0c, 0xee, 0x83, 0x47, 0xb9, 0xea, 0x79, 0xc4, 0x65, 0x46, 0xe2, 0x09, 0x14, 0x1b, 0x9a, - 0xe2, 0x81, 0x15, 0x7c, 0x63, 0xe4, 0xae, 0x33, 0x35, 0xc1, 0x66, 0xce, 0x74, 0xbd, 0x1a, 0x8d, - 0x51, 0x3d, 0xd2, 0x54, 0xeb, 0x56, 0xb2, 0x3e, 0x12, 0x44, 0x59, 0x3c, 0xe2, 0x7a, 0x0c, 0x96, - 0x38, 0x63, 0x12, 0x27, 0x64, 0x40, 0x45, 0x4a, 0x02, 0xea, 0x6f, 0x9a, 0x04, 0xa0, 0xd0, 0xc3, - 0x1c, 0x84, 0x5d, 0xb0, 0x12, 0xb3, 0x80, 0xc4, 0x91, 0xbc, 0xc4, 0xf1, 0x29, 0x16, 0x26, 0xd5, - 0xfa, 0xef, 0xe9, 0xf7, 0xfe, 0xf4, 0x27, 0xd2, 0x75, 0xcb, 0x6a, 0xb5, 0x18, 0x09, 0xf7, 0x48, - 0x4c, 0x92, 0x80, 0x72, 0x9b, 0xa8, 0xd1, 0x72, 0x4e, 0xd9, 0x3a, 0xb5, 0x10, 0xac, 0x01, 0x2f, - 0x4c, 0x04, 0xe6, 0xb4, 0xcb, 0xa9, 0xe8, 0x63, 0x55, 0x2b, 0xfd, 0xf7, 0xa7, 0x96, 0xab, 0x30, - 0x11, 0xc8, 0x68, 0x20, 0x22, 0x29, 0xfc, 0x1e, 0x2c, 0xf7, 0x77, 0x70, 0x96, 0xf6, 0x38, 0x09, - 0x69, 0x1e, 0x4c, 0x1f, 0xe8, 0xfc, 0x33, 0xd5, 0x01, 0xf6, 0x77, 0x4e, 0x8c, 0x9e, 0x0d, 0xa3, - 0x52, 0xff, 0x2a, 0xa0, 0x3c, 0x20, 0x4a, 0x4c, 0xb8, 0x06, 0x71, 0x26, 0x24, 0xe5, 0x58, 0x48, - 0x62, 0x0c, 0xe8, 0x7f, 0xa8, 0x6d, 0x77, 0xc7, 0x0a, 0xd4, 0xcc, 0xfa, 0xb1, 0x24, 0xda, 0x92, - 0x2a, 0xe1, 0x0c, 0x43, 0xfd, 0xa6, 0xee, 0x7f, 0x6b, 0xdd, 0x61, 0x32, 0xb8, 0xae, 0x5c, 0x07, - 0x8b, 0x57, 0x1c, 0xba, 0xaa, 0x1d, 0x7a, 0x72, 0xba, 0x19, 0x73, 0x59, 0x74, 0x45, 0x0b, 0xfe, - 0x1f, 0x28, 0xca, 0x3e, 0x8f, 0xba, 0xc3, 0xac, 0xb5, 0xad, 0x8d, 0xfb, 0xe1, 0x34, 0xb3, 0x74, - 0xb4, 0x92, 0xcd, 0x60, 0x8b, 0x72, 0xec, 0x0b, 0x7e, 0x07, 0xbc, 0xdc, 0x8f, 0xad, 0x5b, 0x08, - 0x7f, 0xe7, 0xe7, 0x45, 0x9b, 0x75, 0xec, 0xbc, 0x70, 0xa3, 0x92, 0xb8, 0x0a, 0x40, 0x04, 0xee, - 0xda, 0x1c, 0x93, 0x72, 0x36, 0xa0, 0xb2, 0x4f, 0x33, 0x81, 0x07, 0x94, 0xf7, 0xa8, 0xff, 0x7c, - 0x6a, 0xaa, 0x59, 0x33, 0xaa, 0x47, 0x43, 0xcd, 0xd7, 0x4a, 0x11, 0x7e, 0x0f, 0xde, 0x3d, 0xa7, - 0x3c, 0xea, 0x5e, 0x8e, 0x27, 0x08, 0x4c, 0x24, 0x0e, 0xe2, 0x88, 0x26, 0xd2, 0xff, 0x74, 0x2a, - 0xf1, 0x3d, 0xa3, 0x3f, 0x66, 0xe5, 0x5d, 0x59, 0xd3, 0xca, 0x70, 0x07, 0xcc, 0x06, 0xc4, 0xff, - 0x4c, 0x53, 0x6c, 0x4e, 0x4d, 0x36, 0xbb, 0x68, 0x36, 0x20, 0xf0, 0x14, 0xac, 0xd0, 0x0b, 0x49, - 0x13, 0xa1, 0x82, 0x38, 0xe5, 0xec, 0x3c, 0x0a, 0x29, 0x17, 0xfe, 0xe7, 0xda, 0x86, 0x53, 0x0b, - 0x66, 0x23, 0x57, 0x3d, 0xb2, 0x9a, 0x08, 0xd2, 0xeb, 0x90, 0x80, 0x21, 0x58, 0x09, 0x23, 0x11, - 0xb0, 0x73, 0xca, 0x2f, 0x87, 0xcd, 0x83, 0xf0, 0xbf, 0xd4, 0x7b, 0x3c, 0xaf, 0x98, 0xe6, 0xb5, - 0x32, 0xde, 0xbc, 0x56, 0xd2, 0xb3, 0x9e, 0x02, 0x44, 0x45, 0x35, 0xaf, 0x95, 0xf3, 0xed, 0x4a, - 0x8b, 0x9c, 0xd2, 0x38, 0xef, 0x30, 0x10, 0x1c, 0xf2, 0xe5, 0x90, 0x28, 0xff, 0xae, 0x00, 0xd6, - 0x26, 0x56, 0x23, 0x78, 0x08, 0x1c, 0xdd, 0x16, 0x15, 0x74, 0x14, 0x7e, 0xf1, 0x2f, 0x95, 0xb4, - 0x8a, 0xee, 0x8d, 0x34, 0xcf, 0x66, 0x1d, 0x38, 0xba, 0x25, 0x5a, 0x06, 0x45, 0xd4, 0x78, 0x75, - 0x70, 0xdc, 0x41, 0xdf, 0xe2, 0xf6, 0x61, 0xeb, 0x5b, 0x6f, 0x06, 0x16, 0xc1, 0xfc, 0x6e, 0xab, - 0xd5, 0xfe, 0x1a, 0xef, 0x1e, 0x7e, 0xeb, 0x15, 0x36, 0x1d, 0x77, 0xd6, 0x9b, 0x7d, 0xb6, 0xfa, - 0xe6, 0x00, 0x75, 0x4e, 0x76, 0x5b, 0xf8, 0xb8, 0x81, 0xde, 0x1c, 0xd4, 0x1a, 0x5a, 0xb8, 0xdc, - 0x03, 0xa5, 0x6b, 0x09, 0x1f, 0x42, 0x30, 0x97, 0xd2, 0x81, 0x3e, 0xe7, 0xfc, 0xfe, 0x0c, 0x52, - 0x1f, 0xf0, 0x43, 0xb0, 0x2c, 0xd2, 0xa8, 0xdb, 0xa5, 0xf8, 0x34, 0x4b, 0xc2, 0x98, 0xe2, 0x8c, - 0xc7, 0xfe, 0xac, 0x95, 0x28, 0x99, 0xa5, 0x3d, 0xbd, 0x72, 0xc2, 0xe3, 0x3d, 0x08, 0xbc, 0x71, - 0xc7, 0x0a, 0x89, 0x24, 0xe5, 0x5f, 0x83, 0xc5, 0xf1, 0x08, 0x82, 0xef, 0x83, 0x25, 0x95, 0xda, - 0x70, 0x1c, 0x0d, 0x22, 0xa9, 0xe9, 0x0a, 0xa6, 0x0f, 0x55, 0x68, 0x4b, 0x81, 0x27, 0x3c, 0x86, - 0xaf, 0x00, 0x1c, 0x93, 0xca, 0xdb, 0xed, 0xd9, 0x69, 0xe9, 0xd0, 0x1b, 0x92, 0xd8, 0x36, 0xbb, - 0xfc, 0xfb, 0x02, 0x28, 0x5d, 0x8b, 0x35, 0xd8, 0x01, 0xee, 0x30, 0x5c, 0x0b, 0x9a, 0xf2, 0xc5, - 0x2f, 0x0c, 0xd7, 0xca, 0x30, 0x6e, 0x87, 0x4c, 0x70, 0x15, 0xbc, 0xd3, 0x67, 0x42, 0x0a, 0x7f, - 0x56, 0x57, 0x1f, 0xf3, 0x51, 0xae, 0x02, 0x77, 0xb8, 0xef, 0x7b, 0xa0, 0x98, 0xe7, 0x3e, 0x9d, - 0xfe, 0xf5, 0xe6, 0x2e, 0x5a, 0xb4, 0xa0, 0xae, 0x17, 0xe5, 0xbf, 0x14, 0xc0, 0x6c, 0x6d, 0x17, - 0xfa, 0xe0, 0x36, 0x09, 0x43, 0xd5, 0xd8, 0x5a, 0xfb, 0xe4, 0x9f, 0xb0, 0x0d, 0x16, 0x65, 0x2c, - 0x46, 0x09, 0x67, 0xf6, 0x4a, 0x1a, 0x9b, 0x38, 0x37, 0xe8, 0x00, 0xed, 0xb4, 0x8e, 0x87, 0xa7, - 0x5e, 0x90, 0xb1, 0x18, 0x1e, 0x6b, 0x0f, 0x94, 0x38, 0xfd, 0x55, 0x46, 0xc5, 0xc8, 0xd0, 0x73, - 0x53, 0xeb, 0x8e, 0xd5, 0xc8, 0xa7, 0x99, 0x87, 0x60, 0x41, 0xef, 0x1f, 0x62, 0x11, 0x85, 0x54, - 0x0f, 0x6e, 0x2e, 0x02, 0x06, 0x3a, 0x8e, 0x42, 0x5a, 0xfe, 0xdb, 0x2d, 0xb0, 0x7c, 0x23, 0x5e, - 0x21, 0x04, 0x8e, 0x2e, 0x00, 0xe6, 0x8a, 0xfa, 0x37, 0xfc, 0x4d, 0x01, 0xac, 0x9a, 0xa6, 0x94, - 0x5e, 0x48, 0xd5, 0x60, 0xf5, 0x7f, 0xd0, 0x83, 0x9e, 0xbd, 0xe8, 0x37, 0xbf, 0x38, 0x2b, 0x54, - 0x74, 0x07, 0xab, 0x60, 0x9e, 0x90, 0x78, 0x37, 0x93, 0x7d, 0xc6, 0xa3, 0x1f, 0xf4, 0x3d, 0xf4, - 0xa8, 0x68, 0xc5, 0xf6, 0x67, 0xd0, 0x32, 0xb5, 0x92, 0x4a, 0xe8, 0x07, 0xb5, 0x38, 0xf1, 0x34, - 0x3d, 0x9e, 0x06, 0xd6, 0x44, 0xff, 0xd6, 0xd3, 0xbc, 0xe2, 0x69, 0xf0, 0x4f, 0x4f, 0xa3, 0x16, - 0xcb, 0x7f, 0x9f, 0x05, 0x4f, 0x7e, 0xde, 0x6d, 0x94, 0x03, 0xe5, 0x03, 0x81, 0x75, 0x20, 0xfb, - 0xa9, 0x8c, 0xae, 0x67, 0x66, 0x65, 0xcf, 0x22, 0xd2, 0xbf, 0xd5, 0xfb, 0xa5, 0x44, 0xf6, 0x71, - 0xca, 0x69, 0x37, 0xba, 0xd0, 0x97, 0x9b, 0x47, 0x40, 0x41, 0x47, 0x1a, 0x81, 0xf7, 0xc1, 0x7c, - 0x97, 0x44, 0x31, 0x66, 0x29, 0x4d, 0xec, 0xf3, 0xba, 0x0a, 0x68, 0xa7, 0x34, 0x51, 0xb3, 0x94, - 0x2a, 0xe6, 0x99, 0xc0, 0x2c, 0xc1, 0x94, 0x73, 0xc6, 0xf5, 0x40, 0x3e, 0x8f, 0x8a, 0x06, 0x6e, - 0x27, 0x0d, 0x05, 0xc2, 0xcf, 0x80, 0x1f, 0x25, 0x41, 0x9c, 0x85, 0x14, 0xf7, 0x29, 0x51, 0xd9, - 0x19, 0x47, 0x09, 0x0e, 0xfa, 0x34, 0x38, 0xf3, 0x6f, 0xe9, 0xa8, 0x59, 0xb3, 0xeb, 0xfb, 0x66, - 0xf9, 0x20, 0xa9, 0xa9, 0x45, 0xf8, 0x3f, 0xe0, 0xdd, 0x5c, 0x41, 0x32, 0x9c, 0xa5, 0x42, 0x72, - 0x4a, 0x06, 0x6a, 0x37, 0x12, 0xc7, 0xec, 0xad, 0x7f, 0x5b, 0x2b, 0xfb, 0x56, 0xa6, 0xc3, 0x4e, - 0xac, 0x44, 0x3b, 0xd9, 0x55, 0xeb, 0xf0, 0x7f, 0xc1, 0x83, 0x31, 0xfd, 0x90, 0xbd, 0x4d, 0x46, - 0x0c, 0x21, 0x4d, 0x2e, 0x7d, 0x57, 0x13, 0xdc, 0x1b, 0x12, 0xd4, 0x87, 0x22, 0xed, 0xa4, 0x4e, - 0x93, 0xcb, 0xf2, 0x6f, 0x0b, 0x3f, 0x65, 0xf9, 0xf1, 0x97, 0xfb, 0x85, 0x96, 0xbf, 0x62, 0xd8, - 0xb9, 0xe9, 0x86, 0x75, 0x26, 0x18, 0x76, 0x0f, 0x00, 0x37, 0xaf, 0x9e, 0x9b, 0x4d, 0xb0, 0x36, - 0x71, 0xb4, 0x86, 0x25, 0xb0, 0x70, 0x72, 0x78, 0x7c, 0xd4, 0xa8, 0x1d, 0xbc, 0x3c, 0x68, 0xd4, - 0xbd, 0x19, 0x78, 0x1b, 0xcc, 0xb5, 0x5f, 0xbe, 0xf4, 0x0a, 0x70, 0x01, 0xdc, 0xae, 0x37, 0x5e, - 0xee, 0x9e, 0xb4, 0x3a, 0xde, 0x2c, 0x04, 0xe0, 0xd6, 0x71, 0x07, 0x1d, 0xd4, 0x3a, 0xde, 0xdc, - 0xe6, 0x13, 0x00, 0xd4, 0x3d, 0x6d, 0x25, 0x73, 0x81, 0x73, 0xd8, 0x3e, 0x6c, 0x78, 0x33, 0x70, - 0x09, 0x80, 0xd7, 0x27, 0xba, 0xa8, 0x74, 0x5a, 0xc7, 0x5e, 0x61, 0xf3, 0x29, 0x58, 0xbe, 0x31, - 0xbd, 0x2a, 0xf1, 0x4e, 0xe3, 0x9b, 0x8e, 0x37, 0xa3, 0x7e, 0x35, 0x8f, 0xdb, 0x87, 0x5e, 0x61, - 0x73, 0x07, 0x94, 0xae, 0xb5, 0x99, 0x10, 0x82, 0xa5, 0x7a, 0x1b, 0x1f, 0xb6, 0x3b, 0xf8, 0xe4, - 0xe8, 0x15, 0xda, 0xad, 0x2b, 0xfe, 0x05, 0x70, 0x3b, 0xff, 0x28, 0x34, 0x1d, 0xb7, 0xe0, 0xcd, - 0x36, 0x55, 0x31, 0x9b, 0x6b, 0x3a, 0xee, 0x9c, 0xe7, 0x34, 0x1d, 0xf7, 0x23, 0x6f, 0xbb, 0xe9, - 0xb8, 0xf7, 0xbc, 0x72, 0xd3, 0x71, 0xd7, 0xbd, 0x87, 0x4d, 0xc7, 0x05, 0xde, 0x42, 0xd3, 0x71, - 0x17, 0xbc, 0xc5, 0xa6, 0xe3, 0x96, 0x3c, 0xaf, 0xe9, 0xb8, 0x9e, 0xb7, 0xdc, 0x74, 0x5c, 0xe8, - 0xad, 0x34, 0x1d, 0x77, 0xc5, 0x5b, 0x6d, 0x3a, 0xee, 0xaa, 0xb7, 0xd6, 0x74, 0xdc, 0x35, 0xef, - 0x4e, 0xd3, 0x71, 0xef, 0x7a, 0x7e, 0xd3, 0x71, 0x1f, 0x78, 0xeb, 0x4d, 0xc7, 0xfd, 0xc4, 0xfb, - 0xb4, 0xe9, 0xb8, 0x8f, 0xbd, 0x27, 0x4d, 0xc7, 0x7d, 0xe2, 0x3d, 0x6d, 0x3a, 0xee, 0x53, 0x6f, - 0x0b, 0xc1, 0x41, 0x74, 0x41, 0xb9, 0x71, 0x4f, 0x3d, 0xaf, 0x50, 0x8e, 0x56, 0x0c, 0xc6, 0xa9, - 0x1e, 0x35, 0x2c, 0xb8, 0x96, 0xcf, 0xd2, 0xa6, 0xdf, 0x36, 0x1a, 0x02, 0x0d, 0x47, 0x6c, 0xa3, - 0xa3, 0xff, 0xac, 0x32, 0x8a, 0x02, 0xdd, 0x19, 0x17, 0xc5, 0x43, 0x07, 0x40, 0x8f, 0x55, 0xfa, - 0x0c, 0x08, 0x57, 0x6e, 0x2a, 0x69, 0x4c, 0x07, 0x54, 0xea, 0xae, 0x45, 0xe8, 0x0e, 0x49, 0x75, - 0x04, 0x49, 0x24, 0x2f, 0xd1, 0x82, 0x4a, 0x44, 0x76, 0x3b, 0xb4, 0xcc, 0xc3, 0xd1, 0xd8, 0x10, - 0xd2, 0x98, 0x5c, 0xa2, 0xa2, 0xd9, 0xd2, 0x96, 0x0c, 0x94, 0xff, 0x65, 0x60, 0xda, 0x3c, 0x9d, - 0xa2, 0xaf, 0x9c, 0x15, 0x2d, 0x8a, 0x50, 0xe0, 0x2c, 0x14, 0x58, 0x45, 0x3c, 0x5a, 0x16, 0x37, - 0x08, 0xef, 0x58, 0x06, 0xb5, 0x22, 0xd9, 0x19, 0x4d, 0xf0, 0x80, 0x65, 0x89, 0x44, 0x50, 0x2b, - 0x0a, 0x8a, 0xcf, 0x5e, 0x08, 0x2c, 0x08, 0xfe, 0xff, 0xb7, 0x12, 0x95, 0x25, 0xe5, 0x83, 0x7c, - 0x32, 0x0b, 0xb9, 0x9a, 0x5b, 0xf3, 0x3f, 0x26, 0xd1, 0x6a, 0x6e, 0x13, 0x6b, 0xc1, 0x53, 0x22, - 0x83, 0x3e, 0xf2, 0xc7, 0xbf, 0xf0, 0x80, 0x5c, 0x60, 0x9a, 0x48, 0x1e, 0x51, 0x81, 0xd6, 0x6e, - 0xac, 0xa8, 0x12, 0xb5, 0xf9, 0xa7, 0x02, 0x58, 0x1c, 0x1f, 0xd0, 0xff, 0x93, 0xe5, 0xf2, 0x08, - 0xac, 0x8a, 0xec, 0x54, 0x04, 0x3c, 0x3a, 0xa5, 0x21, 0xe6, 0x34, 0xff, 0x33, 0x61, 0x6e, 0x63, - 0x6e, 0x6b, 0x69, 0xe7, 0xc1, 0xc4, 0x82, 0x80, 0xac, 0x14, 0x5a, 0x19, 0xa9, 0xe6, 0x98, 0xd8, - 0xfc, 0x0a, 0x2c, 0x8c, 0xf5, 0x62, 0x2a, 0x17, 0x0b, 0x1a, 0x70, 0x6a, 0x87, 0x23, 0x73, 0x1f, - 0x60, 0x20, 0x3d, 0x0f, 0xdd, 0x07, 0xf3, 0x6a, 0x52, 0xd4, 0x73, 0xab, 0xed, 0x36, 0xdc, 0x30, - 0x11, 0x7a, 0x64, 0x7d, 0xb6, 0x01, 0xdc, 0x9c, 0x19, 0xae, 0x02, 0x2f, 0x6f, 0xfa, 0xf2, 0x56, - 0xd1, 0x9b, 0xd9, 0xdb, 0xfa, 0xe3, 0x8f, 0xeb, 0x85, 0x3f, 0xff, 0xb8, 0x5e, 0xf8, 0xeb, 0x8f, - 0xeb, 0x85, 0xef, 0xca, 0xe6, 0xbc, 0xe6, 0xff, 0xdb, 0xea, 0x95, 0x7f, 0x84, 0x4f, 0x6f, 0xe9, - 0xc2, 0xff, 0xfc, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd3, 0x2a, 0x5a, 0x58, 0x9a, 0x16, 0x00, - 0x00, + // 2918 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x4f, 0x73, 0x1b, 0x37, + 0x96, 0x37, 0x29, 0xda, 0x6a, 0x81, 0xa4, 0xd4, 0x82, 0xfe, 0xb8, 0x4d, 0xc7, 0xb2, 0xac, 0xc4, + 0xb6, 0xe2, 0xf5, 0x52, 0xb1, 0x9c, 0x38, 0x4e, 0xb2, 0xb5, 0xb5, 0x14, 0x49, 0x5b, 0x62, 0x68, + 0x51, 0xdb, 0xa2, 0x9c, 0x7f, 0x95, 0x42, 0x41, 0xdd, 0x20, 0xd9, 0x51, 0xb3, 0xd1, 0x0b, 0xa0, + 0x65, 0xc9, 0x55, 0x5b, 0xb5, 0xf7, 0x3d, 0xcd, 0x79, 0x2e, 0xf3, 0x05, 0x66, 0x3e, 0xc7, 0x54, + 0xcd, 0x65, 0x0e, 0x39, 0xce, 0x61, 0x2a, 0x5f, 0x62, 0xae, 0x53, 0xf8, 0xd3, 0x64, 0x4b, 0x62, + 0xac, 0x68, 0x2a, 0x33, 0x37, 0xe2, 0xe1, 0xfd, 0x7e, 0x0f, 0x78, 0x0d, 0xbc, 0x87, 0xf7, 0x08, + 0x2a, 0x43, 0xc2, 0x07, 0x1b, 0xc7, 0x4f, 0x70, 0x18, 0x0f, 0xf0, 0x93, 0x0d, 0x8f, 0x46, 0xbd, + 0xa0, 0x5f, 0x8d, 0x19, 0x15, 0x14, 0x2e, 0x04, 0x5c, 0x04, 0xb4, 0x2a, 0x35, 0xaa, 0xa9, 0x46, + 0x65, 0xa5, 0x4f, 0x69, 0x3f, 0x24, 0x1b, 0x4a, 0xe5, 0x30, 0xe9, 0x6d, 0xf8, 0x09, 0xc3, 0x22, + 0xa0, 0x91, 0x06, 0x5d, 0x9c, 0x7f, 0xc3, 0x70, 0x1c, 0x13, 0xc6, 0xcd, 0xfc, 0xad, 0xb3, 0x06, + 0x63, 0x46, 0x4f, 0x4e, 0xcd, 0xd4, 0xa3, 0x88, 0x88, 0x37, 0x94, 0x1d, 0x05, 0x51, 0x3f, 0x55, + 0x78, 0xba, 0xe1, 0x13, 0x2e, 0x82, 0x48, 0x59, 0x40, 0x2c, 0x09, 0x89, 0xd1, 0xfd, 0xf8, 0xe8, + 0x39, 0xaf, 0x06, 0x74, 0x03, 0xc7, 0xc1, 0x10, 0x7b, 0x83, 0x20, 0x22, 0xec, 0x74, 0x23, 0x3e, + 0xea, 0x4b, 0x01, 0xdf, 0x18, 0x12, 0x81, 0x37, 0x8e, 0x9f, 0x6c, 0xf4, 0x49, 0x44, 0x18, 0x16, + 0xc4, 0xd7, 0xa8, 0xb5, 0xff, 0x7b, 0x06, 0xc0, 0x2b, 0xc2, 0x07, 0x75, 0xb5, 0x4d, 0xf8, 0x08, + 0xcc, 0x2b, 0xfb, 0x28, 0x0c, 0xb8, 0x20, 0x11, 0x8a, 0x29, 0x13, 0x4e, 0x61, 0x35, 0xb7, 0x7e, + 0xdd, 0x9d, 0x53, 0x13, 0x6d, 0x25, 0xdf, 0xa3, 0x4c, 0xc0, 0x07, 0x40, 0x8b, 0xd0, 0x40, 0x88, + 0x58, 0x6b, 0x5e, 0x57, 0x9a, 0x65, 0x25, 0xde, 0x16, 0x22, 0x56, 0x7a, 0x5b, 0x60, 0xce, 0xa3, + 0x51, 0x44, 0x3c, 0x81, 0x44, 0x30, 0x24, 0x34, 0x11, 0xce, 0x8d, 0xd5, 0xdc, 0x7a, 0x71, 0xf3, + 0x56, 0x55, 0x7b, 0xa6, 0x9a, 0x7a, 0xa6, 0xda, 0x30, 0x9e, 0x73, 0x67, 0x0d, 0xa2, 0xab, 0x01, + 0xf0, 0x2b, 0x50, 0x51, 0x4a, 0x1e, 0x0d, 0x91, 0x4f, 0x04, 0xf1, 0xd4, 0xee, 0x53, 0xba, 0x47, + 0x97, 0xd1, 0x39, 0x29, 0xb8, 0x91, 0x62, 0x53, 0x62, 0x0a, 0xca, 0xc2, 0x8b, 0xd1, 0x11, 0x21, + 0x31, 0x0e, 0x83, 0x63, 0xe2, 0xbc, 0xa7, 0xb8, 0x5a, 0x55, 0xfd, 0xa5, 0xc7, 0xfe, 0x4f, 0xbf, + 0xf7, 0xd3, 0x6a, 0x5d, 0x2f, 0x2d, 0xa0, 0xd1, 0x1e, 0xa5, 0xe1, 0x3e, 0x11, 0x22, 0x88, 0xfa, + 0xbc, 0xda, 0xad, 0xef, 0x8d, 0x7f, 0x7b, 0xf1, 0x97, 0x29, 0xa3, 0x5b, 0x12, 0x99, 0x11, 0x7c, + 0x1f, 0x94, 0x83, 0xa8, 0xcf, 0x08, 0xe7, 0xc8, 0x0b, 0x31, 0xe7, 0xce, 0xf4, 0x6a, 0x6e, 0x7d, + 0xc6, 0x2d, 0x19, 0x61, 0x5d, 0xca, 0xe0, 0x43, 0x30, 0x97, 0x2a, 0x71, 0xc2, 0x8e, 0x03, 0x8f, + 0x38, 0x96, 0x52, 0x9b, 0x35, 0xe2, 0x7d, 0x2d, 0x85, 0x43, 0x70, 0x73, 0xc4, 0x46, 0x23, 0xc1, + 0x68, 0x18, 0x12, 0x86, 0x86, 0xd4, 0x27, 0xce, 0xcc, 0x6a, 0x6e, 0x7d, 0x76, 0xf3, 0x93, 0xea, + 0x84, 0x23, 0x5b, 0x1d, 0x7f, 0xf1, 0xea, 0x8e, 0xb1, 0x3b, 0x42, 0xbf, 0xa2, 0x3e, 0x71, 0x97, + 0x82, 0x49, 0x62, 0xf8, 0x21, 0xb0, 0xc7, 0xeb, 0x0a, 0x89, 0x27, 0x28, 0x73, 0x3e, 0x56, 0x0b, + 0x9b, 0x1b, 0x2d, 0x4c, 0x8b, 0xe1, 0x7d, 0x30, 0x4b, 0x22, 0x7c, 0x18, 0x12, 0x24, 0x18, 0xf6, + 0x82, 0xa8, 0xef, 0x94, 0x56, 0x73, 0xeb, 0x96, 0x5b, 0xd6, 0xd2, 0xae, 0x16, 0xca, 0x43, 0x84, + 0x3d, 0x4f, 0x12, 0x86, 0xb4, 0x8f, 0x7a, 0x41, 0x48, 0x9c, 0xb2, 0x22, 0x2c, 0x6b, 0x71, 0x9b, + 0xf6, 0x5f, 0x04, 0x21, 0x91, 0x07, 0x33, 0xab, 0x47, 0xd9, 0x10, 0x0b, 0xc7, 0xd1, 0xa6, 0xc7, + 0x9a, 0x4a, 0x0c, 0x31, 0x58, 0xc8, 0xe8, 0x92, 0xc8, 0xa3, 0xbe, 0xb4, 0x7f, 0x5b, 0x39, 0xe4, + 0xc9, 0x65, 0x0e, 0xa9, 0xa5, 0x6c, 0x4d, 0x03, 0x74, 0xe7, 0xf1, 0x79, 0x11, 0x6c, 0x80, 0xbb, + 0x66, 0x77, 0x24, 0x3a, 0xa6, 0xa7, 0x28, 0x63, 0x2f, 0xfd, 0x60, 0xeb, 0x6a, 0xbb, 0xb7, 0xb5, + 0x5a, 0x53, 0x6a, 0x8d, 0x98, 0xd3, 0xaf, 0xf7, 0x05, 0xa8, 0xf8, 0x01, 0xcf, 0xd0, 0xe8, 0x5b, + 0x47, 0x98, 0x24, 0x72, 0x9e, 0x2b, 0x82, 0x9b, 0x46, 0x43, 0x31, 0xb4, 0xcd, 0x7c, 0x9b, 0xf6, + 0xe1, 0x4b, 0x30, 0xeb, 0x93, 0x1e, 0x4e, 0x42, 0x81, 0x74, 0x8c, 0x72, 0x66, 0xd5, 0xd1, 0x5d, + 0x9d, 0xb8, 0xc1, 0x3d, 0x79, 0x25, 0xf5, 0x0e, 0xdd, 0xb2, 0xc1, 0x99, 0x3b, 0x3f, 0x04, 0x37, + 0x69, 0x22, 0x0e, 0x69, 0x12, 0xf9, 0xf2, 0x5b, 0xf5, 0x7a, 0x81, 0x87, 0x62, 0x1a, 0x06, 0xde, + 0xa9, 0x33, 0xaf, 0x18, 0x2f, 0x3d, 0x43, 0x1d, 0x03, 0xef, 0x6a, 0xf4, 0x9e, 0x02, 0xbb, 0x4b, + 0x74, 0x92, 0x18, 0x6e, 0x83, 0x59, 0xbd, 0x5e, 0xc4, 0x69, 0xc2, 0x3c, 0xc2, 0x9d, 0xe5, 0xd5, + 0xa9, 0xf5, 0xe2, 0xe6, 0xbd, 0x89, 0x56, 0xb4, 0x85, 0x7d, 0xa5, 0xe9, 0x96, 0xbd, 0xcc, 0x88, + 0xc3, 0x06, 0xb0, 0xcd, 0x47, 0xc0, 0x89, 0xa0, 0x68, 0x28, 0x42, 0xee, 0xfc, 0x9b, 0x5a, 0x71, + 0xe5, 0x42, 0x28, 0xd8, 0xa2, 0x34, 0x7c, 0x8d, 0xc3, 0x84, 0xb8, 0xe6, 0x58, 0xd6, 0x12, 0x41, + 0x5f, 0x89, 0x90, 0xc3, 0x7b, 0xa0, 0x24, 0x58, 0xc2, 0x05, 0xf2, 0xe9, 0x10, 0x07, 0x91, 0x53, + 0x51, 0x87, 0xaa, 0xa8, 0x64, 0x0d, 0x25, 0x82, 0x1f, 0x81, 0xc5, 0xac, 0x0a, 0xc2, 0x61, 0x80, + 0x39, 0xe1, 0x4e, 0x75, 0x75, 0x6a, 0x7d, 0xc6, 0x85, 0x19, 0xd5, 0x9a, 0x9e, 0x81, 0x5f, 0x83, + 0x39, 0x0f, 0x23, 0x8f, 0x30, 0x11, 0xf4, 0x02, 0x0f, 0x0b, 0xc2, 0x9d, 0xcf, 0xd5, 0x2e, 0x37, + 0x2e, 0xf3, 0x65, 0x7d, 0x8c, 0x69, 0x60, 0x81, 0xdd, 0x59, 0x0f, 0x67, 0x44, 0x1c, 0x7e, 0x06, + 0x6e, 0xa5, 0x9f, 0xdd, 0x9c, 0x34, 0x44, 0x4e, 0x64, 0xf0, 0x45, 0x82, 0x3a, 0x77, 0xd5, 0x82, + 0x96, 0x8d, 0x82, 0x39, 0x66, 0x4d, 0x35, 0xdd, 0xa5, 0x70, 0x1b, 0xdc, 0x4b, 0xa1, 0xc7, 0x01, + 0x13, 0x09, 0x0e, 0x27, 0x50, 0xac, 0x2a, 0x8a, 0x3b, 0x46, 0xf1, 0xb5, 0xd6, 0x3b, 0xcf, 0xd4, + 0x02, 0x6b, 0x29, 0xd3, 0xf9, 0x6c, 0x94, 0xa1, 0xba, 0xa7, 0xa8, 0x56, 0x8c, 0x66, 0x63, 0xac, + 0xe8, 0x26, 0xe1, 0x98, 0xeb, 0x3e, 0x98, 0x65, 0x94, 0x0a, 0x14, 0xe1, 0x21, 0xe1, 0x31, 0xf6, + 0x88, 0xb3, 0xa6, 0x03, 0x80, 0x94, 0xee, 0xa6, 0x42, 0xd8, 0x03, 0x0b, 0x21, 0xf5, 0x70, 0x18, + 0x88, 0x53, 0x14, 0x1e, 0x22, 0xae, 0x43, 0xad, 0xf3, 0xbe, 0xfa, 0xde, 0xcf, 0xde, 0x11, 0xae, + 0xdb, 0x06, 0xd5, 0xa6, 0xd8, 0xdf, 0xc2, 0x21, 0x8e, 0x3c, 0xc2, 0x4c, 0xa0, 0x76, 0xe7, 0x53, + 0xca, 0xf6, 0xa1, 0x11, 0xc1, 0x3a, 0xb0, 0xfd, 0x88, 0x23, 0x46, 0x7a, 0x8c, 0xf0, 0x01, 0x92, + 0xb9, 0xd2, 0xf9, 0xe0, 0xd2, 0x74, 0xe5, 0x47, 0xdc, 0xd5, 0x08, 0x17, 0x0b, 0x02, 0xbf, 0x03, + 0xf3, 0x83, 0x4d, 0x94, 0xc4, 0x7d, 0x86, 0x7d, 0x92, 0x5e, 0xa6, 0x0f, 0x55, 0xfc, 0xb9, 0xf4, + 0x00, 0x6c, 0x6f, 0x1e, 0x68, 0x9c, 0xb9, 0x46, 0x73, 0x83, 0xb3, 0x02, 0x79, 0x02, 0x82, 0x48, + 0x5f, 0x57, 0x2f, 0x4c, 0xb8, 0x20, 0x0c, 0x71, 0x81, 0xb5, 0x03, 0x9d, 0xc7, 0xca, 0x77, 0xcb, + 0x46, 0xa1, 0xae, 0xe7, 0xf7, 0x05, 0x56, 0x9e, 0x94, 0x01, 0x67, 0x74, 0xd5, 0x2f, 0x62, 0xff, + 0x5d, 0x61, 0x47, 0xc1, 0xe0, 0x3c, 0xb8, 0x01, 0x4a, 0x67, 0x0e, 0xf4, 0x86, 0x3a, 0xd0, 0x93, + 0xc3, 0x4d, 0xe6, 0xc8, 0xba, 0x67, 0x50, 0xf0, 0xbf, 0x41, 0x59, 0x0c, 0x58, 0xd0, 0x1b, 0x45, + 0xad, 0x27, 0xca, 0xb9, 0x8f, 0x2f, 0x73, 0x4b, 0x57, 0x81, 0x4c, 0x04, 0x2b, 0x89, 0xcc, 0x08, + 0x7e, 0x0b, 0xec, 0xf4, 0x1c, 0x9b, 0x63, 0xc1, 0x9d, 0xcd, 0x5f, 0x76, 0xdb, 0xcc, 0xc1, 0x4e, + 0x13, 0xb7, 0x3b, 0xc7, 0xcf, 0x0a, 0xa0, 0x0b, 0x6e, 0x9a, 0x18, 0x13, 0x33, 0x3a, 0x24, 0x62, + 0x40, 0x12, 0x8e, 0x86, 0x84, 0xf5, 0x89, 0xf3, 0xf4, 0xd2, 0x50, 0xb3, 0xa4, 0xa1, 0x7b, 0x23, + 0xe4, 0x2b, 0x09, 0x84, 0xdf, 0x81, 0xf7, 0x8e, 0x09, 0x0b, 0x7a, 0xa7, 0xd9, 0x00, 0x81, 0xb0, + 0x40, 0x5e, 0x18, 0x90, 0x48, 0x38, 0xcf, 0x2e, 0x25, 0xbe, 0xa5, 0xf1, 0x19, 0x2f, 0xd7, 0x44, + 0x5d, 0x81, 0xe1, 0x26, 0xc8, 0x7b, 0xd8, 0xf9, 0x54, 0x51, 0xac, 0x5d, 0x1a, 0x6c, 0x6a, 0x6e, + 0xde, 0xc3, 0xf0, 0x10, 0x2c, 0x90, 0x13, 0x41, 0x22, 0x2e, 0x2f, 0x71, 0xcc, 0xe8, 0x71, 0xe0, + 0x13, 0xc6, 0x9d, 0xcf, 0x94, 0x0f, 0x2f, 0x4d, 0x98, 0xcd, 0x14, 0xba, 0x67, 0x90, 0x2e, 0x24, + 0xe7, 0x45, 0x1c, 0x7e, 0x0f, 0xe6, 0xd3, 0x90, 0x31, 0xb6, 0xf0, 0x1f, 0x6a, 0x99, 0x1f, 0x5d, + 0x66, 0xa1, 0xa1, 0x81, 0x23, 0x32, 0xd7, 0xf6, 0xcf, 0x49, 0xa0, 0x0f, 0x16, 0xfc, 0x80, 0x7b, + 0xf4, 0x98, 0xb0, 0xd3, 0xd1, 0xdb, 0x84, 0x3b, 0x5f, 0xa8, 0x2d, 0x3c, 0xad, 0xea, 0xb7, 0x71, + 0x35, 0xfb, 0x36, 0xae, 0xc6, 0x47, 0x7d, 0x29, 0xe0, 0x55, 0xf9, 0x36, 0xae, 0x1e, 0x3f, 0xa9, + 0xb6, 0xf1, 0x21, 0x09, 0xd3, 0x07, 0x8c, 0x0b, 0x47, 0x7c, 0xa9, 0x88, 0x57, 0x7e, 0x9f, 0x03, + 0x4b, 0x13, 0x93, 0x1d, 0xdc, 0x05, 0x05, 0xf5, 0xea, 0xca, 0xa9, 0x4b, 0xfe, 0xf9, 0x3f, 0x94, + 0x31, 0xab, 0xea, 0xe9, 0xa5, 0x78, 0xd6, 0x1a, 0xa0, 0xa0, 0x5e, 0x5c, 0xf3, 0xa0, 0xec, 0x36, + 0x5f, 0xee, 0xec, 0x77, 0xdd, 0x6f, 0x50, 0x67, 0xb7, 0xfd, 0x8d, 0x7d, 0x0d, 0x96, 0xc1, 0x4c, + 0xad, 0xdd, 0xee, 0x7c, 0x85, 0x6a, 0xbb, 0xdf, 0xd8, 0xb9, 0xb5, 0x82, 0x95, 0xb7, 0xf3, 0x8f, + 0x16, 0x5f, 0xef, 0xb8, 0xdd, 0x83, 0x5a, 0x1b, 0xed, 0x37, 0xdd, 0xd7, 0x3b, 0xf5, 0xa6, 0x52, + 0xae, 0xf4, 0xc1, 0xdc, 0xb9, 0x7c, 0x02, 0x21, 0x98, 0x8a, 0xc9, 0x50, 0xad, 0x73, 0x66, 0xfb, + 0x9a, 0x2b, 0x07, 0xf0, 0x31, 0x98, 0xe7, 0x71, 0xd0, 0xeb, 0x11, 0x74, 0x98, 0x44, 0x7e, 0x48, + 0x50, 0xc2, 0x42, 0x27, 0x6f, 0x34, 0xe6, 0xf4, 0xd4, 0x96, 0x9a, 0x39, 0x60, 0xe1, 0x16, 0x04, + 0x76, 0xf6, 0xdc, 0xfa, 0x58, 0xe0, 0xca, 0xff, 0x82, 0x52, 0xf6, 0x82, 0xc2, 0x0f, 0xc0, 0xac, + 0x8c, 0x9c, 0x28, 0x0c, 0x86, 0x81, 0x50, 0x74, 0x39, 0xfd, 0xcc, 0x95, 0xd2, 0xb6, 0x14, 0x1e, + 0xb0, 0x10, 0xbe, 0x04, 0x30, 0xa3, 0x95, 0xbe, 0xe6, 0xf3, 0x97, 0x45, 0x5b, 0x7b, 0x44, 0x62, + 0x5e, 0xf1, 0x95, 0x3f, 0xe4, 0xc0, 0xdc, 0xb9, 0xab, 0x0c, 0xbb, 0xc0, 0x1a, 0x45, 0x83, 0x9c, + 0xa2, 0x7c, 0x7e, 0xc5, 0x68, 0x50, 0x1d, 0x85, 0x85, 0x11, 0x13, 0x5c, 0x04, 0xd7, 0x07, 0x94, + 0x0b, 0xee, 0xe4, 0x55, 0x72, 0xd3, 0x83, 0xca, 0x06, 0xb0, 0x46, 0x76, 0xdf, 0x07, 0xe5, 0x34, + 0xb4, 0xaa, 0xec, 0xa2, 0x8c, 0x5b, 0x6e, 0xc9, 0x08, 0x55, 0x3a, 0xaa, 0xfc, 0x98, 0x03, 0xf9, + 0x7a, 0x0d, 0x3a, 0x60, 0x1a, 0xfb, 0xbe, 0x7c, 0x37, 0x1b, 0xff, 0xa4, 0x43, 0xd8, 0x01, 0x25, + 0x11, 0xf2, 0x71, 0x3c, 0xcb, 0x9f, 0x89, 0x92, 0x13, 0xcb, 0x12, 0x75, 0xff, 0xbb, 0xed, 0xfd, + 0xd1, 0xaa, 0x8b, 0x22, 0xe4, 0xa3, 0x65, 0x6d, 0x81, 0x39, 0x46, 0xfe, 0x27, 0x21, 0x7c, 0xec, + 0xe8, 0xa9, 0x4b, 0xd3, 0x9a, 0x41, 0xa4, 0xc5, 0xd2, 0x5d, 0x50, 0x54, 0xf6, 0x7d, 0xc4, 0x03, + 0x9f, 0xa8, 0xba, 0xd0, 0x72, 0x81, 0x16, 0xed, 0x07, 0x3e, 0xa9, 0xfc, 0x6e, 0x01, 0xcc, 0x5f, + 0x08, 0x07, 0x10, 0x82, 0x82, 0xca, 0x2f, 0x7a, 0x8b, 0xea, 0x37, 0xfc, 0xff, 0x1c, 0x58, 0xd4, + 0x6f, 0x5e, 0x72, 0x22, 0xe4, 0xfb, 0x6d, 0xf0, 0x56, 0xd5, 0x91, 0x66, 0xa3, 0x5f, 0x5f, 0x39, + 0xe8, 0x54, 0xd5, 0x03, 0x59, 0x8a, 0x59, 0x84, 0xc3, 0x5a, 0x22, 0x06, 0x94, 0x05, 0x6f, 0xd5, + 0x3e, 0x54, 0x25, 0x6a, 0xd4, 0xb6, 0xaf, 0xb9, 0xf3, 0xc4, 0x68, 0x4a, 0xa5, 0xb7, 0x72, 0x72, + 0xe2, 0x6a, 0xfa, 0x2c, 0xf6, 0x8c, 0x8b, 0x7e, 0xd5, 0xd5, 0xbc, 0x64, 0xb1, 0xf7, 0xb3, 0xab, + 0x91, 0x93, 0x10, 0x83, 0x1b, 0x6f, 0x83, 0xf8, 0x28, 0x88, 0x94, 0x87, 0x8b, 0x9b, 0x2f, 0xaf, + 0x6e, 0xfe, 0x5b, 0x85, 0x37, 0x45, 0x56, 0xc6, 0x9a, 0x21, 0x86, 0x3f, 0x80, 0x99, 0x30, 0xe8, + 0x0f, 0x04, 0x17, 0x24, 0x56, 0x55, 0xfb, 0xb8, 0xe4, 0xbd, 0x82, 0x95, 0x76, 0x4a, 0x71, 0xd1, + 0xd0, 0x98, 0x1e, 0xfa, 0x60, 0x5a, 0xc6, 0x08, 0x9f, 0xf6, 0x4d, 0xdd, 0xbf, 0x7d, 0x75, 0x4b, + 0x0d, 0x4d, 0x70, 0xd1, 0x4e, 0x4a, 0x0d, 0x03, 0x50, 0xe4, 0x02, 0x7b, 0x47, 0x3e, 0x0b, 0x8e, + 0x09, 0x53, 0x55, 0x75, 0x71, 0xb3, 0x79, 0x75, 0x4b, 0xfb, 0x63, 0x92, 0x8c, 0x99, 0x2c, 0x37, + 0x64, 0x00, 0xd0, 0x98, 0x44, 0x1e, 0x89, 0x78, 0xc2, 0x55, 0x61, 0x5e, 0xdc, 0xdc, 0xbb, 0xba, + 0xa5, 0x4e, 0x4c, 0xa2, 0xba, 0xe2, 0xa8, 0xf5, 0xe5, 0xcd, 0xbd, 0xb0, 0xb7, 0x8c, 0x95, 0xca, + 0xdf, 0xf2, 0xe0, 0xc1, 0x2f, 0x3b, 0xe1, 0x32, 0xa8, 0xa4, 0x35, 0xa8, 0x09, 0x2a, 0x66, 0x28, + 0x2f, 0xa2, 0x6a, 0xd3, 0xc8, 0x3b, 0x56, 0x76, 0xd5, 0x6f, 0x79, 0xa7, 0x63, 0x2c, 0x06, 0x28, + 0x66, 0xa4, 0x17, 0x9c, 0xa8, 0x03, 0x3f, 0xe3, 0x02, 0x29, 0xda, 0x53, 0x12, 0x78, 0x1b, 0xcc, + 0xf4, 0x70, 0x10, 0x22, 0xb9, 0x18, 0x73, 0xe5, 0x2d, 0x29, 0x90, 0xcb, 0x97, 0xe5, 0xbb, 0x7c, + 0x3f, 0x26, 0x1c, 0xd1, 0x08, 0x11, 0xc6, 0x28, 0x53, 0xa7, 0x69, 0xc6, 0x2d, 0x6b, 0x71, 0x27, + 0x6a, 0x4a, 0x21, 0xfc, 0x14, 0x38, 0x41, 0xe4, 0x85, 0x89, 0x4f, 0xd0, 0x80, 0x60, 0x99, 0xb1, + 0x51, 0x10, 0x21, 0x6f, 0x40, 0xbc, 0x23, 0xe7, 0x86, 0x8a, 0xa4, 0x4b, 0x66, 0x7e, 0x5b, 0x4f, + 0xef, 0x44, 0x75, 0x39, 0x09, 0xff, 0x13, 0xbc, 0x97, 0x02, 0x04, 0x45, 0x49, 0xcc, 0x05, 0x23, + 0x78, 0x28, 0xad, 0xe1, 0x30, 0xa4, 0x6f, 0x9c, 0x69, 0x05, 0x76, 0x8c, 0x4e, 0x97, 0x1e, 0x18, + 0x8d, 0x4e, 0x54, 0x93, 0xf3, 0xf0, 0xbf, 0xc0, 0x9d, 0x0c, 0xde, 0xa7, 0x6f, 0xa2, 0x31, 0x83, + 0x4f, 0xa2, 0x53, 0xc7, 0x52, 0x04, 0xb7, 0x46, 0x04, 0x8d, 0x91, 0x4a, 0x27, 0x6a, 0x90, 0xe8, + 0xb4, 0xf2, 0xdb, 0xdc, 0xbb, 0x3c, 0x9f, 0xbd, 0xcd, 0x57, 0xf4, 0xfc, 0x19, 0xc7, 0x4e, 0x5d, + 0xee, 0xd8, 0xc2, 0x04, 0xc7, 0x56, 0x8e, 0xc0, 0xd2, 0xc4, 0xbb, 0x7e, 0xc5, 0xb5, 0x7c, 0x00, + 0x66, 0x87, 0xf8, 0x04, 0x09, 0xdc, 0x47, 0x21, 0x89, 0xfa, 0x62, 0xa0, 0x16, 0x54, 0x76, 0x4b, + 0x43, 0x7c, 0xd2, 0xc5, 0xfd, 0xb6, 0x92, 0x55, 0x7e, 0x93, 0x03, 0xce, 0xcf, 0xdd, 0xf9, 0x2b, + 0x1a, 0xbc, 0x07, 0x4a, 0xa6, 0x67, 0x22, 0xe8, 0x91, 0xd9, 0xff, 0x8c, 0x5b, 0xd4, 0xb2, 0xae, + 0x14, 0x4d, 0x58, 0x53, 0x61, 0xc2, 0x9a, 0x42, 0xb0, 0x3c, 0x39, 0x38, 0xfc, 0x53, 0x3c, 0xf0, + 0x97, 0x3c, 0x58, 0x98, 0x10, 0x21, 0xe4, 0xb3, 0xc0, 0x27, 0x87, 0x49, 0xdf, 0x24, 0x7b, 0x3d, + 0x80, 0x5d, 0xe0, 0x48, 0xce, 0x28, 0x19, 0x1e, 0x12, 0x86, 0x68, 0x0f, 0x61, 0x21, 0x58, 0x70, + 0x98, 0xc8, 0xea, 0x49, 0xe7, 0xb9, 0xdb, 0x17, 0x92, 0xef, 0x4e, 0x24, 0x9e, 0x7d, 0x6c, 0xca, + 0x87, 0x21, 0x3e, 0xd9, 0x55, 0xd8, 0x4e, 0xaf, 0x36, 0x42, 0xc2, 0xd7, 0xe0, 0xd6, 0x39, 0xd6, + 0x28, 0xa2, 0x42, 0x9d, 0x46, 0x6e, 0x12, 0xd6, 0x3b, 0x69, 0x97, 0xb3, 0xb4, 0x63, 0xa8, 0x2c, + 0x4b, 0xce, 0xf2, 0x0e, 0x09, 0xe7, 0xb8, 0x4f, 0x10, 0x39, 0x26, 0x91, 0xe0, 0x26, 0x19, 0xbd, + 0x93, 0xda, 0xc9, 0x50, 0xbf, 0xd2, 0xe8, 0xa6, 0x02, 0x4f, 0x70, 0xef, 0xf5, 0x09, 0xee, 0xfd, + 0x31, 0x0f, 0x56, 0xde, 0x1d, 0x16, 0xaf, 0xf8, 0x55, 0xdf, 0x80, 0x69, 0x8f, 0x46, 0x82, 0x9c, + 0xc8, 0xd7, 0xce, 0xd4, 0xfa, 0xec, 0xe6, 0xf7, 0xbf, 0x76, 0x9c, 0xae, 0xca, 0x31, 0xa9, 0x6b, + 0x23, 0x6e, 0x6a, 0xed, 0x97, 0x1d, 0xde, 0x35, 0x02, 0x4a, 0x59, 0x38, 0x9c, 0x03, 0xc5, 0x83, + 0xdd, 0xfd, 0xbd, 0x66, 0x7d, 0xe7, 0xc5, 0x4e, 0xb3, 0x61, 0x5f, 0x83, 0x4b, 0x60, 0xfe, 0xab, + 0xa7, 0x75, 0xd4, 0x75, 0x6b, 0xf5, 0x26, 0xaa, 0x77, 0x76, 0xbb, 0xcd, 0xaf, 0xbb, 0x76, 0x0e, + 0x96, 0x80, 0xf5, 0xd2, 0xdd, 0xab, 0xa3, 0xad, 0x9d, 0x5d, 0x3b, 0x0f, 0x6f, 0x82, 0x85, 0x7a, + 0xbb, 0x73, 0xd0, 0x38, 0xa7, 0x36, 0x05, 0x6f, 0x80, 0xfc, 0xd6, 0x53, 0xbb, 0xb0, 0x05, 0x80, + 0x95, 0xd6, 0x5c, 0x95, 0xc7, 0xc0, 0x3e, 0x5f, 0x4e, 0x49, 0x9f, 0xa6, 0x4d, 0x5a, 0xe3, 0x53, + 0x33, 0x5c, 0x6b, 0x81, 0xa5, 0x89, 0x0d, 0xe2, 0x8b, 0x2b, 0x9d, 0x06, 0x53, 0x9d, 0x17, 0x2f, + 0xec, 0x1c, 0x2c, 0x82, 0xe9, 0x46, 0xf3, 0x45, 0xed, 0xa0, 0xdd, 0xb5, 0xf3, 0x10, 0x80, 0x1b, + 0xfb, 0x5d, 0x77, 0xa7, 0xde, 0xb5, 0xa7, 0xd6, 0x1e, 0x00, 0x20, 0x43, 0xa7, 0x29, 0x98, 0x2c, + 0x50, 0xd8, 0xed, 0xec, 0x36, 0xed, 0x6b, 0x70, 0x16, 0x80, 0x57, 0x07, 0xaa, 0x76, 0xe9, 0xb6, + 0xf7, 0xed, 0xdc, 0xda, 0x43, 0x30, 0x7f, 0xa1, 0x07, 0x2b, 0xd5, 0xd5, 0xa6, 0xae, 0xc9, 0x5f, + 0xad, 0xfd, 0xce, 0xae, 0x9d, 0x5b, 0xdb, 0x04, 0x73, 0xe7, 0x9a, 0x25, 0x10, 0x82, 0xd9, 0x46, + 0x07, 0xed, 0x76, 0xba, 0xe8, 0x60, 0xef, 0xa5, 0x5b, 0x6b, 0x48, 0xfe, 0x22, 0x98, 0x4e, 0x07, + 0xb9, 0x56, 0xc1, 0xca, 0xd9, 0xf9, 0x96, 0xac, 0x99, 0xa6, 0x5a, 0x05, 0x6b, 0xca, 0x2e, 0xb4, + 0x0a, 0xd6, 0x47, 0xf6, 0x93, 0x56, 0xc1, 0xba, 0x65, 0x57, 0x5a, 0x05, 0x6b, 0xc5, 0xbe, 0xdb, + 0x2a, 0x58, 0xc0, 0x2e, 0xb6, 0x0a, 0x56, 0xd1, 0x2e, 0xb5, 0x0a, 0xd6, 0x9c, 0x6d, 0xb7, 0x0a, + 0x96, 0x6d, 0xcf, 0xb7, 0x0a, 0x16, 0xb4, 0x17, 0x5a, 0x05, 0x6b, 0xc1, 0x5e, 0x6c, 0x15, 0xac, + 0x45, 0x7b, 0xa9, 0x55, 0xb0, 0x96, 0xec, 0xe5, 0x56, 0xc1, 0xba, 0x69, 0x3b, 0xad, 0x82, 0x75, + 0xc7, 0x5e, 0x69, 0x15, 0xac, 0x4f, 0xec, 0x67, 0xad, 0x82, 0x75, 0xdf, 0x7e, 0xd0, 0x2a, 0x58, + 0x0f, 0xec, 0x87, 0xad, 0x82, 0xf5, 0xd0, 0x5e, 0x77, 0xe1, 0x30, 0x38, 0x21, 0x4c, 0x67, 0x3c, + 0xd5, 0x75, 0x23, 0xcc, 0x5d, 0xd0, 0x32, 0x46, 0x54, 0xc3, 0xcc, 0x08, 0x97, 0xd2, 0x8e, 0xb0, + 0xee, 0x1a, 0x69, 0x04, 0x77, 0x47, 0x8d, 0x62, 0x8d, 0x51, 0x7f, 0xb9, 0x68, 0x20, 0x77, 0x97, + 0xb3, 0xaa, 0x68, 0x94, 0x53, 0xdc, 0xfb, 0xf2, 0x95, 0xee, 0x61, 0x26, 0x33, 0x9f, 0x20, 0x21, + 0x19, 0x12, 0xa1, 0x8a, 0x63, 0xae, 0xea, 0x7c, 0x59, 0x78, 0x46, 0x81, 0x38, 0x75, 0x8b, 0xf2, + 0xbd, 0x6b, 0xcc, 0xb9, 0xf3, 0xcc, 0x1f, 0x37, 0xbf, 0x7c, 0x12, 0xe2, 0x53, 0xb7, 0xac, 0x4d, + 0x9a, 0xca, 0xc4, 0x4d, 0x1b, 0xdf, 0xba, 0x59, 0xa1, 0x2a, 0x81, 0x33, 0x6b, 0x75, 0x4b, 0xdc, + 0xe7, 0x28, 0xf1, 0x39, 0x92, 0x8f, 0x08, 0x77, 0x9e, 0x5f, 0x20, 0x5c, 0x36, 0x0c, 0x72, 0x46, + 0x45, 0x7f, 0x34, 0xa4, 0x49, 0x24, 0x5c, 0xa8, 0x80, 0x9c, 0xa0, 0xa3, 0xe7, 0x1c, 0x71, 0x8c, + 0x7e, 0x78, 0x23, 0xdc, 0x8a, 0x20, 0x6c, 0x98, 0xf6, 0x17, 0x7d, 0x86, 0x83, 0x08, 0xa5, 0x7f, + 0xaf, 0xb9, 0x8b, 0xa9, 0x4f, 0x8c, 0x07, 0x0f, 0xb1, 0xf0, 0x06, 0xae, 0x93, 0x1d, 0x21, 0x79, + 0x09, 0x49, 0x24, 0x58, 0x40, 0xb8, 0xbb, 0x74, 0x61, 0x46, 0x56, 0x42, 0x6b, 0x7f, 0xca, 0x81, + 0x52, 0xb6, 0xcd, 0xfc, 0xaf, 0xac, 0xca, 0xf6, 0xc0, 0x22, 0x4f, 0x0e, 0xb9, 0xc7, 0x82, 0x43, + 0xe2, 0x23, 0x46, 0xd2, 0x96, 0xb8, 0x0e, 0x56, 0x77, 0x26, 0x06, 0x2b, 0xd7, 0x68, 0xb9, 0x0b, + 0x63, 0x68, 0x2a, 0xe3, 0x6b, 0x5f, 0x82, 0x62, 0xa6, 0xe4, 0x97, 0xcf, 0x3b, 0x4e, 0x3c, 0x46, + 0x4c, 0x8b, 0x4f, 0xef, 0x07, 0x68, 0x91, 0xea, 0xea, 0xdd, 0x06, 0x33, 0x7e, 0xc4, 0x75, 0xf7, + 0xd5, 0x14, 0xb5, 0x96, 0x1f, 0x71, 0xd5, 0x78, 0x7d, 0xb4, 0x0a, 0xac, 0x94, 0x19, 0x2e, 0x02, + 0x3b, 0xed, 0x2d, 0xa4, 0x1d, 0x09, 0xfb, 0xda, 0xd6, 0xfa, 0x1f, 0x7f, 0x5a, 0xc9, 0xfd, 0xf9, + 0xa7, 0x95, 0xdc, 0x5f, 0x7f, 0x5a, 0xc9, 0x7d, 0x5b, 0xd1, 0xeb, 0xd5, 0xff, 0x42, 0x6e, 0x9c, + 0xf9, 0x5f, 0xf3, 0xf0, 0x86, 0x4a, 0x18, 0x4f, 0xff, 0x1e, 0x00, 0x00, 0xff, 0xff, 0x88, 0xa9, + 0x7c, 0xe4, 0x60, 0x1d, 0x00, 0x00, } func (m *MeshConfig) Marshal() (dAtA []byte, err error) { @@ -1886,6 +2522,20 @@ func (m *MeshConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.DefaultProviders != nil { + { + size, err := m.DefaultProviders.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xe2 + } if len(m.DiscoverySelectors) > 0 { for iNdEx := len(m.DiscoverySelectors) - 1; iNdEx >= 0; iNdEx-- { { @@ -2711,6 +3361,111 @@ func (m *MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc) MarshalToSizedBuffer(dA } return len(dAtA) - i, nil } +func (m *MeshConfig_ExtensionProvider_Zipkin) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_Zipkin) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Zipkin != nil { + { + size, err := m.Zipkin.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *MeshConfig_ExtensionProvider_Lightstep) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_Lightstep) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Lightstep != nil { + { + size, err := m.Lightstep.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *MeshConfig_ExtensionProvider_Datadog) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_Datadog) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Datadog != nil { + { + size, err := m.Datadog.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *MeshConfig_ExtensionProvider_Stackdriver) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_Stackdriver) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Stackdriver != nil { + { + size, err := m.Stackdriver.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *MeshConfig_ExtensionProvider_Opencensus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_Opencensus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Opencensus != nil { + { + size, err := m.Opencensus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} func (m *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2857,6 +3612,319 @@ func (m *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) Ma return len(dAtA) - i, nil } +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.MaxTagLength != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.MaxTagLength)) + i-- + dAtA[i] = 0x18 + } + if m.Port != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.Port)) + i-- + dAtA[i] = 0x10 + } + if len(m.Service) > 0 { + i -= len(m.Service) + copy(dAtA[i:], m.Service) + i = encodeVarintConfig(dAtA, i, uint64(len(m.Service))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.MaxTagLength != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.MaxTagLength)) + i-- + dAtA[i] = 0x20 + } + if len(m.AccessToken) > 0 { + i -= len(m.AccessToken) + copy(dAtA[i:], m.AccessToken) + i = encodeVarintConfig(dAtA, i, uint64(len(m.AccessToken))) + i-- + dAtA[i] = 0x1a + } + if m.Port != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.Port)) + i-- + dAtA[i] = 0x10 + } + if len(m.Service) > 0 { + i -= len(m.Service) + copy(dAtA[i:], m.Service) + i = encodeVarintConfig(dAtA, i, uint64(len(m.Service))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.MaxTagLength != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.MaxTagLength)) + i-- + dAtA[i] = 0x18 + } + if m.Port != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.Port)) + i-- + dAtA[i] = 0x10 + } + if len(m.Service) > 0 { + i -= len(m.Service) + copy(dAtA[i:], m.Service) + i = encodeVarintConfig(dAtA, i, uint64(len(m.Service))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.MaxTagLength != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.MaxTagLength)) + i-- + dAtA[i] = 0x28 + } + if m.MaxNumberOfMessageEvents != nil { + { + size, err := m.MaxNumberOfMessageEvents.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.MaxNumberOfAnnotations != nil { + { + size, err := m.MaxNumberOfAnnotations.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.MaxNumberOfAttributes != nil { + { + size, err := m.MaxNumberOfAttributes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintConfig(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Debug { + i-- + if m.Debug { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.MaxTagLength != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.MaxTagLength)) + i-- + dAtA[i] = 0x20 + } + if len(m.Context) > 0 { + dAtA29 := make([]byte, len(m.Context)*10) + var j28 int + for _, num := range m.Context { + for num >= 1<<7 { + dAtA29[j28] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j28++ + } + dAtA29[j28] = uint8(num) + j28++ + } + i -= j28 + copy(dAtA[i:], dAtA29[:j28]) + i = encodeVarintConfig(dAtA, i, uint64(j28)) + i-- + dAtA[i] = 0x1a + } + if m.Port != 0 { + i = encodeVarintConfig(dAtA, i, uint64(m.Port)) + i-- + dAtA[i] = 0x10 + } + if len(m.Service) > 0 { + i -= len(m.Service) + copy(dAtA[i:], m.Service) + i = encodeVarintConfig(dAtA, i, uint64(len(m.Service))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MeshConfig_DefaultProviders) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MeshConfig_DefaultProviders) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeshConfig_DefaultProviders) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Tracing) > 0 { + i -= len(m.Tracing) + copy(dAtA[i:], m.Tracing) + i = encodeVarintConfig(dAtA, i, uint64(len(m.Tracing))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *ConfigSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2882,20 +3950,20 @@ func (m *ConfigSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.SubscribedResources) > 0 { - dAtA20 := make([]byte, len(m.SubscribedResources)*10) - var j19 int + dAtA31 := make([]byte, len(m.SubscribedResources)*10) + var j30 int for _, num := range m.SubscribedResources { for num >= 1<<7 { - dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) + dAtA31[j30] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j19++ + j30++ } - dAtA20[j19] = uint8(num) - j19++ + dAtA31[j30] = uint8(num) + j30++ } - i -= j19 - copy(dAtA[i:], dAtA20[:j19]) - i = encodeVarintConfig(dAtA, i, uint64(j19)) + i -= j30 + copy(dAtA[i:], dAtA31[:j30]) + i = encodeVarintConfig(dAtA, i, uint64(j30)) i-- dAtA[i] = 0x1a } @@ -3149,6 +4217,10 @@ func (m *MeshConfig) Size() (n int) { n += 2 + l + sovConfig(uint64(l)) } } + if m.DefaultProviders != nil { + l = m.DefaultProviders.Size() + n += 2 + l + sovConfig(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -3332,6 +4404,66 @@ func (m *MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc) Size() (n int) { } return n } +func (m *MeshConfig_ExtensionProvider_Zipkin) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Zipkin != nil { + l = m.Zipkin.Size() + n += 1 + l + sovConfig(uint64(l)) + } + return n +} +func (m *MeshConfig_ExtensionProvider_Lightstep) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Lightstep != nil { + l = m.Lightstep.Size() + n += 1 + l + sovConfig(uint64(l)) + } + return n +} +func (m *MeshConfig_ExtensionProvider_Datadog) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Datadog != nil { + l = m.Datadog.Size() + n += 1 + l + sovConfig(uint64(l)) + } + return n +} +func (m *MeshConfig_ExtensionProvider_Stackdriver) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Stackdriver != nil { + l = m.Stackdriver.Size() + n += 1 + l + sovConfig(uint64(l)) + } + return n +} +func (m *MeshConfig_ExtensionProvider_Opencensus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Opencensus != nil { + l = m.Opencensus.Size() + n += 1 + l + sovConfig(uint64(l)) + } + return n +} func (m *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) Size() (n int) { if m == nil { return 0 @@ -3406,6 +4538,151 @@ func (m *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) Si return n } +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Service) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + if m.Port != 0 { + n += 1 + sovConfig(uint64(m.Port)) + } + if m.MaxTagLength != 0 { + n += 1 + sovConfig(uint64(m.MaxTagLength)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Service) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + if m.Port != 0 { + n += 1 + sovConfig(uint64(m.Port)) + } + l = len(m.AccessToken) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + if m.MaxTagLength != 0 { + n += 1 + sovConfig(uint64(m.MaxTagLength)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Service) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + if m.Port != 0 { + n += 1 + sovConfig(uint64(m.Port)) + } + if m.MaxTagLength != 0 { + n += 1 + sovConfig(uint64(m.MaxTagLength)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Debug { + n += 2 + } + if m.MaxNumberOfAttributes != nil { + l = m.MaxNumberOfAttributes.Size() + n += 1 + l + sovConfig(uint64(l)) + } + if m.MaxNumberOfAnnotations != nil { + l = m.MaxNumberOfAnnotations.Size() + n += 1 + l + sovConfig(uint64(l)) + } + if m.MaxNumberOfMessageEvents != nil { + l = m.MaxNumberOfMessageEvents.Size() + n += 1 + l + sovConfig(uint64(l)) + } + if m.MaxTagLength != 0 { + n += 1 + sovConfig(uint64(m.MaxTagLength)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Service) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + if m.Port != 0 { + n += 1 + sovConfig(uint64(m.Port)) + } + if len(m.Context) > 0 { + l = 0 + for _, e := range m.Context { + l += sovConfig(uint64(e)) + } + n += 1 + sovConfig(uint64(l)) + l + } + if m.MaxTagLength != 0 { + n += 1 + sovConfig(uint64(m.MaxTagLength)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MeshConfig_DefaultProviders) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Tracing) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *ConfigSource) Size() (n int) { if m == nil { return 0 @@ -4697,6 +5974,42 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 60: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultProviders", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DefaultProviders == nil { + m.DefaultProviders = &MeshConfig_DefaultProviders{} + } + if err := m.DefaultProviders.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipConfig(dAtA[iNdEx:]) @@ -5519,6 +6832,181 @@ func (m *MeshConfig_ExtensionProvider) Unmarshal(dAtA []byte) error { } m.Provider = &MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc{v} iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zipkin", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MeshConfig_ExtensionProvider_ZipkinTracingProvider{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Provider = &MeshConfig_ExtensionProvider_Zipkin{v} + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Lightstep", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MeshConfig_ExtensionProvider_LightstepTracingProvider{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Provider = &MeshConfig_ExtensionProvider_Lightstep{v} + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Datadog", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MeshConfig_ExtensionProvider_DatadogTracingProvider{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Provider = &MeshConfig_ExtensionProvider_Datadog{v} + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stackdriver", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MeshConfig_ExtensionProvider_StackdriverProvider{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Provider = &MeshConfig_ExtensionProvider_Stackdriver{v} + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Opencensus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Provider = &MeshConfig_ExtensionProvider_Opencensus{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipConfig(dAtA[iNdEx:]) @@ -5977,6 +7465,872 @@ func (m *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) Un } return nil } +func (m *MeshConfig_ExtensionProvider_ZipkinTracingProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ZipkinTracingProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZipkinTracingProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Service = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + m.Port = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Port |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxTagLength", wireType) + } + m.MaxTagLength = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxTagLength |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeshConfig_ExtensionProvider_LightstepTracingProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LightstepTracingProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LightstepTracingProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Service = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + m.Port = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Port |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccessToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AccessToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxTagLength", wireType) + } + m.MaxTagLength = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxTagLength |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeshConfig_ExtensionProvider_DatadogTracingProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DatadogTracingProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DatadogTracingProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Service = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + m.Port = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Port |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxTagLength", wireType) + } + m.MaxTagLength = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxTagLength |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeshConfig_ExtensionProvider_StackdriverProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StackdriverProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StackdriverProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Debug", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Debug = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxNumberOfAttributes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxNumberOfAttributes == nil { + m.MaxNumberOfAttributes = &types.Int64Value{} + } + if err := m.MaxNumberOfAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxNumberOfAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxNumberOfAnnotations == nil { + m.MaxNumberOfAnnotations = &types.Int64Value{} + } + if err := m.MaxNumberOfAnnotations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxNumberOfMessageEvents", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxNumberOfMessageEvents == nil { + m.MaxNumberOfMessageEvents = &types.Int64Value{} + } + if err := m.MaxNumberOfMessageEvents.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxTagLength", wireType) + } + m.MaxTagLength = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxTagLength |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenCensusAgentTracingProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenCensusAgentTracingProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Service = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + m.Port = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Port |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType == 0 { + var v MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Context = append(m.Context, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + if elementCount != 0 && len(m.Context) == 0 { + m.Context = make([]MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext, 0, elementCount) + } + for iNdEx < postIndex { + var v MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Context = append(m.Context, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Context", wireType) + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxTagLength", wireType) + } + m.MaxTagLength = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxTagLength |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeshConfig_DefaultProviders) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DefaultProviders: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DefaultProviders: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tracing", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthConfig + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tracing = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ConfigSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/mesh/v1alpha1/config.proto b/mesh/v1alpha1/config.proto index 8074a020..f771ef6f 100644 --- a/mesh/v1alpha1/config.proto +++ b/mesh/v1alpha1/config.proto @@ -473,6 +473,16 @@ message MeshConfig { EnvoyExternalAuthorizationHttpProvider envoy_ext_authz_http = 2; // Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API. EnvoyExternalAuthorizationGrpcProvider envoy_ext_authz_grpc = 3; + // Configures a tracing provider that uses the Zipkin API. + ZipkinTracingProvider zipkin = 4; + // Configures a Lightstep tracing provider. + LightstepTracingProvider lightstep = 5; + // Configures a Datadog tracing provider. + DatadogTracingProvider datadog = 6; + // Configures a Stackdriver provider. + StackdriverProvider stackdriver = 7; + // Configures an OpenCensusAgent tracing provider. + OpenCensusAgentTracingProvider opencensus = 8; } message EnvoyExternalAuthorizationHttpProvider { @@ -544,12 +554,151 @@ message MeshConfig { // The default status is "403" (HTTP Forbidden). string status_on_error = 4; } + + // Defines configuration for a Zipkin tracer. + message ZipkinTracingProvider { + // REQUIRED. Specifies the service that the Zipkin API. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "zipkin.default.svc.cluster.local" or "bar/zipkin.example.com". + string service = 1; + + // REQUIRED. Specifies the port of the service. + uint32 port = 2; + + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + uint32 max_tag_length = 3; + } + + // Defines configuration for a Lightstep tracer. + message LightstepTracingProvider { + // REQUIRED. Specifies the service for the Lightstep collector. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "lightstep.default.svc.cluster.local" or "bar/lightstep.example.com". + string service = 1; + + // REQUIRED. Specifies the port of the service. + uint32 port = 2; + + // The Lightstep access token. + string access_token = 3; + + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + uint32 max_tag_length = 4; + } + + // Defines configuration for a Datadog tracer. + message DatadogTracingProvider { + // REQUIRED. Specifies the service for the Datadog agent. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "datadog.default.svc.cluster.local" or "bar/datadog.example.com". + string service = 1; + + // REQUIRED. Specifies the port of the service. + uint32 port = 2; + + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + uint32 max_tag_length = 3; + } + + // Defines configuration for Stackdriver. + message StackdriverProvider { + // debug enables trace output to stdout. + // $hide_from_docs + bool debug = 1; + // The global default max number of attributes per span. + // default is 200. + // $hide_from_docs + google.protobuf.Int64Value max_number_of_attributes = 2; + // The global default max number of annotation events per span. + // default is 200. + // $hide_from_docs + google.protobuf.Int64Value max_number_of_annotations = 3; + // The global default max number of message events per span. + // default is 200. + // $hide_from_docs + google.protobuf.Int64Value max_number_of_message_events = 4; + + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + uint32 max_tag_length = 5; + } + + // Defines configuration for an OpenCensus tracer writing to an OpenCensus backend. + message OpenCensusAgentTracingProvider { + // REQUIRED. Specifies the service for the OpenCensusAgent. + // The format is "[/]". The specification of is required only when it is insufficient + // to unambiguously resolve a service in the service registry. The is a fully qualified host name of a + // service defined by the Kubernetes service or ServiceEntry. + // + // Example: "ocagent.default.svc.cluster.local" or "bar/ocagent.example.com". + string service = 1; + + // REQUIRED. Specifies the port of the service. + uint32 port = 2; + + // TraceContext selects the context propagation headers used for + // distributed tracing. + enum TraceContext { + // $hide_from_docs + // Unspecified context. Should not be used for now, but added to reserve + // the 0 enum value if TraceContext is used outside of a repeated field. + UNSPECIFIED = 0; + // Use W3C Trace Context propagation using the `traceparent` HTTP header. + // See the + // [Trace Context documentation](https://www.w3.org/TR/trace-context/) for details. + W3C_TRACE_CONTEXT = 1; + // Use gRPC binary context propagation using the `grpc-trace-bin` http header. + GRPC_BIN = 2; + // Use Cloud Trace context propagation using the + // `X-Cloud-Trace-Context` http header. + CLOUD_TRACE_CONTEXT = 3; + // Use multi-header B3 context propagation using the `X-B3-TraceId`, + // `X-B3-SpanId`, and `X-B3-Sampled` HTTP headers. See + // [B3 header propagation README](https://github.com/openzipkin/b3-propagation) + // for details. + B3 = 4; + } + + // Specifies the set of context propagation headers used for distributed + // tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified, + // the proxy will attempt to read each header for each request and will + // write all headers. + repeated TraceContext context = 3; + + // Optional. Controls the overall path length allowed in a reported span. + // NOTE: currently only controls max length of the path tag. + uint32 max_tag_length = 4; + } } // Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy // can be used with an extension provider to delegate the authorization decision to a custom authorization system. repeated ExtensionProvider extension_providers = 57; + // Holds the name references to the providers that will be used by default + // in other Istio configuration resources if the provider is not specified. + message DefaultProviders { + // Name of the default provider for tracing. This must match a provider + // defined in `extension_providers` that is one of the support tracing + // providers. + string tracing = 1; + } + + // Specifies extension providers to use by default in Istio configuration resources. + DefaultProviders default_providers = 60; + // A list of Kubernetes selectors that specify the set of namespaces that Istio considers when // computing configuration updates for sidecars. This can be used to reduce Istio's computational load // by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. @@ -574,7 +723,7 @@ message MeshConfig { repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector discovery_selectors = 59; // $hide_from_docs - // Next available field number: 60 + // Next available field number: 61 reserved 1; reserved "mixer_check_server"; reserved 2; diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json b/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json index 5e6c04d5..5b240a41 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json @@ -198,6 +198,9 @@ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider" } }, + "defaultProviders": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.DefaultProviders" + }, "discoverySelectors": { "description": "A list of Kubernetes selectors that specify the set of namespaces that Istio considers when computing configuration updates for sidecars. This can be used to reduce Istio's computational load by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. If omitted, Istio will use the default behavior of processing all namespaces in the cluster. Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector. The following example selects any namespace with either labels `env: prod` and `region: us-east1`, or with label `app` equal to `cassandra` or `spark`. ```yaml discoverySelectors: - matchLabels: env: prod region: us-east1 - matchExpressions: - key: app operator: In values: - cassandra - spark ``` Refer to the [kubernetes selector docs](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) for additional detail on selector semantics.", "type": "array", @@ -227,6 +230,9 @@ "description": "ProxyConfig defines variables for individual Envoy instances.", "type": "object", "properties": { + "tracing": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing" + }, "configPath": { "description": "Path to the generated configuration file directory. Proxy agent generates the actual configuration and stores it in this directory.", "type": "string", @@ -311,9 +317,6 @@ "interceptionMode": { "$ref": "#/components/schemas/istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode" }, - "tracing": { - "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing" - }, "sds": { "$ref": "#/components/schemas/istio.mesh.v1alpha1.SDS" }, @@ -577,6 +580,56 @@ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider" } } + }, + { + "required": [ + "zipkin" + ], + "properties": { + "zipkin": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider" + } + } + }, + { + "required": [ + "lightstep" + ], + "properties": { + "lightstep": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider" + } + } + }, + { + "required": [ + "datadog" + ], + "properties": { + "datadog": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider" + } + } + }, + { + "required": [ + "stackdriver" + ], + "properties": { + "stackdriver": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider" + } + } + }, + { + "required": [ + "opencensus" + ], + "properties": { + "opencensus": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider" + } + } } ] } @@ -600,9 +653,70 @@ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider" } } + }, + { + "required": [ + "zipkin" + ], + "properties": { + "zipkin": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider" + } + } + }, + { + "required": [ + "lightstep" + ], + "properties": { + "lightstep": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider" + } + } + }, + { + "required": [ + "datadog" + ], + "properties": { + "datadog": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider" + } + } + }, + { + "required": [ + "stackdriver" + ], + "properties": { + "stackdriver": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider" + } + } + }, + { + "required": [ + "opencensus" + ], + "properties": { + "opencensus": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider" + } + } } ] }, + "istio.mesh.v1alpha1.MeshConfig.DefaultProviders": { + "description": "Holds the name references to the providers that will be used by default in other Istio configuration resources if the provider is not specified.", + "type": "object", + "properties": { + "tracing": { + "description": "Name of the default provider for tracing. This must match a provider defined in `extension_providers` that is one of the support tracing providers.", + "type": "string", + "format": "string" + } + } + }, "istio.mesh.v1alpha1.MeshConfig.AuthPolicy": { "type": "string", "enum": [ @@ -702,6 +816,134 @@ } } }, + "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider": { + "description": "Defines configuration for a Zipkin tracer.", + "type": "object", + "properties": { + "port": { + "description": "REQUIRED. Specifies the port of the service.", + "type": "integer" + }, + "service": { + "description": "REQUIRED. Specifies the service that the Zipkin API. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.", + "type": "string", + "format": "string" + }, + "maxTagLength": { + "description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.", + "type": "integer" + } + } + }, + "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider": { + "description": "Defines configuration for a Lightstep tracer.", + "type": "object", + "properties": { + "port": { + "description": "REQUIRED. Specifies the port of the service.", + "type": "integer" + }, + "service": { + "description": "REQUIRED. Specifies the service for the Lightstep collector. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.", + "type": "string", + "format": "string" + }, + "maxTagLength": { + "description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.", + "type": "integer" + }, + "accessToken": { + "description": "The Lightstep access token.", + "type": "string", + "format": "string" + } + } + }, + "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider": { + "description": "Defines configuration for a Datadog tracer.", + "type": "object", + "properties": { + "port": { + "description": "REQUIRED. Specifies the port of the service.", + "type": "integer" + }, + "service": { + "description": "REQUIRED. Specifies the service for the Datadog agent. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.", + "type": "string", + "format": "string" + }, + "maxTagLength": { + "description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.", + "type": "integer" + } + } + }, + "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider": { + "description": "Defines configuration for Stackdriver.", + "type": "object", + "properties": { + "maxTagLength": { + "description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.", + "type": "integer" + }, + "debug": { + "description": "debug enables trace output to stdout. $hide_from_docs", + "type": "boolean" + }, + "maxNumberOfAttributes": { + "description": "The global default max number of attributes per span. default is 200. $hide_from_docs", + "type": "integer", + "nullable": true + }, + "maxNumberOfAnnotations": { + "description": "The global default max number of annotation events per span. default is 200. $hide_from_docs", + "type": "integer", + "nullable": true + }, + "maxNumberOfMessageEvents": { + "description": "The global default max number of message events per span. default is 200. $hide_from_docs", + "type": "integer", + "nullable": true + } + } + }, + "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider": { + "description": "Defines configuration for an OpenCensus tracer writing to an OpenCensus backend.", + "type": "object", + "properties": { + "port": { + "description": "REQUIRED. Specifies the port of the service.", + "type": "integer" + }, + "service": { + "description": "REQUIRED. Specifies the service for the OpenCensusAgent. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.", + "type": "string", + "format": "string" + }, + "context": { + "description": "Specifies the set of context propagation headers used for distributed tracing. Default is `[\"W3C_TRACE_CONTEXT\"]`. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext" + } + }, + "maxTagLength": { + "description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.", + "type": "integer" + } + } + }, + "istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext": { + "description": "TraceContext selects the context propagation headers used for distributed tracing.", + "type": "string", + "enum": [ + "UNSPECIFIED", + "W3C_TRACE_CONTEXT", + "GRPC_BIN", + "CLOUD_TRACE_CONTEXT", + "B3" + ] + }, "istio.mesh.v1alpha1.Resource": { "description": "Resource describes the source of configuration", "type": "string", diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index 9023b5e6..9c2968ee 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html @@ -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: 34 +number_of_entries: 41 ---

Configuration affecting the service mesh as a whole.

@@ -592,6 +592,17 @@ No

Defines a list of extension providers that extend Istio’s functionality. For example, the AuthorizationPolicy can be used with an extension provider to delegate the authorization decision to a custom authorization system.

+ + +No + + + +defaultProviders +DefaultProviders + +

Specifies extension providers to use by default in Istio configuration resources.

+ No @@ -961,6 +972,92 @@ No

Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.

+ + +No + + + +zipkin +ZipkinTracingProvider (oneof) + +

Configures a tracing provider that uses the Zipkin API.

+ + + +No + + + +lightstep +LightstepTracingProvider (oneof) + +

Configures a Lightstep tracing provider.

+ + + +No + + + +datadog +DatadogTracingProvider (oneof) + +

Configures a Datadog tracing provider.

+ + + +No + + + +stackdriver +StackdriverProvider (oneof) + +

Configures a Stackdriver provider.

+ + + +No + + + +opencensus +OpenCensusAgentTracingProvider (oneof) + +

Configures an OpenCensusAgent tracing provider.

+ + + +No + + + + + +

MeshConfig.DefaultProviders

+
+

Holds the name references to the providers that will be used by default +in other Istio configuration resources if the provider is not specified.

+ + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
tracingstring +

Name of the default provider for tracing. This must match a provider +defined in extension_providers that is one of the support tracing +providers.

+
No @@ -1199,6 +1296,284 @@ No

Sets the HTTP status that is returned to the client when there is a network error to the authorization service. The default status is “403” (HTTP Forbidden).

+
+No +
+
+

MeshConfig.ExtensionProvider.ZipkinTracingProvider

+
+

Defines configuration for a Zipkin tracer.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
servicestring +

REQUIRED. Specifies the service that the Zipkin API. +The format is “[/]”. The specification of is required only when it is insufficient +to unambiguously resolve a service in the service registry. The is a fully qualified host name of a +service defined by the Kubernetes service or ServiceEntry.

+ +

Example: “zipkin.default.svc.cluster.local” or “bar/zipkin.example.com”.

+ +
+No +
portuint32 +

REQUIRED. Specifies the port of the service.

+ +
+No +
maxTagLengthuint32 +

Optional. Controls the overall path length allowed in a reported span. +NOTE: currently only controls max length of the path tag.

+ +
+No +
+
+

MeshConfig.ExtensionProvider.LightstepTracingProvider

+
+

Defines configuration for a Lightstep tracer.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
servicestring +

REQUIRED. Specifies the service for the Lightstep collector. +The format is “[/]”. The specification of is required only when it is insufficient +to unambiguously resolve a service in the service registry. The is a fully qualified host name of a +service defined by the Kubernetes service or ServiceEntry.

+ +

Example: “lightstep.default.svc.cluster.local” or “bar/lightstep.example.com”.

+ +
+No +
portuint32 +

REQUIRED. Specifies the port of the service.

+ +
+No +
accessTokenstring +

The Lightstep access token.

+ +
+No +
maxTagLengthuint32 +

Optional. Controls the overall path length allowed in a reported span. +NOTE: currently only controls max length of the path tag.

+ +
+No +
+
+

MeshConfig.ExtensionProvider.DatadogTracingProvider

+
+

Defines configuration for a Datadog tracer.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
servicestring +

REQUIRED. Specifies the service for the Datadog agent. +The format is “[/]”. The specification of is required only when it is insufficient +to unambiguously resolve a service in the service registry. The is a fully qualified host name of a +service defined by the Kubernetes service or ServiceEntry.

+ +

Example: “datadog.default.svc.cluster.local” or “bar/datadog.example.com”.

+ +
+No +
portuint32 +

REQUIRED. Specifies the port of the service.

+ +
+No +
maxTagLengthuint32 +

Optional. Controls the overall path length allowed in a reported span. +NOTE: currently only controls max length of the path tag.

+ +
+No +
+
+

MeshConfig.ExtensionProvider.StackdriverProvider

+
+

Defines configuration for Stackdriver.

+ + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
maxTagLengthuint32 +

Optional. Controls the overall path length allowed in a reported span. +NOTE: currently only controls max length of the path tag.

+ +
+No +
+
+

MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider

+
+

Defines configuration for an OpenCensus tracer writing to an OpenCensus backend.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
servicestring +

REQUIRED. Specifies the service for the OpenCensusAgent. +The format is “[/]”. The specification of is required only when it is insufficient +to unambiguously resolve a service in the service registry. The is a fully qualified host name of a +service defined by the Kubernetes service or ServiceEntry.

+ +

Example: “ocagent.default.svc.cluster.local” or “bar/ocagent.example.com”.

+ +
+No +
portuint32 +

REQUIRED. Specifies the port of the service.

+ +
+No +
contextTraceContext[] +

Specifies the set of context propagation headers used for distributed +tracing. Default is ["W3C_TRACE_CONTEXT"]. If multiple values are specified, +the proxy will attempt to read each header for each request and will +write all headers.

+ +
+No +
maxTagLengthuint32 +

Optional. Controls the overall path length allowed in a reported span. +NOTE: currently only controls max length of the path tag.

+
No @@ -2308,6 +2683,56 @@ service registry as well as those defined through ServiceEntries

outbound traffic to unknown destinations will be allowed, in case there are no services or ServiceEntries for the destination port

+
+
+

MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext

+
+

TraceContext selects the context propagation headers used for +distributed tracing.

+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/istio_api/mesh/v1alpha1/config_pb2.py b/python/istio_api/mesh/v1alpha1/config_pb2.py index f2f855ef..09656fb7 100644 --- a/python/istio_api/mesh/v1alpha1/config_pb2.py +++ b/python/istio_api/mesh/v1alpha1/config_pb2.py @@ -26,7 +26,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( package='istio.mesh.v1alpha1', syntax='proto3', serialized_options=_b('Z\032istio.io/api/mesh/v1alpha1'), - serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\x1a\x34k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\"\xba(\n\nMeshConfig\x12*\n\x11proxy_listen_port\x18\x04 \x01(\x05R\x0fproxyListenPort\x12&\n\x0fproxy_http_port\x18\x05 \x01(\x05R\rproxyHttpPort\x12\x42\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0e\x63onnectTimeout\x12W\n\x1aprotocol_detection_timeout\x18* \x01(\x0b\x32\x19.google.protobuf.DurationR\x18protocolDetectionTimeout\x12o\n\rtcp_keepalive\x18\x1c \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepaliveR\x0ctcpKeepalive\x12#\n\ringress_class\x18\x07 \x01(\tR\x0cingressClass\x12\'\n\x0fingress_service\x18\x08 \x01(\tR\x0eingressService\x12m\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerModeR\x15ingressControllerMode\x12)\n\x10ingress_selector\x18\x34 \x01(\tR\x0fingressSelector\x12%\n\x0e\x65nable_tracing\x18\x0c \x01(\x08R\renableTracing\x12&\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\tR\raccessLogFile\x12*\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\tR\x0f\x61\x63\x63\x65ssLogFormat\x12\x61\n\x13\x61\x63\x63\x65ss_log_encoding\x18\x1b \x01(\x0e\x32\x31.istio.mesh.v1alpha1.MeshConfig.AccessLogEncodingR\x11\x61\x63\x63\x65ssLogEncoding\x12\x44\n\x1f\x65nable_envoy_access_log_service\x18( \x01(\x08R\x1b\x65nableEnvoyAccessLogService\x12;\n\x1a\x64isable_envoy_listener_log\x18\x38 \x01(\x08R\x17\x64isableEnvoyListenerLog\x12G\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfigR\rdefaultConfig\x12m\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicyR\x15outboundTrafficPolicy\x12H\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSourceR\rconfigSources\x12\x44\n\x10\x65nable_auto_mtls\x18+ \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0e\x65nableAutoMtls\x12!\n\x0ctrust_domain\x18\x1a \x01(\tR\x0btrustDomain\x12\x30\n\x14trust_domain_aliases\x18. \x03(\tR\x12trustDomainAliases\x12X\n\x0f\x63\x61_certificates\x18: \x03(\x0b\x32/.istio.mesh.v1alpha1.MeshConfig.CertificateDataR\x0e\x63\x61\x43\x65rtificates\x12\x39\n\x19\x64\x65\x66\x61ult_service_export_to\x18\x1f \x03(\tR\x16\x64\x65\x66\x61ultServiceExportTo\x12H\n!default_virtual_service_export_to\x18 \x03(\tR\x1d\x64\x65\x66\x61ultVirtualServiceExportTo\x12J\n\"default_destination_rule_export_to\x18! \x03(\tR\x1e\x64\x65\x66\x61ultDestinationRuleExportTo\x12%\n\x0eroot_namespace\x18\" \x01(\tR\rrootNamespace\x12\x66\n\x13locality_lb_setting\x18# \x01(\x0b\x32\x36.istio.networking.v1alpha3.LocalityLoadBalancerSettingR\x11localityLbSetting\x12\x43\n\x10\x64ns_refresh_rate\x18$ \x01(\x0b\x32\x19.google.protobuf.DurationR\x0e\x64nsRefreshRate\x12[\n\x11h2_upgrade_policy\x18) \x01(\x0e\x32/.istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicyR\x0fh2UpgradePolicy\x12\x39\n\x19inbound_cluster_stat_name\x18, \x01(\tR\x16inboundClusterStatName\x12;\n\x1aoutbound_cluster_stat_name\x18- \x01(\tR\x17outboundClusterStatName\x12\x44\n\x0c\x63\x65rtificates\x18/ \x03(\x0b\x32 .istio.mesh.v1alpha1.CertificateR\x0c\x63\x65rtificates\x12Q\n\rthrift_config\x18\x31 \x01(\x0b\x32,.istio.mesh.v1alpha1.MeshConfig.ThriftConfigR\x0cthriftConfig\x12Z\n\x10service_settings\x18\x32 \x03(\x0b\x32/.istio.mesh.v1alpha1.MeshConfig.ServiceSettingsR\x0fserviceSettings\x12R\n\x17\x65nable_prometheus_merge\x18\x33 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x15\x65nablePrometheusMerge\x12[\n\x1cverify_certificate_at_client\x18\x36 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x19verifyCertificateAtClient\x12\x32\n\x02\x63\x61\x18\x37 \x01(\x0b\x32\".istio.mesh.v1alpha1.MeshConfig.CAR\x02\x63\x61\x12\x62\n\x13\x65xtension_providers\x18\x39 \x03(\x0b\x32\x31.istio.mesh.v1alpha1.MeshConfig.ExtensionProviderR\x12\x65xtensionProviders\x12\x64\n\x13\x64iscovery_selectors\x18; \x03(\x0b\x32\x33.k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorR\x12\x64iscoverySelectors\x1a\xad\x01\n\x15OutboundTrafficPolicy\x12N\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeR\x04mode\"D\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01\"\x04\x08\x02\x10\x02*\x14VIRTUAL_SERVICE_ONLY\x1ag\n\x0f\x43\x65rtificateData\x12\x12\n\x03pem\x18\x01 \x01(\tH\x00R\x03pem\x12,\n\x11spiffe_bundle_url\x18\x02 \x01(\tH\x00R\x0fspiffeBundleUrlB\x12\n\x10\x63\x65rtificate_data\x1a}\n\x0cThriftConfig\x12$\n\x0erate_limit_url\x18\x01 \x01(\tR\x0crateLimitUrl\x12G\n\x12rate_limit_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x10rateLimitTimeout\x1a\xae\x01\n\x0fServiceSettings\x12T\n\x08settings\x18\x01 \x01(\x0b\x32\x38.istio.mesh.v1alpha1.MeshConfig.ServiceSettings.SettingsR\x08settings\x12\x14\n\x05hosts\x18\x02 \x03(\tR\x05hosts\x1a/\n\x08Settings\x12#\n\rcluster_local\x18\x01 \x01(\x08R\x0c\x63lusterLocal\x1a\xd4\x01\n\x02\x43\x41\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12O\n\x0ctls_settings\x18\x02 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x12\x42\n\x0frequest_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0erequestTimeout\x12\x1f\n\x0bistiod_side\x18\x04 \x01(\x08R\nistiodSide\x1a\xe7\x06\n\x11\x45xtensionProvider\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x8b\x01\n\x14\x65nvoy_ext_authz_http\x18\x02 \x01(\x0b\x32X.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProviderH\x00R\x11\x65nvoyExtAuthzHttp\x12\x8b\x01\n\x14\x65nvoy_ext_authz_grpc\x18\x03 \x01(\x0b\x32X.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProviderH\x00R\x11\x65nvoyExtAuthzGrpc\x1a\xf7\x02\n&EnvoyExternalAuthorizationHttpProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12\x1f\n\x0bpath_prefix\x18\x03 \x01(\tR\npathPrefix\x12\x1b\n\tfail_open\x18\x04 \x01(\x08R\x08\x66\x61ilOpen\x12&\n\x0fstatus_on_error\x18\x05 \x01(\tR\rstatusOnError\x12\x37\n\x18include_headers_in_check\x18\x06 \x03(\tR\x15includeHeadersInCheck\x12>\n\x1cheaders_to_upstream_on_allow\x18\x07 \x03(\tR\x18headersToUpstreamOnAllow\x12@\n\x1dheaders_to_downstream_on_deny\x18\x08 \x03(\tR\x19headersToDownstreamOnDeny\x1a\x9b\x01\n&EnvoyExternalAuthorizationGrpcProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12\x1b\n\tfail_open\x18\x03 \x01(\x08R\x08\x66\x61ilOpen\x12&\n\x0fstatus_on_error\x18\x04 \x01(\tR\rstatusOnErrorB\n\n\x08provider\"J\n\x15IngressControllerMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x02\x12\n\n\x06STRICT\x10\x03\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\"\'\n\x11\x41\x63\x63\x65ssLogEncoding\x12\x08\n\x04TEXT\x10\x00\x12\x08\n\x04JSON\x10\x01\"2\n\x0fH2UpgradePolicy\x12\x12\n\x0e\x44O_NOT_UPGRADE\x10\x00\x12\x0b\n\x07UPGRADE\x10\x01J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x30\x10\x31J\x04\x08\x19\x10\x1aJ\x04\x08\x1e\x10\x1fJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x14\x10\x15J\x04\x08\x15\x10\x16J\x04\x08\x17\x10\x18J\x04\x08\x1d\x10\x1eJ\x04\x08\x35\x10\x36J\x04\x08%\x10&J\x04\x08&\x10\'J\x04\x08\'\x10(R\x12mixer_check_serverR\x13mixer_report_serverR\x15\x64isable_policy_checksR\x1a\x64isable_mixer_http_reportsR\x16policy_check_fail_openR%sidecar_to_telemetry_session_affinityR\x0b\x61uth_policyR\x11rds_refresh_delayR\rmixer_addressR\x1f\x65nable_client_side_policy_checkR\x0csds_uds_pathR\x11sds_refresh_delayR\x16\x65nable_sds_token_mountR\x12sds_use_k8s_sa_jwtR\x1atermination_drain_durationR\x14\x64isable_report_batchR\x18report_batch_max_entriesR\x15report_batch_max_time\"\xcb\x01\n\x0c\x43onfigSource\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12O\n\x0ctls_settings\x18\x02 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x12P\n\x14subscribed_resources\x18\x03 \x03(\x0e\x32\x1d.istio.mesh.v1alpha1.ResourceR\x13subscribedResources\"K\n\x0b\x43\x65rtificate\x12\x1f\n\x0bsecret_name\x18\x01 \x01(\tR\nsecretName\x12\x1b\n\tdns_names\x18\x02 \x03(\tR\x08\x64nsNames* \n\x08Resource\x12\x14\n\x10SERVICE_REGISTRY\x10\x00\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') + serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\x1a\x34k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\"\x80\x36\n\nMeshConfig\x12*\n\x11proxy_listen_port\x18\x04 \x01(\x05R\x0fproxyListenPort\x12&\n\x0fproxy_http_port\x18\x05 \x01(\x05R\rproxyHttpPort\x12\x42\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0e\x63onnectTimeout\x12W\n\x1aprotocol_detection_timeout\x18* \x01(\x0b\x32\x19.google.protobuf.DurationR\x18protocolDetectionTimeout\x12o\n\rtcp_keepalive\x18\x1c \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepaliveR\x0ctcpKeepalive\x12#\n\ringress_class\x18\x07 \x01(\tR\x0cingressClass\x12\'\n\x0fingress_service\x18\x08 \x01(\tR\x0eingressService\x12m\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerModeR\x15ingressControllerMode\x12)\n\x10ingress_selector\x18\x34 \x01(\tR\x0fingressSelector\x12%\n\x0e\x65nable_tracing\x18\x0c \x01(\x08R\renableTracing\x12&\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\tR\raccessLogFile\x12*\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\tR\x0f\x61\x63\x63\x65ssLogFormat\x12\x61\n\x13\x61\x63\x63\x65ss_log_encoding\x18\x1b \x01(\x0e\x32\x31.istio.mesh.v1alpha1.MeshConfig.AccessLogEncodingR\x11\x61\x63\x63\x65ssLogEncoding\x12\x44\n\x1f\x65nable_envoy_access_log_service\x18( \x01(\x08R\x1b\x65nableEnvoyAccessLogService\x12;\n\x1a\x64isable_envoy_listener_log\x18\x38 \x01(\x08R\x17\x64isableEnvoyListenerLog\x12G\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfigR\rdefaultConfig\x12m\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicyR\x15outboundTrafficPolicy\x12H\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSourceR\rconfigSources\x12\x44\n\x10\x65nable_auto_mtls\x18+ \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0e\x65nableAutoMtls\x12!\n\x0ctrust_domain\x18\x1a \x01(\tR\x0btrustDomain\x12\x30\n\x14trust_domain_aliases\x18. \x03(\tR\x12trustDomainAliases\x12X\n\x0f\x63\x61_certificates\x18: \x03(\x0b\x32/.istio.mesh.v1alpha1.MeshConfig.CertificateDataR\x0e\x63\x61\x43\x65rtificates\x12\x39\n\x19\x64\x65\x66\x61ult_service_export_to\x18\x1f \x03(\tR\x16\x64\x65\x66\x61ultServiceExportTo\x12H\n!default_virtual_service_export_to\x18 \x03(\tR\x1d\x64\x65\x66\x61ultVirtualServiceExportTo\x12J\n\"default_destination_rule_export_to\x18! \x03(\tR\x1e\x64\x65\x66\x61ultDestinationRuleExportTo\x12%\n\x0eroot_namespace\x18\" \x01(\tR\rrootNamespace\x12\x66\n\x13locality_lb_setting\x18# \x01(\x0b\x32\x36.istio.networking.v1alpha3.LocalityLoadBalancerSettingR\x11localityLbSetting\x12\x43\n\x10\x64ns_refresh_rate\x18$ \x01(\x0b\x32\x19.google.protobuf.DurationR\x0e\x64nsRefreshRate\x12[\n\x11h2_upgrade_policy\x18) \x01(\x0e\x32/.istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicyR\x0fh2UpgradePolicy\x12\x39\n\x19inbound_cluster_stat_name\x18, \x01(\tR\x16inboundClusterStatName\x12;\n\x1aoutbound_cluster_stat_name\x18- \x01(\tR\x17outboundClusterStatName\x12\x44\n\x0c\x63\x65rtificates\x18/ \x03(\x0b\x32 .istio.mesh.v1alpha1.CertificateR\x0c\x63\x65rtificates\x12Q\n\rthrift_config\x18\x31 \x01(\x0b\x32,.istio.mesh.v1alpha1.MeshConfig.ThriftConfigR\x0cthriftConfig\x12Z\n\x10service_settings\x18\x32 \x03(\x0b\x32/.istio.mesh.v1alpha1.MeshConfig.ServiceSettingsR\x0fserviceSettings\x12R\n\x17\x65nable_prometheus_merge\x18\x33 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x15\x65nablePrometheusMerge\x12[\n\x1cverify_certificate_at_client\x18\x36 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x19verifyCertificateAtClient\x12\x32\n\x02\x63\x61\x18\x37 \x01(\x0b\x32\".istio.mesh.v1alpha1.MeshConfig.CAR\x02\x63\x61\x12\x62\n\x13\x65xtension_providers\x18\x39 \x03(\x0b\x32\x31.istio.mesh.v1alpha1.MeshConfig.ExtensionProviderR\x12\x65xtensionProviders\x12]\n\x11\x64\x65\x66\x61ult_providers\x18< \x01(\x0b\x32\x30.istio.mesh.v1alpha1.MeshConfig.DefaultProvidersR\x10\x64\x65\x66\x61ultProviders\x12\x64\n\x13\x64iscovery_selectors\x18; \x03(\x0b\x32\x33.k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorR\x12\x64iscoverySelectors\x1a\xad\x01\n\x15OutboundTrafficPolicy\x12N\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeR\x04mode\"D\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01\"\x04\x08\x02\x10\x02*\x14VIRTUAL_SERVICE_ONLY\x1ag\n\x0f\x43\x65rtificateData\x12\x12\n\x03pem\x18\x01 \x01(\tH\x00R\x03pem\x12,\n\x11spiffe_bundle_url\x18\x02 \x01(\tH\x00R\x0fspiffeBundleUrlB\x12\n\x10\x63\x65rtificate_data\x1a}\n\x0cThriftConfig\x12$\n\x0erate_limit_url\x18\x01 \x01(\tR\x0crateLimitUrl\x12G\n\x12rate_limit_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x10rateLimitTimeout\x1a\xae\x01\n\x0fServiceSettings\x12T\n\x08settings\x18\x01 \x01(\x0b\x32\x38.istio.mesh.v1alpha1.MeshConfig.ServiceSettings.SettingsR\x08settings\x12\x14\n\x05hosts\x18\x02 \x03(\tR\x05hosts\x1a/\n\x08Settings\x12#\n\rcluster_local\x18\x01 \x01(\x08R\x0c\x63lusterLocal\x1a\xd4\x01\n\x02\x43\x41\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12O\n\x0ctls_settings\x18\x02 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x12\x42\n\x0frequest_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0erequestTimeout\x12\x1f\n\x0bistiod_side\x18\x04 \x01(\x08R\nistiodSide\x1a\xa0\x13\n\x11\x45xtensionProvider\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x8b\x01\n\x14\x65nvoy_ext_authz_http\x18\x02 \x01(\x0b\x32X.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProviderH\x00R\x11\x65nvoyExtAuthzHttp\x12\x8b\x01\n\x14\x65nvoy_ext_authz_grpc\x18\x03 \x01(\x0b\x32X.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProviderH\x00R\x11\x65nvoyExtAuthzGrpc\x12\x61\n\x06zipkin\x18\x04 \x01(\x0b\x32G.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProviderH\x00R\x06zipkin\x12j\n\tlightstep\x18\x05 \x01(\x0b\x32J.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProviderH\x00R\tlightstep\x12\x64\n\x07\x64\x61tadog\x18\x06 \x01(\x0b\x32H.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProviderH\x00R\x07\x64\x61tadog\x12i\n\x0bstackdriver\x18\x07 \x01(\x0b\x32\x45.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProviderH\x00R\x0bstackdriver\x12r\n\nopencensus\x18\x08 \x01(\x0b\x32P.istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProviderH\x00R\nopencensus\x1a\xf7\x02\n&EnvoyExternalAuthorizationHttpProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12\x1f\n\x0bpath_prefix\x18\x03 \x01(\tR\npathPrefix\x12\x1b\n\tfail_open\x18\x04 \x01(\x08R\x08\x66\x61ilOpen\x12&\n\x0fstatus_on_error\x18\x05 \x01(\tR\rstatusOnError\x12\x37\n\x18include_headers_in_check\x18\x06 \x03(\tR\x15includeHeadersInCheck\x12>\n\x1cheaders_to_upstream_on_allow\x18\x07 \x03(\tR\x18headersToUpstreamOnAllow\x12@\n\x1dheaders_to_downstream_on_deny\x18\x08 \x03(\tR\x19headersToDownstreamOnDeny\x1a\x9b\x01\n&EnvoyExternalAuthorizationGrpcProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12\x1b\n\tfail_open\x18\x03 \x01(\x08R\x08\x66\x61ilOpen\x12&\n\x0fstatus_on_error\x18\x04 \x01(\tR\rstatusOnError\x1ak\n\x15ZipkinTracingProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12$\n\x0emax_tag_length\x18\x03 \x01(\rR\x0cmaxTagLength\x1a\x91\x01\n\x18LightstepTracingProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12!\n\x0c\x61\x63\x63\x65ss_token\x18\x03 \x01(\tR\x0b\x61\x63\x63\x65ssToken\x12$\n\x0emax_tag_length\x18\x04 \x01(\rR\x0cmaxTagLength\x1al\n\x16\x44\x61tadogTracingProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12$\n\x0emax_tag_length\x18\x03 \x01(\rR\x0cmaxTagLength\x1a\xdc\x02\n\x13StackdriverProvider\x12\x14\n\x05\x64\x65\x62ug\x18\x01 \x01(\x08R\x05\x64\x65\x62ug\x12T\n\x18max_number_of_attributes\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x15maxNumberOfAttributes\x12V\n\x19max_number_of_annotations\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x16maxNumberOfAnnotations\x12[\n\x1cmax_number_of_message_events\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x18maxNumberOfMessageEvents\x12$\n\x0emax_tag_length\x18\x05 \x01(\rR\x0cmaxTagLength\x1a\xd4\x02\n\x1eOpenCensusAgentTracingProvider\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12\x12\n\x04port\x18\x02 \x01(\rR\x04port\x12w\n\x07\x63ontext\x18\x03 \x03(\x0e\x32].istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContextR\x07\x63ontext\x12$\n\x0emax_tag_length\x18\x04 \x01(\rR\x0cmaxTagLength\"e\n\x0cTraceContext\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x15\n\x11W3C_TRACE_CONTEXT\x10\x01\x12\x0c\n\x08GRPC_BIN\x10\x02\x12\x17\n\x13\x43LOUD_TRACE_CONTEXT\x10\x03\x12\x06\n\x02\x42\x33\x10\x04\x42\n\n\x08provider\x1a,\n\x10\x44\x65\x66\x61ultProviders\x12\x18\n\x07tracing\x18\x01 \x01(\tR\x07tracing\"J\n\x15IngressControllerMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x02\x12\n\n\x06STRICT\x10\x03\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\"\'\n\x11\x41\x63\x63\x65ssLogEncoding\x12\x08\n\x04TEXT\x10\x00\x12\x08\n\x04JSON\x10\x01\"2\n\x0fH2UpgradePolicy\x12\x12\n\x0e\x44O_NOT_UPGRADE\x10\x00\x12\x0b\n\x07UPGRADE\x10\x01J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x30\x10\x31J\x04\x08\x19\x10\x1aJ\x04\x08\x1e\x10\x1fJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x14\x10\x15J\x04\x08\x15\x10\x16J\x04\x08\x17\x10\x18J\x04\x08\x1d\x10\x1eJ\x04\x08\x35\x10\x36J\x04\x08%\x10&J\x04\x08&\x10\'J\x04\x08\'\x10(R\x12mixer_check_serverR\x13mixer_report_serverR\x15\x64isable_policy_checksR\x1a\x64isable_mixer_http_reportsR\x16policy_check_fail_openR%sidecar_to_telemetry_session_affinityR\x0b\x61uth_policyR\x11rds_refresh_delayR\rmixer_addressR\x1f\x65nable_client_side_policy_checkR\x0csds_uds_pathR\x11sds_refresh_delayR\x16\x65nable_sds_token_mountR\x12sds_use_k8s_sa_jwtR\x1atermination_drain_durationR\x14\x64isable_report_batchR\x18report_batch_max_entriesR\x15report_batch_max_time\"\xcb\x01\n\x0c\x43onfigSource\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12O\n\x0ctls_settings\x18\x02 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x12P\n\x14subscribed_resources\x18\x03 \x03(\x0e\x32\x1d.istio.mesh.v1alpha1.ResourceR\x13subscribedResources\"K\n\x0b\x43\x65rtificate\x12\x1f\n\x0bsecret_name\x18\x01 \x01(\tR\nsecretName\x12\x1b\n\tdns_names\x18\x02 \x03(\tR\x08\x64nsNames* \n\x08Resource\x12\x14\n\x10SERVICE_REGISTRY\x10\x00\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,mesh_dot_v1alpha1_dot_proxy__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,k8s_dot_io_dot_apimachinery_dot_pkg_dot_apis_dot_meta_dot_v1_dot_generated__pb2.DESCRIPTOR,]) @@ -43,8 +43,8 @@ _RESOURCE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=5704, - serialized_end=5736, + serialized_start=7438, + serialized_end=7470, ) _sym_db.RegisterEnumDescriptor(_RESOURCE) @@ -69,11 +69,45 @@ _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=3113, - serialized_end=3181, + serialized_start=3208, + serialized_end=3276, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) +_MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER_TRACECONTEXT = _descriptor.EnumDescriptor( + name='TraceContext', + full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='W3C_TRACE_CONTEXT', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GRPC_BIN', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLOUD_TRACE_CONTEXT', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='B3', index=4, number=4, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=6254, + serialized_end=6355, +) +_sym_db.RegisterEnumDescriptor(_MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER_TRACECONTEXT) + _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( name='IngressControllerMode', full_name='istio.mesh.v1alpha1.MeshConfig.IngressControllerMode', @@ -99,8 +133,8 @@ _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=4681, - serialized_end=4755, + serialized_start=6415, + serialized_end=6489, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_INGRESSCONTROLLERMODE) @@ -121,8 +155,8 @@ _MESHCONFIG_AUTHPOLICY = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=4757, - serialized_end=4795, + serialized_start=6491, + serialized_end=6529, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_AUTHPOLICY) @@ -143,8 +177,8 @@ _MESHCONFIG_ACCESSLOGENCODING = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=4797, - serialized_end=4836, + serialized_start=6531, + serialized_end=6570, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_ACCESSLOGENCODING) @@ -165,8 +199,8 @@ _MESHCONFIG_H2UPGRADEPOLICY = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=4838, - serialized_end=4888, + serialized_start=6572, + serialized_end=6622, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_H2UPGRADEPOLICY) @@ -198,8 +232,8 @@ _MESHCONFIG_OUTBOUNDTRAFFICPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3008, - serialized_end=3181, + serialized_start=3103, + serialized_end=3276, ) _MESHCONFIG_CERTIFICATEDATA = _descriptor.Descriptor( @@ -238,8 +272,8 @@ _MESHCONFIG_CERTIFICATEDATA = _descriptor.Descriptor( name='certificate_data', full_name='istio.mesh.v1alpha1.MeshConfig.CertificateData.certificate_data', index=0, containing_type=None, fields=[]), ], - serialized_start=3183, - serialized_end=3286, + serialized_start=3278, + serialized_end=3381, ) _MESHCONFIG_THRIFTCONFIG = _descriptor.Descriptor( @@ -275,8 +309,8 @@ _MESHCONFIG_THRIFTCONFIG = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3288, - serialized_end=3413, + serialized_start=3383, + serialized_end=3508, ) _MESHCONFIG_SERVICESETTINGS_SETTINGS = _descriptor.Descriptor( @@ -305,8 +339,8 @@ _MESHCONFIG_SERVICESETTINGS_SETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3543, - serialized_end=3590, + serialized_start=3638, + serialized_end=3685, ) _MESHCONFIG_SERVICESETTINGS = _descriptor.Descriptor( @@ -342,8 +376,8 @@ _MESHCONFIG_SERVICESETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3416, - serialized_end=3590, + serialized_start=3511, + serialized_end=3685, ) _MESHCONFIG_CA = _descriptor.Descriptor( @@ -393,8 +427,8 @@ _MESHCONFIG_CA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3593, - serialized_end=3805, + serialized_start=3688, + serialized_end=3900, ) _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONHTTPPROVIDER = _descriptor.Descriptor( @@ -472,8 +506,8 @@ _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONHTTPPROVIDER = _descript extension_ranges=[], oneofs=[ ], - serialized_start=4134, - serialized_end=4509, + serialized_start=4761, + serialized_end=5136, ) _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONGRPCPROVIDER = _descriptor.Descriptor( @@ -523,8 +557,257 @@ _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONGRPCPROVIDER = _descript extension_ranges=[], oneofs=[ ], - serialized_start=4512, - serialized_end=4667, + serialized_start=5139, + serialized_end=5294, +) + +_MESHCONFIG_EXTENSIONPROVIDER_ZIPKINTRACINGPROVIDER = _descriptor.Descriptor( + name='ZipkinTracingProvider', + full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.service', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='service', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='port', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.port', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='port', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_tag_length', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider.max_tag_length', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxTagLength', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5296, + serialized_end=5403, +) + +_MESHCONFIG_EXTENSIONPROVIDER_LIGHTSTEPTRACINGPROVIDER = _descriptor.Descriptor( + name='LightstepTracingProvider', + full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider.service', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='service', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='port', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider.port', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='port', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='access_token', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider.access_token', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='accessToken', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_tag_length', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider.max_tag_length', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxTagLength', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5406, + serialized_end=5551, +) + +_MESHCONFIG_EXTENSIONPROVIDER_DATADOGTRACINGPROVIDER = _descriptor.Descriptor( + name='DatadogTracingProvider', + full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider.service', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='service', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='port', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider.port', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='port', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_tag_length', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider.max_tag_length', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxTagLength', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5553, + serialized_end=5661, +) + +_MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER = _descriptor.Descriptor( + name='StackdriverProvider', + full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='debug', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.debug', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='debug', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_number_of_attributes', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_attributes', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxNumberOfAttributes', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_number_of_annotations', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_annotations', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxNumberOfAnnotations', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_number_of_message_events', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_message_events', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxNumberOfMessageEvents', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_tag_length', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_tag_length', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxTagLength', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5664, + serialized_end=6012, +) + +_MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER = _descriptor.Descriptor( + name='OpenCensusAgentTracingProvider', + full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.service', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='service', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='port', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.port', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='port', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='context', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.context', index=2, + number=3, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='context', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_tag_length', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.max_tag_length', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='maxTagLength', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER_TRACECONTEXT, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6015, + serialized_end=6355, ) _MESHCONFIG_EXTENSIONPROVIDER = _descriptor.Descriptor( @@ -555,10 +838,45 @@ _MESHCONFIG_EXTENSIONPROVIDER = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='envoyExtAuthzGrpc', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='zipkin', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.zipkin', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='zipkin', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lightstep', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.lightstep', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='lightstep', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='datadog', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.datadog', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='datadog', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stackdriver', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.stackdriver', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='stackdriver', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='opencensus', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opencensus', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='opencensus', file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONHTTPPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONGRPCPROVIDER, ], + nested_types=[_MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONHTTPPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONGRPCPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_ZIPKINTRACINGPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_LIGHTSTEPTRACINGPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_DATADOGTRACINGPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER, _MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER, ], enum_types=[ ], serialized_options=None, @@ -570,8 +888,38 @@ _MESHCONFIG_EXTENSIONPROVIDER = _descriptor.Descriptor( name='provider', full_name='istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.provider', index=0, containing_type=None, fields=[]), ], - serialized_start=3808, - serialized_end=4679, + serialized_start=3903, + serialized_end=6367, +) + +_MESHCONFIG_DEFAULTPROVIDERS = _descriptor.Descriptor( + name='DefaultProviders', + full_name='istio.mesh.v1alpha1.MeshConfig.DefaultProviders', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='tracing', full_name='istio.mesh.v1alpha1.MeshConfig.DefaultProviders.tracing', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='tracing', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6369, + serialized_end=6413, ) _MESHCONFIG = _descriptor.Descriptor( @@ -848,7 +1196,14 @@ _MESHCONFIG = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, json_name='extensionProviders', file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='discovery_selectors', full_name='istio.mesh.v1alpha1.MeshConfig.discovery_selectors', index=38, + name='default_providers', full_name='istio.mesh.v1alpha1.MeshConfig.default_providers', index=38, + number=60, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='defaultProviders', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='discovery_selectors', full_name='istio.mesh.v1alpha1.MeshConfig.discovery_selectors', index=39, number=59, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -857,7 +1212,7 @@ _MESHCONFIG = _descriptor.Descriptor( ], extensions=[ ], - nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, _MESHCONFIG_CERTIFICATEDATA, _MESHCONFIG_THRIFTCONFIG, _MESHCONFIG_SERVICESETTINGS, _MESHCONFIG_CA, _MESHCONFIG_EXTENSIONPROVIDER, ], + nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, _MESHCONFIG_CERTIFICATEDATA, _MESHCONFIG_THRIFTCONFIG, _MESHCONFIG_SERVICESETTINGS, _MESHCONFIG_CA, _MESHCONFIG_EXTENSIONPROVIDER, _MESHCONFIG_DEFAULTPROVIDERS, ], enum_types=[ _MESHCONFIG_INGRESSCONTROLLERMODE, _MESHCONFIG_AUTHPOLICY, @@ -871,7 +1226,7 @@ _MESHCONFIG = _descriptor.Descriptor( oneofs=[ ], serialized_start=241, - serialized_end=5419, + serialized_end=7153, ) @@ -915,8 +1270,8 @@ _CONFIGSOURCE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5422, - serialized_end=5625, + serialized_start=7156, + serialized_end=7359, ) @@ -953,8 +1308,8 @@ _CERTIFICATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5627, - serialized_end=5702, + serialized_start=7361, + serialized_end=7436, ) _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].enum_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE @@ -977,8 +1332,23 @@ _MESHCONFIG_CA.fields_by_name['request_timeout'].message_type = google_dot_proto _MESHCONFIG_CA.containing_type = _MESHCONFIG _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONHTTPPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONGRPCPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER_ZIPKINTRACINGPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER_LIGHTSTEPTRACINGPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER_DATADOGTRACINGPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER.fields_by_name['max_number_of_attributes'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER.fields_by_name['max_number_of_annotations'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER.fields_by_name['max_number_of_message_events'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER.fields_by_name['context'].enum_type = _MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER_TRACECONTEXT +_MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER.containing_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER_TRACECONTEXT.containing_type = _MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['envoy_ext_authz_http'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONHTTPPROVIDER _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['envoy_ext_authz_grpc'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_ENVOYEXTERNALAUTHORIZATIONGRPCPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['zipkin'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_ZIPKINTRACINGPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['lightstep'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_LIGHTSTEPTRACINGPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['datadog'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_DATADOGTRACINGPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['stackdriver'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['opencensus'].message_type = _MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER _MESHCONFIG_EXTENSIONPROVIDER.containing_type = _MESHCONFIG _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['envoy_ext_authz_http']) @@ -986,6 +1356,22 @@ _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['envoy_ext_authz_http'].containing_ _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['envoy_ext_authz_grpc']) _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['envoy_ext_authz_grpc'].containing_oneof = _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'] +_MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( + _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['zipkin']) +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['zipkin'].containing_oneof = _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'] +_MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( + _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['lightstep']) +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['lightstep'].containing_oneof = _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'] +_MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( + _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['datadog']) +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['datadog'].containing_oneof = _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'] +_MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( + _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['stackdriver']) +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['stackdriver'].containing_oneof = _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'] +_MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'].fields.append( + _MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['opencensus']) +_MESHCONFIG_EXTENSIONPROVIDER.fields_by_name['opencensus'].containing_oneof = _MESHCONFIG_EXTENSIONPROVIDER.oneofs_by_name['provider'] +_MESHCONFIG_DEFAULTPROVIDERS.containing_type = _MESHCONFIG _MESHCONFIG.fields_by_name['connect_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['protocol_detection_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['tcp_keepalive'].message_type = networking_dot_v1alpha3_dot_destination__rule__pb2._CONNECTIONPOOLSETTINGS_TCPSETTINGS_TCPKEEPALIVE @@ -1006,6 +1392,7 @@ _MESHCONFIG.fields_by_name['enable_prometheus_merge'].message_type = google_dot_ _MESHCONFIG.fields_by_name['verify_certificate_at_client'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE _MESHCONFIG.fields_by_name['ca'].message_type = _MESHCONFIG_CA _MESHCONFIG.fields_by_name['extension_providers'].message_type = _MESHCONFIG_EXTENSIONPROVIDER +_MESHCONFIG.fields_by_name['default_providers'].message_type = _MESHCONFIG_DEFAULTPROVIDERS _MESHCONFIG.fields_by_name['discovery_selectors'].message_type = k8s_dot_io_dot_apimachinery_dot_pkg_dot_apis_dot_meta_dot_v1_dot_generated__pb2._LABELSELECTOR _MESHCONFIG_INGRESSCONTROLLERMODE.containing_type = _MESHCONFIG _MESHCONFIG_AUTHPOLICY.containing_type = _MESHCONFIG @@ -1078,11 +1465,53 @@ MeshConfig = _reflection.GeneratedProtocolMessageType('MeshConfig', (_message.Me # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider) }) , + + 'ZipkinTracingProvider' : _reflection.GeneratedProtocolMessageType('ZipkinTracingProvider', (_message.Message,), { + 'DESCRIPTOR' : _MESHCONFIG_EXTENSIONPROVIDER_ZIPKINTRACINGPROVIDER, + '__module__' : 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider) + }) + , + + 'LightstepTracingProvider' : _reflection.GeneratedProtocolMessageType('LightstepTracingProvider', (_message.Message,), { + 'DESCRIPTOR' : _MESHCONFIG_EXTENSIONPROVIDER_LIGHTSTEPTRACINGPROVIDER, + '__module__' : 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider) + }) + , + + 'DatadogTracingProvider' : _reflection.GeneratedProtocolMessageType('DatadogTracingProvider', (_message.Message,), { + 'DESCRIPTOR' : _MESHCONFIG_EXTENSIONPROVIDER_DATADOGTRACINGPROVIDER, + '__module__' : 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider) + }) + , + + 'StackdriverProvider' : _reflection.GeneratedProtocolMessageType('StackdriverProvider', (_message.Message,), { + 'DESCRIPTOR' : _MESHCONFIG_EXTENSIONPROVIDER_STACKDRIVERPROVIDER, + '__module__' : 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider) + }) + , + + 'OpenCensusAgentTracingProvider' : _reflection.GeneratedProtocolMessageType('OpenCensusAgentTracingProvider', (_message.Message,), { + 'DESCRIPTOR' : _MESHCONFIG_EXTENSIONPROVIDER_OPENCENSUSAGENTTRACINGPROVIDER, + '__module__' : 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider) + }) + , 'DESCRIPTOR' : _MESHCONFIG_EXTENSIONPROVIDER, '__module__' : 'mesh.v1alpha1.config_pb2' # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.ExtensionProvider) }) , + + 'DefaultProviders' : _reflection.GeneratedProtocolMessageType('DefaultProviders', (_message.Message,), { + 'DESCRIPTOR' : _MESHCONFIG_DEFAULTPROVIDERS, + '__module__' : 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.DefaultProviders) + }) + , 'DESCRIPTOR' : _MESHCONFIG, '__module__' : 'mesh.v1alpha1.config_pb2' # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig) @@ -1097,6 +1526,12 @@ _sym_db.RegisterMessage(MeshConfig.CA) _sym_db.RegisterMessage(MeshConfig.ExtensionProvider) _sym_db.RegisterMessage(MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider) _sym_db.RegisterMessage(MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider) +_sym_db.RegisterMessage(MeshConfig.ExtensionProvider.ZipkinTracingProvider) +_sym_db.RegisterMessage(MeshConfig.ExtensionProvider.LightstepTracingProvider) +_sym_db.RegisterMessage(MeshConfig.ExtensionProvider.DatadogTracingProvider) +_sym_db.RegisterMessage(MeshConfig.ExtensionProvider.StackdriverProvider) +_sym_db.RegisterMessage(MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider) +_sym_db.RegisterMessage(MeshConfig.DefaultProviders) ConfigSource = _reflection.GeneratedProtocolMessageType('ConfigSource', (_message.Message,), { 'DESCRIPTOR' : _CONFIGSOURCE, diff --git a/python/istio_api/telemetry/v1alpha1/telemetry_pb2.py b/python/istio_api/telemetry/v1alpha1/telemetry_pb2.py new file mode 100644 index 00000000..1dd36727 --- /dev/null +++ b/python/istio_api/telemetry/v1alpha1/telemetry_pb2.py @@ -0,0 +1,430 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: telemetry/v1alpha1/telemetry.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from type.v1beta1 import selector_pb2 as type_dot_v1beta1_dot_selector__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='telemetry/v1alpha1/telemetry.proto', + package='istio.telemetry.v1alpha1', + syntax='proto3', + serialized_options=_b('Z\037istio.io/api/telemetry/v1alpha1'), + serialized_pb=_b('\n\"telemetry/v1alpha1/telemetry.proto\x12\x18istio.telemetry.v1alpha1\x1a\x1btype/v1beta1/selector.proto\"\x8a\x01\n\tTelemetry\x12@\n\x08selector\x18\x01 \x01(\x0b\x32$.istio.type.v1beta1.WorkloadSelectorR\x08selector\x12;\n\x07tracing\x18\x02 \x03(\x0b\x32!.istio.telemetry.v1alpha1.TracingR\x07tracing\"\xb0\x06\n\x07Tracing\x12\x43\n\tproviders\x18\x02 \x03(\x0b\x32%.istio.telemetry.v1alpha1.ProviderRefR\tproviders\x12<\n\x1arandom_sampling_percentage\x18\x03 \x01(\x01R\x18randomSamplingPercentage\x12\x34\n\x16\x64isable_span_reporting\x18\x04 \x01(\x08R\x14\x64isableSpanReporting\x12R\n\x0b\x63ustom_tags\x18\x05 \x03(\x0b\x32\x31.istio.telemetry.v1alpha1.Tracing.CustomTagsEntryR\ncustomTags\x1a\xf8\x01\n\tCustomTag\x12\x45\n\x07literal\x18\x01 \x01(\x0b\x32).istio.telemetry.v1alpha1.Tracing.LiteralH\x00R\x07literal\x12Q\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32-.istio.telemetry.v1alpha1.Tracing.EnvironmentH\x00R\x0b\x65nvironment\x12I\n\x06header\x18\x03 \x01(\x0b\x32/.istio.telemetry.v1alpha1.Tracing.RequestHeaderH\x00R\x06headerB\x06\n\x04type\x1a\x1f\n\x07Literal\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x1a\x46\n\x0b\x45nvironment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1aH\n\rRequestHeader\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1aj\n\x0f\x43ustomTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32+.istio.telemetry.v1alpha1.Tracing.CustomTagR\x05value:\x02\x38\x01\"!\n\x0bProviderRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04nameB!Z\x1fistio.io/api/telemetry/v1alpha1b\x06proto3') + , + dependencies=[type_dot_v1beta1_dot_selector__pb2.DESCRIPTOR,]) + + + + +_TELEMETRY = _descriptor.Descriptor( + name='Telemetry', + full_name='istio.telemetry.v1alpha1.Telemetry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='selector', full_name='istio.telemetry.v1alpha1.Telemetry.selector', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='selector', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracing', full_name='istio.telemetry.v1alpha1.Telemetry.tracing', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='tracing', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=94, + serialized_end=232, +) + + +_TRACING_CUSTOMTAG = _descriptor.Descriptor( + name='CustomTag', + full_name='istio.telemetry.v1alpha1.Tracing.CustomTag', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='literal', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.literal', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='literal', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='environment', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.environment', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='environment', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='header', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.header', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='header', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='type', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.type', + index=0, containing_type=None, fields=[]), + ], + serialized_start=516, + serialized_end=764, +) + +_TRACING_LITERAL = _descriptor.Descriptor( + name='Literal', + full_name='istio.telemetry.v1alpha1.Tracing.Literal', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='istio.telemetry.v1alpha1.Tracing.Literal.value', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='value', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=766, + serialized_end=797, +) + +_TRACING_ENVIRONMENT = _descriptor.Descriptor( + name='Environment', + full_name='istio.telemetry.v1alpha1.Tracing.Environment', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='istio.telemetry.v1alpha1.Tracing.Environment.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_value', full_name='istio.telemetry.v1alpha1.Tracing.Environment.default_value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='defaultValue', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=799, + serialized_end=869, +) + +_TRACING_REQUESTHEADER = _descriptor.Descriptor( + name='RequestHeader', + full_name='istio.telemetry.v1alpha1.Tracing.RequestHeader', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='istio.telemetry.v1alpha1.Tracing.RequestHeader.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_value', full_name='istio.telemetry.v1alpha1.Tracing.RequestHeader.default_value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='defaultValue', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=871, + serialized_end=943, +) + +_TRACING_CUSTOMTAGSENTRY = _descriptor.Descriptor( + name='CustomTagsEntry', + full_name='istio.telemetry.v1alpha1.Tracing.CustomTagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.telemetry.v1alpha1.Tracing.CustomTagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='key', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='istio.telemetry.v1alpha1.Tracing.CustomTagsEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='value', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=945, + serialized_end=1051, +) + +_TRACING = _descriptor.Descriptor( + name='Tracing', + full_name='istio.telemetry.v1alpha1.Tracing', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='providers', full_name='istio.telemetry.v1alpha1.Tracing.providers', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='providers', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='random_sampling_percentage', full_name='istio.telemetry.v1alpha1.Tracing.random_sampling_percentage', index=1, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='randomSamplingPercentage', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='disable_span_reporting', full_name='istio.telemetry.v1alpha1.Tracing.disable_span_reporting', index=2, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='disableSpanReporting', file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='custom_tags', full_name='istio.telemetry.v1alpha1.Tracing.custom_tags', index=3, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='customTags', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_TRACING_CUSTOMTAG, _TRACING_LITERAL, _TRACING_ENVIRONMENT, _TRACING_REQUESTHEADER, _TRACING_CUSTOMTAGSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=235, + serialized_end=1051, +) + + +_PROVIDERREF = _descriptor.Descriptor( + name='ProviderRef', + full_name='istio.telemetry.v1alpha1.ProviderRef', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='istio.telemetry.v1alpha1.ProviderRef.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='name', file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1053, + serialized_end=1086, +) + +_TELEMETRY.fields_by_name['selector'].message_type = type_dot_v1beta1_dot_selector__pb2._WORKLOADSELECTOR +_TELEMETRY.fields_by_name['tracing'].message_type = _TRACING +_TRACING_CUSTOMTAG.fields_by_name['literal'].message_type = _TRACING_LITERAL +_TRACING_CUSTOMTAG.fields_by_name['environment'].message_type = _TRACING_ENVIRONMENT +_TRACING_CUSTOMTAG.fields_by_name['header'].message_type = _TRACING_REQUESTHEADER +_TRACING_CUSTOMTAG.containing_type = _TRACING +_TRACING_CUSTOMTAG.oneofs_by_name['type'].fields.append( + _TRACING_CUSTOMTAG.fields_by_name['literal']) +_TRACING_CUSTOMTAG.fields_by_name['literal'].containing_oneof = _TRACING_CUSTOMTAG.oneofs_by_name['type'] +_TRACING_CUSTOMTAG.oneofs_by_name['type'].fields.append( + _TRACING_CUSTOMTAG.fields_by_name['environment']) +_TRACING_CUSTOMTAG.fields_by_name['environment'].containing_oneof = _TRACING_CUSTOMTAG.oneofs_by_name['type'] +_TRACING_CUSTOMTAG.oneofs_by_name['type'].fields.append( + _TRACING_CUSTOMTAG.fields_by_name['header']) +_TRACING_CUSTOMTAG.fields_by_name['header'].containing_oneof = _TRACING_CUSTOMTAG.oneofs_by_name['type'] +_TRACING_LITERAL.containing_type = _TRACING +_TRACING_ENVIRONMENT.containing_type = _TRACING +_TRACING_REQUESTHEADER.containing_type = _TRACING +_TRACING_CUSTOMTAGSENTRY.fields_by_name['value'].message_type = _TRACING_CUSTOMTAG +_TRACING_CUSTOMTAGSENTRY.containing_type = _TRACING +_TRACING.fields_by_name['providers'].message_type = _PROVIDERREF +_TRACING.fields_by_name['custom_tags'].message_type = _TRACING_CUSTOMTAGSENTRY +DESCRIPTOR.message_types_by_name['Telemetry'] = _TELEMETRY +DESCRIPTOR.message_types_by_name['Tracing'] = _TRACING +DESCRIPTOR.message_types_by_name['ProviderRef'] = _PROVIDERREF +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Telemetry = _reflection.GeneratedProtocolMessageType('Telemetry', (_message.Message,), { + 'DESCRIPTOR' : _TELEMETRY, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Telemetry) + }) +_sym_db.RegisterMessage(Telemetry) + +Tracing = _reflection.GeneratedProtocolMessageType('Tracing', (_message.Message,), { + + 'CustomTag' : _reflection.GeneratedProtocolMessageType('CustomTag', (_message.Message,), { + 'DESCRIPTOR' : _TRACING_CUSTOMTAG, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.CustomTag) + }) + , + + 'Literal' : _reflection.GeneratedProtocolMessageType('Literal', (_message.Message,), { + 'DESCRIPTOR' : _TRACING_LITERAL, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.Literal) + }) + , + + 'Environment' : _reflection.GeneratedProtocolMessageType('Environment', (_message.Message,), { + 'DESCRIPTOR' : _TRACING_ENVIRONMENT, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.Environment) + }) + , + + 'RequestHeader' : _reflection.GeneratedProtocolMessageType('RequestHeader', (_message.Message,), { + 'DESCRIPTOR' : _TRACING_REQUESTHEADER, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.RequestHeader) + }) + , + + 'CustomTagsEntry' : _reflection.GeneratedProtocolMessageType('CustomTagsEntry', (_message.Message,), { + 'DESCRIPTOR' : _TRACING_CUSTOMTAGSENTRY, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.CustomTagsEntry) + }) + , + 'DESCRIPTOR' : _TRACING, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing) + }) +_sym_db.RegisterMessage(Tracing) +_sym_db.RegisterMessage(Tracing.CustomTag) +_sym_db.RegisterMessage(Tracing.Literal) +_sym_db.RegisterMessage(Tracing.Environment) +_sym_db.RegisterMessage(Tracing.RequestHeader) +_sym_db.RegisterMessage(Tracing.CustomTagsEntry) + +ProviderRef = _reflection.GeneratedProtocolMessageType('ProviderRef', (_message.Message,), { + 'DESCRIPTOR' : _PROVIDERREF, + '__module__' : 'telemetry.v1alpha1.telemetry_pb2' + # @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.ProviderRef) + }) +_sym_db.RegisterMessage(ProviderRef) + + +DESCRIPTOR._options = None +_TRACING_CUSTOMTAGSENTRY._options = None +# @@protoc_insertion_point(module_scope) diff --git a/releasenotes/notes/add-experimental-telemetry-api-for-tracing.yaml b/releasenotes/notes/add-experimental-telemetry-api-for-tracing.yaml new file mode 100644 index 00000000..c27635d3 --- /dev/null +++ b/releasenotes/notes/add-experimental-telemetry-api-for-tracing.yaml @@ -0,0 +1,13 @@ +apiVersion: release-notes/v2 + +kind: feature +area: telemetry +issue: + +releaseNotes: +- | + **Added** experimental Telemetry API with support for workload-level specification of tracing behavior. + +# docs is a list of related docs to the change. +docs: +- https://docs.google.com/document/d/1pTFVzGii7sB4uALMsrUN4ALFc0J7vI2UyBnJpP_bsgU/edit diff --git a/telemetry/v1alpha1/telemetry.pb.go b/telemetry/v1alpha1/telemetry.pb.go new file mode 100644 index 00000000..2824ad5a --- /dev/null +++ b/telemetry/v1alpha1/telemetry.pb.go @@ -0,0 +1,2247 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: telemetry/v1alpha1/telemetry.proto + +package v1alpha1 + +import ( + encoding_binary "encoding/binary" + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + io "io" + v1beta1 "istio.io/api/type/v1beta1" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// Telemetry defines how the telemetry is generated for workloads within a mesh. +// +// For mesh level configuration, put the resource in root configuration namespace for +// your Istio installation *without* a workload selector. +// +// For any namespace, including the root configuration namespace, it is only valid +// to have a single workload selector-less Telemetry resource. +// +// For resources with a workload selector, it is only valid to have one resource selecting +// any given workload. +// +// Telemetry configuration will be evaluated in order, from most specific matches per telemetry +// type (tracing, access logging, and metrics) to least specific matches. The first +// matching configuration for the telemetry type will be applied. The order of evaluation will be: +// +// 1. Workload-specific configuration +// 1. Namespace-specific configuration +// 1. Root namespace configuration +// +// Telemetry configuration does not inherit. Rather, matched configurations must fully-specify +// the desired behavior. Workload-specific configuration fully replaces any configuration +// defined at the local and root namespace levels. +// +// WARNING: Support for Telemetry policies is under active development and is *not* +// stable or supported by Istio at this time. +// +// Examples: +// +// Policy to enable random sampling for 10% of traffic: +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: mesh-default +// namespace: istio-system +// spec: +// tracing: +// - randomSamplingPercentage: 10.00 +// ``` +// +// Policy to disable trace reporting for the "foo" workload (note: tracing +// context will still be propagated): +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: foo-tracing +// namespace: bar +// spec: +// selector: +// labels: +// service.istio.io/canonical-name: foo +// tracing: +// - disableSpanReporting: true +// ``` +// +// Policy to select the alternate zipkin provider for trace reporting: +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: foo-tracing-alternate +// namespace: baz +// spec: +// selector: +// labels: +// service.istio.io/canonical-name: foo +// tracing: +// - providers: +// - name: "zipkin-alternate" +// randomSamplingPercentage: 10.00 +// ``` +// +// Policy to add a custom tag from a literal value: +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: mesh-default +// namespace: istio-system +// spec: +// tracing: +// - randomSamplingPercentage: 10.00 +// customTags: +// my_new_foo_tag: +// literal: +// value: "foo" +// ``` +// +// +// +// +type Telemetry struct { + // Optional. The selector decides where to apply the Telemetry policy. + // If not set, the Telemetry policy will be applied to all workloads in the + // same namespace as the Telemetry policy. + Selector *v1beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` + // Optional. Tracing configures the tracing behavior for all + // selected workloads. + Tracing []*Tracing `protobuf:"bytes,2,rep,name=tracing,proto3" json:"tracing,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Telemetry) Reset() { *m = Telemetry{} } +func (m *Telemetry) String() string { return proto.CompactTextString(m) } +func (*Telemetry) ProtoMessage() {} +func (*Telemetry) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{0} +} +func (m *Telemetry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Telemetry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Telemetry.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Telemetry) XXX_Merge(src proto.Message) { + xxx_messageInfo_Telemetry.Merge(m, src) +} +func (m *Telemetry) XXX_Size() int { + return m.Size() +} +func (m *Telemetry) XXX_DiscardUnknown() { + xxx_messageInfo_Telemetry.DiscardUnknown(m) +} + +var xxx_messageInfo_Telemetry proto.InternalMessageInfo + +func (m *Telemetry) GetSelector() *v1beta1.WorkloadSelector { + if m != nil { + return m.Selector + } + return nil +} + +func (m *Telemetry) GetTracing() []*Tracing { + if m != nil { + return m.Tracing + } + return nil +} + +// Tracing configures tracing behavior for workloads within a mesh. +// It can be used to enable/disable tracing, as well as to set sampling +// rates and custom tag extraction. +type Tracing struct { + // Optional. Name of provider(s) to use for span reporting. If a provider is + // not specified, the [default tracing provider][istio.mesh.v1alpha1.MeshConfig.default_tracing_provider] + // will be used. + // NOTE: At the moment, only a single provider can be specified in a given + // Tracing rule. + Providers []*ProviderRef `protobuf:"bytes,2,rep,name=providers,proto3" json:"providers,omitempty"` + // Controls the rate at which traffic will be selected for tracing if no + // prior sampling decision has been made. If a prior sampling decision has been + // made, that decision will be respected. However, if no sampling decision + // has been made (example: no `x-b3-sampled` tracing header was present in the + // requests), the traffic will be selected for telemetry generation at the + // percentage specified. + // + // Defaults to 0%. Valid values [0.00-100.00]. Can be specified in 0.01% + // increments. + RandomSamplingPercentage float64 `protobuf:"fixed64,3,opt,name=random_sampling_percentage,json=randomSamplingPercentage,proto3" json:"random_sampling_percentage,omitempty"` + // Controls span reporting. If set to true, no spans will be reported for + // impacted workloads. This does NOT impact context propagation or trace + // sampling behavior. + DisableSpanReporting bool `protobuf:"varint,4,opt,name=disable_span_reporting,json=disableSpanReporting,proto3" json:"disable_span_reporting,omitempty"` + // Optional. Configures additional custom tags to the generated trace spans. + CustomTags map[string]*Tracing_CustomTag `protobuf:"bytes,5,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing) Reset() { *m = Tracing{} } +func (m *Tracing) String() string { return proto.CompactTextString(m) } +func (*Tracing) ProtoMessage() {} +func (*Tracing) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{1} +} +func (m *Tracing) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tracing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tracing.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tracing) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing.Merge(m, src) +} +func (m *Tracing) XXX_Size() int { + return m.Size() +} +func (m *Tracing) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing proto.InternalMessageInfo + +func (m *Tracing) GetProviders() []*ProviderRef { + if m != nil { + return m.Providers + } + return nil +} + +func (m *Tracing) GetRandomSamplingPercentage() float64 { + if m != nil { + return m.RandomSamplingPercentage + } + return 0 +} + +func (m *Tracing) GetDisableSpanReporting() bool { + if m != nil { + return m.DisableSpanReporting + } + return false +} + +func (m *Tracing) GetCustomTags() map[string]*Tracing_CustomTag { + if m != nil { + return m.CustomTags + } + return nil +} + +// CustomTag defines a tag to be added to a trace span that is based on +// an operator-supplied value. This value can either be a hard-coded value, +// a value taken from an environment variable known to the sidecar proxy, or +// from a request header. +type Tracing_CustomTag struct { + // Types that are valid to be assigned to Type: + // *Tracing_CustomTag_Literal + // *Tracing_CustomTag_Environment + // *Tracing_CustomTag_Header + Type isTracing_CustomTag_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing_CustomTag) Reset() { *m = Tracing_CustomTag{} } +func (m *Tracing_CustomTag) String() string { return proto.CompactTextString(m) } +func (*Tracing_CustomTag) ProtoMessage() {} +func (*Tracing_CustomTag) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{1, 0} +} +func (m *Tracing_CustomTag) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tracing_CustomTag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tracing_CustomTag.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tracing_CustomTag) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing_CustomTag.Merge(m, src) +} +func (m *Tracing_CustomTag) XXX_Size() int { + return m.Size() +} +func (m *Tracing_CustomTag) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing_CustomTag.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing_CustomTag proto.InternalMessageInfo + +type isTracing_CustomTag_Type interface { + isTracing_CustomTag_Type() + MarshalTo([]byte) (int, error) + Size() int +} + +type Tracing_CustomTag_Literal struct { + Literal *Tracing_Literal `protobuf:"bytes,1,opt,name=literal,proto3,oneof" json:"literal,omitempty"` +} +type Tracing_CustomTag_Environment struct { + Environment *Tracing_Environment `protobuf:"bytes,2,opt,name=environment,proto3,oneof" json:"environment,omitempty"` +} +type Tracing_CustomTag_Header struct { + Header *Tracing_RequestHeader `protobuf:"bytes,3,opt,name=header,proto3,oneof" json:"header,omitempty"` +} + +func (*Tracing_CustomTag_Literal) isTracing_CustomTag_Type() {} +func (*Tracing_CustomTag_Environment) isTracing_CustomTag_Type() {} +func (*Tracing_CustomTag_Header) isTracing_CustomTag_Type() {} + +func (m *Tracing_CustomTag) GetType() isTracing_CustomTag_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *Tracing_CustomTag) GetLiteral() *Tracing_Literal { + if x, ok := m.GetType().(*Tracing_CustomTag_Literal); ok { + return x.Literal + } + return nil +} + +func (m *Tracing_CustomTag) GetEnvironment() *Tracing_Environment { + if x, ok := m.GetType().(*Tracing_CustomTag_Environment); ok { + return x.Environment + } + return nil +} + +func (m *Tracing_CustomTag) GetHeader() *Tracing_RequestHeader { + if x, ok := m.GetType().(*Tracing_CustomTag_Header); ok { + return x.Header + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Tracing_CustomTag) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Tracing_CustomTag_Literal)(nil), + (*Tracing_CustomTag_Environment)(nil), + (*Tracing_CustomTag_Header)(nil), + } +} + +type Tracing_Literal struct { + // The tag value to use. + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing_Literal) Reset() { *m = Tracing_Literal{} } +func (m *Tracing_Literal) String() string { return proto.CompactTextString(m) } +func (*Tracing_Literal) ProtoMessage() {} +func (*Tracing_Literal) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{1, 1} +} +func (m *Tracing_Literal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tracing_Literal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tracing_Literal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tracing_Literal) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing_Literal.Merge(m, src) +} +func (m *Tracing_Literal) XXX_Size() int { + return m.Size() +} +func (m *Tracing_Literal) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing_Literal.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing_Literal proto.InternalMessageInfo + +func (m *Tracing_Literal) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +type Tracing_Environment struct { + // Name of the environment variable from which to extract the tag value. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. If the environment variable is not found, this value will be + // used instead. + DefaultValue string `protobuf:"bytes,2,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing_Environment) Reset() { *m = Tracing_Environment{} } +func (m *Tracing_Environment) String() string { return proto.CompactTextString(m) } +func (*Tracing_Environment) ProtoMessage() {} +func (*Tracing_Environment) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{1, 2} +} +func (m *Tracing_Environment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tracing_Environment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tracing_Environment.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tracing_Environment) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing_Environment.Merge(m, src) +} +func (m *Tracing_Environment) XXX_Size() int { + return m.Size() +} +func (m *Tracing_Environment) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing_Environment.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing_Environment proto.InternalMessageInfo + +func (m *Tracing_Environment) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Tracing_Environment) GetDefaultValue() string { + if m != nil { + return m.DefaultValue + } + return "" +} + +type Tracing_RequestHeader struct { + // Name of the header from which to extract the tag value. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. If the header is not found, this value will be + // used instead. + DefaultValue string `protobuf:"bytes,2,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing_RequestHeader) Reset() { *m = Tracing_RequestHeader{} } +func (m *Tracing_RequestHeader) String() string { return proto.CompactTextString(m) } +func (*Tracing_RequestHeader) ProtoMessage() {} +func (*Tracing_RequestHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{1, 3} +} +func (m *Tracing_RequestHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tracing_RequestHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tracing_RequestHeader.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tracing_RequestHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing_RequestHeader.Merge(m, src) +} +func (m *Tracing_RequestHeader) XXX_Size() int { + return m.Size() +} +func (m *Tracing_RequestHeader) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing_RequestHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing_RequestHeader proto.InternalMessageInfo + +func (m *Tracing_RequestHeader) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Tracing_RequestHeader) GetDefaultValue() string { + if m != nil { + return m.DefaultValue + } + return "" +} + +// Used to bind Telemetry configuration to specific providers for +// targeted customization. +type ProviderRef struct { + // Required. Name of Telemetry provider in MeshConfig. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProviderRef) Reset() { *m = ProviderRef{} } +func (m *ProviderRef) String() string { return proto.CompactTextString(m) } +func (*ProviderRef) ProtoMessage() {} +func (*ProviderRef) Descriptor() ([]byte, []int) { + return fileDescriptor_991c84745e2b7651, []int{2} +} +func (m *ProviderRef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProviderRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProviderRef.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProviderRef) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProviderRef.Merge(m, src) +} +func (m *ProviderRef) XXX_Size() int { + return m.Size() +} +func (m *ProviderRef) XXX_DiscardUnknown() { + xxx_messageInfo_ProviderRef.DiscardUnknown(m) +} + +var xxx_messageInfo_ProviderRef proto.InternalMessageInfo + +func (m *ProviderRef) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func init() { + proto.RegisterType((*Telemetry)(nil), "istio.telemetry.v1alpha1.Telemetry") + proto.RegisterType((*Tracing)(nil), "istio.telemetry.v1alpha1.Tracing") + proto.RegisterMapType((map[string]*Tracing_CustomTag)(nil), "istio.telemetry.v1alpha1.Tracing.CustomTagsEntry") + proto.RegisterType((*Tracing_CustomTag)(nil), "istio.telemetry.v1alpha1.Tracing.CustomTag") + proto.RegisterType((*Tracing_Literal)(nil), "istio.telemetry.v1alpha1.Tracing.Literal") + proto.RegisterType((*Tracing_Environment)(nil), "istio.telemetry.v1alpha1.Tracing.Environment") + proto.RegisterType((*Tracing_RequestHeader)(nil), "istio.telemetry.v1alpha1.Tracing.RequestHeader") + proto.RegisterType((*ProviderRef)(nil), "istio.telemetry.v1alpha1.ProviderRef") +} + +func init() { + proto.RegisterFile("telemetry/v1alpha1/telemetry.proto", fileDescriptor_991c84745e2b7651) +} + +var fileDescriptor_991c84745e2b7651 = []byte{ + // 536 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xdf, 0x6e, 0xd3, 0x30, + 0x14, 0xc6, 0xe7, 0xae, 0x6b, 0xd7, 0x13, 0x26, 0x90, 0x35, 0xa1, 0xa8, 0x48, 0x5d, 0x57, 0x40, + 0x2a, 0x42, 0x4b, 0xd4, 0xc2, 0x05, 0x02, 0x2e, 0x60, 0x53, 0x51, 0x91, 0xb8, 0x18, 0x6e, 0x05, + 0x12, 0x37, 0x91, 0xdb, 0x9c, 0x75, 0x61, 0x89, 0x6d, 0x1c, 0xb7, 0x52, 0x5f, 0x81, 0xa7, 0xe1, + 0x31, 0xb8, 0xe4, 0x11, 0x50, 0x9f, 0x82, 0x4b, 0xd4, 0xc4, 0x69, 0xcb, 0x9f, 0xa9, 0x82, 0x3b, + 0xe7, 0x9c, 0xef, 0xfb, 0xe5, 0x3b, 0xb6, 0x65, 0x68, 0x19, 0x8c, 0x31, 0x41, 0xa3, 0xe7, 0xfe, + 0xac, 0xc3, 0x63, 0x75, 0xc9, 0x3b, 0xfe, 0xaa, 0xe4, 0x29, 0x2d, 0x8d, 0xa4, 0x6e, 0x94, 0x9a, + 0x48, 0x7a, 0xeb, 0x72, 0xa1, 0xac, 0xdf, 0x31, 0x73, 0x85, 0xfe, 0xac, 0x33, 0x42, 0xc3, 0x3b, + 0x7e, 0x8a, 0x31, 0x8e, 0x8d, 0xd4, 0xb9, 0xad, 0xf5, 0x99, 0x40, 0x6d, 0x58, 0x78, 0xe8, 0x0b, + 0xd8, 0x2f, 0xfa, 0x2e, 0x69, 0x92, 0xb6, 0xd3, 0xbd, 0xe7, 0x59, 0xee, 0x5c, 0xa1, 0x67, 0x19, + 0xde, 0x7b, 0xa9, 0xaf, 0x62, 0xc9, 0xc3, 0x81, 0xd5, 0xb2, 0x95, 0x8b, 0x3e, 0x83, 0xaa, 0xd1, + 0x7c, 0x1c, 0x89, 0x89, 0x5b, 0x6a, 0xee, 0xb6, 0x9d, 0xee, 0xb1, 0x77, 0x5d, 0x30, 0x6f, 0x98, + 0x0b, 0x59, 0xe1, 0x68, 0x7d, 0xa9, 0x40, 0xd5, 0x16, 0xe9, 0x19, 0xd4, 0x94, 0x96, 0xb3, 0x28, + 0x44, 0x9d, 0x5a, 0xd4, 0xfd, 0xeb, 0x51, 0xe7, 0x56, 0xca, 0xf0, 0x82, 0xad, 0x7d, 0xf4, 0x39, + 0xd4, 0x35, 0x17, 0xa1, 0x4c, 0x82, 0x94, 0x27, 0x2a, 0x8e, 0xc4, 0x24, 0x50, 0xa8, 0xc7, 0x28, + 0x0c, 0x9f, 0xa0, 0xbb, 0xdb, 0x24, 0x6d, 0xc2, 0xdc, 0x5c, 0x31, 0xb0, 0x82, 0xf3, 0x55, 0x9f, + 0x3e, 0x86, 0xdb, 0x61, 0x94, 0xf2, 0x51, 0x8c, 0x41, 0xaa, 0xb8, 0x08, 0x34, 0x2a, 0xa9, 0xcd, + 0x72, 0xb4, 0x72, 0x93, 0xb4, 0xf7, 0xd9, 0xa1, 0xed, 0x0e, 0x14, 0x17, 0xac, 0xe8, 0x51, 0x06, + 0xce, 0x78, 0x9a, 0x1a, 0x99, 0x04, 0x86, 0x4f, 0x52, 0x77, 0x2f, 0x8b, 0xde, 0xd9, 0xba, 0x0b, + 0xde, 0x59, 0x66, 0x1a, 0xf2, 0x49, 0xda, 0x13, 0x46, 0xcf, 0x19, 0x8c, 0x57, 0x85, 0xfa, 0x0f, + 0x02, 0xb5, 0x55, 0x9f, 0xf6, 0xa0, 0x1a, 0x47, 0x06, 0x35, 0x8f, 0xed, 0x21, 0x3d, 0xd8, 0x4e, + 0x7f, 0x93, 0x1b, 0xfa, 0x3b, 0xac, 0xf0, 0xd2, 0xb7, 0xe0, 0xa0, 0x98, 0x45, 0x5a, 0x8a, 0x04, + 0x85, 0x71, 0x4b, 0x19, 0xea, 0x64, 0x3b, 0xaa, 0xb7, 0x36, 0xf5, 0x77, 0xd8, 0x26, 0x83, 0xbe, + 0x86, 0xca, 0x25, 0xf2, 0x10, 0x75, 0xb6, 0xb7, 0x4e, 0xd7, 0xdf, 0x4e, 0x63, 0xf8, 0x69, 0x8a, + 0xa9, 0xe9, 0x67, 0xb6, 0xfe, 0x0e, 0xb3, 0x80, 0xd3, 0x0a, 0x94, 0x97, 0x77, 0xae, 0x7e, 0x04, + 0x55, 0x9b, 0x9d, 0x1e, 0xc2, 0xde, 0x8c, 0xc7, 0x53, 0xcc, 0xa6, 0xae, 0xb1, 0xfc, 0xa3, 0xfe, + 0x0a, 0x9c, 0x8d, 0x44, 0x94, 0x42, 0x59, 0xf0, 0xa4, 0xd0, 0x64, 0x6b, 0x7a, 0x17, 0x0e, 0x42, + 0xbc, 0xe0, 0xd3, 0xd8, 0x04, 0x39, 0xa0, 0x94, 0x35, 0x6f, 0xd8, 0xe2, 0xbb, 0x8c, 0xd3, 0x87, + 0x83, 0x5f, 0xb2, 0xfc, 0x3f, 0xe9, 0x23, 0xdc, 0xfc, 0xed, 0x30, 0xe9, 0x2d, 0xd8, 0xbd, 0xc2, + 0xb9, 0x45, 0x2d, 0x97, 0xf4, 0x65, 0x31, 0x4c, 0xbe, 0xef, 0x0f, 0xff, 0xe1, 0x82, 0xd8, 0xc9, + 0x9f, 0x96, 0x9e, 0x90, 0xd6, 0x31, 0x38, 0x1b, 0x77, 0xff, 0x6f, 0x99, 0x4f, 0x4f, 0xbe, 0x2e, + 0x1a, 0xe4, 0xdb, 0xa2, 0x41, 0xbe, 0x2f, 0x1a, 0xe4, 0xc3, 0x51, 0xfe, 0x9f, 0x48, 0xfa, 0x5c, + 0x45, 0xfe, 0x9f, 0x0f, 0xcb, 0xa8, 0x92, 0x3d, 0x0c, 0x8f, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, + 0xa4, 0x06, 0x07, 0x53, 0x75, 0x04, 0x00, 0x00, +} + +func (m *Telemetry) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Telemetry) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Telemetry) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Tracing) > 0 { + for iNdEx := len(m.Tracing) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Tracing[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Tracing) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tracing) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.CustomTags) > 0 { + for k := range m.CustomTags { + v := m.CustomTags[k] + baseI := i + if v != nil { + { + size, err := v.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintTelemetry(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintTelemetry(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + } + } + if m.DisableSpanReporting { + i-- + if m.DisableSpanReporting { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.RandomSamplingPercentage != 0 { + i -= 8 + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.RandomSamplingPercentage)))) + i-- + dAtA[i] = 0x19 + } + if len(m.Providers) > 0 { + for iNdEx := len(m.Providers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Providers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + return len(dAtA) - i, nil +} + +func (m *Tracing_CustomTag) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tracing_CustomTag) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_CustomTag) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Type != nil { + { + size := m.Type.Size() + i -= size + if _, err := m.Type.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *Tracing_CustomTag_Literal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_CustomTag_Literal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Literal != nil { + { + size, err := m.Literal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Tracing_CustomTag_Environment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_CustomTag_Environment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Environment != nil { + { + size, err := m.Environment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Tracing_CustomTag_Header) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_CustomTag_Header) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTelemetry(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *Tracing_Literal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tracing_Literal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_Literal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintTelemetry(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Tracing_Environment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tracing_Environment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_Environment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.DefaultValue) > 0 { + i -= len(m.DefaultValue) + copy(dAtA[i:], m.DefaultValue) + i = encodeVarintTelemetry(dAtA, i, uint64(len(m.DefaultValue))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTelemetry(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Tracing_RequestHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tracing_RequestHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tracing_RequestHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.DefaultValue) > 0 { + i -= len(m.DefaultValue) + copy(dAtA[i:], m.DefaultValue) + i = encodeVarintTelemetry(dAtA, i, uint64(len(m.DefaultValue))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTelemetry(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProviderRef) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProviderRef) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProviderRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTelemetry(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintTelemetry(dAtA []byte, offset int, v uint64) int { + offset -= sovTelemetry(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Telemetry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovTelemetry(uint64(l)) + } + if len(m.Tracing) > 0 { + for _, e := range m.Tracing { + l = e.Size() + n += 1 + l + sovTelemetry(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Tracing) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Providers) > 0 { + for _, e := range m.Providers { + l = e.Size() + n += 1 + l + sovTelemetry(uint64(l)) + } + } + if m.RandomSamplingPercentage != 0 { + n += 9 + } + if m.DisableSpanReporting { + n += 2 + } + if len(m.CustomTags) > 0 { + for k, v := range m.CustomTags { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTelemetry(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovTelemetry(uint64(len(k))) + l + n += mapEntrySize + 1 + sovTelemetry(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Tracing_CustomTag) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != nil { + n += m.Type.Size() + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Tracing_CustomTag_Literal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Literal != nil { + l = m.Literal.Size() + n += 1 + l + sovTelemetry(uint64(l)) + } + return n +} +func (m *Tracing_CustomTag_Environment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Environment != nil { + l = m.Environment.Size() + n += 1 + l + sovTelemetry(uint64(l)) + } + return n +} +func (m *Tracing_CustomTag_Header) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovTelemetry(uint64(l)) + } + return n +} +func (m *Tracing_Literal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Value) + if l > 0 { + n += 1 + l + sovTelemetry(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Tracing_Environment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTelemetry(uint64(l)) + } + l = len(m.DefaultValue) + if l > 0 { + n += 1 + l + sovTelemetry(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Tracing_RequestHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTelemetry(uint64(l)) + } + l = len(m.DefaultValue) + if l > 0 { + n += 1 + l + sovTelemetry(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProviderRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTelemetry(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovTelemetry(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTelemetry(x uint64) (n int) { + return sovTelemetry(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Telemetry) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Telemetry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Telemetry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &v1beta1.WorkloadSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tracing", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tracing = append(m.Tracing, &Tracing{}) + if err := m.Tracing[len(m.Tracing)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Tracing) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Tracing: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Tracing: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Providers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Providers = append(m.Providers, &ProviderRef{}) + if err := m.Providers[len(m.Providers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field RandomSamplingPercentage", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.RandomSamplingPercentage = float64(math.Float64frombits(v)) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisableSpanReporting", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DisableSpanReporting = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CustomTags", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CustomTags == nil { + m.CustomTags = make(map[string]*Tracing_CustomTag) + } + var mapkey string + var mapvalue *Tracing_CustomTag + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTelemetry + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthTelemetry + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTelemetry + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &Tracing_CustomTag{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.CustomTags[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Tracing_CustomTag) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CustomTag: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CustomTag: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Literal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Tracing_Literal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &Tracing_CustomTag_Literal{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Environment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Tracing_Environment{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &Tracing_CustomTag_Environment{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Tracing_RequestHeader{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Type = &Tracing_CustomTag_Header{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Tracing_Literal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Literal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Literal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Tracing_Environment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Environment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Environment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultValue = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Tracing_RequestHeader) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultValue = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderRef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTelemetry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTelemetry + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTelemetry + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTelemetry(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTelemetry + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTelemetry(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTelemetry + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTelemetry + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTelemetry + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTelemetry + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTelemetry + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTelemetry + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTelemetry = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTelemetry = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTelemetry = fmt.Errorf("proto: unexpected end of group") +) diff --git a/telemetry/v1alpha1/telemetry.pb.html b/telemetry/v1alpha1/telemetry.pb.html new file mode 100644 index 00000000..37f77293 --- /dev/null +++ b/telemetry/v1alpha1/telemetry.pb.html @@ -0,0 +1,398 @@ +--- +title: istio.telemetry.v1alpha1 +layout: protoc-gen-docs +generator: protoc-gen-docs +number_of_entries: 7 +--- +

Telemetry

+
+

Telemetry defines how the telemetry is generated for workloads within a mesh.

+ +

For mesh level configuration, put the resource in root configuration namespace for +your Istio installation without a workload selector.

+ +

For any namespace, including the root configuration namespace, it is only valid +to have a single workload selector-less Telemetry resource.

+ +

For resources with a workload selector, it is only valid to have one resource selecting +any given workload.

+ +

Telemetry configuration will be evaluated in order, from most specific matches per telemetry +type (tracing, access logging, and metrics) to least specific matches. The first +matching configuration for the telemetry type will be applied. The order of evaluation will be:

+ +
    +
  1. Workload-specific configuration
  2. +
  3. Namespace-specific configuration
  4. +
  5. Root namespace configuration
  6. +
+ +

Telemetry configuration does not inherit. Rather, matched configurations must fully-specify +the desired behavior. Workload-specific configuration fully replaces any configuration +defined at the local and root namespace levels.

+ +

WARNING: Support for Telemetry policies is under active development and is not +stable or supported by Istio at this time.

+ +

Examples:

+ +

Policy to enable random sampling for 10% of traffic:

+ +
apiVersion: telemetry.istio.io/v1alpha1
+kind: Telemetry
+metadata:
+  name: mesh-default
+  namespace: istio-system
+spec:
+  tracing:
+  - randomSamplingPercentage: 10.00
+
+ +

Policy to disable trace reporting for the “foo” workload (note: tracing +context will still be propagated):

+ +
apiVersion: telemetry.istio.io/v1alpha1
+kind: Telemetry
+metadata:
+  name: foo-tracing
+  namespace: bar
+spec:
+  selector:
+    labels:
+      service.istio.io/canonical-name: foo
+  tracing:
+  - disableSpanReporting: true
+
+ +

Policy to select the alternate zipkin provider for trace reporting:

+ +
apiVersion: telemetry.istio.io/v1alpha1
+kind: Telemetry
+metadata:
+  name: foo-tracing-alternate
+  namespace: baz
+spec:
+  selector:
+    labels:
+      service.istio.io/canonical-name: foo
+  tracing:
+  - providers:
+    - name: "zipkin-alternate"
+    randomSamplingPercentage: 10.00
+
+ +

Policy to add a custom tag from a literal value:

+ +
apiVersion: telemetry.istio.io/v1alpha1
+kind: Telemetry
+metadata:
+  name: mesh-default
+  namespace: istio-system
+spec:
+  tracing:
+  - randomSamplingPercentage: 10.00
+    customTags:
+      my_new_foo_tag:
+        literal:
+          value: "foo"
+
+ +
NameDescription
W3C_TRACE_CONTEXT +

Use W3C Trace Context propagation using the traceparent HTTP header. +See the +Trace Context documentation for details.

+ +
GRPC_BIN +

Use gRPC binary context propagation using the grpc-trace-bin http header.

+ +
CLOUD_TRACE_CONTEXT +

Use Cloud Trace context propagation using the +X-Cloud-Trace-Context http header.

+ +
B3 +

Use multi-header B3 context propagation using the X-B3-TraceId, +X-B3-SpanId, and X-B3-Sampled HTTP headers. See +B3 header propagation README +for details.

+
+ + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
selectorWorkloadSelector +

Optional. The selector decides where to apply the Telemetry policy. +If not set, the Telemetry policy will be applied to all workloads in the +same namespace as the Telemetry policy.

+ +
+No +
tracingTracing[] +

Optional. Tracing configures the tracing behavior for all +selected workloads.

+ +
+No +
+
+

Tracing

+
+

Tracing configures tracing behavior for workloads within a mesh. +It can be used to enable/disable tracing, as well as to set sampling +rates and custom tag extraction.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
providersProviderRef[] +

Optional. Name of provider(s) to use for span reporting. If a provider is +not specified, the default tracing provider +will be used. +NOTE: At the moment, only a single provider can be specified in a given +Tracing rule.

+ +
+No +
randomSamplingPercentagedouble +

Controls the rate at which traffic will be selected for tracing if no +prior sampling decision has been made. If a prior sampling decision has been +made, that decision will be respected. However, if no sampling decision +has been made (example: no x-b3-sampled tracing header was present in the +requests), the traffic will be selected for telemetry generation at the +percentage specified.

+ +

Defaults to 0%. Valid values [0.00-100.00]. Can be specified in 0.01% +increments.

+ +
+No +
disableSpanReportingbool +

Controls span reporting. If set to true, no spans will be reported for +impacted workloads. This does NOT impact context propagation or trace +sampling behavior.

+ +
+No +
customTagsmap<string, CustomTag> +

Optional. Configures additional custom tags to the generated trace spans.

+ +
+No +
+
+

ProviderRef

+
+

Used to bind Telemetry configuration to specific providers for +targeted customization.

+ + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
namestring +

Required. Name of Telemetry provider in MeshConfig.

+ +
+No +
+
+

Tracing.CustomTag

+
+

CustomTag defines a tag to be added to a trace span that is based on +an operator-supplied value. This value can either be a hard-coded value, +a value taken from an environment variable known to the sidecar proxy, or +from a request header.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
literalLiteral (oneof) +

Literal adds the same, hard-coded value to each span.

+ +
+No +
environmentEnvironment (oneof) +

Environment adds the value of an environment variable to each span.

+ +
+No +
headerRequestHeader (oneof) +

RequestHeader adds the value of an header from the request to each span.

+ +
+No +
+
+

Tracing.Literal

+
+ + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
valuestring +

The tag value to use.

+ +
+No +
+
+

Tracing.Environment

+
+ + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
namestring +

Name of the environment variable from which to extract the tag value.

+ +
+No +
defaultValuestring +

Optional. If the environment variable is not found, this value will be +used instead.

+ +
+No +
+
+

Tracing.RequestHeader

+
+ + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescriptionRequired
namestring +

Name of the header from which to extract the tag value.

+ +
+No +
defaultValuestring +

Optional. If the header is not found, this value will be +used instead.

+ +
+No +
+
diff --git a/telemetry/v1alpha1/telemetry.proto b/telemetry/v1alpha1/telemetry.proto new file mode 100644 index 00000000..55a9db19 --- /dev/null +++ b/telemetry/v1alpha1/telemetry.proto @@ -0,0 +1,225 @@ +// Copyright Istio Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +import "type/v1beta1/selector.proto"; + +option go_package = "istio.io/api/telemetry/v1alpha1"; + +package istio.telemetry.v1alpha1; + +// $schema: istio.telemetry.v1alpha1.Telemetry +// $title: Telemetry +// $description: Telemetry configuration for workloads. +// $location: https://istio.io/docs/reference/config/telemetry/telemetry.html +// $aliases: [/docs/reference/config/telemetry/v1alpha1/telemetry] + +// Telemetry defines how the telemetry is generated for workloads within a mesh. +// +// For mesh level configuration, put the resource in root configuration namespace for +// your Istio installation *without* a workload selector. +// +// For any namespace, including the root configuration namespace, it is only valid +// to have a single workload selector-less Telemetry resource. +// +// For resources with a workload selector, it is only valid to have one resource selecting +// any given workload. +// +// Telemetry configuration will be evaluated in order, from most specific matches per telemetry +// type (tracing, access logging, and metrics) to least specific matches. The first +// matching configuration for the telemetry type will be applied. The order of evaluation will be: +// +// 1. Workload-specific configuration +// 1. Namespace-specific configuration +// 1. Root namespace configuration +// +// Telemetry configuration does not inherit. Rather, matched configurations must fully-specify +// the desired behavior. Workload-specific configuration fully replaces any configuration +// defined at the local and root namespace levels. +// +// WARNING: Support for Telemetry policies is under active development and is *not* +// stable or supported by Istio at this time. +// +// Examples: +// +// Policy to enable random sampling for 10% of traffic: +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: mesh-default +// namespace: istio-system +// spec: +// tracing: +// - randomSamplingPercentage: 10.00 +// ``` +// +// Policy to disable trace reporting for the "foo" workload (note: tracing +// context will still be propagated): +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: foo-tracing +// namespace: bar +// spec: +// selector: +// labels: +// service.istio.io/canonical-name: foo +// tracing: +// - disableSpanReporting: true +// ``` +// +// Policy to select the alternate zipkin provider for trace reporting: +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: foo-tracing-alternate +// namespace: baz +// spec: +// selector: +// labels: +// service.istio.io/canonical-name: foo +// tracing: +// - providers: +// - name: "zipkin-alternate" +// randomSamplingPercentage: 10.00 +// ``` +// +// Policy to add a custom tag from a literal value: +// ```yaml +// apiVersion: telemetry.istio.io/v1alpha1 +// kind: Telemetry +// metadata: +// name: mesh-default +// namespace: istio-system +// spec: +// tracing: +// - randomSamplingPercentage: 10.00 +// customTags: +// my_new_foo_tag: +// literal: +// value: "foo" +// ``` +// +// +// +// +message Telemetry { + // Optional. The selector decides where to apply the Telemetry policy. + // If not set, the Telemetry policy will be applied to all workloads in the + // same namespace as the Telemetry policy. + istio.type.v1beta1.WorkloadSelector selector = 1; + + // Optional. Tracing configures the tracing behavior for all + // selected workloads. + repeated Tracing tracing = 2; +} + +// Tracing configures tracing behavior for workloads within a mesh. +// It can be used to enable/disable tracing, as well as to set sampling +// rates and custom tag extraction. +message Tracing { + + // Optional. Name of provider(s) to use for span reporting. If a provider is + // not specified, the [default tracing provider][istio.mesh.v1alpha1.MeshConfig.default_tracing_provider] + // will be used. + // NOTE: At the moment, only a single provider can be specified in a given + // Tracing rule. + repeated ProviderRef providers = 2; + + // Controls the rate at which traffic will be selected for tracing if no + // prior sampling decision has been made. If a prior sampling decision has been + // made, that decision will be respected. However, if no sampling decision + // has been made (example: no `x-b3-sampled` tracing header was present in the + // requests), the traffic will be selected for telemetry generation at the + // percentage specified. + // + // Defaults to 0%. Valid values [0.00-100.00]. Can be specified in 0.01% + // increments. + double random_sampling_percentage = 3; + + // Controls span reporting. If set to true, no spans will be reported for + // impacted workloads. This does NOT impact context propagation or trace + // sampling behavior. + bool disable_span_reporting = 4; + + // CustomTag defines a tag to be added to a trace span that is based on + // an operator-supplied value. This value can either be a hard-coded value, + // a value taken from an environment variable known to the sidecar proxy, or + // from a request header. + message CustomTag { + oneof type { + // Literal adds the same, hard-coded value to each span. + Literal literal = 1; + // Environment adds the value of an environment variable to each span. + Environment environment = 2; + // RequestHeader adds the value of an header from the request to each span. + RequestHeader header = 3; + // TODO: add support for Metadata tags + } + } + + message Literal { + // The tag value to use. + string value = 1; + } + + message Environment { + // Name of the environment variable from which to extract the tag value. + string name = 1; + // Optional. If the environment variable is not found, this value will be + // used instead. + string default_value = 2; + } + + message RequestHeader { + // Name of the header from which to extract the tag value. + string name = 1; + // Optional. If the header is not found, this value will be + // used instead. + string default_value = 2; + } + + // Optional. Configures additional custom tags to the generated trace spans. + map custom_tags = 5; +} + +// Used to bind Telemetry configuration to specific providers for +// targeted customization. +message ProviderRef { + // Required. Name of Telemetry provider in MeshConfig. + string name = 1; +} diff --git a/telemetry/v1alpha1/telemetry_deepcopy.gen.go b/telemetry/v1alpha1/telemetry_deepcopy.gen.go new file mode 100644 index 00000000..10cdbe51 --- /dev/null +++ b/telemetry/v1alpha1/telemetry_deepcopy.gen.go @@ -0,0 +1,163 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: telemetry/v1alpha1/telemetry.proto + +package v1alpha1 + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/proto" + _ "istio.io/api/type/v1beta1" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// DeepCopyInto supports using Telemetry within kubernetes types, where deepcopy-gen is used. +func (in *Telemetry) DeepCopyInto(out *Telemetry) { + p := proto.Clone(in).(*Telemetry) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Telemetry. Required by controller-gen. +func (in *Telemetry) DeepCopy() *Telemetry { + if in == nil { + return nil + } + out := new(Telemetry) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Telemetry. Required by controller-gen. +func (in *Telemetry) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using Tracing within kubernetes types, where deepcopy-gen is used. +func (in *Tracing) DeepCopyInto(out *Tracing) { + p := proto.Clone(in).(*Tracing) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing. Required by controller-gen. +func (in *Tracing) DeepCopy() *Tracing { + if in == nil { + return nil + } + out := new(Tracing) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing. Required by controller-gen. +func (in *Tracing) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using Tracing_CustomTag within kubernetes types, where deepcopy-gen is used. +func (in *Tracing_CustomTag) DeepCopyInto(out *Tracing_CustomTag) { + p := proto.Clone(in).(*Tracing_CustomTag) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_CustomTag. Required by controller-gen. +func (in *Tracing_CustomTag) DeepCopy() *Tracing_CustomTag { + if in == nil { + return nil + } + out := new(Tracing_CustomTag) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_CustomTag. Required by controller-gen. +func (in *Tracing_CustomTag) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using Tracing_Literal within kubernetes types, where deepcopy-gen is used. +func (in *Tracing_Literal) DeepCopyInto(out *Tracing_Literal) { + p := proto.Clone(in).(*Tracing_Literal) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Literal. Required by controller-gen. +func (in *Tracing_Literal) DeepCopy() *Tracing_Literal { + if in == nil { + return nil + } + out := new(Tracing_Literal) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Literal. Required by controller-gen. +func (in *Tracing_Literal) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using Tracing_Environment within kubernetes types, where deepcopy-gen is used. +func (in *Tracing_Environment) DeepCopyInto(out *Tracing_Environment) { + p := proto.Clone(in).(*Tracing_Environment) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Environment. Required by controller-gen. +func (in *Tracing_Environment) DeepCopy() *Tracing_Environment { + if in == nil { + return nil + } + out := new(Tracing_Environment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Environment. Required by controller-gen. +func (in *Tracing_Environment) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using Tracing_RequestHeader within kubernetes types, where deepcopy-gen is used. +func (in *Tracing_RequestHeader) DeepCopyInto(out *Tracing_RequestHeader) { + p := proto.Clone(in).(*Tracing_RequestHeader) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_RequestHeader. Required by controller-gen. +func (in *Tracing_RequestHeader) DeepCopy() *Tracing_RequestHeader { + if in == nil { + return nil + } + out := new(Tracing_RequestHeader) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_RequestHeader. Required by controller-gen. +func (in *Tracing_RequestHeader) DeepCopyInterface() interface{} { + return in.DeepCopy() +} + +// DeepCopyInto supports using ProviderRef within kubernetes types, where deepcopy-gen is used. +func (in *ProviderRef) DeepCopyInto(out *ProviderRef) { + p := proto.Clone(in).(*ProviderRef) + *out = *p +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderRef. Required by controller-gen. +func (in *ProviderRef) DeepCopy() *ProviderRef { + if in == nil { + return nil + } + out := new(ProviderRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ProviderRef. Required by controller-gen. +func (in *ProviderRef) DeepCopyInterface() interface{} { + return in.DeepCopy() +} diff --git a/telemetry/v1alpha1/telemetry_json.gen.go b/telemetry/v1alpha1/telemetry_json.gen.go new file mode 100644 index 00000000..4ff43d98 --- /dev/null +++ b/telemetry/v1alpha1/telemetry_json.gen.go @@ -0,0 +1,100 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: telemetry/v1alpha1/telemetry.proto + +package v1alpha1 + +import ( + bytes "bytes" + fmt "fmt" + github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" + proto "github.com/gogo/protobuf/proto" + _ "istio.io/api/type/v1beta1" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// MarshalJSON is a custom marshaler for Telemetry +func (this *Telemetry) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Telemetry +func (this *Telemetry) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for Tracing +func (this *Tracing) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Tracing +func (this *Tracing) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for Tracing_CustomTag +func (this *Tracing_CustomTag) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Tracing_CustomTag +func (this *Tracing_CustomTag) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for Tracing_Literal +func (this *Tracing_Literal) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Tracing_Literal +func (this *Tracing_Literal) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for Tracing_Environment +func (this *Tracing_Environment) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Tracing_Environment +func (this *Tracing_Environment) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for Tracing_RequestHeader +func (this *Tracing_RequestHeader) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for Tracing_RequestHeader +func (this *Tracing_RequestHeader) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +// MarshalJSON is a custom marshaler for ProviderRef +func (this *ProviderRef) MarshalJSON() ([]byte, error) { + str, err := TelemetryMarshaler.MarshalToString(this) + return []byte(str), err +} + +// UnmarshalJSON is a custom unmarshaler for ProviderRef +func (this *ProviderRef) UnmarshalJSON(b []byte) error { + return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this) +} + +var ( + TelemetryMarshaler = &github_com_gogo_protobuf_jsonpb.Marshaler{} + TelemetryUnmarshaler = &github_com_gogo_protobuf_jsonpb.Unmarshaler{AllowUnknownFields: true} +)