github.com/projectcontour/contour@v1.28.2/site/content/docs/v1.18.2/config/api-reference.html (about) 1 <p>Packages:</p> 2 <ul> 3 <li> 4 <a href="#projectcontour.io%2fv1">projectcontour.io/v1</a> 5 </li> 6 <li> 7 <a href="#projectcontour.io%2fv1alpha1">projectcontour.io/v1alpha1</a> 8 </li> 9 </ul> 10 <h2 id="projectcontour.io/v1">projectcontour.io/v1</h2> 11 <p> 12 <p>Package v1 holds the specification for the projectcontour.io Custom Resource Definitions (CRDs).</p> 13 <p>In building this CRD, we’ve inadvertently overloaded the word “Condition”, so we’ve tried to make 14 this spec clear as to which types of condition are which.</p> 15 <p><code>MatchConditions</code> are used by <code>Routes</code> and <code>Includes</code> to specify rules to match requests against for either 16 routing or inclusion.</p> 17 <p><code>DetailedConditions</code> are used in the <code>Status</code> of these objects to hold information about the relevant 18 state of the object and the world around it.</p> 19 <p><code>SubConditions</code> are used underneath <code>DetailedConditions</code> to give more detail to errors or warnings.</p> 20 </p> 21 Resource Types: 22 <ul><li> 23 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a> 24 </li><li> 25 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a> 26 </li></ul> 27 <h3 id="projectcontour.io/v1.HTTPProxy">HTTPProxy 28 </h3> 29 <p> 30 <p>HTTPProxy is an Ingress CRD specification.</p> 31 </p> 32 <table class="table table-striped table-borderless" style="border:none"> 33 <thead class="border-bottom"> 34 <tr> 35 <th>Field</th> 36 <th>Description</th> 37 </tr> 38 </thead> 39 <tbody class="border-top"> 40 <tr> 41 <td> 42 <code>apiVersion</code> 43 <br> 44 string</td> 45 <td> 46 <code> 47 projectcontour.io/v1 48 </code> 49 </td> 50 </tr> 51 <tr> 52 <td> 53 <code>kind</code> 54 <br> 55 string 56 </td> 57 <td><code>HTTPProxy</code></td> 58 </tr> 59 <tr> 60 <td style="white-space:nowrap"> 61 <code>metadata</code> 62 <br> 63 <em> 64 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 65 Kubernetes meta/v1.ObjectMeta 66 </a> 67 </em> 68 </td> 69 <td> 70 Refer to the Kubernetes API documentation for the fields of the 71 <code>metadata</code> field. 72 </td> 73 </tr> 74 <tr> 75 <td style="white-space:nowrap"> 76 <code>spec</code> 77 <br> 78 <em> 79 <a href="#projectcontour.io/v1.HTTPProxySpec"> 80 HTTPProxySpec 81 </a> 82 </em> 83 </td> 84 <td> 85 <br> 86 <br> 87 <table style="border:none"> 88 <tr> 89 <td style="white-space:nowrap"> 90 <code>virtualhost</code> 91 <br> 92 <em> 93 <a href="#projectcontour.io/v1.VirtualHost"> 94 VirtualHost 95 </a> 96 </em> 97 </td> 98 <td> 99 <em>(Optional)</em> 100 <p>Virtualhost appears at most once. If it is present, the object is considered 101 to be a “root” HTTPProxy.</p> 102 </td> 103 </tr> 104 <tr> 105 <td style="white-space:nowrap"> 106 <code>routes</code> 107 <br> 108 <em> 109 <a href="#projectcontour.io/v1.Route"> 110 []Route 111 </a> 112 </em> 113 </td> 114 <td> 115 <em>(Optional)</em> 116 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 117 </td> 118 </tr> 119 <tr> 120 <td style="white-space:nowrap"> 121 <code>tcpproxy</code> 122 <br> 123 <em> 124 <a href="#projectcontour.io/v1.TCPProxy"> 125 TCPProxy 126 </a> 127 </em> 128 </td> 129 <td> 130 <em>(Optional)</em> 131 <p>TCPProxy holds TCP proxy information.</p> 132 </td> 133 </tr> 134 <tr> 135 <td style="white-space:nowrap"> 136 <code>includes</code> 137 <br> 138 <em> 139 <a href="#projectcontour.io/v1.Include"> 140 []Include 141 </a> 142 </em> 143 </td> 144 <td> 145 <em>(Optional)</em> 146 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 147 possibly in another namespace.</p> 148 </td> 149 </tr> 150 <tr> 151 <td style="white-space:nowrap"> 152 <code>ingressClassName</code> 153 <br> 154 <em> 155 string 156 </em> 157 </td> 158 <td> 159 <em>(Optional)</em> 160 <p>IngressClassName optionally specifies the ingress class to use for this 161 HTTPProxy. This replaces the deprecated <code>kubernetes.io/ingress.class</code> 162 annotation. For backwards compatibility, when that annotation is set, it 163 is given precedence over this field.</p> 164 </td> 165 </tr> 166 </table> 167 </td> 168 </tr> 169 <tr> 170 <td style="white-space:nowrap"> 171 <code>status</code> 172 <br> 173 <em> 174 <a href="#projectcontour.io/v1.HTTPProxyStatus"> 175 HTTPProxyStatus 176 </a> 177 </em> 178 </td> 179 <td> 180 <em>(Optional)</em> 181 <p>Status is a container for computed information about the HTTPProxy.</p> 182 </td> 183 </tr> 184 </tbody> 185 </table> 186 <h3 id="projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation 187 </h3> 188 <p> 189 <p>TLSCertificateDelegation is an TLS Certificate Delegation CRD specification. 190 See design/tls-certificate-delegation.md for details.</p> 191 </p> 192 <table class="table table-striped table-borderless" style="border:none"> 193 <thead class="border-bottom"> 194 <tr> 195 <th>Field</th> 196 <th>Description</th> 197 </tr> 198 </thead> 199 <tbody class="border-top"> 200 <tr> 201 <td> 202 <code>apiVersion</code> 203 <br> 204 string</td> 205 <td> 206 <code> 207 projectcontour.io/v1 208 </code> 209 </td> 210 </tr> 211 <tr> 212 <td> 213 <code>kind</code> 214 <br> 215 string 216 </td> 217 <td><code>TLSCertificateDelegation</code></td> 218 </tr> 219 <tr> 220 <td style="white-space:nowrap"> 221 <code>metadata</code> 222 <br> 223 <em> 224 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 225 Kubernetes meta/v1.ObjectMeta 226 </a> 227 </em> 228 </td> 229 <td> 230 Refer to the Kubernetes API documentation for the fields of the 231 <code>metadata</code> field. 232 </td> 233 </tr> 234 <tr> 235 <td style="white-space:nowrap"> 236 <code>spec</code> 237 <br> 238 <em> 239 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec"> 240 TLSCertificateDelegationSpec 241 </a> 242 </em> 243 </td> 244 <td> 245 <br> 246 <br> 247 <table style="border:none"> 248 <tr> 249 <td style="white-space:nowrap"> 250 <code>delegations</code> 251 <br> 252 <em> 253 <a href="#projectcontour.io/v1.CertificateDelegation"> 254 []CertificateDelegation 255 </a> 256 </em> 257 </td> 258 <td> 259 </td> 260 </tr> 261 </table> 262 </td> 263 </tr> 264 <tr> 265 <td style="white-space:nowrap"> 266 <code>status</code> 267 <br> 268 <em> 269 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus"> 270 TLSCertificateDelegationStatus 271 </a> 272 </em> 273 </td> 274 <td> 275 <em>(Optional)</em> 276 </td> 277 </tr> 278 </tbody> 279 </table> 280 <h3 id="projectcontour.io/v1.AuthorizationPolicy">AuthorizationPolicy 281 </h3> 282 <p> 283 (<em>Appears on:</em> 284 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>, 285 <a href="#projectcontour.io/v1.Route">Route</a>) 286 </p> 287 <p> 288 <p>AuthorizationPolicy modifies how client requests are authenticated.</p> 289 </p> 290 <table class="table table-striped table-borderless" style="border:none"> 291 <thead class="border-bottom"> 292 <tr> 293 <th>Field</th> 294 <th>Description</th> 295 </tr> 296 </thead> 297 <tbody class="border-top"> 298 <tr> 299 <td style="white-space:nowrap"> 300 <code>disabled</code> 301 <br> 302 <em> 303 bool 304 </em> 305 </td> 306 <td> 307 <em>(Optional)</em> 308 <p>When true, this field disables client request authentication 309 for the scope of the policy.</p> 310 </td> 311 </tr> 312 <tr> 313 <td style="white-space:nowrap"> 314 <code>context</code> 315 <br> 316 <em> 317 map[string]string 318 </em> 319 </td> 320 <td> 321 <em>(Optional)</em> 322 <p>Context is a set of key/value pairs that are sent to the 323 authentication server in the check request. If a context 324 is provided at an enclosing scope, the entries are merged 325 such that the inner scope overrides matching keys from the 326 outer scope.</p> 327 </td> 328 </tr> 329 </tbody> 330 </table> 331 <h3 id="projectcontour.io/v1.AuthorizationServer">AuthorizationServer 332 </h3> 333 <p> 334 (<em>Appears on:</em> 335 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 336 </p> 337 <p> 338 <p>AuthorizationServer configures an external server to authenticate 339 client requests. The external server must implement the v3 Envoy 340 external authorization GRPC protocol (<a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto">https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto</a>).</p> 341 </p> 342 <table class="table table-striped table-borderless" style="border:none"> 343 <thead class="border-bottom"> 344 <tr> 345 <th>Field</th> 346 <th>Description</th> 347 </tr> 348 </thead> 349 <tbody class="border-top"> 350 <tr> 351 <td style="white-space:nowrap"> 352 <code>extensionRef</code> 353 <br> 354 <em> 355 <a href="#projectcontour.io/v1.ExtensionServiceReference"> 356 ExtensionServiceReference 357 </a> 358 </em> 359 </td> 360 <td> 361 <p>ExtensionServiceRef specifies the extension resource that will authorize client requests.</p> 362 </td> 363 </tr> 364 <tr> 365 <td style="white-space:nowrap"> 366 <code>authPolicy</code> 367 <br> 368 <em> 369 <a href="#projectcontour.io/v1.AuthorizationPolicy"> 370 AuthorizationPolicy 371 </a> 372 </em> 373 </td> 374 <td> 375 <em>(Optional)</em> 376 <p>AuthPolicy sets a default authorization policy for client requests. 377 This policy will be used unless overridden by individual routes.</p> 378 </td> 379 </tr> 380 <tr> 381 <td style="white-space:nowrap"> 382 <code>responseTimeout</code> 383 <br> 384 <em> 385 string 386 </em> 387 </td> 388 <td> 389 <em>(Optional)</em> 390 <p>ResponseTimeout configures maximum time to wait for a check response from the authorization server. 391 Timeout durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 392 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 393 The string “infinity” is also a valid input and specifies no timeout.</p> 394 </td> 395 </tr> 396 <tr> 397 <td style="white-space:nowrap"> 398 <code>failOpen</code> 399 <br> 400 <em> 401 bool 402 </em> 403 </td> 404 <td> 405 <em>(Optional)</em> 406 <p>If FailOpen is true, the client request is forwarded to the upstream service 407 even if the authorization server fails to respond. This field should not be 408 set in most cases. It is intended for use only while migrating applications 409 from internal authorization to Contour external authorization.</p> 410 </td> 411 </tr> 412 </tbody> 413 </table> 414 <h3 id="projectcontour.io/v1.CORSHeaderValue">CORSHeaderValue 415 (<code>string</code> alias)</h3> 416 <p> 417 (<em>Appears on:</em> 418 <a href="#projectcontour.io/v1.CORSPolicy">CORSPolicy</a>) 419 </p> 420 <p> 421 <p>CORSHeaderValue specifies the value of the string headers returned by a cross-domain request.</p> 422 </p> 423 <h3 id="projectcontour.io/v1.CORSPolicy">CORSPolicy 424 </h3> 425 <p> 426 (<em>Appears on:</em> 427 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 428 </p> 429 <p> 430 <p>CORSPolicy allows setting the CORS policy</p> 431 </p> 432 <table class="table table-striped table-borderless" style="border:none"> 433 <thead class="border-bottom"> 434 <tr> 435 <th>Field</th> 436 <th>Description</th> 437 </tr> 438 </thead> 439 <tbody class="border-top"> 440 <tr> 441 <td style="white-space:nowrap"> 442 <code>allowCredentials</code> 443 <br> 444 <em> 445 bool 446 </em> 447 </td> 448 <td> 449 <em>(Optional)</em> 450 <p>Specifies whether the resource allows credentials.</p> 451 </td> 452 </tr> 453 <tr> 454 <td style="white-space:nowrap"> 455 <code>allowOrigin</code> 456 <br> 457 <em> 458 []string 459 </em> 460 </td> 461 <td> 462 <p>AllowOrigin specifies the origins that will be allowed to do CORS requests. “*” means 463 allow any origin.</p> 464 </td> 465 </tr> 466 <tr> 467 <td style="white-space:nowrap"> 468 <code>allowMethods</code> 469 <br> 470 <em> 471 <a href="#projectcontour.io/v1.CORSHeaderValue"> 472 []CORSHeaderValue 473 </a> 474 </em> 475 </td> 476 <td> 477 <p>AllowMethods specifies the content for the <em>access-control-allow-methods</em> header.</p> 478 </td> 479 </tr> 480 <tr> 481 <td style="white-space:nowrap"> 482 <code>allowHeaders</code> 483 <br> 484 <em> 485 <a href="#projectcontour.io/v1.CORSHeaderValue"> 486 []CORSHeaderValue 487 </a> 488 </em> 489 </td> 490 <td> 491 <em>(Optional)</em> 492 <p>AllowHeaders specifies the content for the <em>access-control-allow-headers</em> header.</p> 493 </td> 494 </tr> 495 <tr> 496 <td style="white-space:nowrap"> 497 <code>exposeHeaders</code> 498 <br> 499 <em> 500 <a href="#projectcontour.io/v1.CORSHeaderValue"> 501 []CORSHeaderValue 502 </a> 503 </em> 504 </td> 505 <td> 506 <em>(Optional)</em> 507 <p>ExposeHeaders Specifies the content for the <em>access-control-expose-headers</em> header.</p> 508 </td> 509 </tr> 510 <tr> 511 <td style="white-space:nowrap"> 512 <code>maxAge</code> 513 <br> 514 <em> 515 string 516 </em> 517 </td> 518 <td> 519 <em>(Optional)</em> 520 <p>MaxAge indicates for how long the results of a preflight request can be cached. 521 MaxAge durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 522 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 523 Only positive values are allowed while 0 disables the cache requiring a preflight OPTIONS 524 check for all cross-origin requests.</p> 525 </td> 526 </tr> 527 </tbody> 528 </table> 529 <h3 id="projectcontour.io/v1.CertificateDelegation">CertificateDelegation 530 </h3> 531 <p> 532 (<em>Appears on:</em> 533 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec</a>) 534 </p> 535 <p> 536 <p>CertificateDelegation maps the authority to reference a secret 537 in the current namespace to a set of namespaces.</p> 538 </p> 539 <table class="table table-striped table-borderless" style="border:none"> 540 <thead class="border-bottom"> 541 <tr> 542 <th>Field</th> 543 <th>Description</th> 544 </tr> 545 </thead> 546 <tbody class="border-top"> 547 <tr> 548 <td style="white-space:nowrap"> 549 <code>secretName</code> 550 <br> 551 <em> 552 string 553 </em> 554 </td> 555 <td> 556 <p>required, the name of a secret in the current namespace.</p> 557 </td> 558 </tr> 559 <tr> 560 <td style="white-space:nowrap"> 561 <code>targetNamespaces</code> 562 <br> 563 <em> 564 []string 565 </em> 566 </td> 567 <td> 568 <p>required, the namespaces the authority to reference the 569 the secret will be delegated to. 570 If TargetNamespaces is nil or empty, the CertificateDelegation’ 571 is ignored. If the TargetNamespace list contains the character, “*” 572 the secret will be delegated to all namespaces.</p> 573 </td> 574 </tr> 575 </tbody> 576 </table> 577 <h3 id="projectcontour.io/v1.DetailedCondition">DetailedCondition 578 </h3> 579 <p> 580 (<em>Appears on:</em> 581 <a href="#projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus</a>, 582 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus</a>, 583 <a href="#projectcontour.io/v1alpha1.ExtensionServiceStatus">ExtensionServiceStatus</a>) 584 </p> 585 <p> 586 <p>DetailedCondition is an extension of the normal Kubernetes conditions, with two extra 587 fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) 588 of the condition.</p> 589 <p><code>errors</code> holds information about sub-conditions which are fatal to that condition and render its state False.</p> 590 <p><code>warnings</code> holds information about sub-conditions which are not fatal to that condition and do not force the state to be False.</p> 591 <p>Remember that Conditions have a type, a status, and a reason.</p> 592 <p>The type is the type of the condition, the most important one in this CRD set is <code>Valid</code>. 593 <code>Valid</code> is a positive-polarity condition: when it is <code>status: true</code> there are no problems.</p> 594 <p>In more detail, <code>status: true</code> means that the object is has been ingested into Contour with no errors. 595 <code>warnings</code> may still be present, and will be indicated in the Reason field. There must be zero entries in the <code>errors</code> 596 slice in this case.</p> 597 <p><code>Valid</code>, <code>status: false</code> means that the object has had one or more fatal errors during processing into Contour. 598 The details of the errors will be present under the <code>errors</code> field. There must be at least one error in the <code>errors</code> 599 slice if <code>status</code> is <code>false</code>.</p> 600 <p>For DetailedConditions of types other than <code>Valid</code>, the Condition must be in the negative polarity. 601 When they have <code>status</code> <code>true</code>, there is an error. There must be at least one entry in the <code>errors</code> Subcondition slice. 602 When they have <code>status</code> <code>false</code>, there are no serious errors, and there must be zero entries in the <code>errors</code> slice. 603 In either case, there may be entries in the <code>warnings</code> slice.</p> 604 <p>Regardless of the polarity, the <code>reason</code> and <code>message</code> fields must be updated with either the detail of the reason 605 (if there is one and only one entry in total across both the <code>errors</code> and <code>warnings</code> slices), or 606 <code>MultipleReasons</code> if there is more than one entry.</p> 607 </p> 608 <table class="table table-striped table-borderless" style="border:none"> 609 <thead class="border-bottom"> 610 <tr> 611 <th>Field</th> 612 <th>Description</th> 613 </tr> 614 </thead> 615 <tbody class="border-top"> 616 <tr> 617 <td style="white-space:nowrap"> 618 <code>Condition</code> 619 <br> 620 <em> 621 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#condition-v1-meta"> 622 Kubernetes meta/v1.Condition 623 </a> 624 </em> 625 </td> 626 <td> 627 <p> 628 (Members of <code>Condition</code> are embedded into this type.) 629 </p> 630 </td> 631 </tr> 632 <tr> 633 <td style="white-space:nowrap"> 634 <code>errors</code> 635 <br> 636 <em> 637 <a href="#projectcontour.io/v1.SubCondition"> 638 []SubCondition 639 </a> 640 </em> 641 </td> 642 <td> 643 <em>(Optional)</em> 644 <p>Errors contains a slice of relevant error subconditions for this object.</p> 645 <p>Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. 646 An empty slice here indicates no errors.</p> 647 </td> 648 </tr> 649 <tr> 650 <td style="white-space:nowrap"> 651 <code>warnings</code> 652 <br> 653 <em> 654 <a href="#projectcontour.io/v1.SubCondition"> 655 []SubCondition 656 </a> 657 </em> 658 </td> 659 <td> 660 <em>(Optional)</em> 661 <p>Warnings contains a slice of relevant warning subconditions for this object.</p> 662 <p>Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. 663 An empty slice here indicates no warnings.</p> 664 </td> 665 </tr> 666 </tbody> 667 </table> 668 <h3 id="projectcontour.io/v1.DownstreamValidation">DownstreamValidation 669 </h3> 670 <p> 671 (<em>Appears on:</em> 672 <a href="#projectcontour.io/v1.TLS">TLS</a>) 673 </p> 674 <p> 675 <p>DownstreamValidation defines how to verify the client certificate.</p> 676 </p> 677 <table class="table table-striped table-borderless" style="border:none"> 678 <thead class="border-bottom"> 679 <tr> 680 <th>Field</th> 681 <th>Description</th> 682 </tr> 683 </thead> 684 <tbody class="border-top"> 685 <tr> 686 <td style="white-space:nowrap"> 687 <code>caSecret</code> 688 <br> 689 <em> 690 string 691 </em> 692 </td> 693 <td> 694 <em>(Optional)</em> 695 <p>Name of a Kubernetes secret that contains a CA certificate bundle. 696 The client certificate must validate against the certificates in the bundle. 697 If specified and SkipClientCertValidation is true, client certificates will 698 be required on requests.</p> 699 </td> 700 </tr> 701 <tr> 702 <td style="white-space:nowrap"> 703 <code>skipClientCertValidation</code> 704 <br> 705 <em> 706 bool 707 </em> 708 </td> 709 <td> 710 <em>(Optional)</em> 711 <p>SkipClientCertValidation disables downstream client certificate 712 validation. Defaults to false. This field is intended to be used in 713 conjunction with external authorization in order to enable the external 714 authorization server to validate client certificates. When this field 715 is set to true, client certificates are requested but not verified by 716 Envoy. If CACertificate is specified, client certificates are required on 717 requests, but not verified. If external authorization is in use, they are 718 presented to the external authorization server.</p> 719 </td> 720 </tr> 721 </tbody> 722 </table> 723 <h3 id="projectcontour.io/v1.ExtensionServiceReference">ExtensionServiceReference 724 </h3> 725 <p> 726 (<em>Appears on:</em> 727 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>) 728 </p> 729 <p> 730 <p>ExtensionServiceReference names an ExtensionService resource.</p> 731 </p> 732 <table class="table table-striped table-borderless" style="border:none"> 733 <thead class="border-bottom"> 734 <tr> 735 <th>Field</th> 736 <th>Description</th> 737 </tr> 738 </thead> 739 <tbody class="border-top"> 740 <tr> 741 <td style="white-space:nowrap"> 742 <code>apiVersion</code> 743 <br> 744 <em> 745 string 746 </em> 747 </td> 748 <td> 749 <em>(Optional)</em> 750 <p>API version of the referent. 751 If this field is not specified, the default “projectcontour.io/v1alpha1” will be used</p> 752 </td> 753 </tr> 754 <tr> 755 <td style="white-space:nowrap"> 756 <code>namespace</code> 757 <br> 758 <em> 759 string 760 </em> 761 </td> 762 <td> 763 <em>(Optional)</em> 764 <p>Namespace of the referent. 765 If this field is not specifies, the namespace of the resource that targets the referent will be used.</p> 766 <p>More info: <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/">https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/</a></p> 767 </td> 768 </tr> 769 <tr> 770 <td style="white-space:nowrap"> 771 <code>name</code> 772 <br> 773 <em> 774 string 775 </em> 776 </td> 777 <td> 778 <p>Name of the referent.</p> 779 <p>More info: <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names">https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names</a></p> 780 </td> 781 </tr> 782 </tbody> 783 </table> 784 <h3 id="projectcontour.io/v1.GenericKeyDescriptor">GenericKeyDescriptor 785 </h3> 786 <p> 787 (<em>Appears on:</em> 788 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 789 </p> 790 <p> 791 <p>GenericKeyDescriptor defines a descriptor entry with a static key and 792 value.</p> 793 </p> 794 <table class="table table-striped table-borderless" style="border:none"> 795 <thead class="border-bottom"> 796 <tr> 797 <th>Field</th> 798 <th>Description</th> 799 </tr> 800 </thead> 801 <tbody class="border-top"> 802 <tr> 803 <td style="white-space:nowrap"> 804 <code>key</code> 805 <br> 806 <em> 807 string 808 </em> 809 </td> 810 <td> 811 <em>(Optional)</em> 812 <p>Key defines the key of the descriptor entry. If not set, the 813 key is set to “generic_key”.</p> 814 </td> 815 </tr> 816 <tr> 817 <td style="white-space:nowrap"> 818 <code>value</code> 819 <br> 820 <em> 821 string 822 </em> 823 </td> 824 <td> 825 <p>Value defines the value of the descriptor entry.</p> 826 </td> 827 </tr> 828 </tbody> 829 </table> 830 <h3 id="projectcontour.io/v1.GlobalRateLimitPolicy">GlobalRateLimitPolicy 831 </h3> 832 <p> 833 (<em>Appears on:</em> 834 <a href="#projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy</a>) 835 </p> 836 <p> 837 <p>GlobalRateLimitPolicy defines global rate limiting parameters.</p> 838 </p> 839 <table class="table table-striped table-borderless" style="border:none"> 840 <thead class="border-bottom"> 841 <tr> 842 <th>Field</th> 843 <th>Description</th> 844 </tr> 845 </thead> 846 <tbody class="border-top"> 847 <tr> 848 <td style="white-space:nowrap"> 849 <code>descriptors</code> 850 <br> 851 <em> 852 <a href="#projectcontour.io/v1.RateLimitDescriptor"> 853 []RateLimitDescriptor 854 </a> 855 </em> 856 </td> 857 <td> 858 <p>Descriptors defines the list of descriptors that will 859 be generated and sent to the rate limit service. Each 860 descriptor contains 1+ key-value pair entries.</p> 861 </td> 862 </tr> 863 </tbody> 864 </table> 865 <h3 id="projectcontour.io/v1.HTTPHealthCheckPolicy">HTTPHealthCheckPolicy 866 </h3> 867 <p> 868 (<em>Appears on:</em> 869 <a href="#projectcontour.io/v1.Route">Route</a>) 870 </p> 871 <p> 872 <p>HTTPHealthCheckPolicy defines health checks on the upstream service.</p> 873 </p> 874 <table class="table table-striped table-borderless" style="border:none"> 875 <thead class="border-bottom"> 876 <tr> 877 <th>Field</th> 878 <th>Description</th> 879 </tr> 880 </thead> 881 <tbody class="border-top"> 882 <tr> 883 <td style="white-space:nowrap"> 884 <code>path</code> 885 <br> 886 <em> 887 string 888 </em> 889 </td> 890 <td> 891 <p>HTTP endpoint used to perform health checks on upstream service</p> 892 </td> 893 </tr> 894 <tr> 895 <td style="white-space:nowrap"> 896 <code>host</code> 897 <br> 898 <em> 899 string 900 </em> 901 </td> 902 <td> 903 <p>The value of the host header in the HTTP health check request. 904 If left empty (default value), the name “contour-envoy-healthcheck” 905 will be used.</p> 906 </td> 907 </tr> 908 <tr> 909 <td style="white-space:nowrap"> 910 <code>intervalSeconds</code> 911 <br> 912 <em> 913 int64 914 </em> 915 </td> 916 <td> 917 <em>(Optional)</em> 918 <p>The interval (seconds) between health checks</p> 919 </td> 920 </tr> 921 <tr> 922 <td style="white-space:nowrap"> 923 <code>timeoutSeconds</code> 924 <br> 925 <em> 926 int64 927 </em> 928 </td> 929 <td> 930 <em>(Optional)</em> 931 <p>The time to wait (seconds) for a health check response</p> 932 </td> 933 </tr> 934 <tr> 935 <td style="white-space:nowrap"> 936 <code>unhealthyThresholdCount</code> 937 <br> 938 <em> 939 int64 940 </em> 941 </td> 942 <td> 943 <em>(Optional)</em> 944 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 945 </td> 946 </tr> 947 <tr> 948 <td style="white-space:nowrap"> 949 <code>healthyThresholdCount</code> 950 <br> 951 <em> 952 int64 953 </em> 954 </td> 955 <td> 956 <em>(Optional)</em> 957 <p>The number of healthy health checks required before a host is marked healthy</p> 958 </td> 959 </tr> 960 </tbody> 961 </table> 962 <h3 id="projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec 963 </h3> 964 <p> 965 (<em>Appears on:</em> 966 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 967 </p> 968 <p> 969 <p>HTTPProxySpec defines the spec of the CRD.</p> 970 </p> 971 <table class="table table-striped table-borderless" style="border:none"> 972 <thead class="border-bottom"> 973 <tr> 974 <th>Field</th> 975 <th>Description</th> 976 </tr> 977 </thead> 978 <tbody class="border-top"> 979 <tr> 980 <td style="white-space:nowrap"> 981 <code>virtualhost</code> 982 <br> 983 <em> 984 <a href="#projectcontour.io/v1.VirtualHost"> 985 VirtualHost 986 </a> 987 </em> 988 </td> 989 <td> 990 <em>(Optional)</em> 991 <p>Virtualhost appears at most once. If it is present, the object is considered 992 to be a “root” HTTPProxy.</p> 993 </td> 994 </tr> 995 <tr> 996 <td style="white-space:nowrap"> 997 <code>routes</code> 998 <br> 999 <em> 1000 <a href="#projectcontour.io/v1.Route"> 1001 []Route 1002 </a> 1003 </em> 1004 </td> 1005 <td> 1006 <em>(Optional)</em> 1007 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 1008 </td> 1009 </tr> 1010 <tr> 1011 <td style="white-space:nowrap"> 1012 <code>tcpproxy</code> 1013 <br> 1014 <em> 1015 <a href="#projectcontour.io/v1.TCPProxy"> 1016 TCPProxy 1017 </a> 1018 </em> 1019 </td> 1020 <td> 1021 <em>(Optional)</em> 1022 <p>TCPProxy holds TCP proxy information.</p> 1023 </td> 1024 </tr> 1025 <tr> 1026 <td style="white-space:nowrap"> 1027 <code>includes</code> 1028 <br> 1029 <em> 1030 <a href="#projectcontour.io/v1.Include"> 1031 []Include 1032 </a> 1033 </em> 1034 </td> 1035 <td> 1036 <em>(Optional)</em> 1037 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 1038 possibly in another namespace.</p> 1039 </td> 1040 </tr> 1041 <tr> 1042 <td style="white-space:nowrap"> 1043 <code>ingressClassName</code> 1044 <br> 1045 <em> 1046 string 1047 </em> 1048 </td> 1049 <td> 1050 <em>(Optional)</em> 1051 <p>IngressClassName optionally specifies the ingress class to use for this 1052 HTTPProxy. This replaces the deprecated <code>kubernetes.io/ingress.class</code> 1053 annotation. For backwards compatibility, when that annotation is set, it 1054 is given precedence over this field.</p> 1055 </td> 1056 </tr> 1057 </tbody> 1058 </table> 1059 <h3 id="projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus 1060 </h3> 1061 <p> 1062 (<em>Appears on:</em> 1063 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 1064 </p> 1065 <p> 1066 <p>HTTPProxyStatus reports the current state of the HTTPProxy.</p> 1067 </p> 1068 <table class="table table-striped table-borderless" style="border:none"> 1069 <thead class="border-bottom"> 1070 <tr> 1071 <th>Field</th> 1072 <th>Description</th> 1073 </tr> 1074 </thead> 1075 <tbody class="border-top"> 1076 <tr> 1077 <td style="white-space:nowrap"> 1078 <code>currentStatus</code> 1079 <br> 1080 <em> 1081 string 1082 </em> 1083 </td> 1084 <td> 1085 <em>(Optional)</em> 1086 </td> 1087 </tr> 1088 <tr> 1089 <td style="white-space:nowrap"> 1090 <code>description</code> 1091 <br> 1092 <em> 1093 string 1094 </em> 1095 </td> 1096 <td> 1097 <em>(Optional)</em> 1098 </td> 1099 </tr> 1100 <tr> 1101 <td style="white-space:nowrap"> 1102 <code>loadBalancer</code> 1103 <br> 1104 <em> 1105 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#loadbalancerstatus-v1-core"> 1106 Kubernetes core/v1.LoadBalancerStatus 1107 </a> 1108 </em> 1109 </td> 1110 <td> 1111 <em>(Optional)</em> 1112 <p>LoadBalancer contains the current status of the load balancer.</p> 1113 </td> 1114 </tr> 1115 <tr> 1116 <td style="white-space:nowrap"> 1117 <code>conditions</code> 1118 <br> 1119 <em> 1120 <a href="#projectcontour.io/v1.DetailedCondition"> 1121 []DetailedCondition 1122 </a> 1123 </em> 1124 </td> 1125 <td> 1126 <em>(Optional)</em> 1127 <p>Conditions contains information about the current status of the HTTPProxy, 1128 in an upstream-friendly container.</p> 1129 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 1130 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 1131 and vice versa.</p> 1132 <p>Contour will leave untouched any other Conditions set in this block, 1133 in case some other controller wants to add a Condition.</p> 1134 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 1135 namespace your condition with a label, like <code>controller.domain.com/ConditionName</code>.</p> 1136 </td> 1137 </tr> 1138 </tbody> 1139 </table> 1140 <h3 id="projectcontour.io/v1.HeaderHashOptions">HeaderHashOptions 1141 </h3> 1142 <p> 1143 (<em>Appears on:</em> 1144 <a href="#projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy</a>) 1145 </p> 1146 <p> 1147 <p>HeaderHashOptions contains options to configure a HTTP request header hash 1148 policy, used in request attribute hash based load balancing.</p> 1149 </p> 1150 <table class="table table-striped table-borderless" style="border:none"> 1151 <thead class="border-bottom"> 1152 <tr> 1153 <th>Field</th> 1154 <th>Description</th> 1155 </tr> 1156 </thead> 1157 <tbody class="border-top"> 1158 <tr> 1159 <td style="white-space:nowrap"> 1160 <code>headerName</code> 1161 <br> 1162 <em> 1163 string 1164 </em> 1165 </td> 1166 <td> 1167 <p>HeaderName is the name of the HTTP request header that will be used to 1168 calculate the hash key. If the header specified is not present on a 1169 request, no hash will be produced.</p> 1170 </td> 1171 </tr> 1172 </tbody> 1173 </table> 1174 <h3 id="projectcontour.io/v1.HeaderMatchCondition">HeaderMatchCondition 1175 </h3> 1176 <p> 1177 (<em>Appears on:</em> 1178 <a href="#projectcontour.io/v1.MatchCondition">MatchCondition</a>, 1179 <a href="#projectcontour.io/v1.RequestHeaderValueMatchDescriptor">RequestHeaderValueMatchDescriptor</a>) 1180 </p> 1181 <p> 1182 <p>HeaderMatchCondition specifies how to conditionally match against HTTP 1183 headers. The Name field is required, but only one of the remaining 1184 fields should be be provided.</p> 1185 </p> 1186 <table class="table table-striped table-borderless" style="border:none"> 1187 <thead class="border-bottom"> 1188 <tr> 1189 <th>Field</th> 1190 <th>Description</th> 1191 </tr> 1192 </thead> 1193 <tbody class="border-top"> 1194 <tr> 1195 <td style="white-space:nowrap"> 1196 <code>name</code> 1197 <br> 1198 <em> 1199 string 1200 </em> 1201 </td> 1202 <td> 1203 <p>Name is the name of the header to match against. Name is required. 1204 Header names are case insensitive.</p> 1205 </td> 1206 </tr> 1207 <tr> 1208 <td style="white-space:nowrap"> 1209 <code>present</code> 1210 <br> 1211 <em> 1212 bool 1213 </em> 1214 </td> 1215 <td> 1216 <em>(Optional)</em> 1217 <p>Present specifies that condition is true when the named header 1218 is present, regardless of its value. Note that setting Present 1219 to false does not make the condition true if the named header 1220 is absent.</p> 1221 </td> 1222 </tr> 1223 <tr> 1224 <td style="white-space:nowrap"> 1225 <code>notpresent</code> 1226 <br> 1227 <em> 1228 bool 1229 </em> 1230 </td> 1231 <td> 1232 <em>(Optional)</em> 1233 <p>NotPresent specifies that condition is true when the named header 1234 is not present. Note that setting NotPresent to false does not 1235 make the condition true if the named header is present.</p> 1236 </td> 1237 </tr> 1238 <tr> 1239 <td style="white-space:nowrap"> 1240 <code>contains</code> 1241 <br> 1242 <em> 1243 string 1244 </em> 1245 </td> 1246 <td> 1247 <em>(Optional)</em> 1248 <p>Contains specifies a substring that must be present in 1249 the header value.</p> 1250 </td> 1251 </tr> 1252 <tr> 1253 <td style="white-space:nowrap"> 1254 <code>notcontains</code> 1255 <br> 1256 <em> 1257 string 1258 </em> 1259 </td> 1260 <td> 1261 <em>(Optional)</em> 1262 <p>NotContains specifies a substring that must not be present 1263 in the header value.</p> 1264 </td> 1265 </tr> 1266 <tr> 1267 <td style="white-space:nowrap"> 1268 <code>exact</code> 1269 <br> 1270 <em> 1271 string 1272 </em> 1273 </td> 1274 <td> 1275 <em>(Optional)</em> 1276 <p>Exact specifies a string that the header value must be equal to.</p> 1277 </td> 1278 </tr> 1279 <tr> 1280 <td style="white-space:nowrap"> 1281 <code>notexact</code> 1282 <br> 1283 <em> 1284 string 1285 </em> 1286 </td> 1287 <td> 1288 <em>(Optional)</em> 1289 <p>NoExact specifies a string that the header value must not be 1290 equal to. The condition is true if the header has any other value.</p> 1291 </td> 1292 </tr> 1293 </tbody> 1294 </table> 1295 <h3 id="projectcontour.io/v1.HeaderValue">HeaderValue 1296 </h3> 1297 <p> 1298 (<em>Appears on:</em> 1299 <a href="#projectcontour.io/v1.HeadersPolicy">HeadersPolicy</a>, 1300 <a href="#projectcontour.io/v1.LocalRateLimitPolicy">LocalRateLimitPolicy</a>) 1301 </p> 1302 <p> 1303 <p>HeaderValue represents a header name/value pair</p> 1304 </p> 1305 <table class="table table-striped table-borderless" style="border:none"> 1306 <thead class="border-bottom"> 1307 <tr> 1308 <th>Field</th> 1309 <th>Description</th> 1310 </tr> 1311 </thead> 1312 <tbody class="border-top"> 1313 <tr> 1314 <td style="white-space:nowrap"> 1315 <code>name</code> 1316 <br> 1317 <em> 1318 string 1319 </em> 1320 </td> 1321 <td> 1322 <p>Name represents a key of a header</p> 1323 </td> 1324 </tr> 1325 <tr> 1326 <td style="white-space:nowrap"> 1327 <code>value</code> 1328 <br> 1329 <em> 1330 string 1331 </em> 1332 </td> 1333 <td> 1334 <p>Value represents the value of a header specified by a key</p> 1335 </td> 1336 </tr> 1337 </tbody> 1338 </table> 1339 <h3 id="projectcontour.io/v1.HeadersPolicy">HeadersPolicy 1340 </h3> 1341 <p> 1342 (<em>Appears on:</em> 1343 <a href="#projectcontour.io/v1.Route">Route</a>, 1344 <a href="#projectcontour.io/v1.Service">Service</a>) 1345 </p> 1346 <p> 1347 <p>HeadersPolicy defines how headers are managed during forwarding. 1348 The <code>Host</code> header is treated specially and if set in a HTTP response 1349 will be used as the SNI server name when forwarding over TLS. It is an 1350 error to attempt to set the <code>Host</code> header in a HTTP response.</p> 1351 </p> 1352 <table class="table table-striped table-borderless" style="border:none"> 1353 <thead class="border-bottom"> 1354 <tr> 1355 <th>Field</th> 1356 <th>Description</th> 1357 </tr> 1358 </thead> 1359 <tbody class="border-top"> 1360 <tr> 1361 <td style="white-space:nowrap"> 1362 <code>set</code> 1363 <br> 1364 <em> 1365 <a href="#projectcontour.io/v1.HeaderValue"> 1366 []HeaderValue 1367 </a> 1368 </em> 1369 </td> 1370 <td> 1371 <em>(Optional)</em> 1372 <p>Set specifies a list of HTTP header values that will be set in the HTTP header. 1373 If the header does not exist it will be added, otherwise it will be overwritten with the new value.</p> 1374 </td> 1375 </tr> 1376 <tr> 1377 <td style="white-space:nowrap"> 1378 <code>remove</code> 1379 <br> 1380 <em> 1381 []string 1382 </em> 1383 </td> 1384 <td> 1385 <em>(Optional)</em> 1386 <p>Remove specifies a list of HTTP header names to remove.</p> 1387 </td> 1388 </tr> 1389 </tbody> 1390 </table> 1391 <h3 id="projectcontour.io/v1.Include">Include 1392 </h3> 1393 <p> 1394 (<em>Appears on:</em> 1395 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 1396 </p> 1397 <p> 1398 <p>Include describes a set of policies that can be applied to an HTTPProxy in a namespace.</p> 1399 </p> 1400 <table class="table table-striped table-borderless" style="border:none"> 1401 <thead class="border-bottom"> 1402 <tr> 1403 <th>Field</th> 1404 <th>Description</th> 1405 </tr> 1406 </thead> 1407 <tbody class="border-top"> 1408 <tr> 1409 <td style="white-space:nowrap"> 1410 <code>name</code> 1411 <br> 1412 <em> 1413 string 1414 </em> 1415 </td> 1416 <td> 1417 <p>Name of the HTTPProxy</p> 1418 </td> 1419 </tr> 1420 <tr> 1421 <td style="white-space:nowrap"> 1422 <code>namespace</code> 1423 <br> 1424 <em> 1425 string 1426 </em> 1427 </td> 1428 <td> 1429 <em>(Optional)</em> 1430 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 1431 </td> 1432 </tr> 1433 <tr> 1434 <td style="white-space:nowrap"> 1435 <code>conditions</code> 1436 <br> 1437 <em> 1438 <a href="#projectcontour.io/v1.MatchCondition"> 1439 []MatchCondition 1440 </a> 1441 </em> 1442 </td> 1443 <td> 1444 <em>(Optional)</em> 1445 <p>Conditions are a set of rules that are applied to included HTTPProxies. 1446 In effect, they are added onto the Conditions of included HTTPProxy Route 1447 structs. 1448 When applied, they are merged using AND, with one exception: 1449 There can be only one Prefix MatchCondition per Conditions slice. 1450 More than one Prefix, or contradictory Conditions, will make the 1451 include invalid.</p> 1452 </td> 1453 </tr> 1454 </tbody> 1455 </table> 1456 <h3 id="projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy 1457 </h3> 1458 <p> 1459 (<em>Appears on:</em> 1460 <a href="#projectcontour.io/v1.Route">Route</a>, 1461 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>, 1462 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 1463 </p> 1464 <p> 1465 <p>LoadBalancerPolicy defines the load balancing policy.</p> 1466 </p> 1467 <table class="table table-striped table-borderless" style="border:none"> 1468 <thead class="border-bottom"> 1469 <tr> 1470 <th>Field</th> 1471 <th>Description</th> 1472 </tr> 1473 </thead> 1474 <tbody class="border-top"> 1475 <tr> 1476 <td style="white-space:nowrap"> 1477 <code>strategy</code> 1478 <br> 1479 <em> 1480 string 1481 </em> 1482 </td> 1483 <td> 1484 <p>Strategy specifies the policy used to balance requests 1485 across the pool of backend pods. Valid policy names are 1486 <code>Random</code>, <code>RoundRobin</code>, <code>WeightedLeastRequest</code>, <code>Cookie</code>, 1487 and <code>RequestHash</code>. If an unknown strategy name is specified 1488 or no policy is supplied, the default <code>RoundRobin</code> policy 1489 is used.</p> 1490 </td> 1491 </tr> 1492 <tr> 1493 <td style="white-space:nowrap"> 1494 <code>requestHashPolicies</code> 1495 <br> 1496 <em> 1497 <a href="#projectcontour.io/v1.RequestHashPolicy"> 1498 []RequestHashPolicy 1499 </a> 1500 </em> 1501 </td> 1502 <td> 1503 <p>RequestHashPolicies contains a list of hash policies to apply when the 1504 <code>RequestHash</code> load balancing strategy is chosen. If an element of the 1505 supplied list of hash policies is invalid, it will be ignored. If the 1506 list of hash policies is empty after validation, the load balancing 1507 strategy will fall back to the default <code>RoundRobin</code>.</p> 1508 </td> 1509 </tr> 1510 </tbody> 1511 </table> 1512 <h3 id="projectcontour.io/v1.LocalRateLimitPolicy">LocalRateLimitPolicy 1513 </h3> 1514 <p> 1515 (<em>Appears on:</em> 1516 <a href="#projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy</a>) 1517 </p> 1518 <p> 1519 <p>LocalRateLimitPolicy defines local rate limiting parameters.</p> 1520 </p> 1521 <table class="table table-striped table-borderless" style="border:none"> 1522 <thead class="border-bottom"> 1523 <tr> 1524 <th>Field</th> 1525 <th>Description</th> 1526 </tr> 1527 </thead> 1528 <tbody class="border-top"> 1529 <tr> 1530 <td style="white-space:nowrap"> 1531 <code>requests</code> 1532 <br> 1533 <em> 1534 uint32 1535 </em> 1536 </td> 1537 <td> 1538 <p>Requests defines how many requests per unit of time should 1539 be allowed before rate limiting occurs.</p> 1540 </td> 1541 </tr> 1542 <tr> 1543 <td style="white-space:nowrap"> 1544 <code>unit</code> 1545 <br> 1546 <em> 1547 string 1548 </em> 1549 </td> 1550 <td> 1551 <p>Unit defines the period of time within which requests 1552 over the limit will be rate limited. Valid values are 1553 “second”, “minute” and “hour”.</p> 1554 </td> 1555 </tr> 1556 <tr> 1557 <td style="white-space:nowrap"> 1558 <code>burst</code> 1559 <br> 1560 <em> 1561 uint32 1562 </em> 1563 </td> 1564 <td> 1565 <em>(Optional)</em> 1566 <p>Burst defines the number of requests above the requests per 1567 unit that should be allowed within a short period of time.</p> 1568 </td> 1569 </tr> 1570 <tr> 1571 <td style="white-space:nowrap"> 1572 <code>responseStatusCode</code> 1573 <br> 1574 <em> 1575 uint32 1576 </em> 1577 </td> 1578 <td> 1579 <em>(Optional)</em> 1580 <p>ResponseStatusCode is the HTTP status code to use for responses 1581 to rate-limited requests. Codes must be in the 400-599 range 1582 (inclusive). If not specified, the Envoy default of 429 (Too 1583 Many Requests) is used.</p> 1584 </td> 1585 </tr> 1586 <tr> 1587 <td style="white-space:nowrap"> 1588 <code>responseHeadersToAdd</code> 1589 <br> 1590 <em> 1591 <a href="#projectcontour.io/v1.HeaderValue"> 1592 []HeaderValue 1593 </a> 1594 </em> 1595 </td> 1596 <td> 1597 <em>(Optional)</em> 1598 <p>ResponseHeadersToAdd is an optional list of response headers to 1599 set when a request is rate-limited.</p> 1600 </td> 1601 </tr> 1602 </tbody> 1603 </table> 1604 <h3 id="projectcontour.io/v1.MatchCondition">MatchCondition 1605 </h3> 1606 <p> 1607 (<em>Appears on:</em> 1608 <a href="#projectcontour.io/v1.Include">Include</a>, 1609 <a href="#projectcontour.io/v1.Route">Route</a>) 1610 </p> 1611 <p> 1612 <p>MatchCondition are a general holder for matching rules for HTTPProxies. 1613 One of Prefix or Header must be provided.</p> 1614 </p> 1615 <table class="table table-striped table-borderless" style="border:none"> 1616 <thead class="border-bottom"> 1617 <tr> 1618 <th>Field</th> 1619 <th>Description</th> 1620 </tr> 1621 </thead> 1622 <tbody class="border-top"> 1623 <tr> 1624 <td style="white-space:nowrap"> 1625 <code>prefix</code> 1626 <br> 1627 <em> 1628 string 1629 </em> 1630 </td> 1631 <td> 1632 <em>(Optional)</em> 1633 <p>Prefix defines a prefix match for a request.</p> 1634 </td> 1635 </tr> 1636 <tr> 1637 <td style="white-space:nowrap"> 1638 <code>header</code> 1639 <br> 1640 <em> 1641 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 1642 HeaderMatchCondition 1643 </a> 1644 </em> 1645 </td> 1646 <td> 1647 <em>(Optional)</em> 1648 <p>Header specifies the header condition to match.</p> 1649 </td> 1650 </tr> 1651 </tbody> 1652 </table> 1653 <h3 id="projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy 1654 </h3> 1655 <p> 1656 (<em>Appears on:</em> 1657 <a href="#projectcontour.io/v1.Route">Route</a>) 1658 </p> 1659 <p> 1660 <p>PathRewritePolicy specifies how a request URL path should be 1661 rewritten. This rewriting takes place after a request is routed 1662 and has no subsequent effects on the proxy’s routing decision. 1663 No HTTP headers or body content is rewritten.</p> 1664 <p>Exactly one field in this struct may be specified.</p> 1665 </p> 1666 <table class="table table-striped table-borderless" style="border:none"> 1667 <thead class="border-bottom"> 1668 <tr> 1669 <th>Field</th> 1670 <th>Description</th> 1671 </tr> 1672 </thead> 1673 <tbody class="border-top"> 1674 <tr> 1675 <td style="white-space:nowrap"> 1676 <code>replacePrefix</code> 1677 <br> 1678 <em> 1679 <a href="#projectcontour.io/v1.ReplacePrefix"> 1680 []ReplacePrefix 1681 </a> 1682 </em> 1683 </td> 1684 <td> 1685 <em>(Optional)</em> 1686 <p>ReplacePrefix describes how the path prefix should be replaced.</p> 1687 </td> 1688 </tr> 1689 </tbody> 1690 </table> 1691 <h3 id="projectcontour.io/v1.RateLimitDescriptor">RateLimitDescriptor 1692 </h3> 1693 <p> 1694 (<em>Appears on:</em> 1695 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy">GlobalRateLimitPolicy</a>) 1696 </p> 1697 <p> 1698 <p>RateLimitDescriptor defines a list of key-value pair generators.</p> 1699 </p> 1700 <table class="table table-striped table-borderless" style="border:none"> 1701 <thead class="border-bottom"> 1702 <tr> 1703 <th>Field</th> 1704 <th>Description</th> 1705 </tr> 1706 </thead> 1707 <tbody class="border-top"> 1708 <tr> 1709 <td style="white-space:nowrap"> 1710 <code>entries</code> 1711 <br> 1712 <em> 1713 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry"> 1714 []RateLimitDescriptorEntry 1715 </a> 1716 </em> 1717 </td> 1718 <td> 1719 <p>Entries is the list of key-value pair generators.</p> 1720 </td> 1721 </tr> 1722 </tbody> 1723 </table> 1724 <h3 id="projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry 1725 </h3> 1726 <p> 1727 (<em>Appears on:</em> 1728 <a href="#projectcontour.io/v1.RateLimitDescriptor">RateLimitDescriptor</a>) 1729 </p> 1730 <p> 1731 <p>RateLimitDescriptorEntry is a key-value pair generator. Exactly 1732 one field on this struct must be non-nil.</p> 1733 </p> 1734 <table class="table table-striped table-borderless" style="border:none"> 1735 <thead class="border-bottom"> 1736 <tr> 1737 <th>Field</th> 1738 <th>Description</th> 1739 </tr> 1740 </thead> 1741 <tbody class="border-top"> 1742 <tr> 1743 <td style="white-space:nowrap"> 1744 <code>genericKey</code> 1745 <br> 1746 <em> 1747 <a href="#projectcontour.io/v1.GenericKeyDescriptor"> 1748 GenericKeyDescriptor 1749 </a> 1750 </em> 1751 </td> 1752 <td> 1753 <em>(Optional)</em> 1754 <p>GenericKey defines a descriptor entry with a static key and value.</p> 1755 </td> 1756 </tr> 1757 <tr> 1758 <td style="white-space:nowrap"> 1759 <code>requestHeader</code> 1760 <br> 1761 <em> 1762 <a href="#projectcontour.io/v1.RequestHeaderDescriptor"> 1763 RequestHeaderDescriptor 1764 </a> 1765 </em> 1766 </td> 1767 <td> 1768 <em>(Optional)</em> 1769 <p>RequestHeader defines a descriptor entry that’s populated only if 1770 a given header is present on the request. The descriptor key is static, 1771 and the descriptor value is equal to the value of the header.</p> 1772 </td> 1773 </tr> 1774 <tr> 1775 <td style="white-space:nowrap"> 1776 <code>requestHeaderValueMatch</code> 1777 <br> 1778 <em> 1779 <a href="#projectcontour.io/v1.RequestHeaderValueMatchDescriptor"> 1780 RequestHeaderValueMatchDescriptor 1781 </a> 1782 </em> 1783 </td> 1784 <td> 1785 <em>(Optional)</em> 1786 <p>RequestHeaderValueMatch defines a descriptor entry that’s populated 1787 if the request’s headers match a set of 1+ match criteria. The 1788 descriptor key is “header_match”, and the descriptor value is static.</p> 1789 </td> 1790 </tr> 1791 <tr> 1792 <td style="white-space:nowrap"> 1793 <code>remoteAddress</code> 1794 <br> 1795 <em> 1796 <a href="#projectcontour.io/v1.RemoteAddressDescriptor"> 1797 RemoteAddressDescriptor 1798 </a> 1799 </em> 1800 </td> 1801 <td> 1802 <em>(Optional)</em> 1803 <p>RemoteAddress defines a descriptor entry with a key of “remote_address” 1804 and a value equal to the client’s IP address (from x-forwarded-for).</p> 1805 </td> 1806 </tr> 1807 </tbody> 1808 </table> 1809 <h3 id="projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy 1810 </h3> 1811 <p> 1812 (<em>Appears on:</em> 1813 <a href="#projectcontour.io/v1.Route">Route</a>, 1814 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 1815 </p> 1816 <p> 1817 <p>RateLimitPolicy defines rate limiting parameters.</p> 1818 </p> 1819 <table class="table table-striped table-borderless" style="border:none"> 1820 <thead class="border-bottom"> 1821 <tr> 1822 <th>Field</th> 1823 <th>Description</th> 1824 </tr> 1825 </thead> 1826 <tbody class="border-top"> 1827 <tr> 1828 <td style="white-space:nowrap"> 1829 <code>local</code> 1830 <br> 1831 <em> 1832 <a href="#projectcontour.io/v1.LocalRateLimitPolicy"> 1833 LocalRateLimitPolicy 1834 </a> 1835 </em> 1836 </td> 1837 <td> 1838 <em>(Optional)</em> 1839 <p>Local defines local rate limiting parameters, i.e. parameters 1840 for rate limiting that occurs within each Envoy pod as requests 1841 are handled.</p> 1842 </td> 1843 </tr> 1844 <tr> 1845 <td style="white-space:nowrap"> 1846 <code>global</code> 1847 <br> 1848 <em> 1849 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy"> 1850 GlobalRateLimitPolicy 1851 </a> 1852 </em> 1853 </td> 1854 <td> 1855 <em>(Optional)</em> 1856 <p>Global defines global rate limiting parameters, i.e. parameters 1857 defining descriptors that are sent to an external rate limit 1858 service (RLS) for a rate limit decision on each request.</p> 1859 </td> 1860 </tr> 1861 </tbody> 1862 </table> 1863 <h3 id="projectcontour.io/v1.RemoteAddressDescriptor">RemoteAddressDescriptor 1864 </h3> 1865 <p> 1866 (<em>Appears on:</em> 1867 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 1868 </p> 1869 <p> 1870 <p>RemoteAddressDescriptor defines a descriptor entry with a key of 1871 “remote_address” and a value equal to the client’s IP address 1872 (from x-forwarded-for).</p> 1873 </p> 1874 <h3 id="projectcontour.io/v1.ReplacePrefix">ReplacePrefix 1875 </h3> 1876 <p> 1877 (<em>Appears on:</em> 1878 <a href="#projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy</a>) 1879 </p> 1880 <p> 1881 <p>ReplacePrefix describes a path prefix replacement.</p> 1882 </p> 1883 <table class="table table-striped table-borderless" style="border:none"> 1884 <thead class="border-bottom"> 1885 <tr> 1886 <th>Field</th> 1887 <th>Description</th> 1888 </tr> 1889 </thead> 1890 <tbody class="border-top"> 1891 <tr> 1892 <td style="white-space:nowrap"> 1893 <code>prefix</code> 1894 <br> 1895 <em> 1896 string 1897 </em> 1898 </td> 1899 <td> 1900 <em>(Optional)</em> 1901 <p>Prefix specifies the URL path prefix to be replaced.</p> 1902 <p>If Prefix is specified, it must exactly match the MatchCondition 1903 prefix that is rendered by the chain of including HTTPProxies 1904 and only that path prefix will be replaced by Replacement. 1905 This allows HTTPProxies that are included through multiple 1906 roots to only replace specific path prefixes, leaving others 1907 unmodified.</p> 1908 <p>If Prefix is not specified, all routing prefixes rendered 1909 by the include chain will be replaced.</p> 1910 </td> 1911 </tr> 1912 <tr> 1913 <td style="white-space:nowrap"> 1914 <code>replacement</code> 1915 <br> 1916 <em> 1917 string 1918 </em> 1919 </td> 1920 <td> 1921 <p>Replacement is the string that the routing path prefix 1922 will be replaced with. This must not be empty.</p> 1923 </td> 1924 </tr> 1925 </tbody> 1926 </table> 1927 <h3 id="projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy 1928 </h3> 1929 <p> 1930 (<em>Appears on:</em> 1931 <a href="#projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy</a>) 1932 </p> 1933 <p> 1934 <p>RequestHashPolicy contains configuration for an individual hash policy 1935 on a request attribute.</p> 1936 </p> 1937 <table class="table table-striped table-borderless" style="border:none"> 1938 <thead class="border-bottom"> 1939 <tr> 1940 <th>Field</th> 1941 <th>Description</th> 1942 </tr> 1943 </thead> 1944 <tbody class="border-top"> 1945 <tr> 1946 <td style="white-space:nowrap"> 1947 <code>terminal</code> 1948 <br> 1949 <em> 1950 bool 1951 </em> 1952 </td> 1953 <td> 1954 <p>Terminal is a flag that allows for short-circuiting computing of a hash 1955 for a given request. If set to true, and the request attribute specified 1956 in the attribute hash options is present, no further hash policies will 1957 be used to calculate a hash for the request.</p> 1958 </td> 1959 </tr> 1960 <tr> 1961 <td style="white-space:nowrap"> 1962 <code>headerHashOptions</code> 1963 <br> 1964 <em> 1965 <a href="#projectcontour.io/v1.HeaderHashOptions"> 1966 HeaderHashOptions 1967 </a> 1968 </em> 1969 </td> 1970 <td> 1971 <p>HeaderHashOptions should be set when request header hash based load 1972 balancing is desired. It must be the only hash option field set, 1973 otherwise this request hash policy object will be ignored.</p> 1974 </td> 1975 </tr> 1976 </tbody> 1977 </table> 1978 <h3 id="projectcontour.io/v1.RequestHeaderDescriptor">RequestHeaderDescriptor 1979 </h3> 1980 <p> 1981 (<em>Appears on:</em> 1982 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 1983 </p> 1984 <p> 1985 <p>RequestHeaderDescriptor defines a descriptor entry that’s populated only 1986 if a given header is present on the request. The value of the descriptor 1987 entry is equal to the value of the header (if present).</p> 1988 </p> 1989 <table class="table table-striped table-borderless" style="border:none"> 1990 <thead class="border-bottom"> 1991 <tr> 1992 <th>Field</th> 1993 <th>Description</th> 1994 </tr> 1995 </thead> 1996 <tbody class="border-top"> 1997 <tr> 1998 <td style="white-space:nowrap"> 1999 <code>headerName</code> 2000 <br> 2001 <em> 2002 string 2003 </em> 2004 </td> 2005 <td> 2006 <p>HeaderName defines the name of the header to look for on the request.</p> 2007 </td> 2008 </tr> 2009 <tr> 2010 <td style="white-space:nowrap"> 2011 <code>descriptorKey</code> 2012 <br> 2013 <em> 2014 string 2015 </em> 2016 </td> 2017 <td> 2018 <p>DescriptorKey defines the key to use on the descriptor entry.</p> 2019 </td> 2020 </tr> 2021 </tbody> 2022 </table> 2023 <h3 id="projectcontour.io/v1.RequestHeaderValueMatchDescriptor">RequestHeaderValueMatchDescriptor 2024 </h3> 2025 <p> 2026 (<em>Appears on:</em> 2027 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 2028 </p> 2029 <p> 2030 <p>RequestHeaderValueMatchDescriptor defines a descriptor entry that’s populated 2031 if the request’s headers match a set of 1+ match criteria. The descriptor key 2032 is “header_match”, and the descriptor value is statically defined.</p> 2033 </p> 2034 <table class="table table-striped table-borderless" style="border:none"> 2035 <thead class="border-bottom"> 2036 <tr> 2037 <th>Field</th> 2038 <th>Description</th> 2039 </tr> 2040 </thead> 2041 <tbody class="border-top"> 2042 <tr> 2043 <td style="white-space:nowrap"> 2044 <code>headers</code> 2045 <br> 2046 <em> 2047 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 2048 []HeaderMatchCondition 2049 </a> 2050 </em> 2051 </td> 2052 <td> 2053 <p>Headers is a list of 1+ match criteria to apply against the request 2054 to determine whether to populate the descriptor entry or not.</p> 2055 </td> 2056 </tr> 2057 <tr> 2058 <td style="white-space:nowrap"> 2059 <code>expectMatch</code> 2060 <br> 2061 <em> 2062 bool 2063 </em> 2064 </td> 2065 <td> 2066 <p>ExpectMatch defines whether the request must positively match the match 2067 criteria in order to generate a descriptor entry (i.e. true), or not 2068 match the match criteria in order to generate a descriptor entry (i.e. false). 2069 The default is true.</p> 2070 </td> 2071 </tr> 2072 <tr> 2073 <td style="white-space:nowrap"> 2074 <code>value</code> 2075 <br> 2076 <em> 2077 string 2078 </em> 2079 </td> 2080 <td> 2081 <p>Value defines the value of the descriptor entry.</p> 2082 </td> 2083 </tr> 2084 </tbody> 2085 </table> 2086 <h3 id="projectcontour.io/v1.RetryOn">RetryOn 2087 (<code>string</code> alias)</h3> 2088 <p> 2089 (<em>Appears on:</em> 2090 <a href="#projectcontour.io/v1.RetryPolicy">RetryPolicy</a>) 2091 </p> 2092 <p> 2093 <p>RetryOn is a string type alias with validation to ensure that the value is valid.</p> 2094 </p> 2095 <h3 id="projectcontour.io/v1.RetryPolicy">RetryPolicy 2096 </h3> 2097 <p> 2098 (<em>Appears on:</em> 2099 <a href="#projectcontour.io/v1.Route">Route</a>) 2100 </p> 2101 <p> 2102 <p>RetryPolicy defines the attributes associated with retrying policy.</p> 2103 </p> 2104 <table class="table table-striped table-borderless" style="border:none"> 2105 <thead class="border-bottom"> 2106 <tr> 2107 <th>Field</th> 2108 <th>Description</th> 2109 </tr> 2110 </thead> 2111 <tbody class="border-top"> 2112 <tr> 2113 <td style="white-space:nowrap"> 2114 <code>count</code> 2115 <br> 2116 <em> 2117 int64 2118 </em> 2119 </td> 2120 <td> 2121 <em>(Optional)</em> 2122 <p>NumRetries is maximum allowed number of retries. 2123 If not supplied, the number of retries is one.</p> 2124 </td> 2125 </tr> 2126 <tr> 2127 <td style="white-space:nowrap"> 2128 <code>perTryTimeout</code> 2129 <br> 2130 <em> 2131 string 2132 </em> 2133 </td> 2134 <td> 2135 <em>(Optional)</em> 2136 <p>PerTryTimeout specifies the timeout per retry attempt. 2137 Ignored if NumRetries is not supplied.</p> 2138 </td> 2139 </tr> 2140 <tr> 2141 <td style="white-space:nowrap"> 2142 <code>retryOn</code> 2143 <br> 2144 <em> 2145 <a href="#projectcontour.io/v1.RetryOn"> 2146 []RetryOn 2147 </a> 2148 </em> 2149 </td> 2150 <td> 2151 <em>(Optional)</em> 2152 <p>RetryOn specifies the conditions on which to retry a request.</p> 2153 <p>Supported <a href="https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on">HTTP conditions</a>:</p> 2154 <ul> 2155 <li><code>5xx</code></li> 2156 <li><code>gateway-error</code></li> 2157 <li><code>reset</code></li> 2158 <li><code>connect-failure</code></li> 2159 <li><code>retriable-4xx</code></li> 2160 <li><code>refused-stream</code></li> 2161 <li><code>retriable-status-codes</code></li> 2162 <li><code>retriable-headers</code></li> 2163 </ul> 2164 <p>Supported <a href="https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-grpc-on">gRPC conditions</a>:</p> 2165 <ul> 2166 <li><code>cancelled</code></li> 2167 <li><code>deadline-exceeded</code></li> 2168 <li><code>internal</code></li> 2169 <li><code>resource-exhausted</code></li> 2170 <li><code>unavailable</code></li> 2171 </ul> 2172 </td> 2173 </tr> 2174 <tr> 2175 <td style="white-space:nowrap"> 2176 <code>retriableStatusCodes</code> 2177 <br> 2178 <em> 2179 []uint32 2180 </em> 2181 </td> 2182 <td> 2183 <em>(Optional)</em> 2184 <p>RetriableStatusCodes specifies the HTTP status codes that should be retried.</p> 2185 <p>This field is only respected when you include <code>retriable-status-codes</code> in the <code>RetryOn</code> field.</p> 2186 </td> 2187 </tr> 2188 </tbody> 2189 </table> 2190 <h3 id="projectcontour.io/v1.Route">Route 2191 </h3> 2192 <p> 2193 (<em>Appears on:</em> 2194 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 2195 </p> 2196 <p> 2197 <p>Route contains the set of routes for a virtual host.</p> 2198 </p> 2199 <table class="table table-striped table-borderless" style="border:none"> 2200 <thead class="border-bottom"> 2201 <tr> 2202 <th>Field</th> 2203 <th>Description</th> 2204 </tr> 2205 </thead> 2206 <tbody class="border-top"> 2207 <tr> 2208 <td style="white-space:nowrap"> 2209 <code>conditions</code> 2210 <br> 2211 <em> 2212 <a href="#projectcontour.io/v1.MatchCondition"> 2213 []MatchCondition 2214 </a> 2215 </em> 2216 </td> 2217 <td> 2218 <em>(Optional)</em> 2219 <p>Conditions are a set of rules that are applied to a Route. 2220 When applied, they are merged using AND, with one exception: 2221 There can be only one Prefix MatchCondition per Conditions slice. 2222 More than one Prefix, or contradictory Conditions, will make the 2223 route invalid.</p> 2224 </td> 2225 </tr> 2226 <tr> 2227 <td style="white-space:nowrap"> 2228 <code>services</code> 2229 <br> 2230 <em> 2231 <a href="#projectcontour.io/v1.Service"> 2232 []Service 2233 </a> 2234 </em> 2235 </td> 2236 <td> 2237 <p>Services are the services to proxy traffic.</p> 2238 </td> 2239 </tr> 2240 <tr> 2241 <td style="white-space:nowrap"> 2242 <code>enableWebsockets</code> 2243 <br> 2244 <em> 2245 bool 2246 </em> 2247 </td> 2248 <td> 2249 <em>(Optional)</em> 2250 <p>Enables websocket support for the route.</p> 2251 </td> 2252 </tr> 2253 <tr> 2254 <td style="white-space:nowrap"> 2255 <code>permitInsecure</code> 2256 <br> 2257 <em> 2258 bool 2259 </em> 2260 </td> 2261 <td> 2262 <em>(Optional)</em> 2263 <p>Allow this path to respond to insecure requests over HTTP which are normally 2264 not permitted when a <code>virtualhost.tls</code> block is present.</p> 2265 </td> 2266 </tr> 2267 <tr> 2268 <td style="white-space:nowrap"> 2269 <code>authPolicy</code> 2270 <br> 2271 <em> 2272 <a href="#projectcontour.io/v1.AuthorizationPolicy"> 2273 AuthorizationPolicy 2274 </a> 2275 </em> 2276 </td> 2277 <td> 2278 <em>(Optional)</em> 2279 <p>AuthPolicy updates the authorization policy that was set 2280 on the root HTTPProxy object for client requests that 2281 match this route.</p> 2282 </td> 2283 </tr> 2284 <tr> 2285 <td style="white-space:nowrap"> 2286 <code>timeoutPolicy</code> 2287 <br> 2288 <em> 2289 <a href="#projectcontour.io/v1.TimeoutPolicy"> 2290 TimeoutPolicy 2291 </a> 2292 </em> 2293 </td> 2294 <td> 2295 <em>(Optional)</em> 2296 <p>The timeout policy for this route.</p> 2297 </td> 2298 </tr> 2299 <tr> 2300 <td style="white-space:nowrap"> 2301 <code>retryPolicy</code> 2302 <br> 2303 <em> 2304 <a href="#projectcontour.io/v1.RetryPolicy"> 2305 RetryPolicy 2306 </a> 2307 </em> 2308 </td> 2309 <td> 2310 <em>(Optional)</em> 2311 <p>The retry policy for this route.</p> 2312 </td> 2313 </tr> 2314 <tr> 2315 <td style="white-space:nowrap"> 2316 <code>healthCheckPolicy</code> 2317 <br> 2318 <em> 2319 <a href="#projectcontour.io/v1.HTTPHealthCheckPolicy"> 2320 HTTPHealthCheckPolicy 2321 </a> 2322 </em> 2323 </td> 2324 <td> 2325 <em>(Optional)</em> 2326 <p>The health check policy for this route.</p> 2327 </td> 2328 </tr> 2329 <tr> 2330 <td style="white-space:nowrap"> 2331 <code>loadBalancerPolicy</code> 2332 <br> 2333 <em> 2334 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 2335 LoadBalancerPolicy 2336 </a> 2337 </em> 2338 </td> 2339 <td> 2340 <em>(Optional)</em> 2341 <p>The load balancing policy for this route.</p> 2342 </td> 2343 </tr> 2344 <tr> 2345 <td style="white-space:nowrap"> 2346 <code>pathRewritePolicy</code> 2347 <br> 2348 <em> 2349 <a href="#projectcontour.io/v1.PathRewritePolicy"> 2350 PathRewritePolicy 2351 </a> 2352 </em> 2353 </td> 2354 <td> 2355 <em>(Optional)</em> 2356 <p>The policy for rewriting the path of the request URL 2357 after the request has been routed to a Service.</p> 2358 </td> 2359 </tr> 2360 <tr> 2361 <td style="white-space:nowrap"> 2362 <code>requestHeadersPolicy</code> 2363 <br> 2364 <em> 2365 <a href="#projectcontour.io/v1.HeadersPolicy"> 2366 HeadersPolicy 2367 </a> 2368 </em> 2369 </td> 2370 <td> 2371 <em>(Optional)</em> 2372 <p>The policy for managing request headers during proxying.</p> 2373 </td> 2374 </tr> 2375 <tr> 2376 <td style="white-space:nowrap"> 2377 <code>responseHeadersPolicy</code> 2378 <br> 2379 <em> 2380 <a href="#projectcontour.io/v1.HeadersPolicy"> 2381 HeadersPolicy 2382 </a> 2383 </em> 2384 </td> 2385 <td> 2386 <em>(Optional)</em> 2387 <p>The policy for managing response headers during proxying. 2388 Rewriting the ‘Host’ header is not supported.</p> 2389 </td> 2390 </tr> 2391 <tr> 2392 <td style="white-space:nowrap"> 2393 <code>rateLimitPolicy</code> 2394 <br> 2395 <em> 2396 <a href="#projectcontour.io/v1.RateLimitPolicy"> 2397 RateLimitPolicy 2398 </a> 2399 </em> 2400 </td> 2401 <td> 2402 <em>(Optional)</em> 2403 <p>The policy for rate limiting on the route.</p> 2404 </td> 2405 </tr> 2406 </tbody> 2407 </table> 2408 <h3 id="projectcontour.io/v1.Service">Service 2409 </h3> 2410 <p> 2411 (<em>Appears on:</em> 2412 <a href="#projectcontour.io/v1.Route">Route</a>, 2413 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 2414 </p> 2415 <p> 2416 <p>Service defines an Kubernetes Service to proxy traffic.</p> 2417 </p> 2418 <table class="table table-striped table-borderless" style="border:none"> 2419 <thead class="border-bottom"> 2420 <tr> 2421 <th>Field</th> 2422 <th>Description</th> 2423 </tr> 2424 </thead> 2425 <tbody class="border-top"> 2426 <tr> 2427 <td style="white-space:nowrap"> 2428 <code>name</code> 2429 <br> 2430 <em> 2431 string 2432 </em> 2433 </td> 2434 <td> 2435 <p>Name is the name of Kubernetes service to proxy traffic. 2436 Names defined here will be used to look up corresponding endpoints which contain the ips to route.</p> 2437 </td> 2438 </tr> 2439 <tr> 2440 <td style="white-space:nowrap"> 2441 <code>port</code> 2442 <br> 2443 <em> 2444 int 2445 </em> 2446 </td> 2447 <td> 2448 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 2449 </td> 2450 </tr> 2451 <tr> 2452 <td style="white-space:nowrap"> 2453 <code>protocol</code> 2454 <br> 2455 <em> 2456 string 2457 </em> 2458 </td> 2459 <td> 2460 <em>(Optional)</em> 2461 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 2462 Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.</p> 2463 </td> 2464 </tr> 2465 <tr> 2466 <td style="white-space:nowrap"> 2467 <code>weight</code> 2468 <br> 2469 <em> 2470 int64 2471 </em> 2472 </td> 2473 <td> 2474 <em>(Optional)</em> 2475 <p>Weight defines percentage of traffic to balance traffic</p> 2476 </td> 2477 </tr> 2478 <tr> 2479 <td style="white-space:nowrap"> 2480 <code>validation</code> 2481 <br> 2482 <em> 2483 <a href="#projectcontour.io/v1.UpstreamValidation"> 2484 UpstreamValidation 2485 </a> 2486 </em> 2487 </td> 2488 <td> 2489 <em>(Optional)</em> 2490 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 2491 </td> 2492 </tr> 2493 <tr> 2494 <td style="white-space:nowrap"> 2495 <code>mirror</code> 2496 <br> 2497 <em> 2498 bool 2499 </em> 2500 </td> 2501 <td> 2502 <p>If Mirror is true the Service will receive a read only mirror of the traffic for this route.</p> 2503 </td> 2504 </tr> 2505 <tr> 2506 <td style="white-space:nowrap"> 2507 <code>requestHeadersPolicy</code> 2508 <br> 2509 <em> 2510 <a href="#projectcontour.io/v1.HeadersPolicy"> 2511 HeadersPolicy 2512 </a> 2513 </em> 2514 </td> 2515 <td> 2516 <em>(Optional)</em> 2517 <p>The policy for managing request headers during proxying. 2518 Rewriting the ‘Host’ header is not supported.</p> 2519 </td> 2520 </tr> 2521 <tr> 2522 <td style="white-space:nowrap"> 2523 <code>responseHeadersPolicy</code> 2524 <br> 2525 <em> 2526 <a href="#projectcontour.io/v1.HeadersPolicy"> 2527 HeadersPolicy 2528 </a> 2529 </em> 2530 </td> 2531 <td> 2532 <em>(Optional)</em> 2533 <p>The policy for managing response headers during proxying. 2534 Rewriting the ‘Host’ header is not supported.</p> 2535 </td> 2536 </tr> 2537 </tbody> 2538 </table> 2539 <h3 id="projectcontour.io/v1.SubCondition">SubCondition 2540 </h3> 2541 <p> 2542 (<em>Appears on:</em> 2543 <a href="#projectcontour.io/v1.DetailedCondition">DetailedCondition</a>) 2544 </p> 2545 <p> 2546 <p>SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition.</p> 2547 <p>It contains a subset of the Condition fields.</p> 2548 <p>It is intended for warnings and errors, so <code>type</code> names should use abnormal-true polarity, 2549 that is, they should be of the form “ErrorPresent: true”.</p> 2550 <p>The expected lifecycle for these errors is that they should only be present when the error or warning is, 2551 and should be removed when they are not relevant.</p> 2552 </p> 2553 <table class="table table-striped table-borderless" style="border:none"> 2554 <thead class="border-bottom"> 2555 <tr> 2556 <th>Field</th> 2557 <th>Description</th> 2558 </tr> 2559 </thead> 2560 <tbody class="border-top"> 2561 <tr> 2562 <td style="white-space:nowrap"> 2563 <code>type</code> 2564 <br> 2565 <em> 2566 string 2567 </em> 2568 </td> 2569 <td> 2570 <p>Type of condition in <code>CamelCase</code> or in <code>foo.example.com/CamelCase</code>.</p> 2571 <p>This must be in abnormal-true polarity, that is, <code>ErrorFound</code> or <code>controller.io/ErrorFound</code>.</p> 2572 <p>The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)</p> 2573 </td> 2574 </tr> 2575 <tr> 2576 <td style="white-space:nowrap"> 2577 <code>status</code> 2578 <br> 2579 <em> 2580 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#conditionstatus-v1-meta"> 2581 Kubernetes meta/v1.ConditionStatus 2582 </a> 2583 </em> 2584 </td> 2585 <td> 2586 <p>Status of the condition, one of True, False, Unknown.</p> 2587 </td> 2588 </tr> 2589 <tr> 2590 <td style="white-space:nowrap"> 2591 <code>reason</code> 2592 <br> 2593 <em> 2594 string 2595 </em> 2596 </td> 2597 <td> 2598 <p>Reason contains a programmatic identifier indicating the reason for the condition’s last transition. 2599 Producers of specific condition types may define expected values and meanings for this field, 2600 and whether the values are considered a guaranteed API.</p> 2601 <p>The value should be a CamelCase string.</p> 2602 <p>This field may not be empty.</p> 2603 </td> 2604 </tr> 2605 <tr> 2606 <td style="white-space:nowrap"> 2607 <code>message</code> 2608 <br> 2609 <em> 2610 string 2611 </em> 2612 </td> 2613 <td> 2614 <p>Message is a human readable message indicating details about the transition.</p> 2615 <p>This may be an empty string.</p> 2616 </td> 2617 </tr> 2618 </tbody> 2619 </table> 2620 <h3 id="projectcontour.io/v1.TCPHealthCheckPolicy">TCPHealthCheckPolicy 2621 </h3> 2622 <p> 2623 (<em>Appears on:</em> 2624 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 2625 </p> 2626 <p> 2627 <p>TCPHealthCheckPolicy defines health checks on the upstream service.</p> 2628 </p> 2629 <table class="table table-striped table-borderless" style="border:none"> 2630 <thead class="border-bottom"> 2631 <tr> 2632 <th>Field</th> 2633 <th>Description</th> 2634 </tr> 2635 </thead> 2636 <tbody class="border-top"> 2637 <tr> 2638 <td style="white-space:nowrap"> 2639 <code>intervalSeconds</code> 2640 <br> 2641 <em> 2642 int64 2643 </em> 2644 </td> 2645 <td> 2646 <em>(Optional)</em> 2647 <p>The interval (seconds) between health checks</p> 2648 </td> 2649 </tr> 2650 <tr> 2651 <td style="white-space:nowrap"> 2652 <code>timeoutSeconds</code> 2653 <br> 2654 <em> 2655 int64 2656 </em> 2657 </td> 2658 <td> 2659 <em>(Optional)</em> 2660 <p>The time to wait (seconds) for a health check response</p> 2661 </td> 2662 </tr> 2663 <tr> 2664 <td style="white-space:nowrap"> 2665 <code>unhealthyThresholdCount</code> 2666 <br> 2667 <em> 2668 uint32 2669 </em> 2670 </td> 2671 <td> 2672 <em>(Optional)</em> 2673 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 2674 </td> 2675 </tr> 2676 <tr> 2677 <td style="white-space:nowrap"> 2678 <code>healthyThresholdCount</code> 2679 <br> 2680 <em> 2681 uint32 2682 </em> 2683 </td> 2684 <td> 2685 <em>(Optional)</em> 2686 <p>The number of healthy health checks required before a host is marked healthy</p> 2687 </td> 2688 </tr> 2689 </tbody> 2690 </table> 2691 <h3 id="projectcontour.io/v1.TCPProxy">TCPProxy 2692 </h3> 2693 <p> 2694 (<em>Appears on:</em> 2695 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 2696 </p> 2697 <p> 2698 <p>TCPProxy contains the set of services to proxy TCP connections.</p> 2699 </p> 2700 <table class="table table-striped table-borderless" style="border:none"> 2701 <thead class="border-bottom"> 2702 <tr> 2703 <th>Field</th> 2704 <th>Description</th> 2705 </tr> 2706 </thead> 2707 <tbody class="border-top"> 2708 <tr> 2709 <td style="white-space:nowrap"> 2710 <code>loadBalancerPolicy</code> 2711 <br> 2712 <em> 2713 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 2714 LoadBalancerPolicy 2715 </a> 2716 </em> 2717 </td> 2718 <td> 2719 <em>(Optional)</em> 2720 <p>The load balancing policy for the backend services. Note that the 2721 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 2722 here.</p> 2723 </td> 2724 </tr> 2725 <tr> 2726 <td style="white-space:nowrap"> 2727 <code>services</code> 2728 <br> 2729 <em> 2730 <a href="#projectcontour.io/v1.Service"> 2731 []Service 2732 </a> 2733 </em> 2734 </td> 2735 <td> 2736 <em>(Optional)</em> 2737 <p>Services are the services to proxy traffic</p> 2738 </td> 2739 </tr> 2740 <tr> 2741 <td style="white-space:nowrap"> 2742 <code>include</code> 2743 <br> 2744 <em> 2745 <a href="#projectcontour.io/v1.TCPProxyInclude"> 2746 TCPProxyInclude 2747 </a> 2748 </em> 2749 </td> 2750 <td> 2751 <em>(Optional)</em> 2752 <p>Include specifies that this tcpproxy should be delegated to another HTTPProxy.</p> 2753 </td> 2754 </tr> 2755 <tr> 2756 <td style="white-space:nowrap"> 2757 <code>includes</code> 2758 <br> 2759 <em> 2760 <a href="#projectcontour.io/v1.TCPProxyInclude"> 2761 TCPProxyInclude 2762 </a> 2763 </em> 2764 </td> 2765 <td> 2766 <em>(Optional)</em> 2767 <p>IncludesDeprecated allow for specific routing configuration to be appended to another HTTPProxy in another namespace.</p> 2768 <p>Exists due to a mistake when developing HTTPProxy and the field was marked plural 2769 when it should have been singular. This field should stay to not break backwards compatibility to v1 users.</p> 2770 </td> 2771 </tr> 2772 <tr> 2773 <td style="white-space:nowrap"> 2774 <code>healthCheckPolicy</code> 2775 <br> 2776 <em> 2777 <a href="#projectcontour.io/v1.TCPHealthCheckPolicy"> 2778 TCPHealthCheckPolicy 2779 </a> 2780 </em> 2781 </td> 2782 <td> 2783 <em>(Optional)</em> 2784 <p>The health check policy for this tcp proxy</p> 2785 </td> 2786 </tr> 2787 </tbody> 2788 </table> 2789 <h3 id="projectcontour.io/v1.TCPProxyInclude">TCPProxyInclude 2790 </h3> 2791 <p> 2792 (<em>Appears on:</em> 2793 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 2794 </p> 2795 <p> 2796 <p>TCPProxyInclude describes a target HTTPProxy document which contains the TCPProxy details.</p> 2797 </p> 2798 <table class="table table-striped table-borderless" style="border:none"> 2799 <thead class="border-bottom"> 2800 <tr> 2801 <th>Field</th> 2802 <th>Description</th> 2803 </tr> 2804 </thead> 2805 <tbody class="border-top"> 2806 <tr> 2807 <td style="white-space:nowrap"> 2808 <code>name</code> 2809 <br> 2810 <em> 2811 string 2812 </em> 2813 </td> 2814 <td> 2815 <p>Name of the child HTTPProxy</p> 2816 </td> 2817 </tr> 2818 <tr> 2819 <td style="white-space:nowrap"> 2820 <code>namespace</code> 2821 <br> 2822 <em> 2823 string 2824 </em> 2825 </td> 2826 <td> 2827 <em>(Optional)</em> 2828 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 2829 </td> 2830 </tr> 2831 </tbody> 2832 </table> 2833 <h3 id="projectcontour.io/v1.TLS">TLS 2834 </h3> 2835 <p> 2836 (<em>Appears on:</em> 2837 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 2838 </p> 2839 <p> 2840 <p>TLS describes tls properties. The SNI names that will be matched on 2841 are described in the HTTPProxy’s Spec.VirtualHost.Fqdn field.</p> 2842 </p> 2843 <table class="table table-striped table-borderless" style="border:none"> 2844 <thead class="border-bottom"> 2845 <tr> 2846 <th>Field</th> 2847 <th>Description</th> 2848 </tr> 2849 </thead> 2850 <tbody class="border-top"> 2851 <tr> 2852 <td style="white-space:nowrap"> 2853 <code>secretName</code> 2854 <br> 2855 <em> 2856 string 2857 </em> 2858 </td> 2859 <td> 2860 <p>SecretName is the name of a TLS secret in the current namespace. 2861 Either SecretName or Passthrough must be specified, but not both. 2862 If specified, the named secret must contain a matching certificate 2863 for the virtual host’s FQDN.</p> 2864 </td> 2865 </tr> 2866 <tr> 2867 <td style="white-space:nowrap"> 2868 <code>minimumProtocolVersion</code> 2869 <br> 2870 <em> 2871 string 2872 </em> 2873 </td> 2874 <td> 2875 <em>(Optional)</em> 2876 <p>MinimumProtocolVersion is the minimum TLS version this vhost should 2877 negotiate. Valid options are <code>1.2</code> (default) and <code>1.3</code>. Any other value 2878 defaults to TLS 1.2.</p> 2879 </td> 2880 </tr> 2881 <tr> 2882 <td style="white-space:nowrap"> 2883 <code>passthrough</code> 2884 <br> 2885 <em> 2886 bool 2887 </em> 2888 </td> 2889 <td> 2890 <em>(Optional)</em> 2891 <p>Passthrough defines whether the encrypted TLS handshake will be 2892 passed through to the backing cluster. Either Passthrough or 2893 SecretName must be specified, but not both.</p> 2894 </td> 2895 </tr> 2896 <tr> 2897 <td style="white-space:nowrap"> 2898 <code>clientValidation</code> 2899 <br> 2900 <em> 2901 <a href="#projectcontour.io/v1.DownstreamValidation"> 2902 DownstreamValidation 2903 </a> 2904 </em> 2905 </td> 2906 <td> 2907 <em>(Optional)</em> 2908 <p>ClientValidation defines how to verify the client certificate 2909 when an external client establishes a TLS connection to Envoy.</p> 2910 <p>This setting:</p> 2911 <ol> 2912 <li>Enables TLS client certificate validation.</li> 2913 <li>Specifies how the client certificate will be validated (i.e. 2914 validation required or skipped).</li> 2915 </ol> 2916 <p>Note: Setting client certificate validation to be skipped should 2917 be only used in conjunction with an external authorization server that 2918 performs client validation as Contour will ensure client certificates 2919 are passed along.</p> 2920 </td> 2921 </tr> 2922 <tr> 2923 <td style="white-space:nowrap"> 2924 <code>enableFallbackCertificate</code> 2925 <br> 2926 <em> 2927 bool 2928 </em> 2929 </td> 2930 <td> 2931 <p>EnableFallbackCertificate defines if the vhost should allow a default certificate to 2932 be applied which handles all requests which don’t match the SNI defined in this vhost.</p> 2933 </td> 2934 </tr> 2935 </tbody> 2936 </table> 2937 <h3 id="projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec 2938 </h3> 2939 <p> 2940 (<em>Appears on:</em> 2941 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 2942 </p> 2943 <p> 2944 <p>TLSCertificateDelegationSpec defines the spec of the CRD</p> 2945 </p> 2946 <table class="table table-striped table-borderless" style="border:none"> 2947 <thead class="border-bottom"> 2948 <tr> 2949 <th>Field</th> 2950 <th>Description</th> 2951 </tr> 2952 </thead> 2953 <tbody class="border-top"> 2954 <tr> 2955 <td style="white-space:nowrap"> 2956 <code>delegations</code> 2957 <br> 2958 <em> 2959 <a href="#projectcontour.io/v1.CertificateDelegation"> 2960 []CertificateDelegation 2961 </a> 2962 </em> 2963 </td> 2964 <td> 2965 </td> 2966 </tr> 2967 </tbody> 2968 </table> 2969 <h3 id="projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus 2970 </h3> 2971 <p> 2972 (<em>Appears on:</em> 2973 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 2974 </p> 2975 <p> 2976 <p>TLSCertificateDelegationStatus allows for the status of the delegation 2977 to be presented to the user.</p> 2978 </p> 2979 <table class="table table-striped table-borderless" style="border:none"> 2980 <thead class="border-bottom"> 2981 <tr> 2982 <th>Field</th> 2983 <th>Description</th> 2984 </tr> 2985 </thead> 2986 <tbody class="border-top"> 2987 <tr> 2988 <td style="white-space:nowrap"> 2989 <code>conditions</code> 2990 <br> 2991 <em> 2992 <a href="#projectcontour.io/v1.DetailedCondition"> 2993 []DetailedCondition 2994 </a> 2995 </em> 2996 </td> 2997 <td> 2998 <em>(Optional)</em> 2999 <p>Conditions contains information about the current status of the HTTPProxy, 3000 in an upstream-friendly container.</p> 3001 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 3002 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 3003 and vice versa.</p> 3004 <p>Contour will leave untouched any other Conditions set in this block, 3005 in case some other controller wants to add a Condition.</p> 3006 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 3007 namespace your condition with a label, like <code>controller.domain.com\ConditionName</code>.</p> 3008 </td> 3009 </tr> 3010 </tbody> 3011 </table> 3012 <h3 id="projectcontour.io/v1.TimeoutPolicy">TimeoutPolicy 3013 </h3> 3014 <p> 3015 (<em>Appears on:</em> 3016 <a href="#projectcontour.io/v1.Route">Route</a>, 3017 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 3018 </p> 3019 <p> 3020 <p>TimeoutPolicy configures timeouts that are used for handling network requests.</p> 3021 <p>TimeoutPolicy durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 3022 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 3023 The string “infinity” is also a valid input and specifies no timeout. 3024 A value of “0s” will be treated as if the field were not set, i.e. by using Envoy’s default behavior.</p> 3025 <p>Example input values: “300ms”, “5s”, “1m”.</p> 3026 </p> 3027 <table class="table table-striped table-borderless" style="border:none"> 3028 <thead class="border-bottom"> 3029 <tr> 3030 <th>Field</th> 3031 <th>Description</th> 3032 </tr> 3033 </thead> 3034 <tbody class="border-top"> 3035 <tr> 3036 <td style="white-space:nowrap"> 3037 <code>response</code> 3038 <br> 3039 <em> 3040 string 3041 </em> 3042 </td> 3043 <td> 3044 <em>(Optional)</em> 3045 <p>Timeout for receiving a response from the server after processing a request from client. 3046 If not supplied, Envoy’s default value of 15s applies.</p> 3047 </td> 3048 </tr> 3049 <tr> 3050 <td style="white-space:nowrap"> 3051 <code>idle</code> 3052 <br> 3053 <em> 3054 string 3055 </em> 3056 </td> 3057 <td> 3058 <em>(Optional)</em> 3059 <p>Timeout after which, if there are no active requests for this route, the connection between 3060 Envoy and the backend or Envoy and the external client will be closed. 3061 If not specified, there is no per-route idle timeout, though a connection manager-wide 3062 stream_idle_timeout default of 5m still applies.</p> 3063 </td> 3064 </tr> 3065 </tbody> 3066 </table> 3067 <h3 id="projectcontour.io/v1.UpstreamValidation">UpstreamValidation 3068 </h3> 3069 <p> 3070 (<em>Appears on:</em> 3071 <a href="#projectcontour.io/v1.Service">Service</a>, 3072 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 3073 </p> 3074 <p> 3075 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 3076 </p> 3077 <table class="table table-striped table-borderless" style="border:none"> 3078 <thead class="border-bottom"> 3079 <tr> 3080 <th>Field</th> 3081 <th>Description</th> 3082 </tr> 3083 </thead> 3084 <tbody class="border-top"> 3085 <tr> 3086 <td style="white-space:nowrap"> 3087 <code>caSecret</code> 3088 <br> 3089 <em> 3090 string 3091 </em> 3092 </td> 3093 <td> 3094 <p>Name or namespaced name of the Kubernetes secret used to validate the certificate presented by the backend</p> 3095 </td> 3096 </tr> 3097 <tr> 3098 <td style="white-space:nowrap"> 3099 <code>subjectName</code> 3100 <br> 3101 <em> 3102 string 3103 </em> 3104 </td> 3105 <td> 3106 <p>Key which is expected to be present in the ‘subjectAltName’ of the presented certificate</p> 3107 </td> 3108 </tr> 3109 </tbody> 3110 </table> 3111 <h3 id="projectcontour.io/v1.VirtualHost">VirtualHost 3112 </h3> 3113 <p> 3114 (<em>Appears on:</em> 3115 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 3116 </p> 3117 <p> 3118 <p>VirtualHost appears at most once. If it is present, the object is considered 3119 to be a “root”.</p> 3120 </p> 3121 <table class="table table-striped table-borderless" style="border:none"> 3122 <thead class="border-bottom"> 3123 <tr> 3124 <th>Field</th> 3125 <th>Description</th> 3126 </tr> 3127 </thead> 3128 <tbody class="border-top"> 3129 <tr> 3130 <td style="white-space:nowrap"> 3131 <code>fqdn</code> 3132 <br> 3133 <em> 3134 string 3135 </em> 3136 </td> 3137 <td> 3138 <p>The fully qualified domain name of the root of the ingress tree 3139 all leaves of the DAG rooted at this object relate to the fqdn.</p> 3140 </td> 3141 </tr> 3142 <tr> 3143 <td style="white-space:nowrap"> 3144 <code>tls</code> 3145 <br> 3146 <em> 3147 <a href="#projectcontour.io/v1.TLS"> 3148 TLS 3149 </a> 3150 </em> 3151 </td> 3152 <td> 3153 <em>(Optional)</em> 3154 <p>If present the fields describes TLS properties of the virtual 3155 host. The SNI names that will be matched on are described in fqdn, 3156 the tls.secretName secret must contain a certificate that itself 3157 contains a name that matches the FQDN.</p> 3158 </td> 3159 </tr> 3160 <tr> 3161 <td style="white-space:nowrap"> 3162 <code>authorization</code> 3163 <br> 3164 <em> 3165 <a href="#projectcontour.io/v1.AuthorizationServer"> 3166 AuthorizationServer 3167 </a> 3168 </em> 3169 </td> 3170 <td> 3171 <em>(Optional)</em> 3172 <p>This field configures an extension service to perform 3173 authorization for this virtual host. Authorization can 3174 only be configured on virtual hosts that have TLS enabled. 3175 If the TLS configuration requires client certificate 3176 validation, the client certificate is always included in the 3177 authentication check request.</p> 3178 </td> 3179 </tr> 3180 <tr> 3181 <td style="white-space:nowrap"> 3182 <code>corsPolicy</code> 3183 <br> 3184 <em> 3185 <a href="#projectcontour.io/v1.CORSPolicy"> 3186 CORSPolicy 3187 </a> 3188 </em> 3189 </td> 3190 <td> 3191 <em>(Optional)</em> 3192 <p>Specifies the cross-origin policy to apply to the VirtualHost.</p> 3193 </td> 3194 </tr> 3195 <tr> 3196 <td style="white-space:nowrap"> 3197 <code>rateLimitPolicy</code> 3198 <br> 3199 <em> 3200 <a href="#projectcontour.io/v1.RateLimitPolicy"> 3201 RateLimitPolicy 3202 </a> 3203 </em> 3204 </td> 3205 <td> 3206 <em>(Optional)</em> 3207 <p>The policy for rate limiting on the virtual host.</p> 3208 </td> 3209 </tr> 3210 </tbody> 3211 </table> 3212 <hr/> 3213 <h2 id="projectcontour.io/v1alpha1">projectcontour.io/v1alpha1</h2> 3214 <p> 3215 <p>Package v1alpha1 contains API Schema definitions for the projectcontour.io v1alpha1 API group</p> 3216 </p> 3217 Resource Types: 3218 <ul><li> 3219 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a> 3220 </li></ul> 3221 <h3 id="projectcontour.io/v1alpha1.ExtensionService">ExtensionService 3222 </h3> 3223 <p> 3224 <p>ExtensionService is the schema for the Contour extension services API. 3225 An ExtensionService resource binds a network service to the Contour 3226 API so that Contour API features can be implemented by collaborating 3227 components.</p> 3228 </p> 3229 <table class="table table-striped table-borderless" style="border:none"> 3230 <thead class="border-bottom"> 3231 <tr> 3232 <th>Field</th> 3233 <th>Description</th> 3234 </tr> 3235 </thead> 3236 <tbody class="border-top"> 3237 <tr> 3238 <td> 3239 <code>apiVersion</code> 3240 <br> 3241 string</td> 3242 <td> 3243 <code> 3244 projectcontour.io/v1alpha1 3245 </code> 3246 </td> 3247 </tr> 3248 <tr> 3249 <td> 3250 <code>kind</code> 3251 <br> 3252 string 3253 </td> 3254 <td><code>ExtensionService</code></td> 3255 </tr> 3256 <tr> 3257 <td style="white-space:nowrap"> 3258 <code>metadata</code> 3259 <br> 3260 <em> 3261 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 3262 Kubernetes meta/v1.ObjectMeta 3263 </a> 3264 </em> 3265 </td> 3266 <td> 3267 Refer to the Kubernetes API documentation for the fields of the 3268 <code>metadata</code> field. 3269 </td> 3270 </tr> 3271 <tr> 3272 <td style="white-space:nowrap"> 3273 <code>spec</code> 3274 <br> 3275 <em> 3276 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec"> 3277 ExtensionServiceSpec 3278 </a> 3279 </em> 3280 </td> 3281 <td> 3282 <br> 3283 <br> 3284 <table style="border:none"> 3285 <tr> 3286 <td style="white-space:nowrap"> 3287 <code>services</code> 3288 <br> 3289 <em> 3290 <a href="#projectcontour.io/v1alpha1.ExtensionServiceTarget"> 3291 []ExtensionServiceTarget 3292 </a> 3293 </em> 3294 </td> 3295 <td> 3296 <p>Services specifies the set of Kubernetes Service resources that 3297 receive GRPC extension API requests. 3298 If no weights are specified for any of the entries in 3299 this array, traffic will be spread evenly across all the 3300 services. 3301 Otherwise, traffic is balanced proportionally to the 3302 Weight field in each entry.</p> 3303 </td> 3304 </tr> 3305 <tr> 3306 <td style="white-space:nowrap"> 3307 <code>validation</code> 3308 <br> 3309 <em> 3310 <a href="#projectcontour.io/v1.UpstreamValidation"> 3311 UpstreamValidation 3312 </a> 3313 </em> 3314 </td> 3315 <td> 3316 <em>(Optional)</em> 3317 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 3318 </td> 3319 </tr> 3320 <tr> 3321 <td style="white-space:nowrap"> 3322 <code>protocol</code> 3323 <br> 3324 <em> 3325 string 3326 </em> 3327 </td> 3328 <td> 3329 <em>(Optional)</em> 3330 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 3331 Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.</p> 3332 </td> 3333 </tr> 3334 <tr> 3335 <td style="white-space:nowrap"> 3336 <code>loadBalancerPolicy</code> 3337 <br> 3338 <em> 3339 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 3340 LoadBalancerPolicy 3341 </a> 3342 </em> 3343 </td> 3344 <td> 3345 <em>(Optional)</em> 3346 <p>The policy for load balancing GRPC service requests. Note that the 3347 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 3348 here.</p> 3349 </td> 3350 </tr> 3351 <tr> 3352 <td style="white-space:nowrap"> 3353 <code>timeoutPolicy</code> 3354 <br> 3355 <em> 3356 <a href="#projectcontour.io/v1.TimeoutPolicy"> 3357 TimeoutPolicy 3358 </a> 3359 </em> 3360 </td> 3361 <td> 3362 <em>(Optional)</em> 3363 <p>The timeout policy for requests to the services.</p> 3364 </td> 3365 </tr> 3366 <tr> 3367 <td style="white-space:nowrap"> 3368 <code>protocolVersion</code> 3369 <br> 3370 <em> 3371 <a href="#projectcontour.io/v1alpha1.ExtensionProtocolVersion"> 3372 ExtensionProtocolVersion 3373 </a> 3374 </em> 3375 </td> 3376 <td> 3377 <em>(Optional)</em> 3378 <p>This field sets the version of the GRPC protocol that Envoy uses to 3379 send requests to the extension service. Since Contour always uses the 3380 v3 Envoy API, this is currently fixed at “v3”. However, other 3381 protocol options will be available in future.</p> 3382 </td> 3383 </tr> 3384 </table> 3385 </td> 3386 </tr> 3387 <tr> 3388 <td style="white-space:nowrap"> 3389 <code>status</code> 3390 <br> 3391 <em> 3392 <a href="#projectcontour.io/v1alpha1.ExtensionServiceStatus"> 3393 ExtensionServiceStatus 3394 </a> 3395 </em> 3396 </td> 3397 <td> 3398 </td> 3399 </tr> 3400 </tbody> 3401 </table> 3402 <h3 id="projectcontour.io/v1alpha1.ExtensionProtocolVersion">ExtensionProtocolVersion 3403 (<code>string</code> alias)</h3> 3404 <p> 3405 (<em>Appears on:</em> 3406 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 3407 </p> 3408 <p> 3409 <p>ExtensionProtocolVersion is the version of the GRPC protocol used 3410 to access extension services. The only version currently supported 3411 is “v3”.</p> 3412 </p> 3413 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec 3414 </h3> 3415 <p> 3416 (<em>Appears on:</em> 3417 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a>) 3418 </p> 3419 <p> 3420 <p>ExtensionServiceSpec defines the desired state of an ExtensionService resource.</p> 3421 </p> 3422 <table class="table table-striped table-borderless" style="border:none"> 3423 <thead class="border-bottom"> 3424 <tr> 3425 <th>Field</th> 3426 <th>Description</th> 3427 </tr> 3428 </thead> 3429 <tbody class="border-top"> 3430 <tr> 3431 <td style="white-space:nowrap"> 3432 <code>services</code> 3433 <br> 3434 <em> 3435 <a href="#projectcontour.io/v1alpha1.ExtensionServiceTarget"> 3436 []ExtensionServiceTarget 3437 </a> 3438 </em> 3439 </td> 3440 <td> 3441 <p>Services specifies the set of Kubernetes Service resources that 3442 receive GRPC extension API requests. 3443 If no weights are specified for any of the entries in 3444 this array, traffic will be spread evenly across all the 3445 services. 3446 Otherwise, traffic is balanced proportionally to the 3447 Weight field in each entry.</p> 3448 </td> 3449 </tr> 3450 <tr> 3451 <td style="white-space:nowrap"> 3452 <code>validation</code> 3453 <br> 3454 <em> 3455 <a href="#projectcontour.io/v1.UpstreamValidation"> 3456 UpstreamValidation 3457 </a> 3458 </em> 3459 </td> 3460 <td> 3461 <em>(Optional)</em> 3462 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 3463 </td> 3464 </tr> 3465 <tr> 3466 <td style="white-space:nowrap"> 3467 <code>protocol</code> 3468 <br> 3469 <em> 3470 string 3471 </em> 3472 </td> 3473 <td> 3474 <em>(Optional)</em> 3475 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 3476 Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.</p> 3477 </td> 3478 </tr> 3479 <tr> 3480 <td style="white-space:nowrap"> 3481 <code>loadBalancerPolicy</code> 3482 <br> 3483 <em> 3484 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 3485 LoadBalancerPolicy 3486 </a> 3487 </em> 3488 </td> 3489 <td> 3490 <em>(Optional)</em> 3491 <p>The policy for load balancing GRPC service requests. Note that the 3492 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 3493 here.</p> 3494 </td> 3495 </tr> 3496 <tr> 3497 <td style="white-space:nowrap"> 3498 <code>timeoutPolicy</code> 3499 <br> 3500 <em> 3501 <a href="#projectcontour.io/v1.TimeoutPolicy"> 3502 TimeoutPolicy 3503 </a> 3504 </em> 3505 </td> 3506 <td> 3507 <em>(Optional)</em> 3508 <p>The timeout policy for requests to the services.</p> 3509 </td> 3510 </tr> 3511 <tr> 3512 <td style="white-space:nowrap"> 3513 <code>protocolVersion</code> 3514 <br> 3515 <em> 3516 <a href="#projectcontour.io/v1alpha1.ExtensionProtocolVersion"> 3517 ExtensionProtocolVersion 3518 </a> 3519 </em> 3520 </td> 3521 <td> 3522 <em>(Optional)</em> 3523 <p>This field sets the version of the GRPC protocol that Envoy uses to 3524 send requests to the extension service. Since Contour always uses the 3525 v3 Envoy API, this is currently fixed at “v3”. However, other 3526 protocol options will be available in future.</p> 3527 </td> 3528 </tr> 3529 </tbody> 3530 </table> 3531 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceStatus">ExtensionServiceStatus 3532 </h3> 3533 <p> 3534 (<em>Appears on:</em> 3535 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a>) 3536 </p> 3537 <p> 3538 <p>ExtensionServiceStatus defines the observed state of an 3539 ExtensionService resource.</p> 3540 </p> 3541 <table class="table table-striped table-borderless" style="border:none"> 3542 <thead class="border-bottom"> 3543 <tr> 3544 <th>Field</th> 3545 <th>Description</th> 3546 </tr> 3547 </thead> 3548 <tbody class="border-top"> 3549 <tr> 3550 <td style="white-space:nowrap"> 3551 <code>conditions</code> 3552 <br> 3553 <em> 3554 <a href="#projectcontour.io/v1.DetailedCondition"> 3555 []DetailedCondition 3556 </a> 3557 </em> 3558 </td> 3559 <td> 3560 <em>(Optional)</em> 3561 <p>Conditions contains the current status of the ExtensionService resource.</p> 3562 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity.</p> 3563 <p>Contour will not modify any other Conditions set in this block, 3564 in case some other controller wants to add a Condition.</p> 3565 </td> 3566 </tr> 3567 </tbody> 3568 </table> 3569 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceTarget">ExtensionServiceTarget 3570 </h3> 3571 <p> 3572 (<em>Appears on:</em> 3573 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 3574 </p> 3575 <p> 3576 <p>ExtensionServiceTarget defines an Kubernetes Service to target with 3577 extension service traffic.</p> 3578 </p> 3579 <table class="table table-striped table-borderless" style="border:none"> 3580 <thead class="border-bottom"> 3581 <tr> 3582 <th>Field</th> 3583 <th>Description</th> 3584 </tr> 3585 </thead> 3586 <tbody class="border-top"> 3587 <tr> 3588 <td style="white-space:nowrap"> 3589 <code>name</code> 3590 <br> 3591 <em> 3592 string 3593 </em> 3594 </td> 3595 <td> 3596 <p>Name is the name of Kubernetes service that will accept service 3597 traffic.</p> 3598 </td> 3599 </tr> 3600 <tr> 3601 <td style="white-space:nowrap"> 3602 <code>port</code> 3603 <br> 3604 <em> 3605 int 3606 </em> 3607 </td> 3608 <td> 3609 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 3610 </td> 3611 </tr> 3612 <tr> 3613 <td style="white-space:nowrap"> 3614 <code>weight</code> 3615 <br> 3616 <em> 3617 uint32 3618 </em> 3619 </td> 3620 <td> 3621 <em>(Optional)</em> 3622 <p>Weight defines proportion of traffic to balance to the Kubernetes Service.</p> 3623 </td> 3624 </tr> 3625 </tbody> 3626 </table> 3627 <hr/> 3628 <p><em> 3629 Generated with <code>gen-crd-api-reference-docs</code>. 3630 </em></p>