1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 cnrm.cloud.google.com/version: 0.0.0-dev
6 creationTimestamp: null
7 labels:
8 cnrm.cloud.google.com/managed-by-kcc: "true"
9 cnrm.cloud.google.com/stability-level: stable
10 cnrm.cloud.google.com/system: "true"
11 cnrm.cloud.google.com/tf2crd: "true"
12 name: computeurlmaps.compute.cnrm.cloud.google.com
13spec:
14 group: compute.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: ComputeURLMap
19 plural: computeurlmaps
20 shortNames:
21 - gcpcomputeurlmap
22 - gcpcomputeurlmaps
23 singular: computeurlmap
24 preserveUnknownFields: false
25 scope: Namespaced
26 versions:
27 - additionalPrinterColumns:
28 - jsonPath: .metadata.creationTimestamp
29 name: Age
30 type: date
31 - description: When 'True', the most recent reconcile of the resource succeeded
32 jsonPath: .status.conditions[?(@.type=='Ready')].status
33 name: Ready
34 type: string
35 - description: The reason for the value in 'Ready'
36 jsonPath: .status.conditions[?(@.type=='Ready')].reason
37 name: Status
38 type: string
39 - description: The last transition time for the value in 'Status'
40 jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
41 name: Status Age
42 type: date
43 name: v1beta1
44 schema:
45 openAPIV3Schema:
46 properties:
47 apiVersion:
48 description: 'apiVersion defines the versioned schema of this representation
49 of an object. Servers should convert recognized schemas to the latest
50 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
51 type: string
52 kind:
53 description: 'kind is a string value representing the REST resource this
54 object represents. Servers may infer this from the endpoint the client
55 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
56 type: string
57 metadata:
58 type: object
59 spec:
60 properties:
61 defaultRouteAction:
62 description: |-
63 defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.
64 Only one of defaultRouteAction or defaultUrlRedirect must be set.
65 URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within defaultRouteAction.
66 defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
67 properties:
68 corsPolicy:
69 description: |-
70 The specification for allowing client side cross-origin requests. Please see
71 [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/).
72 properties:
73 allowCredentials:
74 description: |-
75 In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header.
76 Default is false.
77 type: boolean
78 allowHeaders:
79 description: Specifies the content for the Access-Control-Allow-Headers
80 header.
81 items:
82 type: string
83 type: array
84 allowMethods:
85 description: Specifies the content for the Access-Control-Allow-Methods
86 header.
87 items:
88 type: string
89 type: array
90 allowOriginRegexes:
91 description: |-
92 Specifies the regualar expression patterns that match allowed origins. For regular expression grammar
93 please see en.cppreference.com/w/cpp/regex/ecmascript
94 An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.
95 items:
96 type: string
97 type: array
98 allowOrigins:
99 description: |-
100 Specifies the list of origins that will be allowed to do CORS requests.
101 An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.
102 items:
103 type: string
104 type: array
105 disabled:
106 description: If true, the setting specifies the CORS policy
107 is disabled. The default value of false, which indicates
108 that the CORS policy is in effect.
109 type: boolean
110 exposeHeaders:
111 description: Specifies the content for the Access-Control-Expose-Headers
112 header.
113 items:
114 type: string
115 type: array
116 maxAge:
117 description: |-
118 Specifies how long results of a preflight request can be cached in seconds.
119 This translates to the Access-Control-Max-Age header.
120 type: integer
121 type: object
122 faultInjectionPolicy:
123 description: |-
124 The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.
125 As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service.
126 Similarly requests from clients can be aborted by the load balancer for a percentage of requests.
127 timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection.
128 Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management).
129 properties:
130 abort:
131 description: The specification for how client requests are
132 aborted as part of fault injection.
133 properties:
134 httpStatus:
135 description: |-
136 The HTTP status code used to abort the request.
137 The value must be between 200 and 599 inclusive.
138 type: integer
139 percentage:
140 description: |-
141 The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.
142 The value must be between 0.0 and 100.0 inclusive.
143 type: number
144 type: object
145 delay:
146 description: The specification for how client requests are
147 delayed as part of fault injection, before being sent to
148 a backend service.
149 properties:
150 fixedDelay:
151 description: Specifies the value of the fixed delay interval.
152 properties:
153 nanos:
154 description: |-
155 Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are
156 represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
157 type: integer
158 seconds:
159 description: |-
160 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
161 Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
162 type: string
163 type: object
164 percentage:
165 description: |-
166 The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.
167 The value must be between 0.0 and 100.0 inclusive.
168 type: number
169 type: object
170 type: object
171 requestMirrorPolicy:
172 description: |-
173 Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
174 The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow.
175 Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
176 properties:
177 backendServiceRef:
178 description: |-
179 The backend service resource being mirrored to.
180 The backend service configured for a mirroring policy must reference
181 backends that are of the same type as the original backend service
182 matched in the URL map.
183 Serverless NEG backends are not currently supported as a mirrored
184 backend service.
185 oneOf:
186 - not:
187 required:
188 - external
189 required:
190 - name
191 - not:
192 anyOf:
193 - required:
194 - name
195 - required:
196 - namespace
197 required:
198 - external
199 properties:
200 external:
201 description: 'Allowed value: The `selfLink` field of a
202 `ComputeBackendService` resource.'
203 type: string
204 name:
205 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
206 type: string
207 namespace:
208 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
209 type: string
210 type: object
211 type: object
212 retryPolicy:
213 description: Specifies the retry policy associated with this route.
214 properties:
215 numRetries:
216 description: Specifies the allowed number retries. This number
217 must be > 0. If not specified, defaults to 1.
218 type: integer
219 perTryTimeout:
220 description: |-
221 Specifies a non-zero timeout per retry attempt.
222
223 If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,
224 will use the largest timeout among all backend services associated with the route.
225 properties:
226 nanos:
227 description: |-
228 Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are
229 represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
230 type: integer
231 seconds:
232 description: |-
233 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
234 Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
235 type: string
236 type: object
237 retryConditions:
238 description: |-
239 Specifies one or more conditions when this retry policy applies.
240 Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable.
241 - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams.
242 - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504.
243 - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts.
244 - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409.
245 - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.
246 - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled.
247 - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded.
248 - internal : a retry is attempted if the gRPC status code in the response header is set to internal.
249 - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted.
250 - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable.
251 items:
252 type: string
253 type: array
254 type: object
255 timeout:
256 description: |-
257 Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries.
258 If not specified, this field uses the largest timeout among all backend services associated with the route.
259 Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
260 properties:
261 nanos:
262 description: Span of time that's a fraction of a second at
263 nanosecond resolution. Durations less than one second are
264 represented with a 0 seconds field and a positive nanos
265 field. Must be from 0 to 999,999,999 inclusive.
266 type: integer
267 seconds:
268 description: 'Span of time at a resolution of a second. Must
269 be from 0 to 315,576,000,000 inclusive. Note: these bounds
270 are computed from: 60 sec/min * 60 min/hr * 24 hr/day *
271 365.25 days/year * 10000 years.'
272 type: string
273 type: object
274 urlRewrite:
275 description: |-
276 The spec to modify the URL of the request, before forwarding the request to the matched service.
277 urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers.
278 Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
279 properties:
280 hostRewrite:
281 description: |-
282 Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite.
283 The value must be from 1 to 255 characters.
284 type: string
285 pathPrefixRewrite:
286 description: |-
287 Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite.
288 The value must be from 1 to 1024 characters.
289 type: string
290 type: object
291 weightedBackendServices:
292 description: |-
293 A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number.
294 After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
295 items:
296 properties:
297 backendServiceRef:
298 description: |-
299 The default backend service resource.
300 Before forwarding the request to backendService, the loadbalancer
301 applies any relevant headerActions specified as part of this
302 backendServiceWeight.
303 oneOf:
304 - not:
305 required:
306 - external
307 required:
308 - name
309 - not:
310 anyOf:
311 - required:
312 - name
313 - required:
314 - namespace
315 required:
316 - external
317 properties:
318 external:
319 description: 'Allowed value: The `selfLink` field of
320 a `ComputeBackendService` resource.'
321 type: string
322 name:
323 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
324 type: string
325 namespace:
326 description: 'Namespace of the referent. More info:
327 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
328 type: string
329 type: object
330 headerAction:
331 description: |-
332 Specifies changes to request and response headers that need to take effect for the selected backendService.
333 headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.
334 headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL.
335 Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
336 properties:
337 requestHeadersToAdd:
338 description: Headers to add to a matching request before
339 forwarding the request to the backendService.
340 items:
341 properties:
342 headerName:
343 description: The name of the header.
344 type: string
345 headerValue:
346 description: The value of the header to add.
347 type: string
348 replace:
349 description: |-
350 If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.
351 The default value is false.
352 type: boolean
353 type: object
354 type: array
355 requestHeadersToRemove:
356 description: A list of header names for headers that
357 need to be removed from the request before forwarding
358 the request to the backendService.
359 items:
360 type: string
361 type: array
362 responseHeadersToAdd:
363 description: Headers to add the response before sending
364 the response back to the client.
365 items:
366 properties:
367 headerName:
368 description: The name of the header.
369 type: string
370 headerValue:
371 description: The value of the header to add.
372 type: string
373 replace:
374 description: |-
375 If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.
376 The default value is false.
377 type: boolean
378 type: object
379 type: array
380 responseHeadersToRemove:
381 description: A list of header names for headers that
382 need to be removed from the response before sending
383 the response back to the client.
384 items:
385 type: string
386 type: array
387 type: object
388 weight:
389 description: |-
390 Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) .
391 The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy.
392 The value must be from 0 to 1000.
393 type: integer
394 type: object
395 type: array
396 type: object
397 defaultService:
398 description: |-
399 The defaultService resource to which traffic is directed if none of
400 the hostRules match.
401 For the Global URL Map, it should be a reference to the backend
402 service or backend bucket.
403 For the Regional URL Map, it should be a reference to the backend
404 service.
405 If defaultRouteAction is additionally specified, advanced routing
406 actions like URL Rewrites, etc. take effect prior to sending the
407 request to the backend. However, if defaultService is specified,
408 defaultRouteAction cannot contain any weightedBackendServices.
409 Conversely, if routeAction specifies any weightedBackendServices,
410 service must not be specified. Only one of defaultService,
411 defaultUrlRedirect or defaultRouteAction.weightedBackendService
412 must be set.
413 oneOf:
414 - required:
415 - backendBucketRef
416 - required:
417 - backendServiceRef
418 properties:
419 backendBucketRef:
420 oneOf:
421 - not:
422 required:
423 - external
424 required:
425 - name
426 - not:
427 anyOf:
428 - required:
429 - name
430 - required:
431 - namespace
432 required:
433 - external
434 properties:
435 external:
436 description: 'Allowed value: The `selfLink` field of a `ComputeBackendBucket`
437 resource.'
438 type: string
439 name:
440 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
441 type: string
442 namespace:
443 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
444 type: string
445 type: object
446 backendServiceRef:
447 oneOf:
448 - not:
449 required:
450 - external
451 required:
452 - name
453 - not:
454 anyOf:
455 - required:
456 - name
457 - required:
458 - namespace
459 required:
460 - external
461 properties:
462 external:
463 description: 'Allowed value: The `selfLink` field of a `ComputeBackendService`
464 resource.'
465 type: string
466 name:
467 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
468 type: string
469 namespace:
470 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
471 type: string
472 type: object
473 type: object
474 defaultUrlRedirect:
475 description: |-
476 When none of the specified hostRules match, the request is redirected to a URL specified
477 by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or
478 defaultRouteAction must not be set.
479 properties:
480 hostRedirect:
481 description: |-
482 The host that will be used in the redirect response instead of the one that was
483 supplied in the request. The value must be between 1 and 255 characters.
484 type: string
485 httpsRedirect:
486 description: |-
487 If set to true, the URL scheme in the redirected request is set to https. If set to
488 false, the URL scheme of the redirected request will remain the same as that of the
489 request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this
490 true for TargetHttpsProxy is not permitted. The default is set to false.
491 type: boolean
492 pathRedirect:
493 description: |-
494 The path that will be used in the redirect response instead of the one that was
495 supplied in the request. pathRedirect cannot be supplied together with
496 prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the
497 original request will be used for the redirect. The value must be between 1 and 1024
498 characters.
499 type: string
500 prefixRedirect:
501 description: |-
502 The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
503 retaining the remaining portion of the URL before redirecting the request.
504 prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or
505 neither. If neither is supplied, the path of the original request will be used for
506 the redirect. The value must be between 1 and 1024 characters.
507 type: string
508 redirectResponseCode:
509 description: |-
510 The HTTP Status code to use for this RedirectAction. Supported values are:
511
512 * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.
513
514 * FOUND, which corresponds to 302.
515
516 * SEE_OTHER which corresponds to 303.
517
518 * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
519 will be retained.
520
521 * PERMANENT_REDIRECT, which corresponds to 308. In this case,
522 the request method will be retained. Possible values: ["FOUND", "MOVED_PERMANENTLY_DEFAULT", "PERMANENT_REDIRECT", "SEE_OTHER", "TEMPORARY_REDIRECT"].
523 type: string
524 stripQuery:
525 description: |-
526 If set to true, any accompanying query portion of the original URL is removed prior
527 to redirecting the request. If set to false, the query portion of the original URL is
528 retained.
529 This field is required to ensure an empty block is not set. The normal default value is false.
530 type: boolean
531 required:
532 - stripQuery
533 type: object
534 description:
535 description: |-
536 An optional description of this resource. Provide this property when
537 you create the resource.
538 type: string
539 headerAction:
540 description: |-
541 Specifies changes to request and response headers that need to take effect for
542 the selected backendService. The headerAction specified here take effect after
543 headerAction specified under pathMatcher.
544 properties:
545 requestHeadersToAdd:
546 description: |-
547 Headers to add to a matching request prior to forwarding the request to the
548 backendService.
549 items:
550 properties:
551 headerName:
552 description: The name of the header.
553 type: string
554 headerValue:
555 description: The value of the header to add.
556 type: string
557 replace:
558 description: |-
559 If false, headerValue is appended to any values that already exist for the
560 header. If true, headerValue is set for the header, discarding any values that
561 were set for that header.
562 type: boolean
563 required:
564 - headerName
565 - headerValue
566 - replace
567 type: object
568 type: array
569 requestHeadersToRemove:
570 description: |-
571 A list of header names for headers that need to be removed from the request
572 prior to forwarding the request to the backendService.
573 items:
574 type: string
575 type: array
576 responseHeadersToAdd:
577 description: Headers to add the response prior to sending the
578 response back to the client.
579 items:
580 properties:
581 headerName:
582 description: The name of the header.
583 type: string
584 headerValue:
585 description: The value of the header to add.
586 type: string
587 replace:
588 description: |-
589 If false, headerValue is appended to any values that already exist for the
590 header. If true, headerValue is set for the header, discarding any values that
591 were set for that header.
592 type: boolean
593 required:
594 - headerName
595 - headerValue
596 - replace
597 type: object
598 type: array
599 responseHeadersToRemove:
600 description: |-
601 A list of header names for headers that need to be removed from the response
602 prior to sending the response back to the client.
603 items:
604 type: string
605 type: array
606 type: object
607 hostRule:
608 description: The list of HostRules to use against the URL.
609 items:
610 properties:
611 description:
612 description: |-
613 An optional description of this HostRule. Provide this property
614 when you create the resource.
615 type: string
616 hosts:
617 description: |-
618 The list of host patterns to match. They must be valid
619 hostnames, except * will match any string of ([a-z0-9-.]*). In
620 that case, * must be the first character and must be followed in
621 the pattern by either - or ..
622 items:
623 type: string
624 type: array
625 pathMatcher:
626 description: |-
627 The name of the PathMatcher to use to match the path portion of
628 the URL if the hostRule matches the URL's host portion.
629 type: string
630 required:
631 - hosts
632 - pathMatcher
633 type: object
634 type: array
635 location:
636 description: 'Location represents the geographical location of the
637 ComputeURLMap. Specify a region name or "global" for global resources.
638 Reference: GCP definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)'
639 type: string
640 pathMatcher:
641 description: The list of named PathMatchers to use against the URL.
642 items:
643 properties:
644 defaultRouteAction:
645 description: |-
646 defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs
647 advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request
648 to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.
649 Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.
650
651 Only one of defaultRouteAction or defaultUrlRedirect must be set.
652 properties:
653 corsPolicy:
654 description: |-
655 The specification for allowing client side cross-origin requests. Please see
656 [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/).
657 properties:
658 allowCredentials:
659 description: |-
660 In response to a preflight request, setting this to true indicates that the actual request can include user credentials.
661 This translates to the Access-Control-Allow-Credentials header.
662 type: boolean
663 allowHeaders:
664 description: Specifies the content for the Access-Control-Allow-Headers
665 header.
666 items:
667 type: string
668 type: array
669 allowMethods:
670 description: Specifies the content for the Access-Control-Allow-Methods
671 header.
672 items:
673 type: string
674 type: array
675 allowOriginRegexes:
676 description: |-
677 Specifies the regular expression patterns that match allowed origins. For regular expression grammar
678 please see en.cppreference.com/w/cpp/regex/ecmascript
679 An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.
680 items:
681 type: string
682 type: array
683 allowOrigins:
684 description: |-
685 Specifies the list of origins that will be allowed to do CORS requests.
686 An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.
687 items:
688 type: string
689 type: array
690 disabled:
691 description: If true, specifies the CORS policy is disabled.
692 The default value is false, which indicates that the
693 CORS policy is in effect.
694 type: boolean
695 exposeHeaders:
696 description: Specifies the content for the Access-Control-Expose-Headers
697 header.
698 items:
699 type: string
700 type: array
701 maxAge:
702 description: |-
703 Specifies how long results of a preflight request can be cached in seconds.
704 This translates to the Access-Control-Max-Age header.
705 type: integer
706 type: object
707 faultInjectionPolicy:
708 description: |-
709 The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.
710 As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a
711 percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted
712 by the Loadbalancer for a percentage of requests.
713
714 timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
715 properties:
716 abort:
717 description: The specification for how client requests
718 are aborted as part of fault injection.
719 properties:
720 httpStatus:
721 description: |-
722 The HTTP status code used to abort the request.
723 The value must be between 200 and 599 inclusive.
724 type: integer
725 percentage:
726 description: |-
727 The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.
728 The value must be between 0.0 and 100.0 inclusive.
729 type: number
730 type: object
731 delay:
732 description: The specification for how client requests
733 are delayed as part of fault injection, before being
734 sent to a backend service.
735 properties:
736 fixedDelay:
737 description: Specifies the value of the fixed delay
738 interval.
739 properties:
740 nanos:
741 description: |-
742 Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are
743 represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
744 type: integer
745 seconds:
746 description: |-
747 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
748 Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
749 type: string
750 type: object
751 percentage:
752 description: |-
753 The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.
754 The value must be between 0.0 and 100.0 inclusive.
755 type: number
756 type: object
757 type: object
758 requestMirrorPolicy:
759 description: |-
760 Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
761 Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
762 the host / authority header is suffixed with -shadow.
763 properties:
764 backendServiceRef:
765 description: Required. The backend service resource
766 being mirrored to.
767 oneOf:
768 - not:
769 required:
770 - external
771 required:
772 - name
773 - not:
774 anyOf:
775 - required:
776 - name
777 - required:
778 - namespace
779 required:
780 - external
781 properties:
782 external:
783 description: 'Allowed value: The `selfLink` field
784 of a `ComputeBackendService` resource.'
785 type: string
786 name:
787 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
788 type: string
789 namespace:
790 description: 'Namespace of the referent. More info:
791 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
792 type: string
793 type: object
794 required:
795 - backendServiceRef
796 type: object
797 retryPolicy:
798 description: Specifies the retry policy associated with
799 this route.
800 properties:
801 numRetries:
802 description: Specifies the allowed number retries. This
803 number must be > 0. If not specified, defaults to
804 1.
805 type: integer
806 perTryTimeout:
807 description: |-
808 Specifies a non-zero timeout per retry attempt.
809
810 If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,
811 will use the largest timeout among all backend services associated with the route.
812 properties:
813 nanos:
814 description: |-
815 Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are
816 represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
817 type: integer
818 seconds:
819 description: |-
820 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
821 Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
822 type: string
823 type: object
824 retryConditions:
825 description: |-
826 Specfies one or more conditions when this retry rule applies. Valid values are:
827
828 * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,
829 or if the backend service does not respond at all, example: disconnects, reset, read timeout,
830 * connection failure, and refused streams.
831 * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.
832 * connect-failure: Loadbalancer will retry on failures connecting to backend services,
833 for example due to connection timeouts.
834 * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.
835 Currently the only retriable error supported is 409.
836 * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.
837 This reset type indicates that it is safe to retry.
838 * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled
839 * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded
840 * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted
841 * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable.
842 items:
843 type: string
844 type: array
845 type: object
846 timeout:
847 description: |-
848 Specifies the timeout for the selected route. Timeout is computed from the time the request has been
849 fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.
850
851 If not specified, will use the largest timeout among all backend services associated with the route.
852 properties:
853 nanos:
854 description: |-
855 Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
856 with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
857 type: integer
858 seconds:
859 description: |-
860 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
861 Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
862 type: string
863 type: object
864 urlRewrite:
865 description: The spec to modify the URL of the request,
866 prior to forwarding the request to the matched service.
867 properties:
868 hostRewrite:
869 description: |-
870 Prior to forwarding the request to the selected service, the request's host header is replaced
871 with contents of hostRewrite.
872
873 The value must be between 1 and 255 characters.
874 type: string
875 pathPrefixRewrite:
876 description: |-
877 Prior to forwarding the request to the selected backend service, the matching portion of the
878 request's path is replaced by pathPrefixRewrite.
879
880 The value must be between 1 and 1024 characters.
881 type: string
882 type: object
883 weightedBackendServices:
884 description: |-
885 A list of weighted backend services to send traffic to when a route match occurs.
886 The weights determine the fraction of traffic that flows to their corresponding backend service.
887 If all traffic needs to go to a single backend service, there must be one weightedBackendService
888 with weight set to a non 0 number.
889
890 Once a backendService is identified and before forwarding the request to the backend service,
891 advanced routing actions like Url rewrites and header transformations are applied depending on
892 additional settings specified in this HttpRouteAction.
893 items:
894 properties:
895 backendServiceRef:
896 description: |-
897 The default backend service resource.
898 Before forwarding the request to backendService, the loadbalancer
899 applies any relevant headerActions specified as part of this
900 backendServiceWeight.
901 oneOf:
902 - not:
903 required:
904 - external
905 required:
906 - name
907 - not:
908 anyOf:
909 - required:
910 - name
911 - required:
912 - namespace
913 required:
914 - external
915 properties:
916 external:
917 description: 'Allowed value: The `selfLink` field
918 of a `ComputeBackendService` resource.'
919 type: string
920 name:
921 description: 'Name of the referent. More info:
922 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
923 type: string
924 namespace:
925 description: 'Namespace of the referent. More
926 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
927 type: string
928 type: object
929 headerAction:
930 description: |-
931 Specifies changes to request and response headers that need to take effect for
932 the selected backendService.
933
934 headerAction specified here take effect before headerAction in the enclosing
935 HttpRouteRule, PathMatcher and UrlMap.
936 properties:
937 requestHeadersToAdd:
938 description: Headers to add to a matching request
939 prior to forwarding the request to the backendService.
940 items:
941 properties:
942 headerName:
943 description: The name of the header to add.
944 type: string
945 headerValue:
946 description: The value of the header to
947 add.
948 type: string
949 replace:
950 description: |-
951 If false, headerValue is appended to any values that already exist for the header.
952 If true, headerValue is set for the header, discarding any values that were set for that header.
953 type: boolean
954 type: object
955 type: array
956 requestHeadersToRemove:
957 description: |-
958 A list of header names for headers that need to be removed from the request prior to
959 forwarding the request to the backendService.
960 items:
961 type: string
962 type: array
963 responseHeadersToAdd:
964 description: Headers to add the response prior
965 to sending the response back to the client.
966 items:
967 properties:
968 headerName:
969 description: The name of the header to add.
970 type: string
971 headerValue:
972 description: The value of the header to
973 add.
974 type: string
975 replace:
976 description: |-
977 If false, headerValue is appended to any values that already exist for the header.
978 If true, headerValue is set for the header, discarding any values that were set for that header.
979 type: boolean
980 type: object
981 type: array
982 responseHeadersToRemove:
983 description: |-
984 A list of header names for headers that need to be removed from the response prior to sending the
985 response back to the client.
986 items:
987 type: string
988 type: array
989 type: object
990 weight:
991 description: |-
992 Specifies the fraction of traffic sent to backendService, computed as
993 weight / (sum of all weightedBackendService weights in routeAction) .
994
995 The selection of a backend service is determined only for new traffic. Once a user's request
996 has been directed to a backendService, subsequent requests will be sent to the same backendService
997 as determined by the BackendService's session affinity policy.
998
999 The value must be between 0 and 1000.
1000 type: integer
1001 type: object
1002 type: array
1003 type: object
1004 defaultService:
1005 description: |-
1006 The default service to use if none of the pathRules defined by this
1007 PathMatcher is matched by the URL's path portion.
1008 For the Global URL Map, it should be a reference to the backend
1009 service or backend bucket.
1010 For the Regional URL Map, it should be a reference to the backend
1011 service.
1012 oneOf:
1013 - required:
1014 - backendBucketRef
1015 - required:
1016 - backendServiceRef
1017 properties:
1018 backendBucketRef:
1019 oneOf:
1020 - not:
1021 required:
1022 - external
1023 required:
1024 - name
1025 - not:
1026 anyOf:
1027 - required:
1028 - name
1029 - required:
1030 - namespace
1031 required:
1032 - external
1033 properties:
1034 external:
1035 description: 'Allowed value: The `selfLink` field of
1036 a `ComputeBackendBucket` resource.'
1037 type: string
1038 name:
1039 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1040 type: string
1041 namespace:
1042 description: 'Namespace of the referent. More info:
1043 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1044 type: string
1045 type: object
1046 backendServiceRef:
1047 oneOf:
1048 - not:
1049 required:
1050 - external
1051 required:
1052 - name
1053 - not:
1054 anyOf:
1055 - required:
1056 - name
1057 - required:
1058 - namespace
1059 required:
1060 - external
1061 properties:
1062 external:
1063 description: 'Allowed value: The `selfLink` field of
1064 a `ComputeBackendService` resource.'
1065 type: string
1066 name:
1067 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1068 type: string
1069 namespace:
1070 description: 'Namespace of the referent. More info:
1071 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1072 type: string
1073 type: object
1074 type: object
1075 defaultUrlRedirect:
1076 description: |-
1077 When none of the specified hostRules match, the request is redirected to a URL specified
1078 by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or
1079 defaultRouteAction must not be set.
1080 properties:
1081 hostRedirect:
1082 description: |-
1083 The host that will be used in the redirect response instead of the one that was
1084 supplied in the request. The value must be between 1 and 255 characters.
1085 type: string
1086 httpsRedirect:
1087 description: |-
1088 If set to true, the URL scheme in the redirected request is set to https. If set to
1089 false, the URL scheme of the redirected request will remain the same as that of the
1090 request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this
1091 true for TargetHttpsProxy is not permitted. The default is set to false.
1092 type: boolean
1093 pathRedirect:
1094 description: |-
1095 The path that will be used in the redirect response instead of the one that was
1096 supplied in the request. pathRedirect cannot be supplied together with
1097 prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the
1098 original request will be used for the redirect. The value must be between 1 and 1024
1099 characters.
1100 type: string
1101 prefixRedirect:
1102 description: |-
1103 The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
1104 retaining the remaining portion of the URL before redirecting the request.
1105 prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or
1106 neither. If neither is supplied, the path of the original request will be used for
1107 the redirect. The value must be between 1 and 1024 characters.
1108 type: string
1109 redirectResponseCode:
1110 description: |-
1111 The HTTP Status code to use for this RedirectAction. Supported values are:
1112
1113 * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.
1114
1115 * FOUND, which corresponds to 302.
1116
1117 * SEE_OTHER which corresponds to 303.
1118
1119 * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
1120 will be retained.
1121
1122 * PERMANENT_REDIRECT, which corresponds to 308. In this case,
1123 the request method will be retained. Possible values: ["FOUND", "MOVED_PERMANENTLY_DEFAULT", "PERMANENT_REDIRECT", "SEE_OTHER", "TEMPORARY_REDIRECT"].
1124 type: string
1125 stripQuery:
1126 description: |-
1127 If set to true, any accompanying query portion of the original URL is removed prior
1128 to redirecting the request. If set to false, the query portion of the original URL is
1129 retained.
1130 This field is required to ensure an empty block is not set. The normal default value is false.
1131 type: boolean
1132 required:
1133 - stripQuery
1134 type: object
1135 description:
1136 description: An optional description of this resource.
1137 type: string
1138 headerAction:
1139 description: |-
1140 Specifies changes to request and response headers that need to take effect for
1141 the selected backendService. HeaderAction specified here are applied after the
1142 matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap.
1143 properties:
1144 requestHeadersToAdd:
1145 description: |-
1146 Headers to add to a matching request prior to forwarding the request to the
1147 backendService.
1148 items:
1149 properties:
1150 headerName:
1151 description: The name of the header.
1152 type: string
1153 headerValue:
1154 description: The value of the header to add.
1155 type: string
1156 replace:
1157 description: |-
1158 If false, headerValue is appended to any values that already exist for the
1159 header. If true, headerValue is set for the header, discarding any values that
1160 were set for that header.
1161 type: boolean
1162 required:
1163 - headerName
1164 - headerValue
1165 - replace
1166 type: object
1167 type: array
1168 requestHeadersToRemove:
1169 description: |-
1170 A list of header names for headers that need to be removed from the request
1171 prior to forwarding the request to the backendService.
1172 items:
1173 type: string
1174 type: array
1175 responseHeadersToAdd:
1176 description: Headers to add the response prior to sending
1177 the response back to the client.
1178 items:
1179 properties:
1180 headerName:
1181 description: The name of the header.
1182 type: string
1183 headerValue:
1184 description: The value of the header to add.
1185 type: string
1186 replace:
1187 description: |-
1188 If false, headerValue is appended to any values that already exist for the
1189 header. If true, headerValue is set for the header, discarding any values that
1190 were set for that header.
1191 type: boolean
1192 required:
1193 - headerName
1194 - headerValue
1195 - replace
1196 type: object
1197 type: array
1198 responseHeadersToRemove:
1199 description: |-
1200 A list of header names for headers that need to be removed from the response
1201 prior to sending the response back to the client.
1202 items:
1203 type: string
1204 type: array
1205 type: object
1206 name:
1207 description: The name to which this PathMatcher is referred
1208 by the HostRule.
1209 type: string
1210 pathRule:
1211 description: |-
1212 The list of path rules. Use this list instead of routeRules when routing based
1213 on simple path matching is all that's required. The order by which path rules
1214 are specified does not matter. Matches are always done on the longest-path-first
1215 basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
1216 irrespective of the order in which those paths appear in this list. Within a
1217 given pathMatcher, only one of pathRules or routeRules must be set.
1218 items:
1219 properties:
1220 paths:
1221 description: |-
1222 The list of path patterns to match. Each must start with / and the only place a
1223 \* is allowed is at the end following a /. The string fed to the path matcher
1224 does not include any text after the first ? or #, and those chars are not
1225 allowed here.
1226 items:
1227 type: string
1228 type: array
1229 routeAction:
1230 description: |-
1231 In response to a matching path, the load balancer performs advanced routing
1232 actions like URL rewrites, header transformations, etc. prior to forwarding the
1233 request to the selected backend. If routeAction specifies any
1234 weightedBackendServices, service must not be set. Conversely if service is set,
1235 routeAction cannot contain any weightedBackendServices. Only one of routeAction
1236 or urlRedirect must be set.
1237 properties:
1238 corsPolicy:
1239 description: |-
1240 The specification for allowing client side cross-origin requests. Please see W3C
1241 Recommendation for Cross Origin Resource Sharing.
1242 properties:
1243 allowCredentials:
1244 description: |-
1245 In response to a preflight request, setting this to true indicates that the
1246 actual request can include user credentials. This translates to the Access-
1247 Control-Allow-Credentials header. Defaults to false.
1248 type: boolean
1249 allowHeaders:
1250 description: Specifies the content for the Access-Control-Allow-Headers
1251 header.
1252 items:
1253 type: string
1254 type: array
1255 allowMethods:
1256 description: Specifies the content for the Access-Control-Allow-Methods
1257 header.
1258 items:
1259 type: string
1260 type: array
1261 allowOriginRegexes:
1262 description: |-
1263 Specifies the regular expression patterns that match allowed origins. For
1264 regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript
1265 An origin is allowed if it matches either allow_origins or allow_origin_regex.
1266 items:
1267 type: string
1268 type: array
1269 allowOrigins:
1270 description: |-
1271 Specifies the list of origins that will be allowed to do CORS requests. An
1272 origin is allowed if it matches either allow_origins or allow_origin_regex.
1273 items:
1274 type: string
1275 type: array
1276 disabled:
1277 description: If true, specifies the CORS policy
1278 is disabled.
1279 type: boolean
1280 exposeHeaders:
1281 description: Specifies the content for the Access-Control-Expose-Headers
1282 header.
1283 items:
1284 type: string
1285 type: array
1286 maxAge:
1287 description: |-
1288 Specifies how long the results of a preflight request can be cached. This
1289 translates to the content for the Access-Control-Max-Age header.
1290 type: integer
1291 required:
1292 - disabled
1293 type: object
1294 faultInjectionPolicy:
1295 description: |-
1296 The specification for fault injection introduced into traffic to test the
1297 resiliency of clients to backend service failure. As part of fault injection,
1298 when clients send requests to a backend service, delays can be introduced by
1299 Loadbalancer on a percentage of requests before sending those request to the
1300 backend service. Similarly requests from clients can be aborted by the
1301 Loadbalancer for a percentage of requests. timeout and retry_policy will be
1302 ignored by clients that are configured with a fault_injection_policy.
1303 properties:
1304 abort:
1305 description: |-
1306 The specification for how client requests are aborted as part of fault
1307 injection.
1308 properties:
1309 httpStatus:
1310 description: |-
1311 The HTTP status code used to abort the request. The value must be between 200
1312 and 599 inclusive.
1313 type: integer
1314 percentage:
1315 description: |-
1316 The percentage of traffic (connections/operations/requests) which will be
1317 aborted as part of fault injection. The value must be between 0.0 and 100.0
1318 inclusive.
1319 type: number
1320 required:
1321 - httpStatus
1322 - percentage
1323 type: object
1324 delay:
1325 description: |-
1326 The specification for how client requests are delayed as part of fault
1327 injection, before being sent to a backend service.
1328 properties:
1329 fixedDelay:
1330 description: Specifies the value of the fixed
1331 delay interval.
1332 properties:
1333 nanos:
1334 description: |-
1335 Span of time that's a fraction of a second at nanosecond resolution. Durations
1336 less than one second are represented with a 0 'seconds' field and a positive
1337 'nanos' field. Must be from 0 to 999,999,999 inclusive.
1338 type: integer
1339 seconds:
1340 description: |-
1341 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
1342 inclusive.
1343 type: string
1344 required:
1345 - seconds
1346 type: object
1347 percentage:
1348 description: |-
1349 The percentage of traffic (connections/operations/requests) on which delay will
1350 be introduced as part of fault injection. The value must be between 0.0 and
1351 100.0 inclusive.
1352 type: number
1353 required:
1354 - fixedDelay
1355 - percentage
1356 type: object
1357 type: object
1358 requestMirrorPolicy:
1359 description: |-
1360 Specifies the policy on how requests intended for the route's backends are
1361 shadowed to a separate mirrored backend service. Loadbalancer does not wait for
1362 responses from the shadow service. Prior to sending traffic to the shadow
1363 service, the host / authority header is suffixed with -shadow.
1364 properties:
1365 backendServiceRef:
1366 description: Required. The backend service resource
1367 being mirrored to.
1368 oneOf:
1369 - not:
1370 required:
1371 - external
1372 required:
1373 - name
1374 - not:
1375 anyOf:
1376 - required:
1377 - name
1378 - required:
1379 - namespace
1380 required:
1381 - external
1382 properties:
1383 external:
1384 description: 'Allowed value: The `selfLink`
1385 field of a `ComputeBackendService` resource.'
1386 type: string
1387 name:
1388 description: 'Name of the referent. More info:
1389 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1390 type: string
1391 namespace:
1392 description: 'Namespace of the referent. More
1393 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1394 type: string
1395 type: object
1396 required:
1397 - backendServiceRef
1398 type: object
1399 retryPolicy:
1400 description: Specifies the retry policy associated
1401 with this route.
1402 properties:
1403 numRetries:
1404 description: Specifies the allowed number retries.
1405 This number must be > 0.
1406 type: integer
1407 perTryTimeout:
1408 description: Specifies a non-zero timeout per
1409 retry attempt.
1410 properties:
1411 nanos:
1412 description: |-
1413 Span of time that's a fraction of a second at nanosecond resolution. Durations
1414 less than one second are represented with a 0 'seconds' field and a positive
1415 'nanos' field. Must be from 0 to 999,999,999 inclusive.
1416 type: integer
1417 seconds:
1418 description: |-
1419 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
1420 inclusive.
1421 type: string
1422 required:
1423 - seconds
1424 type: object
1425 retryConditions:
1426 description: |-
1427 Specifies one or more conditions when this retry rule applies. Valid values are:
1428
1429 - 5xx: Loadbalancer will attempt a retry if the backend service responds with
1430 any 5xx response code, or if the backend service does not respond at all,
1431 example: disconnects, reset, read timeout, connection failure, and refused
1432 streams.
1433 - gateway-error: Similar to 5xx, but only applies to response codes
1434 502, 503 or 504.
1435 - connect-failure: Loadbalancer will retry on failures
1436 connecting to backend services, for example due to connection timeouts.
1437 - retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.
1438 Currently the only retriable error supported is 409.
1439 - refused-stream: Loadbalancer will retry if the backend service resets the stream with a
1440 REFUSED_STREAM error code. This reset type indicates that it is safe to retry.
1441 - cancelled: Loadbalancer will retry if the gRPC status code in the response
1442 header is set to cancelled
1443 - deadline-exceeded: Loadbalancer will retry if the
1444 gRPC status code in the response header is set to deadline-exceeded
1445 - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response
1446 header is set to resource-exhausted
1447 - unavailable: Loadbalancer will retry if
1448 the gRPC status code in the response header is set to unavailable.
1449 items:
1450 type: string
1451 type: array
1452 type: object
1453 timeout:
1454 description: |-
1455 Specifies the timeout for the selected route. Timeout is computed from the time
1456 the request is has been fully processed (i.e. end-of-stream) up until the
1457 response has been completely processed. Timeout includes all retries. If not
1458 specified, the default value is 15 seconds.
1459 properties:
1460 nanos:
1461 description: |-
1462 Span of time that's a fraction of a second at nanosecond resolution. Durations
1463 less than one second are represented with a 0 'seconds' field and a positive
1464 'nanos' field. Must be from 0 to 999,999,999 inclusive.
1465 type: integer
1466 seconds:
1467 description: |-
1468 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
1469 inclusive.
1470 type: string
1471 required:
1472 - seconds
1473 type: object
1474 urlRewrite:
1475 description: |-
1476 The spec to modify the URL of the request, prior to forwarding the request to
1477 the matched service.
1478 properties:
1479 hostRewrite:
1480 description: |-
1481 Prior to forwarding the request to the selected service, the request's host
1482 header is replaced with contents of hostRewrite. The value must be between 1 and
1483 255 characters.
1484 type: string
1485 pathPrefixRewrite:
1486 description: |-
1487 Prior to forwarding the request to the selected backend service, the matching
1488 portion of the request's path is replaced by pathPrefixRewrite. The value must
1489 be between 1 and 1024 characters.
1490 type: string
1491 type: object
1492 weightedBackendServices:
1493 description: |-
1494 A list of weighted backend services to send traffic to when a route match
1495 occurs. The weights determine the fraction of traffic that flows to their
1496 corresponding backend service. If all traffic needs to go to a single backend
1497 service, there must be one weightedBackendService with weight set to a non 0
1498 number. Once a backendService is identified and before forwarding the request to
1499 the backend service, advanced routing actions like Url rewrites and header
1500 transformations are applied depending on additional settings specified in this
1501 HttpRouteAction.
1502 items:
1503 properties:
1504 backendServiceRef:
1505 description: |-
1506 Required. The default backend service resource. Before forwarding
1507 the request to backendService, the loadbalancer applies any relevant
1508 headerActions specified as part of this backendServiceWeight.
1509 oneOf:
1510 - not:
1511 required:
1512 - external
1513 required:
1514 - name
1515 - not:
1516 anyOf:
1517 - required:
1518 - name
1519 - required:
1520 - namespace
1521 required:
1522 - external
1523 properties:
1524 external:
1525 description: 'Allowed value: The `selfLink`
1526 field of a `ComputeBackendService` resource.'
1527 type: string
1528 name:
1529 description: 'Name of the referent. More
1530 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1531 type: string
1532 namespace:
1533 description: 'Namespace of the referent.
1534 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1535 type: string
1536 type: object
1537 headerAction:
1538 description: |-
1539 Specifies changes to request and response headers that need to take effect for
1540 the selected backendService. headerAction specified here take effect before
1541 headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.
1542 properties:
1543 requestHeadersToAdd:
1544 description: |-
1545 Headers to add to a matching request prior to forwarding the request to the
1546 backendService.
1547 items:
1548 properties:
1549 headerName:
1550 description: The name of the header.
1551 type: string
1552 headerValue:
1553 description: The value of the header
1554 to add.
1555 type: string
1556 replace:
1557 description: |-
1558 If false, headerValue is appended to any values that already exist for the
1559 header. If true, headerValue is set for the header, discarding any values that
1560 were set for that header.
1561 type: boolean
1562 required:
1563 - headerName
1564 - headerValue
1565 - replace
1566 type: object
1567 type: array
1568 requestHeadersToRemove:
1569 description: |-
1570 A list of header names for headers that need to be removed from the request
1571 prior to forwarding the request to the backendService.
1572 items:
1573 type: string
1574 type: array
1575 responseHeadersToAdd:
1576 description: Headers to add the response
1577 prior to sending the response back to
1578 the client.
1579 items:
1580 properties:
1581 headerName:
1582 description: The name of the header.
1583 type: string
1584 headerValue:
1585 description: The value of the header
1586 to add.
1587 type: string
1588 replace:
1589 description: |-
1590 If false, headerValue is appended to any values that already exist for the
1591 header. If true, headerValue is set for the header, discarding any values that
1592 were set for that header.
1593 type: boolean
1594 required:
1595 - headerName
1596 - headerValue
1597 - replace
1598 type: object
1599 type: array
1600 responseHeadersToRemove:
1601 description: |-
1602 A list of header names for headers that need to be removed from the response
1603 prior to sending the response back to the client.
1604 items:
1605 type: string
1606 type: array
1607 type: object
1608 weight:
1609 description: |-
1610 Specifies the fraction of traffic sent to backendService, computed as weight /
1611 (sum of all weightedBackendService weights in routeAction) . The selection of a
1612 backend service is determined only for new traffic. Once a user's request has
1613 been directed to a backendService, subsequent requests will be sent to the same
1614 backendService as determined by the BackendService's session affinity policy.
1615 The value must be between 0 and 1000.
1616 type: integer
1617 required:
1618 - backendServiceRef
1619 - weight
1620 type: object
1621 type: array
1622 type: object
1623 service:
1624 description: |-
1625 The backend service to which traffic is directed if this rule is
1626 matched.
1627 For the Global URL Map, it should be a reference to the backend
1628 service or backend bucket.
1629 For the Regional URL Map, it should be a reference to the backend
1630 service.
1631 If routeAction is additionally specified, advanced routing actions
1632 like URL Rewrites, etc. take effect prior to sending the request to
1633 the backend. However, if service is specified, routeAction cannot
1634 contain any weightedBackendServices. Conversely, if routeAction
1635 specifies any weightedBackendServices, service must not be
1636 specified. Only one of urlRedirect, service or
1637 routeAction.weightedBackendService must be set.
1638 oneOf:
1639 - required:
1640 - backendBucketRef
1641 - required:
1642 - backendServiceRef
1643 properties:
1644 backendBucketRef:
1645 oneOf:
1646 - not:
1647 required:
1648 - external
1649 required:
1650 - name
1651 - not:
1652 anyOf:
1653 - required:
1654 - name
1655 - required:
1656 - namespace
1657 required:
1658 - external
1659 properties:
1660 external:
1661 description: 'Allowed value: The `selfLink` field
1662 of a `ComputeBackendBucket` resource.'
1663 type: string
1664 name:
1665 description: 'Name of the referent. More info:
1666 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1667 type: string
1668 namespace:
1669 description: 'Namespace of the referent. More
1670 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1671 type: string
1672 type: object
1673 backendServiceRef:
1674 oneOf:
1675 - not:
1676 required:
1677 - external
1678 required:
1679 - name
1680 - not:
1681 anyOf:
1682 - required:
1683 - name
1684 - required:
1685 - namespace
1686 required:
1687 - external
1688 properties:
1689 external:
1690 description: 'Allowed value: The `selfLink` field
1691 of a `ComputeBackendService` resource.'
1692 type: string
1693 name:
1694 description: 'Name of the referent. More info:
1695 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1696 type: string
1697 namespace:
1698 description: 'Namespace of the referent. More
1699 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1700 type: string
1701 type: object
1702 type: object
1703 urlRedirect:
1704 description: |-
1705 When a path pattern is matched, the request is redirected to a URL specified
1706 by urlRedirect. If urlRedirect is specified, service or routeAction must not
1707 be set.
1708 properties:
1709 hostRedirect:
1710 description: |-
1711 The host that will be used in the redirect response instead of the one
1712 that was supplied in the request. The value must be between 1 and 255
1713 characters.
1714 type: string
1715 httpsRedirect:
1716 description: |-
1717 If set to true, the URL scheme in the redirected request is set to https.
1718 If set to false, the URL scheme of the redirected request will remain the
1719 same as that of the request. This must only be set for UrlMaps used in
1720 TargetHttpProxys. Setting this true for TargetHttpsProxy is not
1721 permitted. The default is set to false.
1722 type: boolean
1723 pathRedirect:
1724 description: |-
1725 The path that will be used in the redirect response instead of the one
1726 that was supplied in the request. pathRedirect cannot be supplied
1727 together with prefixRedirect. Supply one alone or neither. If neither is
1728 supplied, the path of the original request will be used for the redirect.
1729 The value must be between 1 and 1024 characters.
1730 type: string
1731 prefixRedirect:
1732 description: |-
1733 The prefix that replaces the prefixMatch specified in the
1734 HttpRouteRuleMatch, retaining the remaining portion of the URL before
1735 redirecting the request. prefixRedirect cannot be supplied together with
1736 pathRedirect. Supply one alone or neither. If neither is supplied, the
1737 path of the original request will be used for the redirect. The value
1738 must be between 1 and 1024 characters.
1739 type: string
1740 redirectResponseCode:
1741 description: |-
1742 The HTTP Status code to use for this RedirectAction. Supported values are:
1743
1744 * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.
1745
1746 * FOUND, which corresponds to 302.
1747
1748 * SEE_OTHER which corresponds to 303.
1749
1750 * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
1751 will be retained.
1752
1753 * PERMANENT_REDIRECT, which corresponds to 308. In this case,
1754 the request method will be retained. Possible values: ["FOUND", "MOVED_PERMANENTLY_DEFAULT", "PERMANENT_REDIRECT", "SEE_OTHER", "TEMPORARY_REDIRECT"].
1755 type: string
1756 stripQuery:
1757 description: |-
1758 If set to true, any accompanying query portion of the original URL is removed
1759 prior to redirecting the request. If set to false, the query portion of the
1760 original URL is retained.
1761 This field is required to ensure an empty block is not set. The normal default value is false.
1762 type: boolean
1763 required:
1764 - stripQuery
1765 type: object
1766 required:
1767 - paths
1768 type: object
1769 type: array
1770 routeRules:
1771 description: |-
1772 The list of ordered HTTP route rules. Use this list instead of pathRules when
1773 advanced route matching and routing actions are desired. The order of specifying
1774 routeRules matters: the first rule that matches will cause its specified routing
1775 action to take effect. Within a given pathMatcher, only one of pathRules or
1776 routeRules must be set. routeRules are not supported in UrlMaps intended for
1777 External load balancers.
1778 items:
1779 properties:
1780 headerAction:
1781 description: |-
1782 Specifies changes to request and response headers that need to take effect for
1783 the selected backendService. The headerAction specified here are applied before
1784 the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r
1785 outeAction.weightedBackendService.backendServiceWeightAction[].headerAction.
1786 properties:
1787 requestHeadersToAdd:
1788 description: |-
1789 Headers to add to a matching request prior to forwarding the request to the
1790 backendService.
1791 items:
1792 properties:
1793 headerName:
1794 description: The name of the header.
1795 type: string
1796 headerValue:
1797 description: The value of the header to add.
1798 type: string
1799 replace:
1800 description: |-
1801 If false, headerValue is appended to any values that already exist for the
1802 header. If true, headerValue is set for the header, discarding any values that
1803 were set for that header.
1804 type: boolean
1805 required:
1806 - headerName
1807 - headerValue
1808 - replace
1809 type: object
1810 type: array
1811 requestHeadersToRemove:
1812 description: |-
1813 A list of header names for headers that need to be removed from the request
1814 prior to forwarding the request to the backendService.
1815 items:
1816 type: string
1817 type: array
1818 responseHeadersToAdd:
1819 description: Headers to add the response prior to
1820 sending the response back to the client.
1821 items:
1822 properties:
1823 headerName:
1824 description: The name of the header.
1825 type: string
1826 headerValue:
1827 description: The value of the header to add.
1828 type: string
1829 replace:
1830 description: |-
1831 If false, headerValue is appended to any values that already exist for the
1832 header. If true, headerValue is set for the header, discarding any values that
1833 were set for that header.
1834 type: boolean
1835 required:
1836 - headerName
1837 - headerValue
1838 - replace
1839 type: object
1840 type: array
1841 responseHeadersToRemove:
1842 description: |-
1843 A list of header names for headers that need to be removed from the response
1844 prior to sending the response back to the client.
1845 items:
1846 type: string
1847 type: array
1848 type: object
1849 matchRules:
1850 description: The rules for determining a match.
1851 items:
1852 properties:
1853 fullPathMatch:
1854 description: |-
1855 For satisfying the matchRule condition, the path of the request must exactly
1856 match the value specified in fullPathMatch after removing any query parameters
1857 and anchor that may be part of the original URL. FullPathMatch must be between 1
1858 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
1859 be specified.
1860 type: string
1861 headerMatches:
1862 description: |-
1863 Specifies a list of header match criteria, all of which must match corresponding
1864 headers in the request.
1865 items:
1866 properties:
1867 exactMatch:
1868 description: |-
1869 The value should exactly match contents of exactMatch. Only one of exactMatch,
1870 prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
1871 type: string
1872 headerName:
1873 description: |-
1874 The name of the HTTP header to match. For matching against the HTTP request's
1875 authority, use a headerMatch with the header name ":authority". For matching a
1876 request's method, use the headerName ":method".
1877 type: string
1878 invertMatch:
1879 description: |-
1880 If set to false, the headerMatch is considered a match if the match criteria
1881 above are met. If set to true, the headerMatch is considered a match if the
1882 match criteria above are NOT met. Defaults to false.
1883 type: boolean
1884 prefixMatch:
1885 description: |-
1886 The value of the header must start with the contents of prefixMatch. Only one of
1887 exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch
1888 must be set.
1889 type: string
1890 presentMatch:
1891 description: |-
1892 A header with the contents of headerName must exist. The match takes place
1893 whether or not the request's header has a value or not. Only one of exactMatch,
1894 prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
1895 type: boolean
1896 rangeMatch:
1897 description: |-
1898 The header value must be an integer and its value must be in the range specified
1899 in rangeMatch. If the header does not contain an integer, number or is empty,
1900 the match fails. For example for a range [-5, 0]
1901
1902 * -3 will match
1903 * 0 will not match
1904 * 0.25 will not match
1905 * -3someString will not match.
1906
1907 Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
1908 rangeMatch must be set.
1909 properties:
1910 rangeEnd:
1911 description: The end of the range (exclusive).
1912 type: integer
1913 rangeStart:
1914 description: The start of the range (inclusive).
1915 type: integer
1916 required:
1917 - rangeEnd
1918 - rangeStart
1919 type: object
1920 regexMatch:
1921 description: |-
1922 The value of the header must match the regular expression specified in
1923 regexMatch. For regular expression grammar, please see:
1924 en.cppreference.com/w/cpp/regex/ecmascript For matching against a port
1925 specified in the HTTP request, use a headerMatch with headerName set to PORT and
1926 a regular expression that satisfies the RFC2616 Host header's port specifier.
1927 Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
1928 rangeMatch must be set.
1929 type: string
1930 suffixMatch:
1931 description: |-
1932 The value of the header must end with the contents of suffixMatch. Only one of
1933 exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch
1934 must be set.
1935 type: string
1936 required:
1937 - headerName
1938 type: object
1939 type: array
1940 ignoreCase:
1941 description: |-
1942 Specifies that prefixMatch and fullPathMatch matches are case sensitive.
1943 Defaults to false.
1944 type: boolean
1945 metadataFilters:
1946 description: |-
1947 Opaque filter criteria used by Loadbalancer to restrict routing configuration to
1948 a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS
1949 clients present node metadata. If a match takes place, the relevant routing
1950 configuration is made available to those proxies. For each metadataFilter in
1951 this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
1952 filterLabels must match the corresponding label provided in the metadata. If its
1953 filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match
1954 with corresponding labels in the provided metadata. metadataFilters specified
1955 here can be overrides those specified in ForwardingRule that refers to this
1956 UrlMap. metadataFilters only applies to Loadbalancers that have their
1957 loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1958 items:
1959 properties:
1960 filterLabels:
1961 description: |-
1962 The list of label value pairs that must match labels in the provided metadata
1963 based on filterMatchCriteria This list must not be empty and can have at the
1964 most 64 entries.
1965 items:
1966 properties:
1967 name:
1968 description: |-
1969 Name of metadata label. The name can have a maximum length of 1024 characters
1970 and must be at least 1 character long.
1971 type: string
1972 value:
1973 description: |-
1974 The value of the label must match the specified value. value can have a maximum
1975 length of 1024 characters.
1976 type: string
1977 required:
1978 - name
1979 - value
1980 type: object
1981 type: array
1982 filterMatchCriteria:
1983 description: |-
1984 Specifies how individual filterLabel matches within the list of filterLabels
1985 contribute towards the overall metadataFilter match. Supported values are:
1986
1987 * MATCH_ANY: At least one of the filterLabels must have a matching label in the
1988 provided metadata.
1989 * MATCH_ALL: All filterLabels must have matching labels in
1990 the provided metadata. Possible values: ["MATCH_ALL", "MATCH_ANY"].
1991 type: string
1992 required:
1993 - filterLabels
1994 - filterMatchCriteria
1995 type: object
1996 type: array
1997 prefixMatch:
1998 description: |-
1999 For satisfying the matchRule condition, the request's path must begin with the
2000 specified prefixMatch. prefixMatch must begin with a /. The value must be
2001 between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
2002 regexMatch must be specified.
2003 type: string
2004 queryParameterMatches:
2005 description: |-
2006 Specifies a list of query parameter match criteria, all of which must match
2007 corresponding query parameters in the request.
2008 items:
2009 properties:
2010 exactMatch:
2011 description: |-
2012 The queryParameterMatch matches if the value of the parameter exactly matches
2013 the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch
2014 must be set.
2015 type: string
2016 name:
2017 description: |-
2018 The name of the query parameter to match. The query parameter must exist in the
2019 request, in the absence of which the request match fails.
2020 type: string
2021 presentMatch:
2022 description: |-
2023 Specifies that the queryParameterMatch matches if the request contains the query
2024 parameter, irrespective of whether the parameter has a value or not. Only one of
2025 presentMatch, exactMatch and regexMatch must be set.
2026 type: boolean
2027 regexMatch:
2028 description: |-
2029 The queryParameterMatch matches if the value of the parameter matches the
2030 regular expression specified by regexMatch. For the regular expression grammar,
2031 please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch,
2032 exactMatch and regexMatch must be set.
2033 type: string
2034 required:
2035 - name
2036 type: object
2037 type: array
2038 regexMatch:
2039 description: |-
2040 For satisfying the matchRule condition, the path of the request must satisfy the
2041 regular expression specified in regexMatch after removing any query parameters
2042 and anchor supplied with the original URL. For regular expression grammar please
2043 see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch,
2044 fullPathMatch or regexMatch must be specified.
2045 type: string
2046 type: object
2047 type: array
2048 priority:
2049 description: |-
2050 For routeRules within a given pathMatcher, priority determines the order
2051 in which load balancer will interpret routeRules. RouteRules are evaluated
2052 in order of priority, from the lowest to highest number. The priority of
2053 a rule decreases as its number increases (1, 2, 3, N+1). The first rule
2054 that matches the request is applied.
2055
2056 You cannot configure two or more routeRules with the same priority.
2057 Priority for each rule must be set to a number between 0 and
2058 2147483647 inclusive.
2059
2060 Priority numbers can have gaps, which enable you to add or remove rules
2061 in the future without affecting the rest of the rules. For example,
2062 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which
2063 you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the
2064 future without any impact on existing rules.
2065 type: integer
2066 routeAction:
2067 description: |-
2068 In response to a matching matchRule, the load balancer performs advanced routing
2069 actions like URL rewrites, header transformations, etc. prior to forwarding the
2070 request to the selected backend. If routeAction specifies any
2071 weightedBackendServices, service must not be set. Conversely if service is set,
2072 routeAction cannot contain any weightedBackendServices. Only one of routeAction
2073 or urlRedirect must be set.
2074 properties:
2075 corsPolicy:
2076 description: |-
2077 The specification for allowing client side cross-origin requests. Please see W3C
2078 Recommendation for Cross Origin Resource Sharing.
2079 properties:
2080 allowCredentials:
2081 description: |-
2082 In response to a preflight request, setting this to true indicates that the
2083 actual request can include user credentials. This translates to the Access-
2084 Control-Allow-Credentials header. Defaults to false.
2085 type: boolean
2086 allowHeaders:
2087 description: Specifies the content for the Access-Control-Allow-Headers
2088 header.
2089 items:
2090 type: string
2091 type: array
2092 allowMethods:
2093 description: Specifies the content for the Access-Control-Allow-Methods
2094 header.
2095 items:
2096 type: string
2097 type: array
2098 allowOriginRegexes:
2099 description: |-
2100 Specifies the regular expression patterns that match allowed origins. For
2101 regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript
2102 An origin is allowed if it matches either allow_origins or allow_origin_regex.
2103 items:
2104 type: string
2105 type: array
2106 allowOrigins:
2107 description: |-
2108 Specifies the list of origins that will be allowed to do CORS requests. An
2109 origin is allowed if it matches either allow_origins or allow_origin_regex.
2110 items:
2111 type: string
2112 type: array
2113 disabled:
2114 description: |-
2115 If true, specifies the CORS policy is disabled.
2116 which indicates that the CORS policy is in effect. Defaults to false.
2117 type: boolean
2118 exposeHeaders:
2119 description: Specifies the content for the Access-Control-Expose-Headers
2120 header.
2121 items:
2122 type: string
2123 type: array
2124 maxAge:
2125 description: |-
2126 Specifies how long the results of a preflight request can be cached. This
2127 translates to the content for the Access-Control-Max-Age header.
2128 type: integer
2129 type: object
2130 faultInjectionPolicy:
2131 description: |-
2132 The specification for fault injection introduced into traffic to test the
2133 resiliency of clients to backend service failure. As part of fault injection,
2134 when clients send requests to a backend service, delays can be introduced by
2135 Loadbalancer on a percentage of requests before sending those request to the
2136 backend service. Similarly requests from clients can be aborted by the
2137 Loadbalancer for a percentage of requests. timeout and retry_policy will be
2138 ignored by clients that are configured with a fault_injection_policy.
2139 properties:
2140 abort:
2141 description: |-
2142 The specification for how client requests are aborted as part of fault
2143 injection.
2144 properties:
2145 httpStatus:
2146 description: |-
2147 The HTTP status code used to abort the request. The value must be between 200
2148 and 599 inclusive.
2149 type: integer
2150 percentage:
2151 description: |-
2152 The percentage of traffic (connections/operations/requests) which will be
2153 aborted as part of fault injection. The value must be between 0.0 and 100.0
2154 inclusive.
2155 type: number
2156 type: object
2157 delay:
2158 description: |-
2159 The specification for how client requests are delayed as part of fault
2160 injection, before being sent to a backend service.
2161 properties:
2162 fixedDelay:
2163 description: Specifies the value of the fixed
2164 delay interval.
2165 properties:
2166 nanos:
2167 description: |-
2168 Span of time that's a fraction of a second at nanosecond resolution. Durations
2169 less than one second are represented with a 0 'seconds' field and a positive
2170 'nanos' field. Must be from 0 to 999,999,999 inclusive.
2171 type: integer
2172 seconds:
2173 description: |-
2174 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
2175 inclusive.
2176 type: string
2177 required:
2178 - seconds
2179 type: object
2180 percentage:
2181 description: |-
2182 The percentage of traffic (connections/operations/requests) on which delay will
2183 be introduced as part of fault injection. The value must be between 0.0 and
2184 100.0 inclusive.
2185 type: number
2186 type: object
2187 type: object
2188 requestMirrorPolicy:
2189 description: |-
2190 Specifies the policy on how requests intended for the route's backends are
2191 shadowed to a separate mirrored backend service. Loadbalancer does not wait for
2192 responses from the shadow service. Prior to sending traffic to the shadow
2193 service, the host / authority header is suffixed with -shadow.
2194 properties:
2195 backendServiceRef:
2196 description: Required. The backend service resource
2197 being mirrored to.
2198 oneOf:
2199 - not:
2200 required:
2201 - external
2202 required:
2203 - name
2204 - not:
2205 anyOf:
2206 - required:
2207 - name
2208 - required:
2209 - namespace
2210 required:
2211 - external
2212 properties:
2213 external:
2214 description: 'Allowed value: The `selfLink`
2215 field of a `ComputeBackendService` resource.'
2216 type: string
2217 name:
2218 description: 'Name of the referent. More info:
2219 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
2220 type: string
2221 namespace:
2222 description: 'Namespace of the referent. More
2223 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
2224 type: string
2225 type: object
2226 required:
2227 - backendServiceRef
2228 type: object
2229 retryPolicy:
2230 description: Specifies the retry policy associated
2231 with this route.
2232 properties:
2233 numRetries:
2234 description: Specifies the allowed number retries.
2235 This number must be > 0.
2236 type: integer
2237 perTryTimeout:
2238 description: Specifies a non-zero timeout per
2239 retry attempt.
2240 properties:
2241 nanos:
2242 description: |-
2243 Span of time that's a fraction of a second at nanosecond resolution. Durations
2244 less than one second are represented with a 0 'seconds' field and a positive
2245 'nanos' field. Must be from 0 to 999,999,999 inclusive.
2246 type: integer
2247 seconds:
2248 description: |-
2249 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
2250 inclusive.
2251 type: string
2252 required:
2253 - seconds
2254 type: object
2255 retryConditions:
2256 description: |-
2257 Specifies one or more conditions when this retry rule applies. Valid values are:
2258
2259 * 5xx: Loadbalancer will attempt a retry if the backend service responds with
2260 any 5xx response code, or if the backend service does not respond at all,
2261 example: disconnects, reset, read timeout, connection failure, and refused
2262 streams.
2263 * gateway-error: Similar to 5xx, but only applies to response codes
2264 502, 503 or 504.
2265 * connect-failure: Loadbalancer will retry on failures
2266 connecting to backend services, for example due to connection timeouts.
2267 * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.
2268 Currently the only retriable error supported is 409.
2269 * refused-stream: Loadbalancer will retry if the backend service resets the stream with a
2270 REFUSED_STREAM error code. This reset type indicates that it is safe to retry.
2271 * cancelled: Loadbalancer will retry if the gRPC status code in the response
2272 header is set to cancelled
2273 * deadline-exceeded: Loadbalancer will retry if the
2274 gRPC status code in the response header is set to deadline-exceeded
2275 * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response
2276 header is set to resource-exhausted
2277 * unavailable: Loadbalancer will retry if the gRPC status code in
2278 the response header is set to unavailable.
2279 items:
2280 type: string
2281 type: array
2282 required:
2283 - numRetries
2284 type: object
2285 timeout:
2286 description: |-
2287 Specifies the timeout for the selected route. Timeout is computed from the time
2288 the request is has been fully processed (i.e. end-of-stream) up until the
2289 response has been completely processed. Timeout includes all retries. If not
2290 specified, the default value is 15 seconds.
2291 properties:
2292 nanos:
2293 description: |-
2294 Span of time that's a fraction of a second at nanosecond resolution. Durations
2295 less than one second are represented with a 0 'seconds' field and a positive
2296 'nanos' field. Must be from 0 to 999,999,999 inclusive.
2297 type: integer
2298 seconds:
2299 description: |-
2300 Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
2301 inclusive.
2302 type: string
2303 required:
2304 - seconds
2305 type: object
2306 urlRewrite:
2307 description: |-
2308 The spec to modify the URL of the request, prior to forwarding the request to
2309 the matched service.
2310 properties:
2311 hostRewrite:
2312 description: |-
2313 Prior to forwarding the request to the selected service, the request's host
2314 header is replaced with contents of hostRewrite. The value must be between 1 and
2315 255 characters.
2316 type: string
2317 pathPrefixRewrite:
2318 description: |-
2319 Prior to forwarding the request to the selected backend service, the matching
2320 portion of the request's path is replaced by pathPrefixRewrite. The value must
2321 be between 1 and 1024 characters.
2322 type: string
2323 type: object
2324 weightedBackendServices:
2325 description: |-
2326 A list of weighted backend services to send traffic to when a route match
2327 occurs. The weights determine the fraction of traffic that flows to their
2328 corresponding backend service. If all traffic needs to go to a single backend
2329 service, there must be one weightedBackendService with weight set to a non 0
2330 number. Once a backendService is identified and before forwarding the request to
2331 the backend service, advanced routing actions like Url rewrites and header
2332 transformations are applied depending on additional settings specified in this
2333 HttpRouteAction.
2334 items:
2335 properties:
2336 backendServiceRef:
2337 description: |-
2338 Required. The default backend service resource. Before forwarding
2339 the request to backendService, the loadbalancer applies any relevant
2340 headerActions specified as part of this backendServiceWeight.
2341 oneOf:
2342 - not:
2343 required:
2344 - external
2345 required:
2346 - name
2347 - not:
2348 anyOf:
2349 - required:
2350 - name
2351 - required:
2352 - namespace
2353 required:
2354 - external
2355 properties:
2356 external:
2357 description: 'Allowed value: The `selfLink`
2358 field of a `ComputeBackendService` resource.'
2359 type: string
2360 name:
2361 description: 'Name of the referent. More
2362 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
2363 type: string
2364 namespace:
2365 description: 'Namespace of the referent.
2366 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
2367 type: string
2368 type: object
2369 headerAction:
2370 description: |-
2371 Specifies changes to request and response headers that need to take effect for
2372 the selected backendService. headerAction specified here take effect before
2373 headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.
2374 properties:
2375 requestHeadersToAdd:
2376 description: |-
2377 Headers to add to a matching request prior to forwarding the request to the
2378 backendService.
2379 items:
2380 properties:
2381 headerName:
2382 description: The name of the header.
2383 type: string
2384 headerValue:
2385 description: The value of the header
2386 to add.
2387 type: string
2388 replace:
2389 description: |-
2390 If false, headerValue is appended to any values that already exist for the
2391 header. If true, headerValue is set for the header, discarding any values that
2392 were set for that header.
2393 type: boolean
2394 required:
2395 - headerName
2396 - headerValue
2397 - replace
2398 type: object
2399 type: array
2400 requestHeadersToRemove:
2401 description: |-
2402 A list of header names for headers that need to be removed from the request
2403 prior to forwarding the request to the backendService.
2404 items:
2405 type: string
2406 type: array
2407 responseHeadersToAdd:
2408 description: Headers to add the response
2409 prior to sending the response back to
2410 the client.
2411 items:
2412 properties:
2413 headerName:
2414 description: The name of the header.
2415 type: string
2416 headerValue:
2417 description: The value of the header
2418 to add.
2419 type: string
2420 replace:
2421 description: |-
2422 If false, headerValue is appended to any values that already exist for the
2423 header. If true, headerValue is set for the header, discarding any values that
2424 were set for that header.
2425 type: boolean
2426 required:
2427 - headerName
2428 - headerValue
2429 - replace
2430 type: object
2431 type: array
2432 responseHeadersToRemove:
2433 description: |-
2434 A list of header names for headers that need to be removed from the response
2435 prior to sending the response back to the client.
2436 items:
2437 type: string
2438 type: array
2439 type: object
2440 weight:
2441 description: |-
2442 Specifies the fraction of traffic sent to backendService, computed as weight /
2443 (sum of all weightedBackendService weights in routeAction) . The selection of a
2444 backend service is determined only for new traffic. Once a user's request has
2445 been directed to a backendService, subsequent requests will be sent to the same
2446 backendService as determined by the BackendService's session affinity policy.
2447 The value must be between 0 and 1000.
2448 type: integer
2449 required:
2450 - backendServiceRef
2451 - weight
2452 type: object
2453 type: array
2454 type: object
2455 service:
2456 description: |-
2457 The region backend service resource to which traffic is
2458 directed if this rule is matched. If routeAction is additionally specified,
2459 advanced routing actions like URL Rewrites, etc. take effect prior to sending
2460 the request to the backend. However, if service is specified, routeAction cannot
2461 contain any weightedBackendService s. Conversely, if routeAction specifies any
2462 weightedBackendServices, service must not be specified. Only one of urlRedirect,
2463 service or routeAction.weightedBackendService must be set.
2464 type: string
2465 urlRedirect:
2466 description: |-
2467 When this rule is matched, the request is redirected to a URL specified by
2468 urlRedirect. If urlRedirect is specified, service or routeAction must not be
2469 set.
2470 properties:
2471 hostRedirect:
2472 description: |-
2473 The host that will be used in the redirect response instead of the one
2474 that was supplied in the request. The value must be between 1 and 255
2475 characters.
2476 type: string
2477 httpsRedirect:
2478 description: |-
2479 If set to true, the URL scheme in the redirected request is set to https.
2480 If set to false, the URL scheme of the redirected request will remain the
2481 same as that of the request. This must only be set for UrlMaps used in
2482 TargetHttpProxys. Setting this true for TargetHttpsProxy is not
2483 permitted. The default is set to false.
2484 type: boolean
2485 pathRedirect:
2486 description: |-
2487 The path that will be used in the redirect response instead of the one
2488 that was supplied in the request. pathRedirect cannot be supplied
2489 together with prefixRedirect. Supply one alone or neither. If neither is
2490 supplied, the path of the original request will be used for the redirect.
2491 The value must be between 1 and 1024 characters.
2492 type: string
2493 prefixRedirect:
2494 description: |-
2495 The prefix that replaces the prefixMatch specified in the
2496 HttpRouteRuleMatch, retaining the remaining portion of the URL before
2497 redirecting the request. prefixRedirect cannot be supplied together with
2498 pathRedirect. Supply one alone or neither. If neither is supplied, the
2499 path of the original request will be used for the redirect. The value
2500 must be between 1 and 1024 characters.
2501 type: string
2502 redirectResponseCode:
2503 description: |-
2504 The HTTP Status code to use for this RedirectAction. Supported values are:
2505
2506 * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.
2507
2508 * FOUND, which corresponds to 302.
2509
2510 * SEE_OTHER which corresponds to 303.
2511
2512 * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
2513 will be retained.
2514
2515 * PERMANENT_REDIRECT, which corresponds to 308. In this case,
2516 the request method will be retained. Possible values: ["FOUND", "MOVED_PERMANENTLY_DEFAULT", "PERMANENT_REDIRECT", "SEE_OTHER", "TEMPORARY_REDIRECT"].
2517 type: string
2518 stripQuery:
2519 description: |-
2520 If set to true, any accompanying query portion of the original URL is
2521 removed prior to redirecting the request. If set to false, the query
2522 portion of the original URL is retained. The default value is false.
2523 type: boolean
2524 type: object
2525 required:
2526 - priority
2527 type: object
2528 type: array
2529 required:
2530 - name
2531 type: object
2532 type: array
2533 resourceID:
2534 description: Immutable. Optional. The name of the resource. Used for
2535 creation and acquisition. When unset, the value of `metadata.name`
2536 is used as the default.
2537 type: string
2538 test:
2539 description: |-
2540 The list of expected URL mappings. Requests to update this UrlMap will
2541 succeed only if all of the test cases pass.
2542 items:
2543 properties:
2544 description:
2545 description: Description of this test case.
2546 type: string
2547 host:
2548 description: Host portion of the URL.
2549 type: string
2550 path:
2551 description: Path portion of the URL.
2552 type: string
2553 service:
2554 description: |-
2555 The backend service resource that should be matched by this test.
2556 For the Global URL Map, it should be a reference to the backend
2557 service or backend bucket.
2558 For the Regional URL Map, it should be a reference to the backend
2559 service.
2560 oneOf:
2561 - required:
2562 - backendBucketRef
2563 - required:
2564 - backendServiceRef
2565 properties:
2566 backendBucketRef:
2567 oneOf:
2568 - not:
2569 required:
2570 - external
2571 required:
2572 - name
2573 - not:
2574 anyOf:
2575 - required:
2576 - name
2577 - required:
2578 - namespace
2579 required:
2580 - external
2581 properties:
2582 external:
2583 description: 'Allowed value: The `selfLink` field of
2584 a `ComputeBackendBucket` resource.'
2585 type: string
2586 name:
2587 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
2588 type: string
2589 namespace:
2590 description: 'Namespace of the referent. More info:
2591 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
2592 type: string
2593 type: object
2594 backendServiceRef:
2595 oneOf:
2596 - not:
2597 required:
2598 - external
2599 required:
2600 - name
2601 - not:
2602 anyOf:
2603 - required:
2604 - name
2605 - required:
2606 - namespace
2607 required:
2608 - external
2609 properties:
2610 external:
2611 description: 'Allowed value: The `selfLink` field of
2612 a `ComputeBackendService` resource.'
2613 type: string
2614 name:
2615 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
2616 type: string
2617 namespace:
2618 description: 'Namespace of the referent. More info:
2619 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
2620 type: string
2621 type: object
2622 type: object
2623 required:
2624 - host
2625 - path
2626 - service
2627 type: object
2628 type: array
2629 required:
2630 - location
2631 type: object
2632 status:
2633 properties:
2634 conditions:
2635 description: Conditions represent the latest available observation
2636 of the resource's current state.
2637 items:
2638 properties:
2639 lastTransitionTime:
2640 description: Last time the condition transitioned from one status
2641 to another.
2642 type: string
2643 message:
2644 description: Human-readable message indicating details about
2645 last transition.
2646 type: string
2647 reason:
2648 description: Unique, one-word, CamelCase reason for the condition's
2649 last transition.
2650 type: string
2651 status:
2652 description: Status is the status of the condition. Can be True,
2653 False, Unknown.
2654 type: string
2655 type:
2656 description: Type is the type of the condition.
2657 type: string
2658 type: object
2659 type: array
2660 creationTimestamp:
2661 description: Creation timestamp in RFC3339 text format.
2662 type: string
2663 fingerprint:
2664 description: |-
2665 Fingerprint of this resource. This field is used internally during
2666 updates of this resource.
2667 type: string
2668 mapId:
2669 description: The unique identifier for the resource.
2670 type: integer
2671 observedGeneration:
2672 description: ObservedGeneration is the generation of the resource
2673 that was most recently observed by the Config Connector controller.
2674 If this is equal to metadata.generation, then that means that the
2675 current reported status reflects the most recent desired state of
2676 the resource.
2677 type: integer
2678 selfLink:
2679 type: string
2680 type: object
2681 required:
2682 - spec
2683 type: object
2684 served: true
2685 storage: true
2686 subresources:
2687 status: {}
2688status:
2689 acceptedNames:
2690 kind: ""
2691 plural: ""
2692 conditions: []
2693 storedVersions: []
View as plain text