apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 name: meshretries.kuma.io spec: group: kuma.io names: categories: - kuma kind: MeshRetry listKind: MeshRetryList plural: meshretries singular: meshretry 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 MeshRetry resource.
properties:
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 to: description: To list makes a match between the consumed services and corresponding configurations items: properties: default: description: Default is a configuration specific to the group of destinations referenced in ‘targetRef’ properties: grpc: description: GRPC defines a configuration of retries for GRPC traffic properties: backOff: description: BackOff is a configuration of durations which will be used in exponential backoff strategy between retries. properties: baseInterval: description: BaseInterval is an amount of time which should be taken between retries. Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. Default is 25ms. type: string maxInterval: description: MaxInterval is a maximal amount of time which will be taken between retries. Default is 10 times the “BaseInterval”. type: string type: object numRetries: description: NumRetries is the number of attempts that will be made on failed (and retriable) requests. format: int32 type: integer perTryTimeout: description: PerTryTimeout is the amount of time after which retry attempt should timeout. Setting this timeout to 0 will disable it. Default is 15s. type: string rateLimitedBackOff: description: RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. properties: maxInterval: description: MaxInterval is a maximal amount of time which will be taken between retries. Default is 300 seconds. type: string resetHeaders: description: ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case-insensitive. The first header to be parsed successfully is used. If no headers match the default exponential BackOff is used instead. items: properties: format: description: The format of the reset header, either Seconds or UnixTimestamp. enum: - Seconds - UnixTimestamp type: string name: description: The Name of the reset header. maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&’+-.^_\x60|~]+$ type: string required: - format - name type: object type: array type: object retryOn: description: ‘RetryOn is a list of conditions which will cause a retry. Available values are: [Canceled, DeadlineExceeded, Internal, ResourceExhausted, Unavailable].’ items: type: string type: array type: object http: description: HTTP defines a configuration of retries for HTTP traffic properties: backOff: description: BackOff is a configuration of durations which will be used in exponential backoff strategy between retries properties: baseInterval: description: BaseInterval is an amount of time which should be taken between retries. Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. Default is 25ms. type: string maxInterval: description: MaxInterval is a maximal amount of time which will be taken between retries. Default is 10 times the “BaseInterval”. type: string type: object hostSelection: description: HostSelection is a list of predicates that dictate how hosts should be selected when requests are retried. items: properties: predicate: description: Type is requested predicate mode. Available values are OmitPreviousHosts, OmitHostsWithTags, and OmitPreviousPriorities. type: string tags: additionalProperties: type: string description: Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is OmitHostsWithTags type: object updateFrequency: description: UpdateFrequency is how often the priority load should be updated based on previously attempted priorities. Used for OmitPreviousPriorities. Default is 2 if not set. format: int32 type: integer required: - predicate type: object type: array hostSelectionMaxAttempts: description: HostSelectionMaxAttempts is the maximum number of times host selection will be reattempted before giving up, at which point the host that was last selected will be routed to. If unspecified, this will default to retrying once. format: int64 type: integer numRetries: description: NumRetries is the number of attempts that will be made on failed (and retriable) requests format: int32 type: integer perTryTimeout: description: PerTryTimeout is the amount of time after which retry attempt should timeout. Setting this timeout to 0 will disable it. Default is 15s. type: string rateLimitedBackOff: description: RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. properties: maxInterval: description: MaxInterval is a maximal amount of time which will be taken between retries. Default is 300 seconds. type: string resetHeaders: description: ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case-insensitive. The first header to be parsed successfully is used. If no headers match the default exponential BackOff is used instead. items: properties: format: description: The format of the reset header, either Seconds or UnixTimestamp. enum: - Seconds - UnixTimestamp type: string name: description: The Name of the reset header. maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&’+-.^\x60|~]+$ type: string required: - format - name type: object type: array type: object retriableRequestHeaders: description: RetriableRequestHeaders is an HTTP headers which must be present in the request for retries to be attempted. items: description: HeaderMatch describes how to select an HTTP route by matching HTTP request headers. properties: name: description: Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&’*+-.^\x60|~]+$ type: string type: default: Exact description: Type specifies how to match against the value of the header. enum: - Exact - Present - RegularExpression - Absent - Prefix type: string value: description: Value is the value of HTTP Header to be matched. type: string required: - name type: object type: array retriableResponseHeaders: description: RetriableResponseHeaders is an HTTP response headers that trigger a retry if present in the response. A retry will be triggered if any of the header matches match the upstream response headers. items: description: HeaderMatch describes how to select an HTTP route by matching HTTP request headers. properties: name: description: Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&’*+-.^_\x60|~]+$ type: string type: default: Exact description: Type specifies how to match against the value of the header. enum: - Exact - Present - RegularExpression - Absent - Prefix type: string value: description: Value is the value of HTTP Header to be matched. type: string required: - name type: object type: array retryOn: description: ‘RetryOn is a list of conditions which will cause a retry. Available values are: [5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited, RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete, HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch, HttpMethodPost, HttpMethodPut, HttpMethodTrace]. Also, any HTTP status code (500, 503, etc).’ items: type: string type: array type: object tcp: description: TCP defines a configuration of retries for TCP traffic properties: maxConnectAttempt: description: MaxConnectAttempt is a maximal amount of TCP connection attempts which will be made before giving up format: int32 type: integer type: object type: object targetRef: description: TargetRef is a reference to the resource that represents a group of destinations. 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: array required: - targetRef type: object type: object served: true storage: true subresources: {}