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