github.com/projectcontour/contour@v1.28.2/site/content/docs/1.20/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 <tr> 413 <td style="white-space:nowrap"> 414 <code>withRequestBody</code> 415 <br> 416 <em> 417 <a href="#projectcontour.io/v1.AuthorizationServerBufferSettings"> 418 AuthorizationServerBufferSettings 419 </a> 420 </em> 421 </td> 422 <td> 423 <em>(Optional)</em> 424 <p>WithRequestBody specifies configuration for sending the client request’s body to authorization server.</p> 425 </td> 426 </tr> 427 </tbody> 428 </table> 429 <h3 id="projectcontour.io/v1.AuthorizationServerBufferSettings">AuthorizationServerBufferSettings 430 </h3> 431 <p> 432 (<em>Appears on:</em> 433 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>) 434 </p> 435 <p> 436 <p>AuthorizationServerBufferSettings enables ExtAuthz filter to buffer client request data and send it as part of authorization request</p> 437 </p> 438 <table class="table table-striped table-borderless" style="border:none"> 439 <thead class="border-bottom"> 440 <tr> 441 <th>Field</th> 442 <th>Description</th> 443 </tr> 444 </thead> 445 <tbody class="border-top"> 446 <tr> 447 <td style="white-space:nowrap"> 448 <code>maxRequestBytes</code> 449 <br> 450 <em> 451 uint32 452 </em> 453 </td> 454 <td> 455 <em>(Optional)</em> 456 <p>MaxRequestBytes sets the maximum size of message body ExtAuthz filter will hold in-memory.</p> 457 </td> 458 </tr> 459 <tr> 460 <td style="white-space:nowrap"> 461 <code>allowPartialMessage</code> 462 <br> 463 <em> 464 bool 465 </em> 466 </td> 467 <td> 468 <em>(Optional)</em> 469 <p>If AllowPartialMessage is true, then Envoy will buffer the body until MaxRequestBytes are reached.</p> 470 </td> 471 </tr> 472 <tr> 473 <td style="white-space:nowrap"> 474 <code>packAsBytes</code> 475 <br> 476 <em> 477 bool 478 </em> 479 </td> 480 <td> 481 <em>(Optional)</em> 482 <p>If PackAsBytes is true, the body sent to Authorization Server is in raw bytes.</p> 483 </td> 484 </tr> 485 </tbody> 486 </table> 487 <h3 id="projectcontour.io/v1.CORSHeaderValue">CORSHeaderValue 488 (<code>string</code> alias)</h3> 489 <p> 490 (<em>Appears on:</em> 491 <a href="#projectcontour.io/v1.CORSPolicy">CORSPolicy</a>) 492 </p> 493 <p> 494 <p>CORSHeaderValue specifies the value of the string headers returned by a cross-domain request.</p> 495 </p> 496 <h3 id="projectcontour.io/v1.CORSPolicy">CORSPolicy 497 </h3> 498 <p> 499 (<em>Appears on:</em> 500 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 501 </p> 502 <p> 503 <p>CORSPolicy allows setting the CORS policy</p> 504 </p> 505 <table class="table table-striped table-borderless" style="border:none"> 506 <thead class="border-bottom"> 507 <tr> 508 <th>Field</th> 509 <th>Description</th> 510 </tr> 511 </thead> 512 <tbody class="border-top"> 513 <tr> 514 <td style="white-space:nowrap"> 515 <code>allowCredentials</code> 516 <br> 517 <em> 518 bool 519 </em> 520 </td> 521 <td> 522 <em>(Optional)</em> 523 <p>Specifies whether the resource allows credentials.</p> 524 </td> 525 </tr> 526 <tr> 527 <td style="white-space:nowrap"> 528 <code>allowOrigin</code> 529 <br> 530 <em> 531 []string 532 </em> 533 </td> 534 <td> 535 <p>AllowOrigin specifies the origins that will be allowed to do CORS requests. “*” means 536 allow any origin.</p> 537 </td> 538 </tr> 539 <tr> 540 <td style="white-space:nowrap"> 541 <code>allowMethods</code> 542 <br> 543 <em> 544 <a href="#projectcontour.io/v1.CORSHeaderValue"> 545 []CORSHeaderValue 546 </a> 547 </em> 548 </td> 549 <td> 550 <p>AllowMethods specifies the content for the <em>access-control-allow-methods</em> header.</p> 551 </td> 552 </tr> 553 <tr> 554 <td style="white-space:nowrap"> 555 <code>allowHeaders</code> 556 <br> 557 <em> 558 <a href="#projectcontour.io/v1.CORSHeaderValue"> 559 []CORSHeaderValue 560 </a> 561 </em> 562 </td> 563 <td> 564 <em>(Optional)</em> 565 <p>AllowHeaders specifies the content for the <em>access-control-allow-headers</em> header.</p> 566 </td> 567 </tr> 568 <tr> 569 <td style="white-space:nowrap"> 570 <code>exposeHeaders</code> 571 <br> 572 <em> 573 <a href="#projectcontour.io/v1.CORSHeaderValue"> 574 []CORSHeaderValue 575 </a> 576 </em> 577 </td> 578 <td> 579 <em>(Optional)</em> 580 <p>ExposeHeaders Specifies the content for the <em>access-control-expose-headers</em> header.</p> 581 </td> 582 </tr> 583 <tr> 584 <td style="white-space:nowrap"> 585 <code>maxAge</code> 586 <br> 587 <em> 588 string 589 </em> 590 </td> 591 <td> 592 <em>(Optional)</em> 593 <p>MaxAge indicates for how long the results of a preflight request can be cached. 594 MaxAge durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 595 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 596 Only positive values are allowed while 0 disables the cache requiring a preflight OPTIONS 597 check for all cross-origin requests.</p> 598 </td> 599 </tr> 600 </tbody> 601 </table> 602 <h3 id="projectcontour.io/v1.CertificateDelegation">CertificateDelegation 603 </h3> 604 <p> 605 (<em>Appears on:</em> 606 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec</a>) 607 </p> 608 <p> 609 <p>CertificateDelegation maps the authority to reference a secret 610 in the current namespace to a set of namespaces.</p> 611 </p> 612 <table class="table table-striped table-borderless" style="border:none"> 613 <thead class="border-bottom"> 614 <tr> 615 <th>Field</th> 616 <th>Description</th> 617 </tr> 618 </thead> 619 <tbody class="border-top"> 620 <tr> 621 <td style="white-space:nowrap"> 622 <code>secretName</code> 623 <br> 624 <em> 625 string 626 </em> 627 </td> 628 <td> 629 <p>required, the name of a secret in the current namespace.</p> 630 </td> 631 </tr> 632 <tr> 633 <td style="white-space:nowrap"> 634 <code>targetNamespaces</code> 635 <br> 636 <em> 637 []string 638 </em> 639 </td> 640 <td> 641 <p>required, the namespaces the authority to reference the 642 the secret will be delegated to. 643 If TargetNamespaces is nil or empty, the CertificateDelegation’ 644 is ignored. If the TargetNamespace list contains the character, “*” 645 the secret will be delegated to all namespaces.</p> 646 </td> 647 </tr> 648 </tbody> 649 </table> 650 <h3 id="projectcontour.io/v1.CookieDomainRewrite">CookieDomainRewrite 651 </h3> 652 <p> 653 (<em>Appears on:</em> 654 <a href="#projectcontour.io/v1.CookieRewritePolicy">CookieRewritePolicy</a>) 655 </p> 656 <p> 657 </p> 658 <table class="table table-striped table-borderless" style="border:none"> 659 <thead class="border-bottom"> 660 <tr> 661 <th>Field</th> 662 <th>Description</th> 663 </tr> 664 </thead> 665 <tbody class="border-top"> 666 <tr> 667 <td style="white-space:nowrap"> 668 <code>value</code> 669 <br> 670 <em> 671 string 672 </em> 673 </td> 674 <td> 675 <p>Value is the value to rewrite the Domain attribute to. 676 For now this is required.</p> 677 </td> 678 </tr> 679 </tbody> 680 </table> 681 <h3 id="projectcontour.io/v1.CookiePathRewrite">CookiePathRewrite 682 </h3> 683 <p> 684 (<em>Appears on:</em> 685 <a href="#projectcontour.io/v1.CookieRewritePolicy">CookieRewritePolicy</a>) 686 </p> 687 <p> 688 </p> 689 <table class="table table-striped table-borderless" style="border:none"> 690 <thead class="border-bottom"> 691 <tr> 692 <th>Field</th> 693 <th>Description</th> 694 </tr> 695 </thead> 696 <tbody class="border-top"> 697 <tr> 698 <td style="white-space:nowrap"> 699 <code>value</code> 700 <br> 701 <em> 702 string 703 </em> 704 </td> 705 <td> 706 <p>Value is the value to rewrite the Path attribute to. 707 For now this is required.</p> 708 </td> 709 </tr> 710 </tbody> 711 </table> 712 <h3 id="projectcontour.io/v1.CookieRewritePolicy">CookieRewritePolicy 713 </h3> 714 <p> 715 (<em>Appears on:</em> 716 <a href="#projectcontour.io/v1.Route">Route</a>, 717 <a href="#projectcontour.io/v1.Service">Service</a>) 718 </p> 719 <p> 720 </p> 721 <table class="table table-striped table-borderless" style="border:none"> 722 <thead class="border-bottom"> 723 <tr> 724 <th>Field</th> 725 <th>Description</th> 726 </tr> 727 </thead> 728 <tbody class="border-top"> 729 <tr> 730 <td style="white-space:nowrap"> 731 <code>name</code> 732 <br> 733 <em> 734 string 735 </em> 736 </td> 737 <td> 738 <p>Name is the name of the cookie for which attributes will be rewritten.</p> 739 </td> 740 </tr> 741 <tr> 742 <td style="white-space:nowrap"> 743 <code>pathRewrite</code> 744 <br> 745 <em> 746 <a href="#projectcontour.io/v1.CookiePathRewrite"> 747 CookiePathRewrite 748 </a> 749 </em> 750 </td> 751 <td> 752 <em>(Optional)</em> 753 <p>PathRewrite enables rewriting the Set-Cookie Path element. 754 If not set, Path will not be rewritten.</p> 755 </td> 756 </tr> 757 <tr> 758 <td style="white-space:nowrap"> 759 <code>domainRewrite</code> 760 <br> 761 <em> 762 <a href="#projectcontour.io/v1.CookieDomainRewrite"> 763 CookieDomainRewrite 764 </a> 765 </em> 766 </td> 767 <td> 768 <em>(Optional)</em> 769 <p>DomainRewrite enables rewriting the Set-Cookie Domain element. 770 If not set, Domain will not be rewritten.</p> 771 </td> 772 </tr> 773 <tr> 774 <td style="white-space:nowrap"> 775 <code>secure</code> 776 <br> 777 <em> 778 bool 779 </em> 780 </td> 781 <td> 782 <em>(Optional)</em> 783 <p>Secure enables rewriting the Set-Cookie Secure element. 784 If not set, Secure attribute will not be rewritten.</p> 785 </td> 786 </tr> 787 <tr> 788 <td style="white-space:nowrap"> 789 <code>sameSite</code> 790 <br> 791 <em> 792 string 793 </em> 794 </td> 795 <td> 796 <em>(Optional)</em> 797 <p>SameSite enables rewriting the Set-Cookie SameSite element. 798 If not set, SameSite attribute will not be rewritten.</p> 799 </td> 800 </tr> 801 </tbody> 802 </table> 803 <h3 id="projectcontour.io/v1.DetailedCondition">DetailedCondition 804 </h3> 805 <p> 806 (<em>Appears on:</em> 807 <a href="#projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus</a>, 808 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus</a>, 809 <a href="#projectcontour.io/v1alpha1.ContourConfigurationStatus">ContourConfigurationStatus</a>, 810 <a href="#projectcontour.io/v1alpha1.ContourDeploymentStatus">ContourDeploymentStatus</a>, 811 <a href="#projectcontour.io/v1alpha1.ExtensionServiceStatus">ExtensionServiceStatus</a>) 812 </p> 813 <p> 814 <p>DetailedCondition is an extension of the normal Kubernetes conditions, with two extra 815 fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) 816 of the condition.</p> 817 <p><code>errors</code> holds information about sub-conditions which are fatal to that condition and render its state False.</p> 818 <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> 819 <p>Remember that Conditions have a type, a status, and a reason.</p> 820 <p>The type is the type of the condition, the most important one in this CRD set is <code>Valid</code>. 821 <code>Valid</code> is a positive-polarity condition: when it is <code>status: true</code> there are no problems.</p> 822 <p>In more detail, <code>status: true</code> means that the object is has been ingested into Contour with no errors. 823 <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> 824 slice in this case.</p> 825 <p><code>Valid</code>, <code>status: false</code> means that the object has had one or more fatal errors during processing into Contour. 826 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> 827 slice if <code>status</code> is <code>false</code>.</p> 828 <p>For DetailedConditions of types other than <code>Valid</code>, the Condition must be in the negative polarity. 829 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. 830 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. 831 In either case, there may be entries in the <code>warnings</code> slice.</p> 832 <p>Regardless of the polarity, the <code>reason</code> and <code>message</code> fields must be updated with either the detail of the reason 833 (if there is one and only one entry in total across both the <code>errors</code> and <code>warnings</code> slices), or 834 <code>MultipleReasons</code> if there is more than one entry.</p> 835 </p> 836 <table class="table table-striped table-borderless" style="border:none"> 837 <thead class="border-bottom"> 838 <tr> 839 <th>Field</th> 840 <th>Description</th> 841 </tr> 842 </thead> 843 <tbody class="border-top"> 844 <tr> 845 <td style="white-space:nowrap"> 846 <code>Condition</code> 847 <br> 848 <em> 849 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#condition-v1-meta"> 850 Kubernetes meta/v1.Condition 851 </a> 852 </em> 853 </td> 854 <td> 855 <p> 856 (Members of <code>Condition</code> are embedded into this type.) 857 </p> 858 </td> 859 </tr> 860 <tr> 861 <td style="white-space:nowrap"> 862 <code>errors</code> 863 <br> 864 <em> 865 <a href="#projectcontour.io/v1.SubCondition"> 866 []SubCondition 867 </a> 868 </em> 869 </td> 870 <td> 871 <em>(Optional)</em> 872 <p>Errors contains a slice of relevant error subconditions for this object.</p> 873 <p>Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. 874 An empty slice here indicates no errors.</p> 875 </td> 876 </tr> 877 <tr> 878 <td style="white-space:nowrap"> 879 <code>warnings</code> 880 <br> 881 <em> 882 <a href="#projectcontour.io/v1.SubCondition"> 883 []SubCondition 884 </a> 885 </em> 886 </td> 887 <td> 888 <em>(Optional)</em> 889 <p>Warnings contains a slice of relevant warning subconditions for this object.</p> 890 <p>Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. 891 An empty slice here indicates no warnings.</p> 892 </td> 893 </tr> 894 </tbody> 895 </table> 896 <h3 id="projectcontour.io/v1.DownstreamValidation">DownstreamValidation 897 </h3> 898 <p> 899 (<em>Appears on:</em> 900 <a href="#projectcontour.io/v1.TLS">TLS</a>) 901 </p> 902 <p> 903 <p>DownstreamValidation defines how to verify the client certificate.</p> 904 </p> 905 <table class="table table-striped table-borderless" style="border:none"> 906 <thead class="border-bottom"> 907 <tr> 908 <th>Field</th> 909 <th>Description</th> 910 </tr> 911 </thead> 912 <tbody class="border-top"> 913 <tr> 914 <td style="white-space:nowrap"> 915 <code>caSecret</code> 916 <br> 917 <em> 918 string 919 </em> 920 </td> 921 <td> 922 <em>(Optional)</em> 923 <p>Name of a Kubernetes secret that contains a CA certificate bundle. 924 The client certificate must validate against the certificates in the bundle. 925 If specified and SkipClientCertValidation is true, client certificates will 926 be required on requests.</p> 927 </td> 928 </tr> 929 <tr> 930 <td style="white-space:nowrap"> 931 <code>skipClientCertValidation</code> 932 <br> 933 <em> 934 bool 935 </em> 936 </td> 937 <td> 938 <em>(Optional)</em> 939 <p>SkipClientCertValidation disables downstream client certificate 940 validation. Defaults to false. This field is intended to be used in 941 conjunction with external authorization in order to enable the external 942 authorization server to validate client certificates. When this field 943 is set to true, client certificates are requested but not verified by 944 Envoy. If CACertificate is specified, client certificates are required on 945 requests, but not verified. If external authorization is in use, they are 946 presented to the external authorization server.</p> 947 </td> 948 </tr> 949 </tbody> 950 </table> 951 <h3 id="projectcontour.io/v1.ExtensionServiceReference">ExtensionServiceReference 952 </h3> 953 <p> 954 (<em>Appears on:</em> 955 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>) 956 </p> 957 <p> 958 <p>ExtensionServiceReference names an ExtensionService resource.</p> 959 </p> 960 <table class="table table-striped table-borderless" style="border:none"> 961 <thead class="border-bottom"> 962 <tr> 963 <th>Field</th> 964 <th>Description</th> 965 </tr> 966 </thead> 967 <tbody class="border-top"> 968 <tr> 969 <td style="white-space:nowrap"> 970 <code>apiVersion</code> 971 <br> 972 <em> 973 string 974 </em> 975 </td> 976 <td> 977 <em>(Optional)</em> 978 <p>API version of the referent. 979 If this field is not specified, the default “projectcontour.io/v1alpha1” will be used</p> 980 </td> 981 </tr> 982 <tr> 983 <td style="white-space:nowrap"> 984 <code>namespace</code> 985 <br> 986 <em> 987 string 988 </em> 989 </td> 990 <td> 991 <em>(Optional)</em> 992 <p>Namespace of the referent. 993 If this field is not specifies, the namespace of the resource that targets the referent will be used.</p> 994 <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> 995 </td> 996 </tr> 997 <tr> 998 <td style="white-space:nowrap"> 999 <code>name</code> 1000 <br> 1001 <em> 1002 string 1003 </em> 1004 </td> 1005 <td> 1006 <p>Name of the referent.</p> 1007 <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> 1008 </td> 1009 </tr> 1010 </tbody> 1011 </table> 1012 <h3 id="projectcontour.io/v1.GenericKeyDescriptor">GenericKeyDescriptor 1013 </h3> 1014 <p> 1015 (<em>Appears on:</em> 1016 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 1017 </p> 1018 <p> 1019 <p>GenericKeyDescriptor defines a descriptor entry with a static key and 1020 value.</p> 1021 </p> 1022 <table class="table table-striped table-borderless" style="border:none"> 1023 <thead class="border-bottom"> 1024 <tr> 1025 <th>Field</th> 1026 <th>Description</th> 1027 </tr> 1028 </thead> 1029 <tbody class="border-top"> 1030 <tr> 1031 <td style="white-space:nowrap"> 1032 <code>key</code> 1033 <br> 1034 <em> 1035 string 1036 </em> 1037 </td> 1038 <td> 1039 <em>(Optional)</em> 1040 <p>Key defines the key of the descriptor entry. If not set, the 1041 key is set to “generic_key”.</p> 1042 </td> 1043 </tr> 1044 <tr> 1045 <td style="white-space:nowrap"> 1046 <code>value</code> 1047 <br> 1048 <em> 1049 string 1050 </em> 1051 </td> 1052 <td> 1053 <p>Value defines the value of the descriptor entry.</p> 1054 </td> 1055 </tr> 1056 </tbody> 1057 </table> 1058 <h3 id="projectcontour.io/v1.GlobalRateLimitPolicy">GlobalRateLimitPolicy 1059 </h3> 1060 <p> 1061 (<em>Appears on:</em> 1062 <a href="#projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy</a>) 1063 </p> 1064 <p> 1065 <p>GlobalRateLimitPolicy defines global rate limiting parameters.</p> 1066 </p> 1067 <table class="table table-striped table-borderless" style="border:none"> 1068 <thead class="border-bottom"> 1069 <tr> 1070 <th>Field</th> 1071 <th>Description</th> 1072 </tr> 1073 </thead> 1074 <tbody class="border-top"> 1075 <tr> 1076 <td style="white-space:nowrap"> 1077 <code>descriptors</code> 1078 <br> 1079 <em> 1080 <a href="#projectcontour.io/v1.RateLimitDescriptor"> 1081 []RateLimitDescriptor 1082 </a> 1083 </em> 1084 </td> 1085 <td> 1086 <p>Descriptors defines the list of descriptors that will 1087 be generated and sent to the rate limit service. Each 1088 descriptor contains 1+ key-value pair entries.</p> 1089 </td> 1090 </tr> 1091 </tbody> 1092 </table> 1093 <h3 id="projectcontour.io/v1.HTTPHealthCheckPolicy">HTTPHealthCheckPolicy 1094 </h3> 1095 <p> 1096 (<em>Appears on:</em> 1097 <a href="#projectcontour.io/v1.Route">Route</a>) 1098 </p> 1099 <p> 1100 <p>HTTPHealthCheckPolicy defines health checks on the upstream service.</p> 1101 </p> 1102 <table class="table table-striped table-borderless" style="border:none"> 1103 <thead class="border-bottom"> 1104 <tr> 1105 <th>Field</th> 1106 <th>Description</th> 1107 </tr> 1108 </thead> 1109 <tbody class="border-top"> 1110 <tr> 1111 <td style="white-space:nowrap"> 1112 <code>path</code> 1113 <br> 1114 <em> 1115 string 1116 </em> 1117 </td> 1118 <td> 1119 <p>HTTP endpoint used to perform health checks on upstream service</p> 1120 </td> 1121 </tr> 1122 <tr> 1123 <td style="white-space:nowrap"> 1124 <code>host</code> 1125 <br> 1126 <em> 1127 string 1128 </em> 1129 </td> 1130 <td> 1131 <p>The value of the host header in the HTTP health check request. 1132 If left empty (default value), the name “contour-envoy-healthcheck” 1133 will be used.</p> 1134 </td> 1135 </tr> 1136 <tr> 1137 <td style="white-space:nowrap"> 1138 <code>intervalSeconds</code> 1139 <br> 1140 <em> 1141 int64 1142 </em> 1143 </td> 1144 <td> 1145 <em>(Optional)</em> 1146 <p>The interval (seconds) between health checks</p> 1147 </td> 1148 </tr> 1149 <tr> 1150 <td style="white-space:nowrap"> 1151 <code>timeoutSeconds</code> 1152 <br> 1153 <em> 1154 int64 1155 </em> 1156 </td> 1157 <td> 1158 <em>(Optional)</em> 1159 <p>The time to wait (seconds) for a health check response</p> 1160 </td> 1161 </tr> 1162 <tr> 1163 <td style="white-space:nowrap"> 1164 <code>unhealthyThresholdCount</code> 1165 <br> 1166 <em> 1167 int64 1168 </em> 1169 </td> 1170 <td> 1171 <em>(Optional)</em> 1172 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 1173 </td> 1174 </tr> 1175 <tr> 1176 <td style="white-space:nowrap"> 1177 <code>healthyThresholdCount</code> 1178 <br> 1179 <em> 1180 int64 1181 </em> 1182 </td> 1183 <td> 1184 <em>(Optional)</em> 1185 <p>The number of healthy health checks required before a host is marked healthy</p> 1186 </td> 1187 </tr> 1188 </tbody> 1189 </table> 1190 <h3 id="projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec 1191 </h3> 1192 <p> 1193 (<em>Appears on:</em> 1194 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 1195 </p> 1196 <p> 1197 <p>HTTPProxySpec defines the spec of the CRD.</p> 1198 </p> 1199 <table class="table table-striped table-borderless" style="border:none"> 1200 <thead class="border-bottom"> 1201 <tr> 1202 <th>Field</th> 1203 <th>Description</th> 1204 </tr> 1205 </thead> 1206 <tbody class="border-top"> 1207 <tr> 1208 <td style="white-space:nowrap"> 1209 <code>virtualhost</code> 1210 <br> 1211 <em> 1212 <a href="#projectcontour.io/v1.VirtualHost"> 1213 VirtualHost 1214 </a> 1215 </em> 1216 </td> 1217 <td> 1218 <em>(Optional)</em> 1219 <p>Virtualhost appears at most once. If it is present, the object is considered 1220 to be a “root” HTTPProxy.</p> 1221 </td> 1222 </tr> 1223 <tr> 1224 <td style="white-space:nowrap"> 1225 <code>routes</code> 1226 <br> 1227 <em> 1228 <a href="#projectcontour.io/v1.Route"> 1229 []Route 1230 </a> 1231 </em> 1232 </td> 1233 <td> 1234 <em>(Optional)</em> 1235 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 1236 </td> 1237 </tr> 1238 <tr> 1239 <td style="white-space:nowrap"> 1240 <code>tcpproxy</code> 1241 <br> 1242 <em> 1243 <a href="#projectcontour.io/v1.TCPProxy"> 1244 TCPProxy 1245 </a> 1246 </em> 1247 </td> 1248 <td> 1249 <em>(Optional)</em> 1250 <p>TCPProxy holds TCP proxy information.</p> 1251 </td> 1252 </tr> 1253 <tr> 1254 <td style="white-space:nowrap"> 1255 <code>includes</code> 1256 <br> 1257 <em> 1258 <a href="#projectcontour.io/v1.Include"> 1259 []Include 1260 </a> 1261 </em> 1262 </td> 1263 <td> 1264 <em>(Optional)</em> 1265 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 1266 possibly in another namespace.</p> 1267 </td> 1268 </tr> 1269 <tr> 1270 <td style="white-space:nowrap"> 1271 <code>ingressClassName</code> 1272 <br> 1273 <em> 1274 string 1275 </em> 1276 </td> 1277 <td> 1278 <em>(Optional)</em> 1279 <p>IngressClassName optionally specifies the ingress class to use for this 1280 HTTPProxy. This replaces the deprecated <code>kubernetes.io/ingress.class</code> 1281 annotation. For backwards compatibility, when that annotation is set, it 1282 is given precedence over this field.</p> 1283 </td> 1284 </tr> 1285 </tbody> 1286 </table> 1287 <h3 id="projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus 1288 </h3> 1289 <p> 1290 (<em>Appears on:</em> 1291 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 1292 </p> 1293 <p> 1294 <p>HTTPProxyStatus reports the current state of the HTTPProxy.</p> 1295 </p> 1296 <table class="table table-striped table-borderless" style="border:none"> 1297 <thead class="border-bottom"> 1298 <tr> 1299 <th>Field</th> 1300 <th>Description</th> 1301 </tr> 1302 </thead> 1303 <tbody class="border-top"> 1304 <tr> 1305 <td style="white-space:nowrap"> 1306 <code>currentStatus</code> 1307 <br> 1308 <em> 1309 string 1310 </em> 1311 </td> 1312 <td> 1313 <em>(Optional)</em> 1314 </td> 1315 </tr> 1316 <tr> 1317 <td style="white-space:nowrap"> 1318 <code>description</code> 1319 <br> 1320 <em> 1321 string 1322 </em> 1323 </td> 1324 <td> 1325 <em>(Optional)</em> 1326 </td> 1327 </tr> 1328 <tr> 1329 <td style="white-space:nowrap"> 1330 <code>loadBalancer</code> 1331 <br> 1332 <em> 1333 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#loadbalancerstatus-v1-core"> 1334 Kubernetes core/v1.LoadBalancerStatus 1335 </a> 1336 </em> 1337 </td> 1338 <td> 1339 <em>(Optional)</em> 1340 <p>LoadBalancer contains the current status of the load balancer.</p> 1341 </td> 1342 </tr> 1343 <tr> 1344 <td style="white-space:nowrap"> 1345 <code>conditions</code> 1346 <br> 1347 <em> 1348 <a href="#projectcontour.io/v1.DetailedCondition"> 1349 []DetailedCondition 1350 </a> 1351 </em> 1352 </td> 1353 <td> 1354 <em>(Optional)</em> 1355 <p>Conditions contains information about the current status of the HTTPProxy, 1356 in an upstream-friendly container.</p> 1357 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 1358 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 1359 and vice versa.</p> 1360 <p>Contour will leave untouched any other Conditions set in this block, 1361 in case some other controller wants to add a Condition.</p> 1362 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 1363 namespace your condition with a label, like <code>controller.domain.com/ConditionName</code>.</p> 1364 </td> 1365 </tr> 1366 </tbody> 1367 </table> 1368 <h3 id="projectcontour.io/v1.HTTPRequestRedirectPolicy">HTTPRequestRedirectPolicy 1369 </h3> 1370 <p> 1371 (<em>Appears on:</em> 1372 <a href="#projectcontour.io/v1.Route">Route</a>) 1373 </p> 1374 <p> 1375 <p>HTTPRequestRedirectPolicy defines configuration for redirecting a request.</p> 1376 </p> 1377 <table class="table table-striped table-borderless" style="border:none"> 1378 <thead class="border-bottom"> 1379 <tr> 1380 <th>Field</th> 1381 <th>Description</th> 1382 </tr> 1383 </thead> 1384 <tbody class="border-top"> 1385 <tr> 1386 <td style="white-space:nowrap"> 1387 <code>scheme</code> 1388 <br> 1389 <em> 1390 string 1391 </em> 1392 </td> 1393 <td> 1394 <em>(Optional)</em> 1395 <p>Scheme is the scheme to be used in the value of the <code>Location</code> 1396 header in the response. 1397 When empty, the scheme of the request is used.</p> 1398 </td> 1399 </tr> 1400 <tr> 1401 <td style="white-space:nowrap"> 1402 <code>hostname</code> 1403 <br> 1404 <em> 1405 string 1406 </em> 1407 </td> 1408 <td> 1409 <em>(Optional)</em> 1410 <p>Hostname is the precise hostname to be used in the value of the <code>Location</code> 1411 header in the response. 1412 When empty, the hostname of the request is used. 1413 No wildcards are allowed.</p> 1414 </td> 1415 </tr> 1416 <tr> 1417 <td style="white-space:nowrap"> 1418 <code>port</code> 1419 <br> 1420 <em> 1421 int32 1422 </em> 1423 </td> 1424 <td> 1425 <em>(Optional)</em> 1426 <p>Port is the port to be used in the value of the <code>Location</code> 1427 header in the response. 1428 When empty, port (if specified) of the request is used.</p> 1429 </td> 1430 </tr> 1431 <tr> 1432 <td style="white-space:nowrap"> 1433 <code>statusCode</code> 1434 <br> 1435 <em> 1436 int 1437 </em> 1438 </td> 1439 <td> 1440 <em>(Optional)</em> 1441 <p>StatusCode is the HTTP status code to be used in response.</p> 1442 </td> 1443 </tr> 1444 <tr> 1445 <td style="white-space:nowrap"> 1446 <code>path</code> 1447 <br> 1448 <em> 1449 string 1450 </em> 1451 </td> 1452 <td> 1453 <em>(Optional)</em> 1454 <p>Path allows for redirection to a different path from the 1455 original on the request. The path must start with a 1456 leading slash.</p> 1457 <p>Note: Only one of Path or Prefix can be defined.</p> 1458 </td> 1459 </tr> 1460 <tr> 1461 <td style="white-space:nowrap"> 1462 <code>prefix</code> 1463 <br> 1464 <em> 1465 string 1466 </em> 1467 </td> 1468 <td> 1469 <em>(Optional)</em> 1470 <p>Prefix defines the value to swap the matched prefix or path with. 1471 The prefix must start with a leading slash.</p> 1472 <p>Note: Only one of Path or Prefix can be defined.</p> 1473 </td> 1474 </tr> 1475 </tbody> 1476 </table> 1477 <h3 id="projectcontour.io/v1.HeaderHashOptions">HeaderHashOptions 1478 </h3> 1479 <p> 1480 (<em>Appears on:</em> 1481 <a href="#projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy</a>) 1482 </p> 1483 <p> 1484 <p>HeaderHashOptions contains options to configure a HTTP request header hash 1485 policy, used in request attribute hash based load balancing.</p> 1486 </p> 1487 <table class="table table-striped table-borderless" style="border:none"> 1488 <thead class="border-bottom"> 1489 <tr> 1490 <th>Field</th> 1491 <th>Description</th> 1492 </tr> 1493 </thead> 1494 <tbody class="border-top"> 1495 <tr> 1496 <td style="white-space:nowrap"> 1497 <code>headerName</code> 1498 <br> 1499 <em> 1500 string 1501 </em> 1502 </td> 1503 <td> 1504 <p>HeaderName is the name of the HTTP request header that will be used to 1505 calculate the hash key. If the header specified is not present on a 1506 request, no hash will be produced.</p> 1507 </td> 1508 </tr> 1509 </tbody> 1510 </table> 1511 <h3 id="projectcontour.io/v1.HeaderMatchCondition">HeaderMatchCondition 1512 </h3> 1513 <p> 1514 (<em>Appears on:</em> 1515 <a href="#projectcontour.io/v1.MatchCondition">MatchCondition</a>, 1516 <a href="#projectcontour.io/v1.RequestHeaderValueMatchDescriptor">RequestHeaderValueMatchDescriptor</a>) 1517 </p> 1518 <p> 1519 <p>HeaderMatchCondition specifies how to conditionally match against HTTP 1520 headers. The Name field is required, but only one of the remaining 1521 fields should be be provided.</p> 1522 </p> 1523 <table class="table table-striped table-borderless" style="border:none"> 1524 <thead class="border-bottom"> 1525 <tr> 1526 <th>Field</th> 1527 <th>Description</th> 1528 </tr> 1529 </thead> 1530 <tbody class="border-top"> 1531 <tr> 1532 <td style="white-space:nowrap"> 1533 <code>name</code> 1534 <br> 1535 <em> 1536 string 1537 </em> 1538 </td> 1539 <td> 1540 <p>Name is the name of the header to match against. Name is required. 1541 Header names are case insensitive.</p> 1542 </td> 1543 </tr> 1544 <tr> 1545 <td style="white-space:nowrap"> 1546 <code>present</code> 1547 <br> 1548 <em> 1549 bool 1550 </em> 1551 </td> 1552 <td> 1553 <em>(Optional)</em> 1554 <p>Present specifies that condition is true when the named header 1555 is present, regardless of its value. Note that setting Present 1556 to false does not make the condition true if the named header 1557 is absent.</p> 1558 </td> 1559 </tr> 1560 <tr> 1561 <td style="white-space:nowrap"> 1562 <code>notpresent</code> 1563 <br> 1564 <em> 1565 bool 1566 </em> 1567 </td> 1568 <td> 1569 <em>(Optional)</em> 1570 <p>NotPresent specifies that condition is true when the named header 1571 is not present. Note that setting NotPresent to false does not 1572 make the condition true if the named header is present.</p> 1573 </td> 1574 </tr> 1575 <tr> 1576 <td style="white-space:nowrap"> 1577 <code>contains</code> 1578 <br> 1579 <em> 1580 string 1581 </em> 1582 </td> 1583 <td> 1584 <em>(Optional)</em> 1585 <p>Contains specifies a substring that must be present in 1586 the header value.</p> 1587 </td> 1588 </tr> 1589 <tr> 1590 <td style="white-space:nowrap"> 1591 <code>notcontains</code> 1592 <br> 1593 <em> 1594 string 1595 </em> 1596 </td> 1597 <td> 1598 <em>(Optional)</em> 1599 <p>NotContains specifies a substring that must not be present 1600 in the header value.</p> 1601 </td> 1602 </tr> 1603 <tr> 1604 <td style="white-space:nowrap"> 1605 <code>exact</code> 1606 <br> 1607 <em> 1608 string 1609 </em> 1610 </td> 1611 <td> 1612 <em>(Optional)</em> 1613 <p>Exact specifies a string that the header value must be equal to.</p> 1614 </td> 1615 </tr> 1616 <tr> 1617 <td style="white-space:nowrap"> 1618 <code>notexact</code> 1619 <br> 1620 <em> 1621 string 1622 </em> 1623 </td> 1624 <td> 1625 <em>(Optional)</em> 1626 <p>NoExact specifies a string that the header value must not be 1627 equal to. The condition is true if the header has any other value.</p> 1628 </td> 1629 </tr> 1630 </tbody> 1631 </table> 1632 <h3 id="projectcontour.io/v1.HeaderValue">HeaderValue 1633 </h3> 1634 <p> 1635 (<em>Appears on:</em> 1636 <a href="#projectcontour.io/v1.HeadersPolicy">HeadersPolicy</a>, 1637 <a href="#projectcontour.io/v1.LocalRateLimitPolicy">LocalRateLimitPolicy</a>) 1638 </p> 1639 <p> 1640 <p>HeaderValue represents a header name/value pair</p> 1641 </p> 1642 <table class="table table-striped table-borderless" style="border:none"> 1643 <thead class="border-bottom"> 1644 <tr> 1645 <th>Field</th> 1646 <th>Description</th> 1647 </tr> 1648 </thead> 1649 <tbody class="border-top"> 1650 <tr> 1651 <td style="white-space:nowrap"> 1652 <code>name</code> 1653 <br> 1654 <em> 1655 string 1656 </em> 1657 </td> 1658 <td> 1659 <p>Name represents a key of a header</p> 1660 </td> 1661 </tr> 1662 <tr> 1663 <td style="white-space:nowrap"> 1664 <code>value</code> 1665 <br> 1666 <em> 1667 string 1668 </em> 1669 </td> 1670 <td> 1671 <p>Value represents the value of a header specified by a key</p> 1672 </td> 1673 </tr> 1674 </tbody> 1675 </table> 1676 <h3 id="projectcontour.io/v1.HeadersPolicy">HeadersPolicy 1677 </h3> 1678 <p> 1679 (<em>Appears on:</em> 1680 <a href="#projectcontour.io/v1.Route">Route</a>, 1681 <a href="#projectcontour.io/v1.Service">Service</a>) 1682 </p> 1683 <p> 1684 <p>HeadersPolicy defines how headers are managed during forwarding. 1685 The <code>Host</code> header is treated specially and if set in a HTTP response 1686 will be used as the SNI server name when forwarding over TLS. It is an 1687 error to attempt to set the <code>Host</code> header in a HTTP response.</p> 1688 </p> 1689 <table class="table table-striped table-borderless" style="border:none"> 1690 <thead class="border-bottom"> 1691 <tr> 1692 <th>Field</th> 1693 <th>Description</th> 1694 </tr> 1695 </thead> 1696 <tbody class="border-top"> 1697 <tr> 1698 <td style="white-space:nowrap"> 1699 <code>set</code> 1700 <br> 1701 <em> 1702 <a href="#projectcontour.io/v1.HeaderValue"> 1703 []HeaderValue 1704 </a> 1705 </em> 1706 </td> 1707 <td> 1708 <em>(Optional)</em> 1709 <p>Set specifies a list of HTTP header values that will be set in the HTTP header. 1710 If the header does not exist it will be added, otherwise it will be overwritten with the new value.</p> 1711 </td> 1712 </tr> 1713 <tr> 1714 <td style="white-space:nowrap"> 1715 <code>remove</code> 1716 <br> 1717 <em> 1718 []string 1719 </em> 1720 </td> 1721 <td> 1722 <em>(Optional)</em> 1723 <p>Remove specifies a list of HTTP header names to remove.</p> 1724 </td> 1725 </tr> 1726 </tbody> 1727 </table> 1728 <h3 id="projectcontour.io/v1.Include">Include 1729 </h3> 1730 <p> 1731 (<em>Appears on:</em> 1732 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 1733 </p> 1734 <p> 1735 <p>Include describes a set of policies that can be applied to an HTTPProxy in a namespace.</p> 1736 </p> 1737 <table class="table table-striped table-borderless" style="border:none"> 1738 <thead class="border-bottom"> 1739 <tr> 1740 <th>Field</th> 1741 <th>Description</th> 1742 </tr> 1743 </thead> 1744 <tbody class="border-top"> 1745 <tr> 1746 <td style="white-space:nowrap"> 1747 <code>name</code> 1748 <br> 1749 <em> 1750 string 1751 </em> 1752 </td> 1753 <td> 1754 <p>Name of the HTTPProxy</p> 1755 </td> 1756 </tr> 1757 <tr> 1758 <td style="white-space:nowrap"> 1759 <code>namespace</code> 1760 <br> 1761 <em> 1762 string 1763 </em> 1764 </td> 1765 <td> 1766 <em>(Optional)</em> 1767 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 1768 </td> 1769 </tr> 1770 <tr> 1771 <td style="white-space:nowrap"> 1772 <code>conditions</code> 1773 <br> 1774 <em> 1775 <a href="#projectcontour.io/v1.MatchCondition"> 1776 []MatchCondition 1777 </a> 1778 </em> 1779 </td> 1780 <td> 1781 <em>(Optional)</em> 1782 <p>Conditions are a set of rules that are applied to included HTTPProxies. 1783 In effect, they are added onto the Conditions of included HTTPProxy Route 1784 structs. 1785 When applied, they are merged using AND, with one exception: 1786 There can be only one Prefix MatchCondition per Conditions slice. 1787 More than one Prefix, or contradictory Conditions, will make the 1788 include invalid.</p> 1789 </td> 1790 </tr> 1791 </tbody> 1792 </table> 1793 <h3 id="projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy 1794 </h3> 1795 <p> 1796 (<em>Appears on:</em> 1797 <a href="#projectcontour.io/v1.Route">Route</a>, 1798 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>, 1799 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 1800 </p> 1801 <p> 1802 <p>LoadBalancerPolicy defines the load balancing policy.</p> 1803 </p> 1804 <table class="table table-striped table-borderless" style="border:none"> 1805 <thead class="border-bottom"> 1806 <tr> 1807 <th>Field</th> 1808 <th>Description</th> 1809 </tr> 1810 </thead> 1811 <tbody class="border-top"> 1812 <tr> 1813 <td style="white-space:nowrap"> 1814 <code>strategy</code> 1815 <br> 1816 <em> 1817 string 1818 </em> 1819 </td> 1820 <td> 1821 <p>Strategy specifies the policy used to balance requests 1822 across the pool of backend pods. Valid policy names are 1823 <code>Random</code>, <code>RoundRobin</code>, <code>WeightedLeastRequest</code>, <code>Cookie</code>, 1824 and <code>RequestHash</code>. If an unknown strategy name is specified 1825 or no policy is supplied, the default <code>RoundRobin</code> policy 1826 is used.</p> 1827 </td> 1828 </tr> 1829 <tr> 1830 <td style="white-space:nowrap"> 1831 <code>requestHashPolicies</code> 1832 <br> 1833 <em> 1834 <a href="#projectcontour.io/v1.RequestHashPolicy"> 1835 []RequestHashPolicy 1836 </a> 1837 </em> 1838 </td> 1839 <td> 1840 <p>RequestHashPolicies contains a list of hash policies to apply when the 1841 <code>RequestHash</code> load balancing strategy is chosen. If an element of the 1842 supplied list of hash policies is invalid, it will be ignored. If the 1843 list of hash policies is empty after validation, the load balancing 1844 strategy will fall back to the default <code>RoundRobin</code>.</p> 1845 </td> 1846 </tr> 1847 </tbody> 1848 </table> 1849 <h3 id="projectcontour.io/v1.LocalRateLimitPolicy">LocalRateLimitPolicy 1850 </h3> 1851 <p> 1852 (<em>Appears on:</em> 1853 <a href="#projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy</a>) 1854 </p> 1855 <p> 1856 <p>LocalRateLimitPolicy defines local rate limiting parameters.</p> 1857 </p> 1858 <table class="table table-striped table-borderless" style="border:none"> 1859 <thead class="border-bottom"> 1860 <tr> 1861 <th>Field</th> 1862 <th>Description</th> 1863 </tr> 1864 </thead> 1865 <tbody class="border-top"> 1866 <tr> 1867 <td style="white-space:nowrap"> 1868 <code>requests</code> 1869 <br> 1870 <em> 1871 uint32 1872 </em> 1873 </td> 1874 <td> 1875 <p>Requests defines how many requests per unit of time should 1876 be allowed before rate limiting occurs.</p> 1877 </td> 1878 </tr> 1879 <tr> 1880 <td style="white-space:nowrap"> 1881 <code>unit</code> 1882 <br> 1883 <em> 1884 string 1885 </em> 1886 </td> 1887 <td> 1888 <p>Unit defines the period of time within which requests 1889 over the limit will be rate limited. Valid values are 1890 “second”, “minute” and “hour”.</p> 1891 </td> 1892 </tr> 1893 <tr> 1894 <td style="white-space:nowrap"> 1895 <code>burst</code> 1896 <br> 1897 <em> 1898 uint32 1899 </em> 1900 </td> 1901 <td> 1902 <em>(Optional)</em> 1903 <p>Burst defines the number of requests above the requests per 1904 unit that should be allowed within a short period of time.</p> 1905 </td> 1906 </tr> 1907 <tr> 1908 <td style="white-space:nowrap"> 1909 <code>responseStatusCode</code> 1910 <br> 1911 <em> 1912 uint32 1913 </em> 1914 </td> 1915 <td> 1916 <em>(Optional)</em> 1917 <p>ResponseStatusCode is the HTTP status code to use for responses 1918 to rate-limited requests. Codes must be in the 400-599 range 1919 (inclusive). If not specified, the Envoy default of 429 (Too 1920 Many Requests) is used.</p> 1921 </td> 1922 </tr> 1923 <tr> 1924 <td style="white-space:nowrap"> 1925 <code>responseHeadersToAdd</code> 1926 <br> 1927 <em> 1928 <a href="#projectcontour.io/v1.HeaderValue"> 1929 []HeaderValue 1930 </a> 1931 </em> 1932 </td> 1933 <td> 1934 <em>(Optional)</em> 1935 <p>ResponseHeadersToAdd is an optional list of response headers to 1936 set when a request is rate-limited.</p> 1937 </td> 1938 </tr> 1939 </tbody> 1940 </table> 1941 <h3 id="projectcontour.io/v1.MatchCondition">MatchCondition 1942 </h3> 1943 <p> 1944 (<em>Appears on:</em> 1945 <a href="#projectcontour.io/v1.Include">Include</a>, 1946 <a href="#projectcontour.io/v1.Route">Route</a>) 1947 </p> 1948 <p> 1949 <p>MatchCondition are a general holder for matching rules for HTTPProxies. 1950 One of Prefix or Header must be provided.</p> 1951 </p> 1952 <table class="table table-striped table-borderless" style="border:none"> 1953 <thead class="border-bottom"> 1954 <tr> 1955 <th>Field</th> 1956 <th>Description</th> 1957 </tr> 1958 </thead> 1959 <tbody class="border-top"> 1960 <tr> 1961 <td style="white-space:nowrap"> 1962 <code>prefix</code> 1963 <br> 1964 <em> 1965 string 1966 </em> 1967 </td> 1968 <td> 1969 <em>(Optional)</em> 1970 <p>Prefix defines a prefix match for a request.</p> 1971 </td> 1972 </tr> 1973 <tr> 1974 <td style="white-space:nowrap"> 1975 <code>header</code> 1976 <br> 1977 <em> 1978 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 1979 HeaderMatchCondition 1980 </a> 1981 </em> 1982 </td> 1983 <td> 1984 <em>(Optional)</em> 1985 <p>Header specifies the header condition to match.</p> 1986 </td> 1987 </tr> 1988 </tbody> 1989 </table> 1990 <h3 id="projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy 1991 </h3> 1992 <p> 1993 (<em>Appears on:</em> 1994 <a href="#projectcontour.io/v1.Route">Route</a>) 1995 </p> 1996 <p> 1997 <p>PathRewritePolicy specifies how a request URL path should be 1998 rewritten. This rewriting takes place after a request is routed 1999 and has no subsequent effects on the proxy’s routing decision. 2000 No HTTP headers or body content is rewritten.</p> 2001 <p>Exactly one field in this struct may be specified.</p> 2002 </p> 2003 <table class="table table-striped table-borderless" style="border:none"> 2004 <thead class="border-bottom"> 2005 <tr> 2006 <th>Field</th> 2007 <th>Description</th> 2008 </tr> 2009 </thead> 2010 <tbody class="border-top"> 2011 <tr> 2012 <td style="white-space:nowrap"> 2013 <code>replacePrefix</code> 2014 <br> 2015 <em> 2016 <a href="#projectcontour.io/v1.ReplacePrefix"> 2017 []ReplacePrefix 2018 </a> 2019 </em> 2020 </td> 2021 <td> 2022 <em>(Optional)</em> 2023 <p>ReplacePrefix describes how the path prefix should be replaced.</p> 2024 </td> 2025 </tr> 2026 </tbody> 2027 </table> 2028 <h3 id="projectcontour.io/v1.RateLimitDescriptor">RateLimitDescriptor 2029 </h3> 2030 <p> 2031 (<em>Appears on:</em> 2032 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy">GlobalRateLimitPolicy</a>) 2033 </p> 2034 <p> 2035 <p>RateLimitDescriptor defines a list of key-value pair generators.</p> 2036 </p> 2037 <table class="table table-striped table-borderless" style="border:none"> 2038 <thead class="border-bottom"> 2039 <tr> 2040 <th>Field</th> 2041 <th>Description</th> 2042 </tr> 2043 </thead> 2044 <tbody class="border-top"> 2045 <tr> 2046 <td style="white-space:nowrap"> 2047 <code>entries</code> 2048 <br> 2049 <em> 2050 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry"> 2051 []RateLimitDescriptorEntry 2052 </a> 2053 </em> 2054 </td> 2055 <td> 2056 <p>Entries is the list of key-value pair generators.</p> 2057 </td> 2058 </tr> 2059 </tbody> 2060 </table> 2061 <h3 id="projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry 2062 </h3> 2063 <p> 2064 (<em>Appears on:</em> 2065 <a href="#projectcontour.io/v1.RateLimitDescriptor">RateLimitDescriptor</a>) 2066 </p> 2067 <p> 2068 <p>RateLimitDescriptorEntry is a key-value pair generator. Exactly 2069 one field on this struct must be non-nil.</p> 2070 </p> 2071 <table class="table table-striped table-borderless" style="border:none"> 2072 <thead class="border-bottom"> 2073 <tr> 2074 <th>Field</th> 2075 <th>Description</th> 2076 </tr> 2077 </thead> 2078 <tbody class="border-top"> 2079 <tr> 2080 <td style="white-space:nowrap"> 2081 <code>genericKey</code> 2082 <br> 2083 <em> 2084 <a href="#projectcontour.io/v1.GenericKeyDescriptor"> 2085 GenericKeyDescriptor 2086 </a> 2087 </em> 2088 </td> 2089 <td> 2090 <em>(Optional)</em> 2091 <p>GenericKey defines a descriptor entry with a static key and value.</p> 2092 </td> 2093 </tr> 2094 <tr> 2095 <td style="white-space:nowrap"> 2096 <code>requestHeader</code> 2097 <br> 2098 <em> 2099 <a href="#projectcontour.io/v1.RequestHeaderDescriptor"> 2100 RequestHeaderDescriptor 2101 </a> 2102 </em> 2103 </td> 2104 <td> 2105 <em>(Optional)</em> 2106 <p>RequestHeader defines a descriptor entry that’s populated only if 2107 a given header is present on the request. The descriptor key is static, 2108 and the descriptor value is equal to the value of the header.</p> 2109 </td> 2110 </tr> 2111 <tr> 2112 <td style="white-space:nowrap"> 2113 <code>requestHeaderValueMatch</code> 2114 <br> 2115 <em> 2116 <a href="#projectcontour.io/v1.RequestHeaderValueMatchDescriptor"> 2117 RequestHeaderValueMatchDescriptor 2118 </a> 2119 </em> 2120 </td> 2121 <td> 2122 <em>(Optional)</em> 2123 <p>RequestHeaderValueMatch defines a descriptor entry that’s populated 2124 if the request’s headers match a set of 1+ match criteria. The 2125 descriptor key is “header_match”, and the descriptor value is static.</p> 2126 </td> 2127 </tr> 2128 <tr> 2129 <td style="white-space:nowrap"> 2130 <code>remoteAddress</code> 2131 <br> 2132 <em> 2133 <a href="#projectcontour.io/v1.RemoteAddressDescriptor"> 2134 RemoteAddressDescriptor 2135 </a> 2136 </em> 2137 </td> 2138 <td> 2139 <em>(Optional)</em> 2140 <p>RemoteAddress defines a descriptor entry with a key of “remote_address” 2141 and a value equal to the client’s IP address (from x-forwarded-for).</p> 2142 </td> 2143 </tr> 2144 </tbody> 2145 </table> 2146 <h3 id="projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy 2147 </h3> 2148 <p> 2149 (<em>Appears on:</em> 2150 <a href="#projectcontour.io/v1.Route">Route</a>, 2151 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 2152 </p> 2153 <p> 2154 <p>RateLimitPolicy defines rate limiting parameters.</p> 2155 </p> 2156 <table class="table table-striped table-borderless" style="border:none"> 2157 <thead class="border-bottom"> 2158 <tr> 2159 <th>Field</th> 2160 <th>Description</th> 2161 </tr> 2162 </thead> 2163 <tbody class="border-top"> 2164 <tr> 2165 <td style="white-space:nowrap"> 2166 <code>local</code> 2167 <br> 2168 <em> 2169 <a href="#projectcontour.io/v1.LocalRateLimitPolicy"> 2170 LocalRateLimitPolicy 2171 </a> 2172 </em> 2173 </td> 2174 <td> 2175 <em>(Optional)</em> 2176 <p>Local defines local rate limiting parameters, i.e. parameters 2177 for rate limiting that occurs within each Envoy pod as requests 2178 are handled.</p> 2179 </td> 2180 </tr> 2181 <tr> 2182 <td style="white-space:nowrap"> 2183 <code>global</code> 2184 <br> 2185 <em> 2186 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy"> 2187 GlobalRateLimitPolicy 2188 </a> 2189 </em> 2190 </td> 2191 <td> 2192 <em>(Optional)</em> 2193 <p>Global defines global rate limiting parameters, i.e. parameters 2194 defining descriptors that are sent to an external rate limit 2195 service (RLS) for a rate limit decision on each request.</p> 2196 </td> 2197 </tr> 2198 </tbody> 2199 </table> 2200 <h3 id="projectcontour.io/v1.RemoteAddressDescriptor">RemoteAddressDescriptor 2201 </h3> 2202 <p> 2203 (<em>Appears on:</em> 2204 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 2205 </p> 2206 <p> 2207 <p>RemoteAddressDescriptor defines a descriptor entry with a key of 2208 “remote_address” and a value equal to the client’s IP address 2209 (from x-forwarded-for).</p> 2210 </p> 2211 <h3 id="projectcontour.io/v1.ReplacePrefix">ReplacePrefix 2212 </h3> 2213 <p> 2214 (<em>Appears on:</em> 2215 <a href="#projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy</a>) 2216 </p> 2217 <p> 2218 <p>ReplacePrefix describes a path prefix replacement.</p> 2219 </p> 2220 <table class="table table-striped table-borderless" style="border:none"> 2221 <thead class="border-bottom"> 2222 <tr> 2223 <th>Field</th> 2224 <th>Description</th> 2225 </tr> 2226 </thead> 2227 <tbody class="border-top"> 2228 <tr> 2229 <td style="white-space:nowrap"> 2230 <code>prefix</code> 2231 <br> 2232 <em> 2233 string 2234 </em> 2235 </td> 2236 <td> 2237 <em>(Optional)</em> 2238 <p>Prefix specifies the URL path prefix to be replaced.</p> 2239 <p>If Prefix is specified, it must exactly match the MatchCondition 2240 prefix that is rendered by the chain of including HTTPProxies 2241 and only that path prefix will be replaced by Replacement. 2242 This allows HTTPProxies that are included through multiple 2243 roots to only replace specific path prefixes, leaving others 2244 unmodified.</p> 2245 <p>If Prefix is not specified, all routing prefixes rendered 2246 by the include chain will be replaced.</p> 2247 </td> 2248 </tr> 2249 <tr> 2250 <td style="white-space:nowrap"> 2251 <code>replacement</code> 2252 <br> 2253 <em> 2254 string 2255 </em> 2256 </td> 2257 <td> 2258 <p>Replacement is the string that the routing path prefix 2259 will be replaced with. This must not be empty.</p> 2260 </td> 2261 </tr> 2262 </tbody> 2263 </table> 2264 <h3 id="projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy 2265 </h3> 2266 <p> 2267 (<em>Appears on:</em> 2268 <a href="#projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy</a>) 2269 </p> 2270 <p> 2271 <p>RequestHashPolicy contains configuration for an individual hash policy 2272 on a request attribute.</p> 2273 </p> 2274 <table class="table table-striped table-borderless" style="border:none"> 2275 <thead class="border-bottom"> 2276 <tr> 2277 <th>Field</th> 2278 <th>Description</th> 2279 </tr> 2280 </thead> 2281 <tbody class="border-top"> 2282 <tr> 2283 <td style="white-space:nowrap"> 2284 <code>terminal</code> 2285 <br> 2286 <em> 2287 bool 2288 </em> 2289 </td> 2290 <td> 2291 <p>Terminal is a flag that allows for short-circuiting computing of a hash 2292 for a given request. If set to true, and the request attribute specified 2293 in the attribute hash options is present, no further hash policies will 2294 be used to calculate a hash for the request.</p> 2295 </td> 2296 </tr> 2297 <tr> 2298 <td style="white-space:nowrap"> 2299 <code>headerHashOptions</code> 2300 <br> 2301 <em> 2302 <a href="#projectcontour.io/v1.HeaderHashOptions"> 2303 HeaderHashOptions 2304 </a> 2305 </em> 2306 </td> 2307 <td> 2308 <em>(Optional)</em> 2309 <p>HeaderHashOptions should be set when request header hash based load 2310 balancing is desired. It must be the only hash option field set, 2311 otherwise this request hash policy object will be ignored.</p> 2312 </td> 2313 </tr> 2314 <tr> 2315 <td style="white-space:nowrap"> 2316 <code>hashSourceIP</code> 2317 <br> 2318 <em> 2319 bool 2320 </em> 2321 </td> 2322 <td> 2323 <em>(Optional)</em> 2324 <p>HashSourceIP should be set to true when request source IP hash based 2325 load balancing is desired. It must be the only hash option field set, 2326 otherwise this request hash policy object will be ignored.</p> 2327 </td> 2328 </tr> 2329 </tbody> 2330 </table> 2331 <h3 id="projectcontour.io/v1.RequestHeaderDescriptor">RequestHeaderDescriptor 2332 </h3> 2333 <p> 2334 (<em>Appears on:</em> 2335 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 2336 </p> 2337 <p> 2338 <p>RequestHeaderDescriptor defines a descriptor entry that’s populated only 2339 if a given header is present on the request. The value of the descriptor 2340 entry is equal to the value of the header (if present).</p> 2341 </p> 2342 <table class="table table-striped table-borderless" style="border:none"> 2343 <thead class="border-bottom"> 2344 <tr> 2345 <th>Field</th> 2346 <th>Description</th> 2347 </tr> 2348 </thead> 2349 <tbody class="border-top"> 2350 <tr> 2351 <td style="white-space:nowrap"> 2352 <code>headerName</code> 2353 <br> 2354 <em> 2355 string 2356 </em> 2357 </td> 2358 <td> 2359 <p>HeaderName defines the name of the header to look for on the request.</p> 2360 </td> 2361 </tr> 2362 <tr> 2363 <td style="white-space:nowrap"> 2364 <code>descriptorKey</code> 2365 <br> 2366 <em> 2367 string 2368 </em> 2369 </td> 2370 <td> 2371 <p>DescriptorKey defines the key to use on the descriptor entry.</p> 2372 </td> 2373 </tr> 2374 </tbody> 2375 </table> 2376 <h3 id="projectcontour.io/v1.RequestHeaderValueMatchDescriptor">RequestHeaderValueMatchDescriptor 2377 </h3> 2378 <p> 2379 (<em>Appears on:</em> 2380 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 2381 </p> 2382 <p> 2383 <p>RequestHeaderValueMatchDescriptor defines a descriptor entry that’s populated 2384 if the request’s headers match a set of 1+ match criteria. The descriptor key 2385 is “header_match”, and the descriptor value is statically defined.</p> 2386 </p> 2387 <table class="table table-striped table-borderless" style="border:none"> 2388 <thead class="border-bottom"> 2389 <tr> 2390 <th>Field</th> 2391 <th>Description</th> 2392 </tr> 2393 </thead> 2394 <tbody class="border-top"> 2395 <tr> 2396 <td style="white-space:nowrap"> 2397 <code>headers</code> 2398 <br> 2399 <em> 2400 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 2401 []HeaderMatchCondition 2402 </a> 2403 </em> 2404 </td> 2405 <td> 2406 <p>Headers is a list of 1+ match criteria to apply against the request 2407 to determine whether to populate the descriptor entry or not.</p> 2408 </td> 2409 </tr> 2410 <tr> 2411 <td style="white-space:nowrap"> 2412 <code>expectMatch</code> 2413 <br> 2414 <em> 2415 bool 2416 </em> 2417 </td> 2418 <td> 2419 <p>ExpectMatch defines whether the request must positively match the match 2420 criteria in order to generate a descriptor entry (i.e. true), or not 2421 match the match criteria in order to generate a descriptor entry (i.e. false). 2422 The default is true.</p> 2423 </td> 2424 </tr> 2425 <tr> 2426 <td style="white-space:nowrap"> 2427 <code>value</code> 2428 <br> 2429 <em> 2430 string 2431 </em> 2432 </td> 2433 <td> 2434 <p>Value defines the value of the descriptor entry.</p> 2435 </td> 2436 </tr> 2437 </tbody> 2438 </table> 2439 <h3 id="projectcontour.io/v1.RetryOn">RetryOn 2440 (<code>string</code> alias)</h3> 2441 <p> 2442 (<em>Appears on:</em> 2443 <a href="#projectcontour.io/v1.RetryPolicy">RetryPolicy</a>) 2444 </p> 2445 <p> 2446 <p>RetryOn is a string type alias with validation to ensure that the value is valid.</p> 2447 </p> 2448 <h3 id="projectcontour.io/v1.RetryPolicy">RetryPolicy 2449 </h3> 2450 <p> 2451 (<em>Appears on:</em> 2452 <a href="#projectcontour.io/v1.Route">Route</a>) 2453 </p> 2454 <p> 2455 <p>RetryPolicy defines the attributes associated with retrying policy.</p> 2456 </p> 2457 <table class="table table-striped table-borderless" style="border:none"> 2458 <thead class="border-bottom"> 2459 <tr> 2460 <th>Field</th> 2461 <th>Description</th> 2462 </tr> 2463 </thead> 2464 <tbody class="border-top"> 2465 <tr> 2466 <td style="white-space:nowrap"> 2467 <code>count</code> 2468 <br> 2469 <em> 2470 int64 2471 </em> 2472 </td> 2473 <td> 2474 <em>(Optional)</em> 2475 <p>NumRetries is maximum allowed number of retries. 2476 If set to -1, then retries are disabled. 2477 If set to 0 or not supplied, the value is set 2478 to the Envoy default of 1.</p> 2479 </td> 2480 </tr> 2481 <tr> 2482 <td style="white-space:nowrap"> 2483 <code>perTryTimeout</code> 2484 <br> 2485 <em> 2486 string 2487 </em> 2488 </td> 2489 <td> 2490 <em>(Optional)</em> 2491 <p>PerTryTimeout specifies the timeout per retry attempt. 2492 Ignored if NumRetries is not supplied.</p> 2493 </td> 2494 </tr> 2495 <tr> 2496 <td style="white-space:nowrap"> 2497 <code>retryOn</code> 2498 <br> 2499 <em> 2500 <a href="#projectcontour.io/v1.RetryOn"> 2501 []RetryOn 2502 </a> 2503 </em> 2504 </td> 2505 <td> 2506 <em>(Optional)</em> 2507 <p>RetryOn specifies the conditions on which to retry a request.</p> 2508 <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> 2509 <ul> 2510 <li><code>5xx</code></li> 2511 <li><code>gateway-error</code></li> 2512 <li><code>reset</code></li> 2513 <li><code>connect-failure</code></li> 2514 <li><code>retriable-4xx</code></li> 2515 <li><code>refused-stream</code></li> 2516 <li><code>retriable-status-codes</code></li> 2517 <li><code>retriable-headers</code></li> 2518 </ul> 2519 <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> 2520 <ul> 2521 <li><code>cancelled</code></li> 2522 <li><code>deadline-exceeded</code></li> 2523 <li><code>internal</code></li> 2524 <li><code>resource-exhausted</code></li> 2525 <li><code>unavailable</code></li> 2526 </ul> 2527 </td> 2528 </tr> 2529 <tr> 2530 <td style="white-space:nowrap"> 2531 <code>retriableStatusCodes</code> 2532 <br> 2533 <em> 2534 []uint32 2535 </em> 2536 </td> 2537 <td> 2538 <em>(Optional)</em> 2539 <p>RetriableStatusCodes specifies the HTTP status codes that should be retried.</p> 2540 <p>This field is only respected when you include <code>retriable-status-codes</code> in the <code>RetryOn</code> field.</p> 2541 </td> 2542 </tr> 2543 </tbody> 2544 </table> 2545 <h3 id="projectcontour.io/v1.Route">Route 2546 </h3> 2547 <p> 2548 (<em>Appears on:</em> 2549 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 2550 </p> 2551 <p> 2552 <p>Route contains the set of routes for a virtual host.</p> 2553 </p> 2554 <table class="table table-striped table-borderless" style="border:none"> 2555 <thead class="border-bottom"> 2556 <tr> 2557 <th>Field</th> 2558 <th>Description</th> 2559 </tr> 2560 </thead> 2561 <tbody class="border-top"> 2562 <tr> 2563 <td style="white-space:nowrap"> 2564 <code>conditions</code> 2565 <br> 2566 <em> 2567 <a href="#projectcontour.io/v1.MatchCondition"> 2568 []MatchCondition 2569 </a> 2570 </em> 2571 </td> 2572 <td> 2573 <em>(Optional)</em> 2574 <p>Conditions are a set of rules that are applied to a Route. 2575 When applied, they are merged using AND, with one exception: 2576 There can be only one Prefix MatchCondition per Conditions slice. 2577 More than one Prefix, or contradictory Conditions, will make the 2578 route invalid.</p> 2579 </td> 2580 </tr> 2581 <tr> 2582 <td style="white-space:nowrap"> 2583 <code>services</code> 2584 <br> 2585 <em> 2586 <a href="#projectcontour.io/v1.Service"> 2587 []Service 2588 </a> 2589 </em> 2590 </td> 2591 <td> 2592 <em>(Optional)</em> 2593 <p>Services are the services to proxy traffic.</p> 2594 </td> 2595 </tr> 2596 <tr> 2597 <td style="white-space:nowrap"> 2598 <code>enableWebsockets</code> 2599 <br> 2600 <em> 2601 bool 2602 </em> 2603 </td> 2604 <td> 2605 <em>(Optional)</em> 2606 <p>Enables websocket support for the route.</p> 2607 </td> 2608 </tr> 2609 <tr> 2610 <td style="white-space:nowrap"> 2611 <code>permitInsecure</code> 2612 <br> 2613 <em> 2614 bool 2615 </em> 2616 </td> 2617 <td> 2618 <em>(Optional)</em> 2619 <p>Allow this path to respond to insecure requests over HTTP which are normally 2620 not permitted when a <code>virtualhost.tls</code> block is present.</p> 2621 </td> 2622 </tr> 2623 <tr> 2624 <td style="white-space:nowrap"> 2625 <code>authPolicy</code> 2626 <br> 2627 <em> 2628 <a href="#projectcontour.io/v1.AuthorizationPolicy"> 2629 AuthorizationPolicy 2630 </a> 2631 </em> 2632 </td> 2633 <td> 2634 <em>(Optional)</em> 2635 <p>AuthPolicy updates the authorization policy that was set 2636 on the root HTTPProxy object for client requests that 2637 match this route.</p> 2638 </td> 2639 </tr> 2640 <tr> 2641 <td style="white-space:nowrap"> 2642 <code>timeoutPolicy</code> 2643 <br> 2644 <em> 2645 <a href="#projectcontour.io/v1.TimeoutPolicy"> 2646 TimeoutPolicy 2647 </a> 2648 </em> 2649 </td> 2650 <td> 2651 <em>(Optional)</em> 2652 <p>The timeout policy for this route.</p> 2653 </td> 2654 </tr> 2655 <tr> 2656 <td style="white-space:nowrap"> 2657 <code>retryPolicy</code> 2658 <br> 2659 <em> 2660 <a href="#projectcontour.io/v1.RetryPolicy"> 2661 RetryPolicy 2662 </a> 2663 </em> 2664 </td> 2665 <td> 2666 <em>(Optional)</em> 2667 <p>The retry policy for this route.</p> 2668 </td> 2669 </tr> 2670 <tr> 2671 <td style="white-space:nowrap"> 2672 <code>healthCheckPolicy</code> 2673 <br> 2674 <em> 2675 <a href="#projectcontour.io/v1.HTTPHealthCheckPolicy"> 2676 HTTPHealthCheckPolicy 2677 </a> 2678 </em> 2679 </td> 2680 <td> 2681 <em>(Optional)</em> 2682 <p>The health check policy for this route.</p> 2683 </td> 2684 </tr> 2685 <tr> 2686 <td style="white-space:nowrap"> 2687 <code>loadBalancerPolicy</code> 2688 <br> 2689 <em> 2690 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 2691 LoadBalancerPolicy 2692 </a> 2693 </em> 2694 </td> 2695 <td> 2696 <em>(Optional)</em> 2697 <p>The load balancing policy for this route.</p> 2698 </td> 2699 </tr> 2700 <tr> 2701 <td style="white-space:nowrap"> 2702 <code>pathRewritePolicy</code> 2703 <br> 2704 <em> 2705 <a href="#projectcontour.io/v1.PathRewritePolicy"> 2706 PathRewritePolicy 2707 </a> 2708 </em> 2709 </td> 2710 <td> 2711 <em>(Optional)</em> 2712 <p>The policy for rewriting the path of the request URL 2713 after the request has been routed to a Service.</p> 2714 </td> 2715 </tr> 2716 <tr> 2717 <td style="white-space:nowrap"> 2718 <code>requestHeadersPolicy</code> 2719 <br> 2720 <em> 2721 <a href="#projectcontour.io/v1.HeadersPolicy"> 2722 HeadersPolicy 2723 </a> 2724 </em> 2725 </td> 2726 <td> 2727 <em>(Optional)</em> 2728 <p>The policy for managing request headers during proxying.</p> 2729 </td> 2730 </tr> 2731 <tr> 2732 <td style="white-space:nowrap"> 2733 <code>responseHeadersPolicy</code> 2734 <br> 2735 <em> 2736 <a href="#projectcontour.io/v1.HeadersPolicy"> 2737 HeadersPolicy 2738 </a> 2739 </em> 2740 </td> 2741 <td> 2742 <em>(Optional)</em> 2743 <p>The policy for managing response headers during proxying. 2744 Rewriting the ‘Host’ header is not supported.</p> 2745 </td> 2746 </tr> 2747 <tr> 2748 <td style="white-space:nowrap"> 2749 <code>cookieRewritePolicies</code> 2750 <br> 2751 <em> 2752 <a href="#projectcontour.io/v1.CookieRewritePolicy"> 2753 []CookieRewritePolicy 2754 </a> 2755 </em> 2756 </td> 2757 <td> 2758 <em>(Optional)</em> 2759 <p>The policies for rewriting Set-Cookie header attributes. Note that 2760 rewritten cookie names must be unique in this list. Order rewrite 2761 policies are specified in does not matter.</p> 2762 </td> 2763 </tr> 2764 <tr> 2765 <td style="white-space:nowrap"> 2766 <code>rateLimitPolicy</code> 2767 <br> 2768 <em> 2769 <a href="#projectcontour.io/v1.RateLimitPolicy"> 2770 RateLimitPolicy 2771 </a> 2772 </em> 2773 </td> 2774 <td> 2775 <em>(Optional)</em> 2776 <p>The policy for rate limiting on the route.</p> 2777 </td> 2778 </tr> 2779 <tr> 2780 <td style="white-space:nowrap"> 2781 <code>requestRedirectPolicy</code> 2782 <br> 2783 <em> 2784 <a href="#projectcontour.io/v1.HTTPRequestRedirectPolicy"> 2785 HTTPRequestRedirectPolicy 2786 </a> 2787 </em> 2788 </td> 2789 <td> 2790 <em>(Optional)</em> 2791 <p>RequestRedirectPolicy defines an HTTP redirection.</p> 2792 </td> 2793 </tr> 2794 </tbody> 2795 </table> 2796 <h3 id="projectcontour.io/v1.Service">Service 2797 </h3> 2798 <p> 2799 (<em>Appears on:</em> 2800 <a href="#projectcontour.io/v1.Route">Route</a>, 2801 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 2802 </p> 2803 <p> 2804 <p>Service defines an Kubernetes Service to proxy traffic.</p> 2805 </p> 2806 <table class="table table-striped table-borderless" style="border:none"> 2807 <thead class="border-bottom"> 2808 <tr> 2809 <th>Field</th> 2810 <th>Description</th> 2811 </tr> 2812 </thead> 2813 <tbody class="border-top"> 2814 <tr> 2815 <td style="white-space:nowrap"> 2816 <code>name</code> 2817 <br> 2818 <em> 2819 string 2820 </em> 2821 </td> 2822 <td> 2823 <p>Name is the name of Kubernetes service to proxy traffic. 2824 Names defined here will be used to look up corresponding endpoints which contain the ips to route.</p> 2825 </td> 2826 </tr> 2827 <tr> 2828 <td style="white-space:nowrap"> 2829 <code>port</code> 2830 <br> 2831 <em> 2832 int 2833 </em> 2834 </td> 2835 <td> 2836 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 2837 </td> 2838 </tr> 2839 <tr> 2840 <td style="white-space:nowrap"> 2841 <code>protocol</code> 2842 <br> 2843 <em> 2844 string 2845 </em> 2846 </td> 2847 <td> 2848 <em>(Optional)</em> 2849 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 2850 Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.</p> 2851 </td> 2852 </tr> 2853 <tr> 2854 <td style="white-space:nowrap"> 2855 <code>weight</code> 2856 <br> 2857 <em> 2858 int64 2859 </em> 2860 </td> 2861 <td> 2862 <em>(Optional)</em> 2863 <p>Weight defines percentage of traffic to balance traffic</p> 2864 </td> 2865 </tr> 2866 <tr> 2867 <td style="white-space:nowrap"> 2868 <code>validation</code> 2869 <br> 2870 <em> 2871 <a href="#projectcontour.io/v1.UpstreamValidation"> 2872 UpstreamValidation 2873 </a> 2874 </em> 2875 </td> 2876 <td> 2877 <em>(Optional)</em> 2878 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 2879 </td> 2880 </tr> 2881 <tr> 2882 <td style="white-space:nowrap"> 2883 <code>mirror</code> 2884 <br> 2885 <em> 2886 bool 2887 </em> 2888 </td> 2889 <td> 2890 <p>If Mirror is true the Service will receive a read only mirror of the traffic for this route.</p> 2891 </td> 2892 </tr> 2893 <tr> 2894 <td style="white-space:nowrap"> 2895 <code>requestHeadersPolicy</code> 2896 <br> 2897 <em> 2898 <a href="#projectcontour.io/v1.HeadersPolicy"> 2899 HeadersPolicy 2900 </a> 2901 </em> 2902 </td> 2903 <td> 2904 <em>(Optional)</em> 2905 <p>The policy for managing request headers during proxying. 2906 Rewriting the ‘Host’ header is not supported.</p> 2907 </td> 2908 </tr> 2909 <tr> 2910 <td style="white-space:nowrap"> 2911 <code>responseHeadersPolicy</code> 2912 <br> 2913 <em> 2914 <a href="#projectcontour.io/v1.HeadersPolicy"> 2915 HeadersPolicy 2916 </a> 2917 </em> 2918 </td> 2919 <td> 2920 <em>(Optional)</em> 2921 <p>The policy for managing response headers during proxying. 2922 Rewriting the ‘Host’ header is not supported.</p> 2923 </td> 2924 </tr> 2925 <tr> 2926 <td style="white-space:nowrap"> 2927 <code>cookieRewritePolicies</code> 2928 <br> 2929 <em> 2930 <a href="#projectcontour.io/v1.CookieRewritePolicy"> 2931 []CookieRewritePolicy 2932 </a> 2933 </em> 2934 </td> 2935 <td> 2936 <em>(Optional)</em> 2937 <p>The policies for rewriting Set-Cookie header attributes.</p> 2938 </td> 2939 </tr> 2940 </tbody> 2941 </table> 2942 <h3 id="projectcontour.io/v1.SubCondition">SubCondition 2943 </h3> 2944 <p> 2945 (<em>Appears on:</em> 2946 <a href="#projectcontour.io/v1.DetailedCondition">DetailedCondition</a>) 2947 </p> 2948 <p> 2949 <p>SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition.</p> 2950 <p>It contains a subset of the Condition fields.</p> 2951 <p>It is intended for warnings and errors, so <code>type</code> names should use abnormal-true polarity, 2952 that is, they should be of the form “ErrorPresent: true”.</p> 2953 <p>The expected lifecycle for these errors is that they should only be present when the error or warning is, 2954 and should be removed when they are not relevant.</p> 2955 </p> 2956 <table class="table table-striped table-borderless" style="border:none"> 2957 <thead class="border-bottom"> 2958 <tr> 2959 <th>Field</th> 2960 <th>Description</th> 2961 </tr> 2962 </thead> 2963 <tbody class="border-top"> 2964 <tr> 2965 <td style="white-space:nowrap"> 2966 <code>type</code> 2967 <br> 2968 <em> 2969 string 2970 </em> 2971 </td> 2972 <td> 2973 <p>Type of condition in <code>CamelCase</code> or in <code>foo.example.com/CamelCase</code>.</p> 2974 <p>This must be in abnormal-true polarity, that is, <code>ErrorFound</code> or <code>controller.io/ErrorFound</code>.</p> 2975 <p>The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)</p> 2976 </td> 2977 </tr> 2978 <tr> 2979 <td style="white-space:nowrap"> 2980 <code>status</code> 2981 <br> 2982 <em> 2983 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#conditionstatus-v1-meta"> 2984 Kubernetes meta/v1.ConditionStatus 2985 </a> 2986 </em> 2987 </td> 2988 <td> 2989 <p>Status of the condition, one of True, False, Unknown.</p> 2990 </td> 2991 </tr> 2992 <tr> 2993 <td style="white-space:nowrap"> 2994 <code>reason</code> 2995 <br> 2996 <em> 2997 string 2998 </em> 2999 </td> 3000 <td> 3001 <p>Reason contains a programmatic identifier indicating the reason for the condition’s last transition. 3002 Producers of specific condition types may define expected values and meanings for this field, 3003 and whether the values are considered a guaranteed API.</p> 3004 <p>The value should be a CamelCase string.</p> 3005 <p>This field may not be empty.</p> 3006 </td> 3007 </tr> 3008 <tr> 3009 <td style="white-space:nowrap"> 3010 <code>message</code> 3011 <br> 3012 <em> 3013 string 3014 </em> 3015 </td> 3016 <td> 3017 <p>Message is a human readable message indicating details about the transition.</p> 3018 <p>This may be an empty string.</p> 3019 </td> 3020 </tr> 3021 </tbody> 3022 </table> 3023 <h3 id="projectcontour.io/v1.TCPHealthCheckPolicy">TCPHealthCheckPolicy 3024 </h3> 3025 <p> 3026 (<em>Appears on:</em> 3027 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 3028 </p> 3029 <p> 3030 <p>TCPHealthCheckPolicy defines health checks on the upstream service.</p> 3031 </p> 3032 <table class="table table-striped table-borderless" style="border:none"> 3033 <thead class="border-bottom"> 3034 <tr> 3035 <th>Field</th> 3036 <th>Description</th> 3037 </tr> 3038 </thead> 3039 <tbody class="border-top"> 3040 <tr> 3041 <td style="white-space:nowrap"> 3042 <code>intervalSeconds</code> 3043 <br> 3044 <em> 3045 int64 3046 </em> 3047 </td> 3048 <td> 3049 <em>(Optional)</em> 3050 <p>The interval (seconds) between health checks</p> 3051 </td> 3052 </tr> 3053 <tr> 3054 <td style="white-space:nowrap"> 3055 <code>timeoutSeconds</code> 3056 <br> 3057 <em> 3058 int64 3059 </em> 3060 </td> 3061 <td> 3062 <em>(Optional)</em> 3063 <p>The time to wait (seconds) for a health check response</p> 3064 </td> 3065 </tr> 3066 <tr> 3067 <td style="white-space:nowrap"> 3068 <code>unhealthyThresholdCount</code> 3069 <br> 3070 <em> 3071 uint32 3072 </em> 3073 </td> 3074 <td> 3075 <em>(Optional)</em> 3076 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 3077 </td> 3078 </tr> 3079 <tr> 3080 <td style="white-space:nowrap"> 3081 <code>healthyThresholdCount</code> 3082 <br> 3083 <em> 3084 uint32 3085 </em> 3086 </td> 3087 <td> 3088 <em>(Optional)</em> 3089 <p>The number of healthy health checks required before a host is marked healthy</p> 3090 </td> 3091 </tr> 3092 </tbody> 3093 </table> 3094 <h3 id="projectcontour.io/v1.TCPProxy">TCPProxy 3095 </h3> 3096 <p> 3097 (<em>Appears on:</em> 3098 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 3099 </p> 3100 <p> 3101 <p>TCPProxy contains the set of services to proxy TCP connections.</p> 3102 </p> 3103 <table class="table table-striped table-borderless" style="border:none"> 3104 <thead class="border-bottom"> 3105 <tr> 3106 <th>Field</th> 3107 <th>Description</th> 3108 </tr> 3109 </thead> 3110 <tbody class="border-top"> 3111 <tr> 3112 <td style="white-space:nowrap"> 3113 <code>loadBalancerPolicy</code> 3114 <br> 3115 <em> 3116 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 3117 LoadBalancerPolicy 3118 </a> 3119 </em> 3120 </td> 3121 <td> 3122 <em>(Optional)</em> 3123 <p>The load balancing policy for the backend services. Note that the 3124 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 3125 here.</p> 3126 </td> 3127 </tr> 3128 <tr> 3129 <td style="white-space:nowrap"> 3130 <code>services</code> 3131 <br> 3132 <em> 3133 <a href="#projectcontour.io/v1.Service"> 3134 []Service 3135 </a> 3136 </em> 3137 </td> 3138 <td> 3139 <em>(Optional)</em> 3140 <p>Services are the services to proxy traffic</p> 3141 </td> 3142 </tr> 3143 <tr> 3144 <td style="white-space:nowrap"> 3145 <code>include</code> 3146 <br> 3147 <em> 3148 <a href="#projectcontour.io/v1.TCPProxyInclude"> 3149 TCPProxyInclude 3150 </a> 3151 </em> 3152 </td> 3153 <td> 3154 <em>(Optional)</em> 3155 <p>Include specifies that this tcpproxy should be delegated to another HTTPProxy.</p> 3156 </td> 3157 </tr> 3158 <tr> 3159 <td style="white-space:nowrap"> 3160 <code>includes</code> 3161 <br> 3162 <em> 3163 <a href="#projectcontour.io/v1.TCPProxyInclude"> 3164 TCPProxyInclude 3165 </a> 3166 </em> 3167 </td> 3168 <td> 3169 <em>(Optional)</em> 3170 <p>IncludesDeprecated allow for specific routing configuration to be appended to another HTTPProxy in another namespace.</p> 3171 <p>Exists due to a mistake when developing HTTPProxy and the field was marked plural 3172 when it should have been singular. This field should stay to not break backwards compatibility to v1 users.</p> 3173 </td> 3174 </tr> 3175 <tr> 3176 <td style="white-space:nowrap"> 3177 <code>healthCheckPolicy</code> 3178 <br> 3179 <em> 3180 <a href="#projectcontour.io/v1.TCPHealthCheckPolicy"> 3181 TCPHealthCheckPolicy 3182 </a> 3183 </em> 3184 </td> 3185 <td> 3186 <em>(Optional)</em> 3187 <p>The health check policy for this tcp proxy</p> 3188 </td> 3189 </tr> 3190 </tbody> 3191 </table> 3192 <h3 id="projectcontour.io/v1.TCPProxyInclude">TCPProxyInclude 3193 </h3> 3194 <p> 3195 (<em>Appears on:</em> 3196 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 3197 </p> 3198 <p> 3199 <p>TCPProxyInclude describes a target HTTPProxy document which contains the TCPProxy details.</p> 3200 </p> 3201 <table class="table table-striped table-borderless" style="border:none"> 3202 <thead class="border-bottom"> 3203 <tr> 3204 <th>Field</th> 3205 <th>Description</th> 3206 </tr> 3207 </thead> 3208 <tbody class="border-top"> 3209 <tr> 3210 <td style="white-space:nowrap"> 3211 <code>name</code> 3212 <br> 3213 <em> 3214 string 3215 </em> 3216 </td> 3217 <td> 3218 <p>Name of the child HTTPProxy</p> 3219 </td> 3220 </tr> 3221 <tr> 3222 <td style="white-space:nowrap"> 3223 <code>namespace</code> 3224 <br> 3225 <em> 3226 string 3227 </em> 3228 </td> 3229 <td> 3230 <em>(Optional)</em> 3231 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 3232 </td> 3233 </tr> 3234 </tbody> 3235 </table> 3236 <h3 id="projectcontour.io/v1.TLS">TLS 3237 </h3> 3238 <p> 3239 (<em>Appears on:</em> 3240 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 3241 </p> 3242 <p> 3243 <p>TLS describes tls properties. The SNI names that will be matched on 3244 are described in the HTTPProxy’s Spec.VirtualHost.Fqdn field.</p> 3245 </p> 3246 <table class="table table-striped table-borderless" style="border:none"> 3247 <thead class="border-bottom"> 3248 <tr> 3249 <th>Field</th> 3250 <th>Description</th> 3251 </tr> 3252 </thead> 3253 <tbody class="border-top"> 3254 <tr> 3255 <td style="white-space:nowrap"> 3256 <code>secretName</code> 3257 <br> 3258 <em> 3259 string 3260 </em> 3261 </td> 3262 <td> 3263 <p>SecretName is the name of a TLS secret in the current namespace. 3264 Either SecretName or Passthrough must be specified, but not both. 3265 If specified, the named secret must contain a matching certificate 3266 for the virtual host’s FQDN.</p> 3267 </td> 3268 </tr> 3269 <tr> 3270 <td style="white-space:nowrap"> 3271 <code>minimumProtocolVersion</code> 3272 <br> 3273 <em> 3274 string 3275 </em> 3276 </td> 3277 <td> 3278 <em>(Optional)</em> 3279 <p>MinimumProtocolVersion is the minimum TLS version this vhost should 3280 negotiate. Valid options are <code>1.2</code> (default) and <code>1.3</code>. Any other value 3281 defaults to TLS 1.2.</p> 3282 </td> 3283 </tr> 3284 <tr> 3285 <td style="white-space:nowrap"> 3286 <code>passthrough</code> 3287 <br> 3288 <em> 3289 bool 3290 </em> 3291 </td> 3292 <td> 3293 <em>(Optional)</em> 3294 <p>Passthrough defines whether the encrypted TLS handshake will be 3295 passed through to the backing cluster. Either Passthrough or 3296 SecretName must be specified, but not both.</p> 3297 </td> 3298 </tr> 3299 <tr> 3300 <td style="white-space:nowrap"> 3301 <code>clientValidation</code> 3302 <br> 3303 <em> 3304 <a href="#projectcontour.io/v1.DownstreamValidation"> 3305 DownstreamValidation 3306 </a> 3307 </em> 3308 </td> 3309 <td> 3310 <em>(Optional)</em> 3311 <p>ClientValidation defines how to verify the client certificate 3312 when an external client establishes a TLS connection to Envoy.</p> 3313 <p>This setting:</p> 3314 <ol> 3315 <li>Enables TLS client certificate validation.</li> 3316 <li>Specifies how the client certificate will be validated (i.e. 3317 validation required or skipped).</li> 3318 </ol> 3319 <p>Note: Setting client certificate validation to be skipped should 3320 be only used in conjunction with an external authorization server that 3321 performs client validation as Contour will ensure client certificates 3322 are passed along.</p> 3323 </td> 3324 </tr> 3325 <tr> 3326 <td style="white-space:nowrap"> 3327 <code>enableFallbackCertificate</code> 3328 <br> 3329 <em> 3330 bool 3331 </em> 3332 </td> 3333 <td> 3334 <p>EnableFallbackCertificate defines if the vhost should allow a default certificate to 3335 be applied which handles all requests which don’t match the SNI defined in this vhost.</p> 3336 </td> 3337 </tr> 3338 </tbody> 3339 </table> 3340 <h3 id="projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec 3341 </h3> 3342 <p> 3343 (<em>Appears on:</em> 3344 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 3345 </p> 3346 <p> 3347 <p>TLSCertificateDelegationSpec defines the spec of the CRD</p> 3348 </p> 3349 <table class="table table-striped table-borderless" style="border:none"> 3350 <thead class="border-bottom"> 3351 <tr> 3352 <th>Field</th> 3353 <th>Description</th> 3354 </tr> 3355 </thead> 3356 <tbody class="border-top"> 3357 <tr> 3358 <td style="white-space:nowrap"> 3359 <code>delegations</code> 3360 <br> 3361 <em> 3362 <a href="#projectcontour.io/v1.CertificateDelegation"> 3363 []CertificateDelegation 3364 </a> 3365 </em> 3366 </td> 3367 <td> 3368 </td> 3369 </tr> 3370 </tbody> 3371 </table> 3372 <h3 id="projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus 3373 </h3> 3374 <p> 3375 (<em>Appears on:</em> 3376 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 3377 </p> 3378 <p> 3379 <p>TLSCertificateDelegationStatus allows for the status of the delegation 3380 to be presented to the user.</p> 3381 </p> 3382 <table class="table table-striped table-borderless" style="border:none"> 3383 <thead class="border-bottom"> 3384 <tr> 3385 <th>Field</th> 3386 <th>Description</th> 3387 </tr> 3388 </thead> 3389 <tbody class="border-top"> 3390 <tr> 3391 <td style="white-space:nowrap"> 3392 <code>conditions</code> 3393 <br> 3394 <em> 3395 <a href="#projectcontour.io/v1.DetailedCondition"> 3396 []DetailedCondition 3397 </a> 3398 </em> 3399 </td> 3400 <td> 3401 <em>(Optional)</em> 3402 <p>Conditions contains information about the current status of the HTTPProxy, 3403 in an upstream-friendly container.</p> 3404 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 3405 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 3406 and vice versa.</p> 3407 <p>Contour will leave untouched any other Conditions set in this block, 3408 in case some other controller wants to add a Condition.</p> 3409 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 3410 namespace your condition with a label, like <code>controller.domain.com\ConditionName</code>.</p> 3411 </td> 3412 </tr> 3413 </tbody> 3414 </table> 3415 <h3 id="projectcontour.io/v1.TimeoutPolicy">TimeoutPolicy 3416 </h3> 3417 <p> 3418 (<em>Appears on:</em> 3419 <a href="#projectcontour.io/v1.Route">Route</a>, 3420 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 3421 </p> 3422 <p> 3423 <p>TimeoutPolicy configures timeouts that are used for handling network requests.</p> 3424 <p>TimeoutPolicy durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 3425 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 3426 The string “infinity” is also a valid input and specifies no timeout. 3427 A value of “0s” will be treated as if the field were not set, i.e. by using Envoy’s default behavior.</p> 3428 <p>Example input values: “300ms”, “5s”, “1m”.</p> 3429 </p> 3430 <table class="table table-striped table-borderless" style="border:none"> 3431 <thead class="border-bottom"> 3432 <tr> 3433 <th>Field</th> 3434 <th>Description</th> 3435 </tr> 3436 </thead> 3437 <tbody class="border-top"> 3438 <tr> 3439 <td style="white-space:nowrap"> 3440 <code>response</code> 3441 <br> 3442 <em> 3443 string 3444 </em> 3445 </td> 3446 <td> 3447 <em>(Optional)</em> 3448 <p>Timeout for receiving a response from the server after processing a request from client. 3449 If not supplied, Envoy’s default value of 15s applies.</p> 3450 </td> 3451 </tr> 3452 <tr> 3453 <td style="white-space:nowrap"> 3454 <code>idle</code> 3455 <br> 3456 <em> 3457 string 3458 </em> 3459 </td> 3460 <td> 3461 <em>(Optional)</em> 3462 <p>Timeout for how long the proxy should wait while there is no activity during single request/response (for HTTP/1.1) or stream (for HTTP/2). 3463 Timeout will not trigger while HTTP/1.1 connection is idle between two consecutive requests. 3464 If not specified, there is no per-route idle timeout, though a connection manager-wide 3465 stream_idle_timeout default of 5m still applies.</p> 3466 </td> 3467 </tr> 3468 </tbody> 3469 </table> 3470 <h3 id="projectcontour.io/v1.UpstreamValidation">UpstreamValidation 3471 </h3> 3472 <p> 3473 (<em>Appears on:</em> 3474 <a href="#projectcontour.io/v1.Service">Service</a>, 3475 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 3476 </p> 3477 <p> 3478 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 3479 </p> 3480 <table class="table table-striped table-borderless" style="border:none"> 3481 <thead class="border-bottom"> 3482 <tr> 3483 <th>Field</th> 3484 <th>Description</th> 3485 </tr> 3486 </thead> 3487 <tbody class="border-top"> 3488 <tr> 3489 <td style="white-space:nowrap"> 3490 <code>caSecret</code> 3491 <br> 3492 <em> 3493 string 3494 </em> 3495 </td> 3496 <td> 3497 <p>Name or namespaced name of the Kubernetes secret used to validate the certificate presented by the backend</p> 3498 </td> 3499 </tr> 3500 <tr> 3501 <td style="white-space:nowrap"> 3502 <code>subjectName</code> 3503 <br> 3504 <em> 3505 string 3506 </em> 3507 </td> 3508 <td> 3509 <p>Key which is expected to be present in the ‘subjectAltName’ of the presented certificate</p> 3510 </td> 3511 </tr> 3512 </tbody> 3513 </table> 3514 <h3 id="projectcontour.io/v1.VirtualHost">VirtualHost 3515 </h3> 3516 <p> 3517 (<em>Appears on:</em> 3518 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 3519 </p> 3520 <p> 3521 <p>VirtualHost appears at most once. If it is present, the object is considered 3522 to be a “root”.</p> 3523 </p> 3524 <table class="table table-striped table-borderless" style="border:none"> 3525 <thead class="border-bottom"> 3526 <tr> 3527 <th>Field</th> 3528 <th>Description</th> 3529 </tr> 3530 </thead> 3531 <tbody class="border-top"> 3532 <tr> 3533 <td style="white-space:nowrap"> 3534 <code>fqdn</code> 3535 <br> 3536 <em> 3537 string 3538 </em> 3539 </td> 3540 <td> 3541 <p>The fully qualified domain name of the root of the ingress tree 3542 all leaves of the DAG rooted at this object relate to the fqdn.</p> 3543 </td> 3544 </tr> 3545 <tr> 3546 <td style="white-space:nowrap"> 3547 <code>tls</code> 3548 <br> 3549 <em> 3550 <a href="#projectcontour.io/v1.TLS"> 3551 TLS 3552 </a> 3553 </em> 3554 </td> 3555 <td> 3556 <em>(Optional)</em> 3557 <p>If present the fields describes TLS properties of the virtual 3558 host. The SNI names that will be matched on are described in fqdn, 3559 the tls.secretName secret must contain a certificate that itself 3560 contains a name that matches the FQDN.</p> 3561 </td> 3562 </tr> 3563 <tr> 3564 <td style="white-space:nowrap"> 3565 <code>authorization</code> 3566 <br> 3567 <em> 3568 <a href="#projectcontour.io/v1.AuthorizationServer"> 3569 AuthorizationServer 3570 </a> 3571 </em> 3572 </td> 3573 <td> 3574 <em>(Optional)</em> 3575 <p>This field configures an extension service to perform 3576 authorization for this virtual host. Authorization can 3577 only be configured on virtual hosts that have TLS enabled. 3578 If the TLS configuration requires client certificate 3579 validation, the client certificate is always included in the 3580 authentication check request.</p> 3581 </td> 3582 </tr> 3583 <tr> 3584 <td style="white-space:nowrap"> 3585 <code>corsPolicy</code> 3586 <br> 3587 <em> 3588 <a href="#projectcontour.io/v1.CORSPolicy"> 3589 CORSPolicy 3590 </a> 3591 </em> 3592 </td> 3593 <td> 3594 <em>(Optional)</em> 3595 <p>Specifies the cross-origin policy to apply to the VirtualHost.</p> 3596 </td> 3597 </tr> 3598 <tr> 3599 <td style="white-space:nowrap"> 3600 <code>rateLimitPolicy</code> 3601 <br> 3602 <em> 3603 <a href="#projectcontour.io/v1.RateLimitPolicy"> 3604 RateLimitPolicy 3605 </a> 3606 </em> 3607 </td> 3608 <td> 3609 <em>(Optional)</em> 3610 <p>The policy for rate limiting on the virtual host.</p> 3611 </td> 3612 </tr> 3613 </tbody> 3614 </table> 3615 <hr/> 3616 <h2 id="projectcontour.io/v1alpha1">projectcontour.io/v1alpha1</h2> 3617 <p> 3618 <p>Package v1alpha1 contains API Schema definitions for the projectcontour.io v1alpha1 API group</p> 3619 </p> 3620 Resource Types: 3621 <ul><li> 3622 <a href="#projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration</a> 3623 </li><li> 3624 <a href="#projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment</a> 3625 </li><li> 3626 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a> 3627 </li></ul> 3628 <h3 id="projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration 3629 </h3> 3630 <p> 3631 <p>ContourConfiguration is the schema for a Contour instance.</p> 3632 </p> 3633 <table class="table table-striped table-borderless" style="border:none"> 3634 <thead class="border-bottom"> 3635 <tr> 3636 <th>Field</th> 3637 <th>Description</th> 3638 </tr> 3639 </thead> 3640 <tbody class="border-top"> 3641 <tr> 3642 <td> 3643 <code>apiVersion</code> 3644 <br> 3645 string</td> 3646 <td> 3647 <code> 3648 projectcontour.io/v1alpha1 3649 </code> 3650 </td> 3651 </tr> 3652 <tr> 3653 <td> 3654 <code>kind</code> 3655 <br> 3656 string 3657 </td> 3658 <td><code>ContourConfiguration</code></td> 3659 </tr> 3660 <tr> 3661 <td style="white-space:nowrap"> 3662 <code>metadata</code> 3663 <br> 3664 <em> 3665 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 3666 Kubernetes meta/v1.ObjectMeta 3667 </a> 3668 </em> 3669 </td> 3670 <td> 3671 Refer to the Kubernetes API documentation for the fields of the 3672 <code>metadata</code> field. 3673 </td> 3674 </tr> 3675 <tr> 3676 <td style="white-space:nowrap"> 3677 <code>spec</code> 3678 <br> 3679 <em> 3680 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec"> 3681 ContourConfigurationSpec 3682 </a> 3683 </em> 3684 </td> 3685 <td> 3686 <br> 3687 <br> 3688 <table style="border:none"> 3689 <tr> 3690 <td style="white-space:nowrap"> 3691 <code>xdsServer</code> 3692 <br> 3693 <em> 3694 <a href="#projectcontour.io/v1alpha1.XDSServerConfig"> 3695 XDSServerConfig 3696 </a> 3697 </em> 3698 </td> 3699 <td> 3700 <em>(Optional)</em> 3701 <p>XDSServer contains parameters for the xDS server.</p> 3702 </td> 3703 </tr> 3704 <tr> 3705 <td style="white-space:nowrap"> 3706 <code>ingress</code> 3707 <br> 3708 <em> 3709 <a href="#projectcontour.io/v1alpha1.IngressConfig"> 3710 IngressConfig 3711 </a> 3712 </em> 3713 </td> 3714 <td> 3715 <em>(Optional)</em> 3716 <p>Ingress contains parameters for ingress options.</p> 3717 </td> 3718 </tr> 3719 <tr> 3720 <td style="white-space:nowrap"> 3721 <code>debug</code> 3722 <br> 3723 <em> 3724 <a href="#projectcontour.io/v1alpha1.DebugConfig"> 3725 DebugConfig 3726 </a> 3727 </em> 3728 </td> 3729 <td> 3730 <em>(Optional)</em> 3731 <p>Debug contains parameters to enable debug logging 3732 and debug interfaces inside Contour.</p> 3733 </td> 3734 </tr> 3735 <tr> 3736 <td style="white-space:nowrap"> 3737 <code>health</code> 3738 <br> 3739 <em> 3740 <a href="#projectcontour.io/v1alpha1.HealthConfig"> 3741 HealthConfig 3742 </a> 3743 </em> 3744 </td> 3745 <td> 3746 <em>(Optional)</em> 3747 <p>Health defines the endpoints Contour uses to serve health checks.</p> 3748 </td> 3749 </tr> 3750 <tr> 3751 <td style="white-space:nowrap"> 3752 <code>envoy</code> 3753 <br> 3754 <em> 3755 <a href="#projectcontour.io/v1alpha1.EnvoyConfig"> 3756 EnvoyConfig 3757 </a> 3758 </em> 3759 </td> 3760 <td> 3761 <em>(Optional)</em> 3762 <p>Envoy contains parameters for Envoy as well 3763 as how to optionally configure a managed Envoy fleet.</p> 3764 </td> 3765 </tr> 3766 <tr> 3767 <td style="white-space:nowrap"> 3768 <code>gateway</code> 3769 <br> 3770 <em> 3771 <a href="#projectcontour.io/v1alpha1.GatewayConfig"> 3772 GatewayConfig 3773 </a> 3774 </em> 3775 </td> 3776 <td> 3777 <em>(Optional)</em> 3778 <p>Gateway contains parameters for the gateway-api Gateway that Contour 3779 is configured to serve traffic.</p> 3780 </td> 3781 </tr> 3782 <tr> 3783 <td style="white-space:nowrap"> 3784 <code>httpproxy</code> 3785 <br> 3786 <em> 3787 <a href="#projectcontour.io/v1alpha1.HTTPProxyConfig"> 3788 HTTPProxyConfig 3789 </a> 3790 </em> 3791 </td> 3792 <td> 3793 <em>(Optional)</em> 3794 <p>HTTPProxy defines parameters on HTTPProxy.</p> 3795 </td> 3796 </tr> 3797 <tr> 3798 <td style="white-space:nowrap"> 3799 <code>enableExternalNameService</code> 3800 <br> 3801 <em> 3802 bool 3803 </em> 3804 </td> 3805 <td> 3806 <em>(Optional)</em> 3807 <p>EnableExternalNameService allows processing of ExternalNameServices 3808 Defaults to disabled for security reasons.</p> 3809 </td> 3810 </tr> 3811 <tr> 3812 <td style="white-space:nowrap"> 3813 <code>rateLimitService</code> 3814 <br> 3815 <em> 3816 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig"> 3817 RateLimitServiceConfig 3818 </a> 3819 </em> 3820 </td> 3821 <td> 3822 <em>(Optional)</em> 3823 <p>RateLimitService optionally holds properties of the Rate Limit Service 3824 to be used for global rate limiting.</p> 3825 </td> 3826 </tr> 3827 <tr> 3828 <td style="white-space:nowrap"> 3829 <code>policy</code> 3830 <br> 3831 <em> 3832 <a href="#projectcontour.io/v1alpha1.PolicyConfig"> 3833 PolicyConfig 3834 </a> 3835 </em> 3836 </td> 3837 <td> 3838 <em>(Optional)</em> 3839 <p>Policy specifies default policy applied if not overridden by the user</p> 3840 </td> 3841 </tr> 3842 <tr> 3843 <td style="white-space:nowrap"> 3844 <code>metrics</code> 3845 <br> 3846 <em> 3847 <a href="#projectcontour.io/v1alpha1.MetricsConfig"> 3848 MetricsConfig 3849 </a> 3850 </em> 3851 </td> 3852 <td> 3853 <em>(Optional)</em> 3854 <p>Metrics defines the endpoint Contour uses to serve metrics.</p> 3855 </td> 3856 </tr> 3857 </table> 3858 </td> 3859 </tr> 3860 <tr> 3861 <td style="white-space:nowrap"> 3862 <code>status</code> 3863 <br> 3864 <em> 3865 <a href="#projectcontour.io/v1alpha1.ContourConfigurationStatus"> 3866 ContourConfigurationStatus 3867 </a> 3868 </em> 3869 </td> 3870 <td> 3871 <em>(Optional)</em> 3872 </td> 3873 </tr> 3874 </tbody> 3875 </table> 3876 <h3 id="projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment 3877 </h3> 3878 <p> 3879 <p>ContourDeployment is the schema for a Contour Deployment.</p> 3880 </p> 3881 <table class="table table-striped table-borderless" style="border:none"> 3882 <thead class="border-bottom"> 3883 <tr> 3884 <th>Field</th> 3885 <th>Description</th> 3886 </tr> 3887 </thead> 3888 <tbody class="border-top"> 3889 <tr> 3890 <td> 3891 <code>apiVersion</code> 3892 <br> 3893 string</td> 3894 <td> 3895 <code> 3896 projectcontour.io/v1alpha1 3897 </code> 3898 </td> 3899 </tr> 3900 <tr> 3901 <td> 3902 <code>kind</code> 3903 <br> 3904 string 3905 </td> 3906 <td><code>ContourDeployment</code></td> 3907 </tr> 3908 <tr> 3909 <td style="white-space:nowrap"> 3910 <code>metadata</code> 3911 <br> 3912 <em> 3913 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 3914 Kubernetes meta/v1.ObjectMeta 3915 </a> 3916 </em> 3917 </td> 3918 <td> 3919 Refer to the Kubernetes API documentation for the fields of the 3920 <code>metadata</code> field. 3921 </td> 3922 </tr> 3923 <tr> 3924 <td style="white-space:nowrap"> 3925 <code>spec</code> 3926 <br> 3927 <em> 3928 <a href="#projectcontour.io/v1alpha1.ContourDeploymentSpec"> 3929 ContourDeploymentSpec 3930 </a> 3931 </em> 3932 </td> 3933 <td> 3934 <br> 3935 <br> 3936 <table style="border:none"> 3937 <tr> 3938 <td style="white-space:nowrap"> 3939 <code>replicas</code> 3940 <br> 3941 <em> 3942 int32 3943 </em> 3944 </td> 3945 <td> 3946 <p>Replicas is the desired number of Contour replicas. If unset, 3947 defaults to 2.</p> 3948 </td> 3949 </tr> 3950 <tr> 3951 <td style="white-space:nowrap"> 3952 <code>config</code> 3953 <br> 3954 <em> 3955 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec"> 3956 ContourConfigurationSpec 3957 </a> 3958 </em> 3959 </td> 3960 <td> 3961 <p>Config is the config that the instances of Contour are to utilize.</p> 3962 </td> 3963 </tr> 3964 </table> 3965 </td> 3966 </tr> 3967 <tr> 3968 <td style="white-space:nowrap"> 3969 <code>status</code> 3970 <br> 3971 <em> 3972 <a href="#projectcontour.io/v1alpha1.ContourDeploymentStatus"> 3973 ContourDeploymentStatus 3974 </a> 3975 </em> 3976 </td> 3977 <td> 3978 </td> 3979 </tr> 3980 </tbody> 3981 </table> 3982 <h3 id="projectcontour.io/v1alpha1.ExtensionService">ExtensionService 3983 </h3> 3984 <p> 3985 <p>ExtensionService is the schema for the Contour extension services API. 3986 An ExtensionService resource binds a network service to the Contour 3987 API so that Contour API features can be implemented by collaborating 3988 components.</p> 3989 </p> 3990 <table class="table table-striped table-borderless" style="border:none"> 3991 <thead class="border-bottom"> 3992 <tr> 3993 <th>Field</th> 3994 <th>Description</th> 3995 </tr> 3996 </thead> 3997 <tbody class="border-top"> 3998 <tr> 3999 <td> 4000 <code>apiVersion</code> 4001 <br> 4002 string</td> 4003 <td> 4004 <code> 4005 projectcontour.io/v1alpha1 4006 </code> 4007 </td> 4008 </tr> 4009 <tr> 4010 <td> 4011 <code>kind</code> 4012 <br> 4013 string 4014 </td> 4015 <td><code>ExtensionService</code></td> 4016 </tr> 4017 <tr> 4018 <td style="white-space:nowrap"> 4019 <code>metadata</code> 4020 <br> 4021 <em> 4022 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 4023 Kubernetes meta/v1.ObjectMeta 4024 </a> 4025 </em> 4026 </td> 4027 <td> 4028 Refer to the Kubernetes API documentation for the fields of the 4029 <code>metadata</code> field. 4030 </td> 4031 </tr> 4032 <tr> 4033 <td style="white-space:nowrap"> 4034 <code>spec</code> 4035 <br> 4036 <em> 4037 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec"> 4038 ExtensionServiceSpec 4039 </a> 4040 </em> 4041 </td> 4042 <td> 4043 <br> 4044 <br> 4045 <table style="border:none"> 4046 <tr> 4047 <td style="white-space:nowrap"> 4048 <code>services</code> 4049 <br> 4050 <em> 4051 <a href="#projectcontour.io/v1alpha1.ExtensionServiceTarget"> 4052 []ExtensionServiceTarget 4053 </a> 4054 </em> 4055 </td> 4056 <td> 4057 <p>Services specifies the set of Kubernetes Service resources that 4058 receive GRPC extension API requests. 4059 If no weights are specified for any of the entries in 4060 this array, traffic will be spread evenly across all the 4061 services. 4062 Otherwise, traffic is balanced proportionally to the 4063 Weight field in each entry.</p> 4064 </td> 4065 </tr> 4066 <tr> 4067 <td style="white-space:nowrap"> 4068 <code>validation</code> 4069 <br> 4070 <em> 4071 <a href="#projectcontour.io/v1.UpstreamValidation"> 4072 UpstreamValidation 4073 </a> 4074 </em> 4075 </td> 4076 <td> 4077 <em>(Optional)</em> 4078 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 4079 </td> 4080 </tr> 4081 <tr> 4082 <td style="white-space:nowrap"> 4083 <code>protocol</code> 4084 <br> 4085 <em> 4086 string 4087 </em> 4088 </td> 4089 <td> 4090 <em>(Optional)</em> 4091 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 4092 Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.</p> 4093 </td> 4094 </tr> 4095 <tr> 4096 <td style="white-space:nowrap"> 4097 <code>loadBalancerPolicy</code> 4098 <br> 4099 <em> 4100 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 4101 LoadBalancerPolicy 4102 </a> 4103 </em> 4104 </td> 4105 <td> 4106 <em>(Optional)</em> 4107 <p>The policy for load balancing GRPC service requests. Note that the 4108 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 4109 here.</p> 4110 </td> 4111 </tr> 4112 <tr> 4113 <td style="white-space:nowrap"> 4114 <code>timeoutPolicy</code> 4115 <br> 4116 <em> 4117 <a href="#projectcontour.io/v1.TimeoutPolicy"> 4118 TimeoutPolicy 4119 </a> 4120 </em> 4121 </td> 4122 <td> 4123 <em>(Optional)</em> 4124 <p>The timeout policy for requests to the services.</p> 4125 </td> 4126 </tr> 4127 <tr> 4128 <td style="white-space:nowrap"> 4129 <code>protocolVersion</code> 4130 <br> 4131 <em> 4132 <a href="#projectcontour.io/v1alpha1.ExtensionProtocolVersion"> 4133 ExtensionProtocolVersion 4134 </a> 4135 </em> 4136 </td> 4137 <td> 4138 <em>(Optional)</em> 4139 <p>This field sets the version of the GRPC protocol that Envoy uses to 4140 send requests to the extension service. Since Contour always uses the 4141 v3 Envoy API, this is currently fixed at “v3”. However, other 4142 protocol options will be available in future.</p> 4143 </td> 4144 </tr> 4145 </table> 4146 </td> 4147 </tr> 4148 <tr> 4149 <td style="white-space:nowrap"> 4150 <code>status</code> 4151 <br> 4152 <em> 4153 <a href="#projectcontour.io/v1alpha1.ExtensionServiceStatus"> 4154 ExtensionServiceStatus 4155 </a> 4156 </em> 4157 </td> 4158 <td> 4159 </td> 4160 </tr> 4161 </tbody> 4162 </table> 4163 <h3 id="projectcontour.io/v1alpha1.AccessLogFields">AccessLogFields 4164 (<code>[]string</code> alias)</h3> 4165 <p> 4166 (<em>Appears on:</em> 4167 <a href="#projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging</a>) 4168 </p> 4169 <p> 4170 </p> 4171 <h3 id="projectcontour.io/v1alpha1.AccessLogType">AccessLogType 4172 (<code>string</code> alias)</h3> 4173 <p> 4174 (<em>Appears on:</em> 4175 <a href="#projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging</a>) 4176 </p> 4177 <p> 4178 <p>AccessLogType is the name of a supported access logging mechanism.</p> 4179 </p> 4180 <h3 id="projectcontour.io/v1alpha1.ClusterDNSFamilyType">ClusterDNSFamilyType 4181 (<code>string</code> alias)</h3> 4182 <p> 4183 (<em>Appears on:</em> 4184 <a href="#projectcontour.io/v1alpha1.ClusterParameters">ClusterParameters</a>) 4185 </p> 4186 <p> 4187 <p>ClusterDNSFamilyType is the Ip family to use for resolving DNS 4188 names in an Envoy cluster config.</p> 4189 </p> 4190 <h3 id="projectcontour.io/v1alpha1.ClusterParameters">ClusterParameters 4191 </h3> 4192 <p> 4193 (<em>Appears on:</em> 4194 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 4195 </p> 4196 <p> 4197 <p>ClusterParameters holds various configurable cluster values.</p> 4198 </p> 4199 <table class="table table-striped table-borderless" style="border:none"> 4200 <thead class="border-bottom"> 4201 <tr> 4202 <th>Field</th> 4203 <th>Description</th> 4204 </tr> 4205 </thead> 4206 <tbody class="border-top"> 4207 <tr> 4208 <td style="white-space:nowrap"> 4209 <code>dnsLookupFamily</code> 4210 <br> 4211 <em> 4212 <a href="#projectcontour.io/v1alpha1.ClusterDNSFamilyType"> 4213 ClusterDNSFamilyType 4214 </a> 4215 </em> 4216 </td> 4217 <td> 4218 <p>DNSLookupFamily defines how external names are looked up 4219 When configured as V4, the DNS resolver will only perform a lookup 4220 for addresses in the IPv4 family. If V6 is configured, the DNS resolver 4221 will only perform a lookup for addresses in the IPv6 family. 4222 If AUTO is configured, the DNS resolver will first perform a lookup 4223 for addresses in the IPv6 family and fallback to a lookup for addresses 4224 in the IPv4 family. 4225 Note: This only applies to externalName clusters.</p> 4226 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto.html#envoy-v3-api-enum-config-cluster-v3-cluster-dnslookupfamily">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto.html#envoy-v3-api-enum-config-cluster-v3-cluster-dnslookupfamily</a> 4227 for more information.</p> 4228 </td> 4229 </tr> 4230 </tbody> 4231 </table> 4232 <h3 id="projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec 4233 </h3> 4234 <p> 4235 (<em>Appears on:</em> 4236 <a href="#projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration</a>, 4237 <a href="#projectcontour.io/v1alpha1.ContourDeploymentSpec">ContourDeploymentSpec</a>) 4238 </p> 4239 <p> 4240 <p>ContourConfigurationSpec represents a configuration of a Contour controller. 4241 It contains most of all the options that can be customized, the 4242 other remaining options being command line flags.</p> 4243 </p> 4244 <table class="table table-striped table-borderless" style="border:none"> 4245 <thead class="border-bottom"> 4246 <tr> 4247 <th>Field</th> 4248 <th>Description</th> 4249 </tr> 4250 </thead> 4251 <tbody class="border-top"> 4252 <tr> 4253 <td style="white-space:nowrap"> 4254 <code>xdsServer</code> 4255 <br> 4256 <em> 4257 <a href="#projectcontour.io/v1alpha1.XDSServerConfig"> 4258 XDSServerConfig 4259 </a> 4260 </em> 4261 </td> 4262 <td> 4263 <em>(Optional)</em> 4264 <p>XDSServer contains parameters for the xDS server.</p> 4265 </td> 4266 </tr> 4267 <tr> 4268 <td style="white-space:nowrap"> 4269 <code>ingress</code> 4270 <br> 4271 <em> 4272 <a href="#projectcontour.io/v1alpha1.IngressConfig"> 4273 IngressConfig 4274 </a> 4275 </em> 4276 </td> 4277 <td> 4278 <em>(Optional)</em> 4279 <p>Ingress contains parameters for ingress options.</p> 4280 </td> 4281 </tr> 4282 <tr> 4283 <td style="white-space:nowrap"> 4284 <code>debug</code> 4285 <br> 4286 <em> 4287 <a href="#projectcontour.io/v1alpha1.DebugConfig"> 4288 DebugConfig 4289 </a> 4290 </em> 4291 </td> 4292 <td> 4293 <em>(Optional)</em> 4294 <p>Debug contains parameters to enable debug logging 4295 and debug interfaces inside Contour.</p> 4296 </td> 4297 </tr> 4298 <tr> 4299 <td style="white-space:nowrap"> 4300 <code>health</code> 4301 <br> 4302 <em> 4303 <a href="#projectcontour.io/v1alpha1.HealthConfig"> 4304 HealthConfig 4305 </a> 4306 </em> 4307 </td> 4308 <td> 4309 <em>(Optional)</em> 4310 <p>Health defines the endpoints Contour uses to serve health checks.</p> 4311 </td> 4312 </tr> 4313 <tr> 4314 <td style="white-space:nowrap"> 4315 <code>envoy</code> 4316 <br> 4317 <em> 4318 <a href="#projectcontour.io/v1alpha1.EnvoyConfig"> 4319 EnvoyConfig 4320 </a> 4321 </em> 4322 </td> 4323 <td> 4324 <em>(Optional)</em> 4325 <p>Envoy contains parameters for Envoy as well 4326 as how to optionally configure a managed Envoy fleet.</p> 4327 </td> 4328 </tr> 4329 <tr> 4330 <td style="white-space:nowrap"> 4331 <code>gateway</code> 4332 <br> 4333 <em> 4334 <a href="#projectcontour.io/v1alpha1.GatewayConfig"> 4335 GatewayConfig 4336 </a> 4337 </em> 4338 </td> 4339 <td> 4340 <em>(Optional)</em> 4341 <p>Gateway contains parameters for the gateway-api Gateway that Contour 4342 is configured to serve traffic.</p> 4343 </td> 4344 </tr> 4345 <tr> 4346 <td style="white-space:nowrap"> 4347 <code>httpproxy</code> 4348 <br> 4349 <em> 4350 <a href="#projectcontour.io/v1alpha1.HTTPProxyConfig"> 4351 HTTPProxyConfig 4352 </a> 4353 </em> 4354 </td> 4355 <td> 4356 <em>(Optional)</em> 4357 <p>HTTPProxy defines parameters on HTTPProxy.</p> 4358 </td> 4359 </tr> 4360 <tr> 4361 <td style="white-space:nowrap"> 4362 <code>enableExternalNameService</code> 4363 <br> 4364 <em> 4365 bool 4366 </em> 4367 </td> 4368 <td> 4369 <em>(Optional)</em> 4370 <p>EnableExternalNameService allows processing of ExternalNameServices 4371 Defaults to disabled for security reasons.</p> 4372 </td> 4373 </tr> 4374 <tr> 4375 <td style="white-space:nowrap"> 4376 <code>rateLimitService</code> 4377 <br> 4378 <em> 4379 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig"> 4380 RateLimitServiceConfig 4381 </a> 4382 </em> 4383 </td> 4384 <td> 4385 <em>(Optional)</em> 4386 <p>RateLimitService optionally holds properties of the Rate Limit Service 4387 to be used for global rate limiting.</p> 4388 </td> 4389 </tr> 4390 <tr> 4391 <td style="white-space:nowrap"> 4392 <code>policy</code> 4393 <br> 4394 <em> 4395 <a href="#projectcontour.io/v1alpha1.PolicyConfig"> 4396 PolicyConfig 4397 </a> 4398 </em> 4399 </td> 4400 <td> 4401 <em>(Optional)</em> 4402 <p>Policy specifies default policy applied if not overridden by the user</p> 4403 </td> 4404 </tr> 4405 <tr> 4406 <td style="white-space:nowrap"> 4407 <code>metrics</code> 4408 <br> 4409 <em> 4410 <a href="#projectcontour.io/v1alpha1.MetricsConfig"> 4411 MetricsConfig 4412 </a> 4413 </em> 4414 </td> 4415 <td> 4416 <em>(Optional)</em> 4417 <p>Metrics defines the endpoint Contour uses to serve metrics.</p> 4418 </td> 4419 </tr> 4420 </tbody> 4421 </table> 4422 <h3 id="projectcontour.io/v1alpha1.ContourConfigurationStatus">ContourConfigurationStatus 4423 </h3> 4424 <p> 4425 (<em>Appears on:</em> 4426 <a href="#projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration</a>) 4427 </p> 4428 <p> 4429 <p>ContourConfigurationStatus defines the observed state of a ContourConfiguration resource.</p> 4430 </p> 4431 <table class="table table-striped table-borderless" style="border:none"> 4432 <thead class="border-bottom"> 4433 <tr> 4434 <th>Field</th> 4435 <th>Description</th> 4436 </tr> 4437 </thead> 4438 <tbody class="border-top"> 4439 <tr> 4440 <td style="white-space:nowrap"> 4441 <code>conditions</code> 4442 <br> 4443 <em> 4444 <a href="#projectcontour.io/v1.DetailedCondition"> 4445 []DetailedCondition 4446 </a> 4447 </em> 4448 </td> 4449 <td> 4450 <em>(Optional)</em> 4451 <p>Conditions contains the current status of the Contour resource.</p> 4452 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity.</p> 4453 <p>Contour will not modify any other Conditions set in this block, 4454 in case some other controller wants to add a Condition.</p> 4455 </td> 4456 </tr> 4457 </tbody> 4458 </table> 4459 <h3 id="projectcontour.io/v1alpha1.ContourDeploymentSpec">ContourDeploymentSpec 4460 </h3> 4461 <p> 4462 (<em>Appears on:</em> 4463 <a href="#projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment</a>) 4464 </p> 4465 <p> 4466 <p>ContourDeploymentSpec defines the parameters of how a Contour 4467 instance should be configured.</p> 4468 </p> 4469 <table class="table table-striped table-borderless" style="border:none"> 4470 <thead class="border-bottom"> 4471 <tr> 4472 <th>Field</th> 4473 <th>Description</th> 4474 </tr> 4475 </thead> 4476 <tbody class="border-top"> 4477 <tr> 4478 <td style="white-space:nowrap"> 4479 <code>replicas</code> 4480 <br> 4481 <em> 4482 int32 4483 </em> 4484 </td> 4485 <td> 4486 <p>Replicas is the desired number of Contour replicas. If unset, 4487 defaults to 2.</p> 4488 </td> 4489 </tr> 4490 <tr> 4491 <td style="white-space:nowrap"> 4492 <code>config</code> 4493 <br> 4494 <em> 4495 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec"> 4496 ContourConfigurationSpec 4497 </a> 4498 </em> 4499 </td> 4500 <td> 4501 <p>Config is the config that the instances of Contour are to utilize.</p> 4502 </td> 4503 </tr> 4504 </tbody> 4505 </table> 4506 <h3 id="projectcontour.io/v1alpha1.ContourDeploymentStatus">ContourDeploymentStatus 4507 </h3> 4508 <p> 4509 (<em>Appears on:</em> 4510 <a href="#projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment</a>) 4511 </p> 4512 <p> 4513 <p>ContourDeploymentStatus defines the observed state of a ContourDeployment resource.</p> 4514 </p> 4515 <table class="table table-striped table-borderless" style="border:none"> 4516 <thead class="border-bottom"> 4517 <tr> 4518 <th>Field</th> 4519 <th>Description</th> 4520 </tr> 4521 </thead> 4522 <tbody class="border-top"> 4523 <tr> 4524 <td style="white-space:nowrap"> 4525 <code>conditions</code> 4526 <br> 4527 <em> 4528 <a href="#projectcontour.io/v1.DetailedCondition"> 4529 []DetailedCondition 4530 </a> 4531 </em> 4532 </td> 4533 <td> 4534 <em>(Optional)</em> 4535 <p>Conditions contains the current status of the Contour resource.</p> 4536 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity.</p> 4537 <p>Contour will not modify any other Conditions set in this block, 4538 in case some other controller wants to add a Condition.</p> 4539 </td> 4540 </tr> 4541 </tbody> 4542 </table> 4543 <h3 id="projectcontour.io/v1alpha1.DebugConfig">DebugConfig 4544 </h3> 4545 <p> 4546 (<em>Appears on:</em> 4547 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 4548 </p> 4549 <p> 4550 <p>DebugConfig contains Contour specific troubleshooting options.</p> 4551 </p> 4552 <table class="table table-striped table-borderless" style="border:none"> 4553 <thead class="border-bottom"> 4554 <tr> 4555 <th>Field</th> 4556 <th>Description</th> 4557 </tr> 4558 </thead> 4559 <tbody class="border-top"> 4560 <tr> 4561 <td style="white-space:nowrap"> 4562 <code>address</code> 4563 <br> 4564 <em> 4565 string 4566 </em> 4567 </td> 4568 <td> 4569 <em>(Optional)</em> 4570 <p>Defines the Contour debug address interface.</p> 4571 </td> 4572 </tr> 4573 <tr> 4574 <td style="white-space:nowrap"> 4575 <code>port</code> 4576 <br> 4577 <em> 4578 int 4579 </em> 4580 </td> 4581 <td> 4582 <em>(Optional)</em> 4583 <p>Defines the Contour debug address port.</p> 4584 </td> 4585 </tr> 4586 <tr> 4587 <td style="white-space:nowrap"> 4588 <code>logLevel</code> 4589 <br> 4590 <em> 4591 <a href="#projectcontour.io/v1alpha1.LogLevel"> 4592 LogLevel 4593 </a> 4594 </em> 4595 </td> 4596 <td> 4597 <p>DebugLogLevel defines the log level which Contour will 4598 use when outputting log information.</p> 4599 </td> 4600 </tr> 4601 <tr> 4602 <td style="white-space:nowrap"> 4603 <code>kubernetesLogLevel</code> 4604 <br> 4605 <em> 4606 uint 4607 </em> 4608 </td> 4609 <td> 4610 <em>(Optional)</em> 4611 <p>KubernetesDebugLogLevel defines the log level which Contour will 4612 use when outputting Kubernetes specific log information.</p> 4613 <p>Details: <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md">https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md</a></p> 4614 </td> 4615 </tr> 4616 </tbody> 4617 </table> 4618 <h3 id="projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig 4619 </h3> 4620 <p> 4621 (<em>Appears on:</em> 4622 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 4623 </p> 4624 <p> 4625 <p>EnvoyConfig defines how Envoy is to be Configured from Contour.</p> 4626 </p> 4627 <table class="table table-striped table-borderless" style="border:none"> 4628 <thead class="border-bottom"> 4629 <tr> 4630 <th>Field</th> 4631 <th>Description</th> 4632 </tr> 4633 </thead> 4634 <tbody class="border-top"> 4635 <tr> 4636 <td style="white-space:nowrap"> 4637 <code>listener</code> 4638 <br> 4639 <em> 4640 <a href="#projectcontour.io/v1alpha1.EnvoyListenerConfig"> 4641 EnvoyListenerConfig 4642 </a> 4643 </em> 4644 </td> 4645 <td> 4646 <p>Listener hold various configurable Envoy listener values.</p> 4647 </td> 4648 </tr> 4649 <tr> 4650 <td style="white-space:nowrap"> 4651 <code>service</code> 4652 <br> 4653 <em> 4654 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 4655 NamespacedName 4656 </a> 4657 </em> 4658 </td> 4659 <td> 4660 <p>Service holds Envoy service parameters for setting Ingress status.</p> 4661 </td> 4662 </tr> 4663 <tr> 4664 <td style="white-space:nowrap"> 4665 <code>http</code> 4666 <br> 4667 <em> 4668 <a href="#projectcontour.io/v1alpha1.EnvoyListener"> 4669 EnvoyListener 4670 </a> 4671 </em> 4672 </td> 4673 <td> 4674 <p>Defines the HTTP Listener for Envoy.</p> 4675 </td> 4676 </tr> 4677 <tr> 4678 <td style="white-space:nowrap"> 4679 <code>https</code> 4680 <br> 4681 <em> 4682 <a href="#projectcontour.io/v1alpha1.EnvoyListener"> 4683 EnvoyListener 4684 </a> 4685 </em> 4686 </td> 4687 <td> 4688 <p>Defines the HTTP Listener for Envoy.</p> 4689 </td> 4690 </tr> 4691 <tr> 4692 <td style="white-space:nowrap"> 4693 <code>health</code> 4694 <br> 4695 <em> 4696 <a href="#projectcontour.io/v1alpha1.HealthConfig"> 4697 HealthConfig 4698 </a> 4699 </em> 4700 </td> 4701 <td> 4702 <em>(Optional)</em> 4703 <p>Health defines the endpoint Envoy uses to serve health checks.</p> 4704 </td> 4705 </tr> 4706 <tr> 4707 <td style="white-space:nowrap"> 4708 <code>metrics</code> 4709 <br> 4710 <em> 4711 <a href="#projectcontour.io/v1alpha1.MetricsConfig"> 4712 MetricsConfig 4713 </a> 4714 </em> 4715 </td> 4716 <td> 4717 <p>Metrics defines the endpoint Envoy uses to serve metrics.</p> 4718 </td> 4719 </tr> 4720 <tr> 4721 <td style="white-space:nowrap"> 4722 <code>clientCertificate</code> 4723 <br> 4724 <em> 4725 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 4726 NamespacedName 4727 </a> 4728 </em> 4729 </td> 4730 <td> 4731 <em>(Optional)</em> 4732 <p>ClientCertificate defines the namespace/name of the Kubernetes 4733 secret containing the client certificate and private key 4734 to be used when establishing TLS connection to upstream 4735 cluster.</p> 4736 </td> 4737 </tr> 4738 <tr> 4739 <td style="white-space:nowrap"> 4740 <code>logging</code> 4741 <br> 4742 <em> 4743 <a href="#projectcontour.io/v1alpha1.EnvoyLogging"> 4744 EnvoyLogging 4745 </a> 4746 </em> 4747 </td> 4748 <td> 4749 <p>Logging defines how Envoy’s logs can be configured.</p> 4750 </td> 4751 </tr> 4752 <tr> 4753 <td style="white-space:nowrap"> 4754 <code>defaultHTTPVersions</code> 4755 <br> 4756 <em> 4757 <a href="#projectcontour.io/v1alpha1.HTTPVersionType"> 4758 []HTTPVersionType 4759 </a> 4760 </em> 4761 </td> 4762 <td> 4763 <p>DefaultHTTPVersions defines the default set of HTTPS 4764 versions the proxy should accept. HTTP versions are 4765 strings of the form “HTTP/xx”. Supported versions are 4766 “HTTP/1.1” and “HTTP/2”.</p> 4767 </td> 4768 </tr> 4769 <tr> 4770 <td style="white-space:nowrap"> 4771 <code>timeouts</code> 4772 <br> 4773 <em> 4774 <a href="#projectcontour.io/v1alpha1.TimeoutParameters"> 4775 TimeoutParameters 4776 </a> 4777 </em> 4778 </td> 4779 <td> 4780 <em>(Optional)</em> 4781 <p>Timeouts holds various configurable timeouts that can 4782 be set in the config file.</p> 4783 </td> 4784 </tr> 4785 <tr> 4786 <td style="white-space:nowrap"> 4787 <code>cluster</code> 4788 <br> 4789 <em> 4790 <a href="#projectcontour.io/v1alpha1.ClusterParameters"> 4791 ClusterParameters 4792 </a> 4793 </em> 4794 </td> 4795 <td> 4796 <p>Cluster holds various configurable Envoy cluster values that can 4797 be set in the config file.</p> 4798 </td> 4799 </tr> 4800 <tr> 4801 <td style="white-space:nowrap"> 4802 <code>network</code> 4803 <br> 4804 <em> 4805 <a href="#projectcontour.io/v1alpha1.NetworkParameters"> 4806 NetworkParameters 4807 </a> 4808 </em> 4809 </td> 4810 <td> 4811 <p>Network holds various configurable Envoy network values.</p> 4812 </td> 4813 </tr> 4814 </tbody> 4815 </table> 4816 <h3 id="projectcontour.io/v1alpha1.EnvoyListener">EnvoyListener 4817 </h3> 4818 <p> 4819 (<em>Appears on:</em> 4820 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 4821 </p> 4822 <p> 4823 <p>EnvoyListener defines parameters for an Envoy Listener.</p> 4824 </p> 4825 <table class="table table-striped table-borderless" style="border:none"> 4826 <thead class="border-bottom"> 4827 <tr> 4828 <th>Field</th> 4829 <th>Description</th> 4830 </tr> 4831 </thead> 4832 <tbody class="border-top"> 4833 <tr> 4834 <td style="white-space:nowrap"> 4835 <code>address</code> 4836 <br> 4837 <em> 4838 string 4839 </em> 4840 </td> 4841 <td> 4842 <p>Defines an Envoy Listener Address.</p> 4843 </td> 4844 </tr> 4845 <tr> 4846 <td style="white-space:nowrap"> 4847 <code>port</code> 4848 <br> 4849 <em> 4850 int 4851 </em> 4852 </td> 4853 <td> 4854 <p>Defines an Envoy listener Port.</p> 4855 </td> 4856 </tr> 4857 <tr> 4858 <td style="white-space:nowrap"> 4859 <code>accessLog</code> 4860 <br> 4861 <em> 4862 string 4863 </em> 4864 </td> 4865 <td> 4866 <p>AccessLog defines where Envoy logs are outputted for this listener.</p> 4867 </td> 4868 </tr> 4869 </tbody> 4870 </table> 4871 <h3 id="projectcontour.io/v1alpha1.EnvoyListenerConfig">EnvoyListenerConfig 4872 </h3> 4873 <p> 4874 (<em>Appears on:</em> 4875 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 4876 </p> 4877 <p> 4878 <p>EnvoyListenerConfig hold various configurable Envoy listener values.</p> 4879 </p> 4880 <table class="table table-striped table-borderless" style="border:none"> 4881 <thead class="border-bottom"> 4882 <tr> 4883 <th>Field</th> 4884 <th>Description</th> 4885 </tr> 4886 </thead> 4887 <tbody class="border-top"> 4888 <tr> 4889 <td style="white-space:nowrap"> 4890 <code>useProxyProtocol</code> 4891 <br> 4892 <em> 4893 bool 4894 </em> 4895 </td> 4896 <td> 4897 <p>Use PROXY protocol for all listeners.</p> 4898 </td> 4899 </tr> 4900 <tr> 4901 <td style="white-space:nowrap"> 4902 <code>disableAllowChunkedLength</code> 4903 <br> 4904 <em> 4905 bool 4906 </em> 4907 </td> 4908 <td> 4909 <p>DisableAllowChunkedLength disables the RFC-compliant Envoy behavior to 4910 strip the “Content-Length” header if “Transfer-Encoding: chunked” is 4911 also set. This is an emergency off-switch to revert back to Envoy’s 4912 default behavior in case of failures. Please file an issue if failures 4913 are encountered. 4914 See: <a href="https://github.com/projectcontour/contour/issues/3221">https://github.com/projectcontour/contour/issues/3221</a></p> 4915 </td> 4916 </tr> 4917 <tr> 4918 <td style="white-space:nowrap"> 4919 <code>connectionBalancer</code> 4920 <br> 4921 <em> 4922 string 4923 </em> 4924 </td> 4925 <td> 4926 <p>ConnectionBalancer. If the value is exact, the listener will use the exact connection balancer 4927 See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/listener.proto#envoy-api-msg-listener-connectionbalanceconfig">https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/listener.proto#envoy-api-msg-listener-connectionbalanceconfig</a> 4928 for more information.</p> 4929 </td> 4930 </tr> 4931 <tr> 4932 <td style="white-space:nowrap"> 4933 <code>tls</code> 4934 <br> 4935 <em> 4936 <a href="#projectcontour.io/v1alpha1.EnvoyTLS"> 4937 EnvoyTLS 4938 </a> 4939 </em> 4940 </td> 4941 <td> 4942 <p>TLS holds various configurable Envoy TLS listener values.</p> 4943 </td> 4944 </tr> 4945 </tbody> 4946 </table> 4947 <h3 id="projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging 4948 </h3> 4949 <p> 4950 (<em>Appears on:</em> 4951 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 4952 </p> 4953 <p> 4954 <p>EnvoyLogging defines how Envoy’s logs can be configured.</p> 4955 </p> 4956 <table class="table table-striped table-borderless" style="border:none"> 4957 <thead class="border-bottom"> 4958 <tr> 4959 <th>Field</th> 4960 <th>Description</th> 4961 </tr> 4962 </thead> 4963 <tbody class="border-top"> 4964 <tr> 4965 <td style="white-space:nowrap"> 4966 <code>accessLogFormat</code> 4967 <br> 4968 <em> 4969 <a href="#projectcontour.io/v1alpha1.AccessLogType"> 4970 AccessLogType 4971 </a> 4972 </em> 4973 </td> 4974 <td> 4975 <p>AccessLogFormat sets the global access log format. 4976 Valid options are ‘envoy’ or ‘json’</p> 4977 </td> 4978 </tr> 4979 <tr> 4980 <td style="white-space:nowrap"> 4981 <code>accessLogFormatString</code> 4982 <br> 4983 <em> 4984 string 4985 </em> 4986 </td> 4987 <td> 4988 <em>(Optional)</em> 4989 <p>AccessLogFormatString sets the access log format when format is set to <code>envoy</code>. 4990 When empty, Envoy’s default format is used.</p> 4991 </td> 4992 </tr> 4993 <tr> 4994 <td style="white-space:nowrap"> 4995 <code>jsonFields</code> 4996 <br> 4997 <em> 4998 <a href="#projectcontour.io/v1alpha1.AccessLogFields"> 4999 AccessLogFields 5000 </a> 5001 </em> 5002 </td> 5003 <td> 5004 <em>(Optional)</em> 5005 <p>AccessLogFields sets the fields that JSON logging will 5006 output when AccessLogFormat is json.</p> 5007 </td> 5008 </tr> 5009 </tbody> 5010 </table> 5011 <h3 id="projectcontour.io/v1alpha1.EnvoyTLS">EnvoyTLS 5012 </h3> 5013 <p> 5014 (<em>Appears on:</em> 5015 <a href="#projectcontour.io/v1alpha1.EnvoyListenerConfig">EnvoyListenerConfig</a>) 5016 </p> 5017 <p> 5018 <p>EnvoyTLS describes tls parameters for Envoy listneners.</p> 5019 </p> 5020 <table class="table table-striped table-borderless" style="border:none"> 5021 <thead class="border-bottom"> 5022 <tr> 5023 <th>Field</th> 5024 <th>Description</th> 5025 </tr> 5026 </thead> 5027 <tbody class="border-top"> 5028 <tr> 5029 <td style="white-space:nowrap"> 5030 <code>minimumProtocolVersion</code> 5031 <br> 5032 <em> 5033 string 5034 </em> 5035 </td> 5036 <td> 5037 <p>MinimumProtocolVersion is the minimum TLS version this vhost should 5038 negotiate. Valid options are <code>1.2</code> (default) and <code>1.3</code>.</p> 5039 </td> 5040 </tr> 5041 <tr> 5042 <td style="white-space:nowrap"> 5043 <code>cipherSuites</code> 5044 <br> 5045 <em> 5046 <a href="#projectcontour.io/v1alpha1.TLSCipherType"> 5047 []TLSCipherType 5048 </a> 5049 </em> 5050 </td> 5051 <td> 5052 <p>CipherSuites defines the TLS ciphers to be supported by Envoy TLS 5053 listeners when negotiating TLS 1.2. Ciphers are validated against the 5054 set that Envoy supports by default. This parameter should only be used 5055 by advanced users. Note that these will be ignored when TLS 1.3 is in 5056 use.</p> 5057 <p>See: <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto#extensions-transport-sockets-tls-v3-tlsparameters">https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto#extensions-transport-sockets-tls-v3-tlsparameters</a> 5058 Note: This list is a superset of what is valid for stock Envoy builds and those using BoringSSL FIPS.</p> 5059 </td> 5060 </tr> 5061 </tbody> 5062 </table> 5063 <h3 id="projectcontour.io/v1alpha1.ExtensionProtocolVersion">ExtensionProtocolVersion 5064 (<code>string</code> alias)</h3> 5065 <p> 5066 (<em>Appears on:</em> 5067 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 5068 </p> 5069 <p> 5070 <p>ExtensionProtocolVersion is the version of the GRPC protocol used 5071 to access extension services. The only version currently supported 5072 is “v3”.</p> 5073 </p> 5074 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec 5075 </h3> 5076 <p> 5077 (<em>Appears on:</em> 5078 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a>) 5079 </p> 5080 <p> 5081 <p>ExtensionServiceSpec defines the desired state of an ExtensionService resource.</p> 5082 </p> 5083 <table class="table table-striped table-borderless" style="border:none"> 5084 <thead class="border-bottom"> 5085 <tr> 5086 <th>Field</th> 5087 <th>Description</th> 5088 </tr> 5089 </thead> 5090 <tbody class="border-top"> 5091 <tr> 5092 <td style="white-space:nowrap"> 5093 <code>services</code> 5094 <br> 5095 <em> 5096 <a href="#projectcontour.io/v1alpha1.ExtensionServiceTarget"> 5097 []ExtensionServiceTarget 5098 </a> 5099 </em> 5100 </td> 5101 <td> 5102 <p>Services specifies the set of Kubernetes Service resources that 5103 receive GRPC extension API requests. 5104 If no weights are specified for any of the entries in 5105 this array, traffic will be spread evenly across all the 5106 services. 5107 Otherwise, traffic is balanced proportionally to the 5108 Weight field in each entry.</p> 5109 </td> 5110 </tr> 5111 <tr> 5112 <td style="white-space:nowrap"> 5113 <code>validation</code> 5114 <br> 5115 <em> 5116 <a href="#projectcontour.io/v1.UpstreamValidation"> 5117 UpstreamValidation 5118 </a> 5119 </em> 5120 </td> 5121 <td> 5122 <em>(Optional)</em> 5123 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 5124 </td> 5125 </tr> 5126 <tr> 5127 <td style="white-space:nowrap"> 5128 <code>protocol</code> 5129 <br> 5130 <em> 5131 string 5132 </em> 5133 </td> 5134 <td> 5135 <em>(Optional)</em> 5136 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 5137 Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.</p> 5138 </td> 5139 </tr> 5140 <tr> 5141 <td style="white-space:nowrap"> 5142 <code>loadBalancerPolicy</code> 5143 <br> 5144 <em> 5145 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 5146 LoadBalancerPolicy 5147 </a> 5148 </em> 5149 </td> 5150 <td> 5151 <em>(Optional)</em> 5152 <p>The policy for load balancing GRPC service requests. Note that the 5153 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 5154 here.</p> 5155 </td> 5156 </tr> 5157 <tr> 5158 <td style="white-space:nowrap"> 5159 <code>timeoutPolicy</code> 5160 <br> 5161 <em> 5162 <a href="#projectcontour.io/v1.TimeoutPolicy"> 5163 TimeoutPolicy 5164 </a> 5165 </em> 5166 </td> 5167 <td> 5168 <em>(Optional)</em> 5169 <p>The timeout policy for requests to the services.</p> 5170 </td> 5171 </tr> 5172 <tr> 5173 <td style="white-space:nowrap"> 5174 <code>protocolVersion</code> 5175 <br> 5176 <em> 5177 <a href="#projectcontour.io/v1alpha1.ExtensionProtocolVersion"> 5178 ExtensionProtocolVersion 5179 </a> 5180 </em> 5181 </td> 5182 <td> 5183 <em>(Optional)</em> 5184 <p>This field sets the version of the GRPC protocol that Envoy uses to 5185 send requests to the extension service. Since Contour always uses the 5186 v3 Envoy API, this is currently fixed at “v3”. However, other 5187 protocol options will be available in future.</p> 5188 </td> 5189 </tr> 5190 </tbody> 5191 </table> 5192 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceStatus">ExtensionServiceStatus 5193 </h3> 5194 <p> 5195 (<em>Appears on:</em> 5196 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a>) 5197 </p> 5198 <p> 5199 <p>ExtensionServiceStatus defines the observed state of an 5200 ExtensionService resource.</p> 5201 </p> 5202 <table class="table table-striped table-borderless" style="border:none"> 5203 <thead class="border-bottom"> 5204 <tr> 5205 <th>Field</th> 5206 <th>Description</th> 5207 </tr> 5208 </thead> 5209 <tbody class="border-top"> 5210 <tr> 5211 <td style="white-space:nowrap"> 5212 <code>conditions</code> 5213 <br> 5214 <em> 5215 <a href="#projectcontour.io/v1.DetailedCondition"> 5216 []DetailedCondition 5217 </a> 5218 </em> 5219 </td> 5220 <td> 5221 <em>(Optional)</em> 5222 <p>Conditions contains the current status of the ExtensionService resource.</p> 5223 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity.</p> 5224 <p>Contour will not modify any other Conditions set in this block, 5225 in case some other controller wants to add a Condition.</p> 5226 </td> 5227 </tr> 5228 </tbody> 5229 </table> 5230 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceTarget">ExtensionServiceTarget 5231 </h3> 5232 <p> 5233 (<em>Appears on:</em> 5234 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 5235 </p> 5236 <p> 5237 <p>ExtensionServiceTarget defines an Kubernetes Service to target with 5238 extension service traffic.</p> 5239 </p> 5240 <table class="table table-striped table-borderless" style="border:none"> 5241 <thead class="border-bottom"> 5242 <tr> 5243 <th>Field</th> 5244 <th>Description</th> 5245 </tr> 5246 </thead> 5247 <tbody class="border-top"> 5248 <tr> 5249 <td style="white-space:nowrap"> 5250 <code>name</code> 5251 <br> 5252 <em> 5253 string 5254 </em> 5255 </td> 5256 <td> 5257 <p>Name is the name of Kubernetes service that will accept service 5258 traffic.</p> 5259 </td> 5260 </tr> 5261 <tr> 5262 <td style="white-space:nowrap"> 5263 <code>port</code> 5264 <br> 5265 <em> 5266 int 5267 </em> 5268 </td> 5269 <td> 5270 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 5271 </td> 5272 </tr> 5273 <tr> 5274 <td style="white-space:nowrap"> 5275 <code>weight</code> 5276 <br> 5277 <em> 5278 uint32 5279 </em> 5280 </td> 5281 <td> 5282 <em>(Optional)</em> 5283 <p>Weight defines proportion of traffic to balance to the Kubernetes Service.</p> 5284 </td> 5285 </tr> 5286 </tbody> 5287 </table> 5288 <h3 id="projectcontour.io/v1alpha1.GatewayConfig">GatewayConfig 5289 </h3> 5290 <p> 5291 (<em>Appears on:</em> 5292 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 5293 </p> 5294 <p> 5295 <p>GatewayConfig holds the config for Gateway API controllers.</p> 5296 </p> 5297 <table class="table table-striped table-borderless" style="border:none"> 5298 <thead class="border-bottom"> 5299 <tr> 5300 <th>Field</th> 5301 <th>Description</th> 5302 </tr> 5303 </thead> 5304 <tbody class="border-top"> 5305 <tr> 5306 <td style="white-space:nowrap"> 5307 <code>controllerName</code> 5308 <br> 5309 <em> 5310 string 5311 </em> 5312 </td> 5313 <td> 5314 <p>ControllerName is used to determine whether Contour should reconcile a 5315 GatewayClass. The string takes the form of “projectcontour.io/<namespace>/contour”. 5316 If unset, the gatewayclass controller will not be started.</p> 5317 </td> 5318 </tr> 5319 </tbody> 5320 </table> 5321 <h3 id="projectcontour.io/v1alpha1.HTTPProxyConfig">HTTPProxyConfig 5322 </h3> 5323 <p> 5324 (<em>Appears on:</em> 5325 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 5326 </p> 5327 <p> 5328 <p>HTTPProxyConfig defines parameters on HTTPProxy.</p> 5329 </p> 5330 <table class="table table-striped table-borderless" style="border:none"> 5331 <thead class="border-bottom"> 5332 <tr> 5333 <th>Field</th> 5334 <th>Description</th> 5335 </tr> 5336 </thead> 5337 <tbody class="border-top"> 5338 <tr> 5339 <td style="white-space:nowrap"> 5340 <code>disablePermitInsecure</code> 5341 <br> 5342 <em> 5343 bool 5344 </em> 5345 </td> 5346 <td> 5347 <p>DisablePermitInsecure disables the use of the 5348 permitInsecure field in HTTPProxy.</p> 5349 </td> 5350 </tr> 5351 <tr> 5352 <td style="white-space:nowrap"> 5353 <code>rootNamespaces</code> 5354 <br> 5355 <em> 5356 []string 5357 </em> 5358 </td> 5359 <td> 5360 <em>(Optional)</em> 5361 <p>Restrict Contour to searching these namespaces for root ingress routes.</p> 5362 </td> 5363 </tr> 5364 <tr> 5365 <td style="white-space:nowrap"> 5366 <code>fallbackCertificate</code> 5367 <br> 5368 <em> 5369 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 5370 NamespacedName 5371 </a> 5372 </em> 5373 </td> 5374 <td> 5375 <em>(Optional)</em> 5376 <p>FallbackCertificate defines the namespace/name of the Kubernetes secret to 5377 use as fallback when a non-SNI request is received.</p> 5378 </td> 5379 </tr> 5380 </tbody> 5381 </table> 5382 <h3 id="projectcontour.io/v1alpha1.HTTPVersionType">HTTPVersionType 5383 (<code>string</code> alias)</h3> 5384 <p> 5385 (<em>Appears on:</em> 5386 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 5387 </p> 5388 <p> 5389 <p>HTTPVersionType is the name of a supported HTTP version.</p> 5390 </p> 5391 <h3 id="projectcontour.io/v1alpha1.HeadersPolicy">HeadersPolicy 5392 </h3> 5393 <p> 5394 (<em>Appears on:</em> 5395 <a href="#projectcontour.io/v1alpha1.PolicyConfig">PolicyConfig</a>) 5396 </p> 5397 <p> 5398 </p> 5399 <table class="table table-striped table-borderless" style="border:none"> 5400 <thead class="border-bottom"> 5401 <tr> 5402 <th>Field</th> 5403 <th>Description</th> 5404 </tr> 5405 </thead> 5406 <tbody class="border-top"> 5407 <tr> 5408 <td style="white-space:nowrap"> 5409 <code>set</code> 5410 <br> 5411 <em> 5412 map[string]string 5413 </em> 5414 </td> 5415 <td> 5416 <em>(Optional)</em> 5417 </td> 5418 </tr> 5419 <tr> 5420 <td style="white-space:nowrap"> 5421 <code>remove</code> 5422 <br> 5423 <em> 5424 []string 5425 </em> 5426 </td> 5427 <td> 5428 <em>(Optional)</em> 5429 </td> 5430 </tr> 5431 </tbody> 5432 </table> 5433 <h3 id="projectcontour.io/v1alpha1.HealthConfig">HealthConfig 5434 </h3> 5435 <p> 5436 (<em>Appears on:</em> 5437 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>, 5438 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 5439 </p> 5440 <p> 5441 <p>HealthConfig defines the endpoints to enable health checks.</p> 5442 </p> 5443 <table class="table table-striped table-borderless" style="border:none"> 5444 <thead class="border-bottom"> 5445 <tr> 5446 <th>Field</th> 5447 <th>Description</th> 5448 </tr> 5449 </thead> 5450 <tbody class="border-top"> 5451 <tr> 5452 <td style="white-space:nowrap"> 5453 <code>address</code> 5454 <br> 5455 <em> 5456 string 5457 </em> 5458 </td> 5459 <td> 5460 <p>Defines the health address interface.</p> 5461 </td> 5462 </tr> 5463 <tr> 5464 <td style="white-space:nowrap"> 5465 <code>port</code> 5466 <br> 5467 <em> 5468 int 5469 </em> 5470 </td> 5471 <td> 5472 <p>Defines the health port.</p> 5473 </td> 5474 </tr> 5475 </tbody> 5476 </table> 5477 <h3 id="projectcontour.io/v1alpha1.IngressConfig">IngressConfig 5478 </h3> 5479 <p> 5480 (<em>Appears on:</em> 5481 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 5482 </p> 5483 <p> 5484 <p>IngressConfig defines ingress specific config items.</p> 5485 </p> 5486 <table class="table table-striped table-borderless" style="border:none"> 5487 <thead class="border-bottom"> 5488 <tr> 5489 <th>Field</th> 5490 <th>Description</th> 5491 </tr> 5492 </thead> 5493 <tbody class="border-top"> 5494 <tr> 5495 <td style="white-space:nowrap"> 5496 <code>className</code> 5497 <br> 5498 <em> 5499 string 5500 </em> 5501 </td> 5502 <td> 5503 <em>(Optional)</em> 5504 <p>Ingress Class Name Contour should use.</p> 5505 </td> 5506 </tr> 5507 <tr> 5508 <td style="white-space:nowrap"> 5509 <code>statusAddress</code> 5510 <br> 5511 <em> 5512 string 5513 </em> 5514 </td> 5515 <td> 5516 <em>(Optional)</em> 5517 <p>Address to set in Ingress object status.</p> 5518 </td> 5519 </tr> 5520 </tbody> 5521 </table> 5522 <h3 id="projectcontour.io/v1alpha1.LogLevel">LogLevel 5523 (<code>string</code> alias)</h3> 5524 <p> 5525 (<em>Appears on:</em> 5526 <a href="#projectcontour.io/v1alpha1.DebugConfig">DebugConfig</a>) 5527 </p> 5528 <p> 5529 <p>LogLevel is the logging levels available.</p> 5530 </p> 5531 <h3 id="projectcontour.io/v1alpha1.MetricsConfig">MetricsConfig 5532 </h3> 5533 <p> 5534 (<em>Appears on:</em> 5535 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>, 5536 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 5537 </p> 5538 <p> 5539 <p>MetricsConfig defines the metrics endpoint.</p> 5540 </p> 5541 <table class="table table-striped table-borderless" style="border:none"> 5542 <thead class="border-bottom"> 5543 <tr> 5544 <th>Field</th> 5545 <th>Description</th> 5546 </tr> 5547 </thead> 5548 <tbody class="border-top"> 5549 <tr> 5550 <td style="white-space:nowrap"> 5551 <code>address</code> 5552 <br> 5553 <em> 5554 string 5555 </em> 5556 </td> 5557 <td> 5558 <p>Defines the metrics address interface.</p> 5559 </td> 5560 </tr> 5561 <tr> 5562 <td style="white-space:nowrap"> 5563 <code>port</code> 5564 <br> 5565 <em> 5566 int 5567 </em> 5568 </td> 5569 <td> 5570 <p>Defines the metrics port.</p> 5571 </td> 5572 </tr> 5573 <tr> 5574 <td style="white-space:nowrap"> 5575 <code>tls</code> 5576 <br> 5577 <em> 5578 <a href="#projectcontour.io/v1alpha1.MetricsTLS"> 5579 MetricsTLS 5580 </a> 5581 </em> 5582 </td> 5583 <td> 5584 <em>(Optional)</em> 5585 <p>TLS holds TLS file config details. 5586 Metrics and health endpoints cannot have same port number when metrics is served over HTTPS.</p> 5587 </td> 5588 </tr> 5589 </tbody> 5590 </table> 5591 <h3 id="projectcontour.io/v1alpha1.MetricsTLS">MetricsTLS 5592 </h3> 5593 <p> 5594 (<em>Appears on:</em> 5595 <a href="#projectcontour.io/v1alpha1.MetricsConfig">MetricsConfig</a>) 5596 </p> 5597 <p> 5598 <p>TLS holds TLS file config details.</p> 5599 </p> 5600 <table class="table table-striped table-borderless" style="border:none"> 5601 <thead class="border-bottom"> 5602 <tr> 5603 <th>Field</th> 5604 <th>Description</th> 5605 </tr> 5606 </thead> 5607 <tbody class="border-top"> 5608 <tr> 5609 <td style="white-space:nowrap"> 5610 <code>caFile</code> 5611 <br> 5612 <em> 5613 string 5614 </em> 5615 </td> 5616 <td> 5617 <em>(Optional)</em> 5618 <p>CA filename.</p> 5619 </td> 5620 </tr> 5621 <tr> 5622 <td style="white-space:nowrap"> 5623 <code>certFile</code> 5624 <br> 5625 <em> 5626 string 5627 </em> 5628 </td> 5629 <td> 5630 <em>(Optional)</em> 5631 <p>Client certificate filename.</p> 5632 </td> 5633 </tr> 5634 <tr> 5635 <td style="white-space:nowrap"> 5636 <code>keyFile</code> 5637 <br> 5638 <em> 5639 string 5640 </em> 5641 </td> 5642 <td> 5643 <em>(Optional)</em> 5644 <p>Client key filename.</p> 5645 </td> 5646 </tr> 5647 </tbody> 5648 </table> 5649 <h3 id="projectcontour.io/v1alpha1.NamespacedName">NamespacedName 5650 </h3> 5651 <p> 5652 (<em>Appears on:</em> 5653 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>, 5654 <a href="#projectcontour.io/v1alpha1.HTTPProxyConfig">HTTPProxyConfig</a>, 5655 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig">RateLimitServiceConfig</a>) 5656 </p> 5657 <p> 5658 <p>NamespacedName defines the namespace/name of the Kubernetes resource referred from the config file. 5659 Used for Contour config YAML file parsing, otherwise we could use K8s types.NamespacedName.</p> 5660 </p> 5661 <table class="table table-striped table-borderless" style="border:none"> 5662 <thead class="border-bottom"> 5663 <tr> 5664 <th>Field</th> 5665 <th>Description</th> 5666 </tr> 5667 </thead> 5668 <tbody class="border-top"> 5669 <tr> 5670 <td style="white-space:nowrap"> 5671 <code>name</code> 5672 <br> 5673 <em> 5674 string 5675 </em> 5676 </td> 5677 <td> 5678 </td> 5679 </tr> 5680 <tr> 5681 <td style="white-space:nowrap"> 5682 <code>namespace</code> 5683 <br> 5684 <em> 5685 string 5686 </em> 5687 </td> 5688 <td> 5689 </td> 5690 </tr> 5691 </tbody> 5692 </table> 5693 <h3 id="projectcontour.io/v1alpha1.NetworkParameters">NetworkParameters 5694 </h3> 5695 <p> 5696 (<em>Appears on:</em> 5697 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 5698 </p> 5699 <p> 5700 <p>NetworkParameters hold various configurable network values.</p> 5701 </p> 5702 <table class="table table-striped table-borderless" style="border:none"> 5703 <thead class="border-bottom"> 5704 <tr> 5705 <th>Field</th> 5706 <th>Description</th> 5707 </tr> 5708 </thead> 5709 <tbody class="border-top"> 5710 <tr> 5711 <td style="white-space:nowrap"> 5712 <code>numTrustedHops</code> 5713 <br> 5714 <em> 5715 uint32 5716 </em> 5717 </td> 5718 <td> 5719 <em>(Optional)</em> 5720 <p>XffNumTrustedHops defines the number of additional ingress proxy hops from the 5721 right side of the x-forwarded-for HTTP header to trust when determining the origin 5722 client’s IP address.</p> 5723 <p>See <a href="https://www.envoyproxy.io/docs/envoy/v1.17.0/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto?highlight=xff_num_trusted_hops">https://www.envoyproxy.io/docs/envoy/v1.17.0/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto?highlight=xff_num_trusted_hops</a> 5724 for more information.</p> 5725 </td> 5726 </tr> 5727 <tr> 5728 <td style="white-space:nowrap"> 5729 <code>adminPort</code> 5730 <br> 5731 <em> 5732 int 5733 </em> 5734 </td> 5735 <td> 5736 <p>Configure the port used to access the Envoy Admin interface. 5737 If configured to port “0” then the admin interface is disabled.</p> 5738 </td> 5739 </tr> 5740 </tbody> 5741 </table> 5742 <h3 id="projectcontour.io/v1alpha1.PolicyConfig">PolicyConfig 5743 </h3> 5744 <p> 5745 (<em>Appears on:</em> 5746 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 5747 </p> 5748 <p> 5749 <p>PolicyConfig holds default policy used if not explicitly set by the user</p> 5750 </p> 5751 <table class="table table-striped table-borderless" style="border:none"> 5752 <thead class="border-bottom"> 5753 <tr> 5754 <th>Field</th> 5755 <th>Description</th> 5756 </tr> 5757 </thead> 5758 <tbody class="border-top"> 5759 <tr> 5760 <td style="white-space:nowrap"> 5761 <code>requestHeaders</code> 5762 <br> 5763 <em> 5764 <a href="#projectcontour.io/v1alpha1.HeadersPolicy"> 5765 HeadersPolicy 5766 </a> 5767 </em> 5768 </td> 5769 <td> 5770 <em>(Optional)</em> 5771 <p>RequestHeadersPolicy defines the request headers set/removed on all routes</p> 5772 </td> 5773 </tr> 5774 <tr> 5775 <td style="white-space:nowrap"> 5776 <code>responseHeaders</code> 5777 <br> 5778 <em> 5779 <a href="#projectcontour.io/v1alpha1.HeadersPolicy"> 5780 HeadersPolicy 5781 </a> 5782 </em> 5783 </td> 5784 <td> 5785 <em>(Optional)</em> 5786 <p>ResponseHeadersPolicy defines the response headers set/removed on all routes</p> 5787 </td> 5788 </tr> 5789 <tr> 5790 <td style="white-space:nowrap"> 5791 <code>applyToIngress</code> 5792 <br> 5793 <em> 5794 bool 5795 </em> 5796 </td> 5797 <td> 5798 <em>(Optional)</em> 5799 <p>ApplyToIngress determines if the Policies will apply to ingress objects</p> 5800 </td> 5801 </tr> 5802 </tbody> 5803 </table> 5804 <h3 id="projectcontour.io/v1alpha1.RateLimitServiceConfig">RateLimitServiceConfig 5805 </h3> 5806 <p> 5807 (<em>Appears on:</em> 5808 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 5809 </p> 5810 <p> 5811 <p>RateLimitServiceConfig defines properties of a global Rate Limit Service.</p> 5812 </p> 5813 <table class="table table-striped table-borderless" style="border:none"> 5814 <thead class="border-bottom"> 5815 <tr> 5816 <th>Field</th> 5817 <th>Description</th> 5818 </tr> 5819 </thead> 5820 <tbody class="border-top"> 5821 <tr> 5822 <td style="white-space:nowrap"> 5823 <code>extensionService</code> 5824 <br> 5825 <em> 5826 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 5827 NamespacedName 5828 </a> 5829 </em> 5830 </td> 5831 <td> 5832 <p>ExtensionService identifies the extension service defining the RLS.</p> 5833 </td> 5834 </tr> 5835 <tr> 5836 <td style="white-space:nowrap"> 5837 <code>domain</code> 5838 <br> 5839 <em> 5840 string 5841 </em> 5842 </td> 5843 <td> 5844 <p>Domain is passed to the Rate Limit Service.</p> 5845 </td> 5846 </tr> 5847 <tr> 5848 <td style="white-space:nowrap"> 5849 <code>failOpen</code> 5850 <br> 5851 <em> 5852 bool 5853 </em> 5854 </td> 5855 <td> 5856 <p>FailOpen defines whether to allow requests to proceed when the 5857 Rate Limit Service fails to respond with a valid rate limit 5858 decision within the timeout defined on the extension service.</p> 5859 </td> 5860 </tr> 5861 <tr> 5862 <td style="white-space:nowrap"> 5863 <code>enableXRateLimitHeaders</code> 5864 <br> 5865 <em> 5866 bool 5867 </em> 5868 </td> 5869 <td> 5870 <p>EnableXRateLimitHeaders defines whether to include the X-RateLimit 5871 headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset 5872 (as defined by the IETF Internet-Draft linked below), on responses 5873 to clients when the Rate Limit Service is consulted for a request.</p> 5874 <p>ref. <a href="https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html">https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html</a></p> 5875 </td> 5876 </tr> 5877 </tbody> 5878 </table> 5879 <h3 id="projectcontour.io/v1alpha1.TLS">TLS 5880 </h3> 5881 <p> 5882 (<em>Appears on:</em> 5883 <a href="#projectcontour.io/v1alpha1.XDSServerConfig">XDSServerConfig</a>) 5884 </p> 5885 <p> 5886 <p>TLS holds TLS file config details.</p> 5887 </p> 5888 <table class="table table-striped table-borderless" style="border:none"> 5889 <thead class="border-bottom"> 5890 <tr> 5891 <th>Field</th> 5892 <th>Description</th> 5893 </tr> 5894 </thead> 5895 <tbody class="border-top"> 5896 <tr> 5897 <td style="white-space:nowrap"> 5898 <code>caFile</code> 5899 <br> 5900 <em> 5901 string 5902 </em> 5903 </td> 5904 <td> 5905 <em>(Optional)</em> 5906 <p>CA filename.</p> 5907 </td> 5908 </tr> 5909 <tr> 5910 <td style="white-space:nowrap"> 5911 <code>certFile</code> 5912 <br> 5913 <em> 5914 string 5915 </em> 5916 </td> 5917 <td> 5918 <em>(Optional)</em> 5919 <p>Client certificate filename.</p> 5920 </td> 5921 </tr> 5922 <tr> 5923 <td style="white-space:nowrap"> 5924 <code>keyFile</code> 5925 <br> 5926 <em> 5927 string 5928 </em> 5929 </td> 5930 <td> 5931 <em>(Optional)</em> 5932 <p>Client key filename.</p> 5933 </td> 5934 </tr> 5935 <tr> 5936 <td style="white-space:nowrap"> 5937 <code>insecure</code> 5938 <br> 5939 <em> 5940 bool 5941 </em> 5942 </td> 5943 <td> 5944 <p>Allow serving the xDS gRPC API without TLS.</p> 5945 </td> 5946 </tr> 5947 </tbody> 5948 </table> 5949 <h3 id="projectcontour.io/v1alpha1.TLSCipherType">TLSCipherType 5950 (<code>string</code> alias)</h3> 5951 <p> 5952 (<em>Appears on:</em> 5953 <a href="#projectcontour.io/v1alpha1.EnvoyTLS">EnvoyTLS</a>) 5954 </p> 5955 <p> 5956 </p> 5957 <h3 id="projectcontour.io/v1alpha1.TimeoutParameters">TimeoutParameters 5958 </h3> 5959 <p> 5960 (<em>Appears on:</em> 5961 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 5962 </p> 5963 <p> 5964 <p>TimeoutParameters holds various configurable proxy timeout values.</p> 5965 </p> 5966 <table class="table table-striped table-borderless" style="border:none"> 5967 <thead class="border-bottom"> 5968 <tr> 5969 <th>Field</th> 5970 <th>Description</th> 5971 </tr> 5972 </thead> 5973 <tbody class="border-top"> 5974 <tr> 5975 <td style="white-space:nowrap"> 5976 <code>requestTimeout</code> 5977 <br> 5978 <em> 5979 string 5980 </em> 5981 </td> 5982 <td> 5983 <em>(Optional)</em> 5984 <p>RequestTimeout sets the client request timeout globally for Contour. Note that 5985 this is a timeout for the entire request, not an idle timeout. Omit or set to 5986 “infinity” to disable the timeout entirely.</p> 5987 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-request-timeout">https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-request-timeout</a> 5988 for more information.</p> 5989 </td> 5990 </tr> 5991 <tr> 5992 <td style="white-space:nowrap"> 5993 <code>connectionIdleTimeout</code> 5994 <br> 5995 <em> 5996 string 5997 </em> 5998 </td> 5999 <td> 6000 <em>(Optional)</em> 6001 <p>ConnectionIdleTimeout defines how long the proxy should wait while there are 6002 no active requests (for HTTP/1.1) or streams (for HTTP/2) before terminating 6003 an HTTP connection. Set to “infinity” to disable the timeout entirely.</p> 6004 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-idle-timeout">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-idle-timeout</a> 6005 for more information.</p> 6006 </td> 6007 </tr> 6008 <tr> 6009 <td style="white-space:nowrap"> 6010 <code>streamIdleTimeout</code> 6011 <br> 6012 <em> 6013 string 6014 </em> 6015 </td> 6016 <td> 6017 <em>(Optional)</em> 6018 <p>StreamIdleTimeout defines how long the proxy should wait while there is no 6019 request activity (for HTTP/1.1) or stream activity (for HTTP/2) before 6020 terminating the HTTP request or stream. Set to “infinity” to disable the 6021 timeout entirely.</p> 6022 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-stream-idle-timeout">https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-stream-idle-timeout</a> 6023 for more information.</p> 6024 </td> 6025 </tr> 6026 <tr> 6027 <td style="white-space:nowrap"> 6028 <code>maxConnectionDuration</code> 6029 <br> 6030 <em> 6031 string 6032 </em> 6033 </td> 6034 <td> 6035 <em>(Optional)</em> 6036 <p>MaxConnectionDuration defines the maximum period of time after an HTTP connection 6037 has been established from the client to the proxy before it is closed by the proxy, 6038 regardless of whether there has been activity or not. Omit or set to “infinity” for 6039 no max duration.</p> 6040 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-max-connection-duration">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-max-connection-duration</a> 6041 for more information.</p> 6042 </td> 6043 </tr> 6044 <tr> 6045 <td style="white-space:nowrap"> 6046 <code>delayedCloseTimeout</code> 6047 <br> 6048 <em> 6049 string 6050 </em> 6051 </td> 6052 <td> 6053 <em>(Optional)</em> 6054 <p>DelayedCloseTimeout defines how long envoy will wait, once connection 6055 close processing has been initiated, for the downstream peer to close 6056 the connection before Envoy closes the socket associated with the connection.</p> 6057 <p>Setting this timeout to ‘infinity’ will disable it, equivalent to setting it to ‘0’ 6058 in Envoy. Leaving it unset will result in the Envoy default value being used.</p> 6059 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-delayed-close-timeout">https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-delayed-close-timeout</a> 6060 for more information.</p> 6061 </td> 6062 </tr> 6063 <tr> 6064 <td style="white-space:nowrap"> 6065 <code>connectionShutdownGracePeriod</code> 6066 <br> 6067 <em> 6068 string 6069 </em> 6070 </td> 6071 <td> 6072 <em>(Optional)</em> 6073 <p>ConnectionShutdownGracePeriod defines how long the proxy will wait between sending an 6074 initial GOAWAY frame and a second, final GOAWAY frame when terminating an HTTP/2 connection. 6075 During this grace period, the proxy will continue to respond to new streams. After the final 6076 GOAWAY frame has been sent, the proxy will refuse new streams.</p> 6077 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-drain-timeout">https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-drain-timeout</a> 6078 for more information.</p> 6079 </td> 6080 </tr> 6081 </tbody> 6082 </table> 6083 <h3 id="projectcontour.io/v1alpha1.XDSServerConfig">XDSServerConfig 6084 </h3> 6085 <p> 6086 (<em>Appears on:</em> 6087 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 6088 </p> 6089 <p> 6090 <p>XDSServerConfig holds the config for the Contour xDS server.</p> 6091 </p> 6092 <table class="table table-striped table-borderless" style="border:none"> 6093 <thead class="border-bottom"> 6094 <tr> 6095 <th>Field</th> 6096 <th>Description</th> 6097 </tr> 6098 </thead> 6099 <tbody class="border-top"> 6100 <tr> 6101 <td style="white-space:nowrap"> 6102 <code>type</code> 6103 <br> 6104 <em> 6105 <a href="#projectcontour.io/v1alpha1.XDSServerType"> 6106 XDSServerType 6107 </a> 6108 </em> 6109 </td> 6110 <td> 6111 <p>Defines the XDSServer to use for <code>contour serve</code>.</p> 6112 </td> 6113 </tr> 6114 <tr> 6115 <td style="white-space:nowrap"> 6116 <code>address</code> 6117 <br> 6118 <em> 6119 string 6120 </em> 6121 </td> 6122 <td> 6123 <p>Defines the xDS gRPC API address which Contour will serve.</p> 6124 </td> 6125 </tr> 6126 <tr> 6127 <td style="white-space:nowrap"> 6128 <code>port</code> 6129 <br> 6130 <em> 6131 int 6132 </em> 6133 </td> 6134 <td> 6135 <p>Defines the xDS gRPC API port which Contour will serve.</p> 6136 </td> 6137 </tr> 6138 <tr> 6139 <td style="white-space:nowrap"> 6140 <code>tls</code> 6141 <br> 6142 <em> 6143 <a href="#projectcontour.io/v1alpha1.TLS"> 6144 TLS 6145 </a> 6146 </em> 6147 </td> 6148 <td> 6149 <em>(Optional)</em> 6150 <p>TLS holds TLS file config details.</p> 6151 </td> 6152 </tr> 6153 </tbody> 6154 </table> 6155 <h3 id="projectcontour.io/v1alpha1.XDSServerType">XDSServerType 6156 (<code>string</code> alias)</h3> 6157 <p> 6158 (<em>Appears on:</em> 6159 <a href="#projectcontour.io/v1alpha1.XDSServerConfig">XDSServerConfig</a>) 6160 </p> 6161 <p> 6162 <p>XDSServerType is the type of xDS server implementation.</p> 6163 </p> 6164 <hr/> 6165 <p><em> 6166 Generated with <code>gen-crd-api-reference-docs</code>. 6167 </em></p>