2
apiVersion: apiextensions.k8s.io/v1
3
kind: CustomResourceDefinition
6
controller-gen.kubebuilder.io/version: v0.14.0
7
name: meshretries.kuma.io
14
listKind: MeshRetryList
19
- additionalPrinterColumns:
20
- jsonPath: .spec.targetRef.kind
23
- jsonPath: .spec.targetRef.name
32
APIVersion defines the versioned schema of this representation of an object.
33
Servers should convert recognized schemas to the latest internal value, and
34
may reject unrecognized values.
35
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
39
Kind is a string value representing the REST resource this object represents.
40
Servers may infer this from the endpoint the client submits requests to.
43
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
48
description: Spec is the specification of the Kuma MeshRetry resource.
52
TargetRef is a reference to the resource the policy takes an effect on.
53
The resource could be either a real store object or virtual resource
57
description: Kind of the referenced resource
67
description: Mesh is reserved for future use to identify cross
72
Name of the referenced resource. Can only be used with kinds: `MeshService`,
73
`MeshServiceSubset` and `MeshGatewayRoute`
77
ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
78
all data plane types are targeted by the policy.
90
Tags used to select a subset of proxies by tags. Can only be used with kinds
91
`MeshSubset` and `MeshServiceSubset`
95
description: To list makes a match between the consumed services and
96
corresponding configurations
101
Default is a configuration specific to the group of destinations referenced in
105
description: GRPC defines a configuration of retries for
110
BackOff is a configuration of durations which will be used in an exponential
111
backoff strategy between retries.
116
BaseInterval is an amount of time which should be taken between retries.
117
Must be greater than zero. Values less than 1 ms are rounded up to 1 ms.
121
MaxInterval is a maximal amount of time which will be taken between retries.
122
Default is 10 times the "BaseInterval".
127
NumRetries is the number of attempts that will be made on failed (and
128
retriable) requests. If not set, the default value is 1.
133
PerTryTimeout is the maximum amount of time each retry attempt can take
134
before it times out. If not set, the global request timeout for the route
135
will be used. Setting this value to 0 will disable the per-try timeout.
139
RateLimitedBackOff is a configuration of backoff which will be used when
140
the upstream returns one of the headers configured.
144
description: MaxInterval is a maximal amount of
145
time which will be taken between retries.
149
ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset)
150
to match against the response. Headers are tried in order, and matched
151
case-insensitive. The first header to be parsed successfully is used.
152
If no headers match the default exponential BackOff is used instead.
156
description: The format of the reset header.
162
description: The Name of the reset header.
165
pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
174
description: RetryOn is a list of conditions which will
193
description: HTTP defines a configuration of retries for
198
BackOff is a configuration of durations which will be used in exponential
199
backoff strategy between retries.
204
BaseInterval is an amount of time which should be taken between retries.
205
Must be greater than zero. Values less than 1 ms are rounded up to 1 ms.
209
MaxInterval is a maximal amount of time which will be taken between retries.
210
Default is 10 times the "BaseInterval".
215
HostSelection is a list of predicates that dictate how hosts should be selected
216
when requests are retried.
220
description: Type is requested predicate mode.
224
- OmitPreviousPriorities
227
additionalProperties:
230
Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is
236
UpdateFrequency is how often the priority load should be updated based on previously attempted priorities.
237
Used for OmitPreviousPriorities.
244
hostSelectionMaxAttempts:
246
HostSelectionMaxAttempts is the maximum number of times host selection will be
247
reattempted before giving up, at which point the host that was last selected will
248
be routed to. If unspecified, this will default to retrying once.
253
NumRetries is the number of attempts that will be made on failed (and
254
retriable) requests. If not set, the default value is 1.
259
PerTryTimeout is the amount of time after which retry attempt should time out.
260
If left unspecified, the global route timeout for the request will be used.
261
Consequently, when using a 5xx based retry policy, a request that times out
262
will not be retried as the total timeout budget would have been exhausted.
263
Setting this timeout to 0 will disable it.
267
RateLimitedBackOff is a configuration of backoff which will be used
268
when the upstream returns one of the headers configured.
272
description: MaxInterval is a maximal amount of
273
time which will be taken between retries.
277
ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset)
278
to match against the response. Headers are tried in order, and matched
279
case-insensitive. The first header to be parsed successfully is used.
280
If no headers match the default exponential BackOff is used instead.
284
description: The format of the reset header.
290
description: The Name of the reset header.
293
pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
301
retriableRequestHeaders:
303
RetriableRequestHeaders is an HTTP headers which must be present in the request
304
for retries to be attempted.
307
HeaderMatch describes how to select an HTTP route by matching HTTP request
312
Name is the name of the HTTP Header to be matched. Name MUST be lower case
313
as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2).
316
pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
320
description: Type specifies how to match against
321
the value of the header.
330
description: Value is the value of HTTP Header
337
retriableResponseHeaders:
339
RetriableResponseHeaders is an HTTP response headers that trigger a retry
340
if present in the response. A retry will be triggered if any of the header
341
matches the upstream response headers.
344
HeaderMatch describes how to select an HTTP route by matching HTTP request
349
Name is the name of the HTTP Header to be matched. Name MUST be lower case
350
as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2).
353
pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
357
description: Type specifies how to match against
358
the value of the header.
367
description: Value is the value of HTTP Header
376
RetryOn is a list of conditions which will cause a retry. Available values are:
377
[5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited,
378
RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete,
379
HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch,
380
HttpMethodPost, HttpMethodPut, HttpMethodTrace].
381
Also, any HTTP status code (500, 503, etc.).
390
- Http3PostConnectFailure
407
description: TCP defines a configuration of retries for
412
MaxConnectAttempt is a maximal amount of TCP connection attempts
413
which will be made before giving up
420
TargetRef is a reference to the resource that represents a group of
424
description: Kind of the referenced resource
434
description: Mesh is reserved for future use to identify
435
cross mesh resources.
439
Name of the referenced resource. Can only be used with kinds: `MeshService`,
440
`MeshServiceSubset` and `MeshGatewayRoute`
444
ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
445
all data plane types are targeted by the policy.
454
additionalProperties:
457
Tags used to select a subset of proxies by tags. Can only be used with kinds
458
`MeshSubset` and `MeshServiceSubset`