apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 name: meshtraces.kuma.io spec: group: kuma.io names: categories: - kuma kind: MeshTrace listKind: MeshTraceList plural: meshtraces singular: meshtrace scope: Namespaced versions:
- additionalPrinterColumns:
- jsonPath: .spec.targetRef.kind name: TargetRef Kind type: string
- jsonPath: .spec.targetRef.name
name: TargetRef Name
type: string
name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
description: ‘APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources’
type: string
kind:
description: ‘Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds’
type: string
metadata:
type: object
spec:
description: Spec is the specification of the Kuma MeshTrace resource.
properties:
default:
description: MeshTrace configuration.
properties:
backends:
description: A one element array of backend definition. Envoy
allows configuring only 1 backend, so the natural way of representing
that would be just one object. Unfortunately due to the reasons
explained in MADR 009-tracing-policy this has to be a one element
array for now.
items:
description: Only one of zipkin, datadog or openTelemetry can
be used.
properties:
datadog:
description: Datadog backend configuration.
properties:
splitService:
description: ‘Determines if datadog service name should
be split based on traffic direction and destination.
For example, with
splitService: true
and abackend
service that communicates with a couple of databases, you would get service names likebackend_INBOUND
,backend_OUTBOUND_db1
, andbackend_OUTBOUND_db2
in Datadog. Default: false’ type: boolean url: description: Address of Datadog collector, only host and port are allowed (no paths, fragments etc.) type: string required: - url type: object openTelemetry: description: OpenTelemetry backend configuration. properties: endpoint: description: Address of OpenTelemetry collector. example: otel-collector:4317 minLength: 1 type: string required: - endpoint type: object type: enum: - Zipkin - Datadog - OpenTelemetry type: string zipkin: description: Zipkin backend configuration. properties: apiVersion: default: httpJson description: ‘Version of the API. values: httpJson, httpProto. Default: httpJson see https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66’ enum: - httpJson - httpProto type: string sharedSpanContext: description: ‘Determines whether client and server spans will share the same span context. Default: true. https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63’ type: boolean traceId128bit: description: ‘Generate 128bit traces. Default: false’ type: boolean url: description: Address of Zipkin collector. type: string required: - url type: object required: - type type: object type: array sampling: description: Sampling configuration. Sampling is the process by which a decision is made on whether to process/export a span or not. properties: client: anyOf: - type: integer - type: string description: ‘Target percentage of requests that will be force traced if the ‘‘x-client-trace-id’’ header is set. Default: 100% Mirror of client_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133 Either int or decimal represented as string.’ x-kubernetes-int-or-string: true overall: anyOf: - type: integer - type: string description: ‘Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1% of client requests with the appropriate headers to be force traced. Default: 100% Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string.’ x-kubernetes-int-or-string: true random: anyOf: - type: integer - type: string description: ‘Target percentage of requests that will be randomly selected for trace generation, if not requested by the client or not forced. Default: 100% Mirror of random_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140 Either int or decimal represented as string.’ x-kubernetes-int-or-string: true type: object tags: description: Custom tags configuration. You can add custom tags to traces based on headers or literal values. items: description: Custom tags configuration. Only one of literal or header can be used. properties: header: description: Tag taken from a header. properties: default: description: Default value to use if header is missing. If the default is missing and there is no value the tag will not be included. type: string name: description: Name of the header. type: string required: - name type: object literal: description: Tag taken from literal value. type: string name: description: Name of the tag. type: string required: - name type: object type: array type: object targetRef: description: TargetRef is a reference to the resource the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. properties: kind: description: Kind of the referenced resource enum: - Mesh - MeshSubset - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute type: string mesh: description: Mesh is reserved for future use to identify cross mesh resources. type: string name: description: ‘Name of the referenced resource. Can only be used with kinds:MeshService
,MeshServiceSubset
andMeshGatewayRoute
’ type: string tags: additionalProperties: type: string description: Tags used to select a subset of proxies by tags. Can only be used with kindsMeshSubset
andMeshServiceSubset
type: object type: object required: - targetRef type: object type: object served: true storage: true subresources: {}