github.com/projectcontour/contour@v1.28.2/site/content/docs/1.27/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> 33 <thead> 34 <tr> 35 <th>Field</th> 36 <th>Description</th> 37 </tr> 38 </thead> 39 <tbody> 40 <tr> 41 <td> 42 <code>apiVersion</code></br> 43 string</td> 44 <td> 45 <code> 46 projectcontour.io/v1 47 </code> 48 </td> 49 </tr> 50 <tr> 51 <td> 52 <code>kind</code></br> 53 string 54 </td> 55 <td><code>HTTPProxy</code></td> 56 </tr> 57 <tr> 58 <td style="white-space:nowrap"> 59 <code>metadata</code> 60 <br> 61 <em> 62 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#objectmeta-v1-meta"> 63 Kubernetes meta/v1.ObjectMeta 64 </a> 65 </em> 66 </td> 67 <td> 68 Refer to the Kubernetes API documentation for the fields of the 69 <code>metadata</code> field. 70 </td> 71 </tr> 72 <tr> 73 <td style="white-space:nowrap"> 74 <code>spec</code> 75 <br> 76 <em> 77 <a href="#projectcontour.io/v1.HTTPProxySpec"> 78 HTTPProxySpec 79 </a> 80 </em> 81 </td> 82 <td> 83 <br> 84 <br> 85 <table style="border:none"> 86 <tr> 87 <td style="white-space:nowrap"> 88 <code>virtualhost</code> 89 <br> 90 <em> 91 <a href="#projectcontour.io/v1.VirtualHost"> 92 VirtualHost 93 </a> 94 </em> 95 </td> 96 <td> 97 <em>(Optional)</em> 98 <p>Virtualhost appears at most once. If it is present, the object is considered 99 to be a “root” HTTPProxy.</p> 100 </td> 101 </tr> 102 <tr> 103 <td style="white-space:nowrap"> 104 <code>routes</code> 105 <br> 106 <em> 107 <a href="#projectcontour.io/v1.Route"> 108 []Route 109 </a> 110 </em> 111 </td> 112 <td> 113 <em>(Optional)</em> 114 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 115 </td> 116 </tr> 117 <tr> 118 <td style="white-space:nowrap"> 119 <code>tcpproxy</code> 120 <br> 121 <em> 122 <a href="#projectcontour.io/v1.TCPProxy"> 123 TCPProxy 124 </a> 125 </em> 126 </td> 127 <td> 128 <em>(Optional)</em> 129 <p>TCPProxy holds TCP proxy information.</p> 130 </td> 131 </tr> 132 <tr> 133 <td style="white-space:nowrap"> 134 <code>includes</code> 135 <br> 136 <em> 137 <a href="#projectcontour.io/v1.Include"> 138 []Include 139 </a> 140 </em> 141 </td> 142 <td> 143 <em>(Optional)</em> 144 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 145 possibly in another namespace.</p> 146 </td> 147 </tr> 148 <tr> 149 <td style="white-space:nowrap"> 150 <code>ingressClassName</code> 151 <br> 152 <em> 153 string 154 </em> 155 </td> 156 <td> 157 <em>(Optional)</em> 158 <p>IngressClassName optionally specifies the ingress class to use for this 159 HTTPProxy. This replaces the deprecated <code>kubernetes.io/ingress.class</code> 160 annotation. For backwards compatibility, when that annotation is set, it 161 is given precedence over this field.</p> 162 </td> 163 </tr> 164 </table> 165 </td> 166 </tr> 167 <tr> 168 <td style="white-space:nowrap"> 169 <code>status</code> 170 <br> 171 <em> 172 <a href="#projectcontour.io/v1.HTTPProxyStatus"> 173 HTTPProxyStatus 174 </a> 175 </em> 176 </td> 177 <td> 178 <em>(Optional)</em> 179 <p>Status is a container for computed information about the HTTPProxy.</p> 180 </td> 181 </tr> 182 </tbody> 183 </table> 184 <h3 id="projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation 185 </h3> 186 <p> 187 <p>TLSCertificateDelegation is an TLS Certificate Delegation CRD specification. 188 See design/tls-certificate-delegation.md for details.</p> 189 </p> 190 <table> 191 <thead> 192 <tr> 193 <th>Field</th> 194 <th>Description</th> 195 </tr> 196 </thead> 197 <tbody> 198 <tr> 199 <td> 200 <code>apiVersion</code></br> 201 string</td> 202 <td> 203 <code> 204 projectcontour.io/v1 205 </code> 206 </td> 207 </tr> 208 <tr> 209 <td> 210 <code>kind</code></br> 211 string 212 </td> 213 <td><code>TLSCertificateDelegation</code></td> 214 </tr> 215 <tr> 216 <td style="white-space:nowrap"> 217 <code>metadata</code> 218 <br> 219 <em> 220 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#objectmeta-v1-meta"> 221 Kubernetes meta/v1.ObjectMeta 222 </a> 223 </em> 224 </td> 225 <td> 226 Refer to the Kubernetes API documentation for the fields of the 227 <code>metadata</code> field. 228 </td> 229 </tr> 230 <tr> 231 <td style="white-space:nowrap"> 232 <code>spec</code> 233 <br> 234 <em> 235 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec"> 236 TLSCertificateDelegationSpec 237 </a> 238 </em> 239 </td> 240 <td> 241 <br> 242 <br> 243 <table style="border:none"> 244 <tr> 245 <td style="white-space:nowrap"> 246 <code>delegations</code> 247 <br> 248 <em> 249 <a href="#projectcontour.io/v1.CertificateDelegation"> 250 []CertificateDelegation 251 </a> 252 </em> 253 </td> 254 <td> 255 </td> 256 </tr> 257 </table> 258 </td> 259 </tr> 260 <tr> 261 <td style="white-space:nowrap"> 262 <code>status</code> 263 <br> 264 <em> 265 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus"> 266 TLSCertificateDelegationStatus 267 </a> 268 </em> 269 </td> 270 <td> 271 <em>(Optional)</em> 272 </td> 273 </tr> 274 </tbody> 275 </table> 276 <h3 id="projectcontour.io/v1.AuthorizationPolicy">AuthorizationPolicy 277 </h3> 278 <p> 279 (<em>Appears on:</em> 280 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>, 281 <a href="#projectcontour.io/v1.Route">Route</a>) 282 </p> 283 <p> 284 <p>AuthorizationPolicy modifies how client requests are authenticated.</p> 285 </p> 286 <table> 287 <thead> 288 <tr> 289 <th>Field</th> 290 <th>Description</th> 291 </tr> 292 </thead> 293 <tbody> 294 <tr> 295 <td style="white-space:nowrap"> 296 <code>disabled</code> 297 <br> 298 <em> 299 bool 300 </em> 301 </td> 302 <td> 303 <em>(Optional)</em> 304 <p>When true, this field disables client request authentication 305 for the scope of the policy.</p> 306 </td> 307 </tr> 308 <tr> 309 <td style="white-space:nowrap"> 310 <code>context</code> 311 <br> 312 <em> 313 map[string]string 314 </em> 315 </td> 316 <td> 317 <em>(Optional)</em> 318 <p>Context is a set of key/value pairs that are sent to the 319 authentication server in the check request. If a context 320 is provided at an enclosing scope, the entries are merged 321 such that the inner scope overrides matching keys from the 322 outer scope.</p> 323 </td> 324 </tr> 325 </tbody> 326 </table> 327 <h3 id="projectcontour.io/v1.AuthorizationServer">AuthorizationServer 328 </h3> 329 <p> 330 (<em>Appears on:</em> 331 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>, 332 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 333 </p> 334 <p> 335 <p>AuthorizationServer configures an external server to authenticate 336 client requests. The external server must implement the v3 Envoy 337 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> 338 </p> 339 <table> 340 <thead> 341 <tr> 342 <th>Field</th> 343 <th>Description</th> 344 </tr> 345 </thead> 346 <tbody> 347 <tr> 348 <td style="white-space:nowrap"> 349 <code>extensionRef</code> 350 <br> 351 <em> 352 <a href="#projectcontour.io/v1.ExtensionServiceReference"> 353 ExtensionServiceReference 354 </a> 355 </em> 356 </td> 357 <td> 358 <em>(Optional)</em> 359 <p>ExtensionServiceRef specifies the extension resource that will authorize client requests.</p> 360 </td> 361 </tr> 362 <tr> 363 <td style="white-space:nowrap"> 364 <code>authPolicy</code> 365 <br> 366 <em> 367 <a href="#projectcontour.io/v1.AuthorizationPolicy"> 368 AuthorizationPolicy 369 </a> 370 </em> 371 </td> 372 <td> 373 <em>(Optional)</em> 374 <p>AuthPolicy sets a default authorization policy for client requests. 375 This policy will be used unless overridden by individual routes.</p> 376 </td> 377 </tr> 378 <tr> 379 <td style="white-space:nowrap"> 380 <code>responseTimeout</code> 381 <br> 382 <em> 383 string 384 </em> 385 </td> 386 <td> 387 <em>(Optional)</em> 388 <p>ResponseTimeout configures maximum time to wait for a check response from the authorization server. 389 Timeout durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 390 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 391 The string “infinity” is also a valid input and specifies no timeout.</p> 392 </td> 393 </tr> 394 <tr> 395 <td style="white-space:nowrap"> 396 <code>failOpen</code> 397 <br> 398 <em> 399 bool 400 </em> 401 </td> 402 <td> 403 <em>(Optional)</em> 404 <p>If FailOpen is true, the client request is forwarded to the upstream service 405 even if the authorization server fails to respond. This field should not be 406 set in most cases. It is intended for use only while migrating applications 407 from internal authorization to Contour external authorization.</p> 408 </td> 409 </tr> 410 <tr> 411 <td style="white-space:nowrap"> 412 <code>withRequestBody</code> 413 <br> 414 <em> 415 <a href="#projectcontour.io/v1.AuthorizationServerBufferSettings"> 416 AuthorizationServerBufferSettings 417 </a> 418 </em> 419 </td> 420 <td> 421 <em>(Optional)</em> 422 <p>WithRequestBody specifies configuration for sending the client request’s body to authorization server.</p> 423 </td> 424 </tr> 425 </tbody> 426 </table> 427 <h3 id="projectcontour.io/v1.AuthorizationServerBufferSettings">AuthorizationServerBufferSettings 428 </h3> 429 <p> 430 (<em>Appears on:</em> 431 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>) 432 </p> 433 <p> 434 <p>AuthorizationServerBufferSettings enables ExtAuthz filter to buffer client request data and send it as part of authorization request</p> 435 </p> 436 <table> 437 <thead> 438 <tr> 439 <th>Field</th> 440 <th>Description</th> 441 </tr> 442 </thead> 443 <tbody> 444 <tr> 445 <td style="white-space:nowrap"> 446 <code>maxRequestBytes</code> 447 <br> 448 <em> 449 uint32 450 </em> 451 </td> 452 <td> 453 <em>(Optional)</em> 454 <p>MaxRequestBytes sets the maximum size of message body ExtAuthz filter will hold in-memory.</p> 455 </td> 456 </tr> 457 <tr> 458 <td style="white-space:nowrap"> 459 <code>allowPartialMessage</code> 460 <br> 461 <em> 462 bool 463 </em> 464 </td> 465 <td> 466 <em>(Optional)</em> 467 <p>If AllowPartialMessage is true, then Envoy will buffer the body until MaxRequestBytes are reached.</p> 468 </td> 469 </tr> 470 <tr> 471 <td style="white-space:nowrap"> 472 <code>packAsBytes</code> 473 <br> 474 <em> 475 bool 476 </em> 477 </td> 478 <td> 479 <em>(Optional)</em> 480 <p>If PackAsBytes is true, the body sent to Authorization Server is in raw bytes.</p> 481 </td> 482 </tr> 483 </tbody> 484 </table> 485 <h3 id="projectcontour.io/v1.CORSHeaderValue">CORSHeaderValue 486 (<code>string</code> alias)</p></h3> 487 <p> 488 (<em>Appears on:</em> 489 <a href="#projectcontour.io/v1.CORSPolicy">CORSPolicy</a>) 490 </p> 491 <p> 492 <p>CORSHeaderValue specifies the value of the string headers returned by a cross-domain request.</p> 493 </p> 494 <h3 id="projectcontour.io/v1.CORSPolicy">CORSPolicy 495 </h3> 496 <p> 497 (<em>Appears on:</em> 498 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 499 </p> 500 <p> 501 <p>CORSPolicy allows setting the CORS policy</p> 502 </p> 503 <table> 504 <thead> 505 <tr> 506 <th>Field</th> 507 <th>Description</th> 508 </tr> 509 </thead> 510 <tbody> 511 <tr> 512 <td style="white-space:nowrap"> 513 <code>allowCredentials</code> 514 <br> 515 <em> 516 bool 517 </em> 518 </td> 519 <td> 520 <em>(Optional)</em> 521 <p>Specifies whether the resource allows credentials.</p> 522 </td> 523 </tr> 524 <tr> 525 <td style="white-space:nowrap"> 526 <code>allowOrigin</code> 527 <br> 528 <em> 529 []string 530 </em> 531 </td> 532 <td> 533 <p>AllowOrigin specifies the origins that will be allowed to do CORS requests. 534 Allowed values include “*” which signifies any origin is allowed, an exact 535 origin of the form “scheme://host[:port]” (where port is optional), or a valid 536 regex pattern. 537 Note that regex patterns are validated and a simple “glob” pattern (e.g. *.foo.com) 538 will be rejected or produce unexpected matches when applied as a regex.</p> 539 </td> 540 </tr> 541 <tr> 542 <td style="white-space:nowrap"> 543 <code>allowMethods</code> 544 <br> 545 <em> 546 <a href="#projectcontour.io/v1.CORSHeaderValue"> 547 []CORSHeaderValue 548 </a> 549 </em> 550 </td> 551 <td> 552 <p>AllowMethods specifies the content for the <em>access-control-allow-methods</em> header.</p> 553 </td> 554 </tr> 555 <tr> 556 <td style="white-space:nowrap"> 557 <code>allowHeaders</code> 558 <br> 559 <em> 560 <a href="#projectcontour.io/v1.CORSHeaderValue"> 561 []CORSHeaderValue 562 </a> 563 </em> 564 </td> 565 <td> 566 <em>(Optional)</em> 567 <p>AllowHeaders specifies the content for the <em>access-control-allow-headers</em> header.</p> 568 </td> 569 </tr> 570 <tr> 571 <td style="white-space:nowrap"> 572 <code>exposeHeaders</code> 573 <br> 574 <em> 575 <a href="#projectcontour.io/v1.CORSHeaderValue"> 576 []CORSHeaderValue 577 </a> 578 </em> 579 </td> 580 <td> 581 <em>(Optional)</em> 582 <p>ExposeHeaders Specifies the content for the <em>access-control-expose-headers</em> header.</p> 583 </td> 584 </tr> 585 <tr> 586 <td style="white-space:nowrap"> 587 <code>maxAge</code> 588 <br> 589 <em> 590 string 591 </em> 592 </td> 593 <td> 594 <em>(Optional)</em> 595 <p>MaxAge indicates for how long the results of a preflight request can be cached. 596 MaxAge durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 597 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 598 Only positive values are allowed while 0 disables the cache requiring a preflight OPTIONS 599 check for all cross-origin requests.</p> 600 </td> 601 </tr> 602 <tr> 603 <td style="white-space:nowrap"> 604 <code>allowPrivateNetwork</code> 605 <br> 606 <em> 607 bool 608 </em> 609 </td> 610 <td> 611 <p>AllowPrivateNetwork specifies whether to allow private network requests. 612 See <a href="https://developer.chrome.com/blog/private-network-access-preflight">https://developer.chrome.com/blog/private-network-access-preflight</a>.</p> 613 </td> 614 </tr> 615 </tbody> 616 </table> 617 <h3 id="projectcontour.io/v1.CertificateDelegation">CertificateDelegation 618 </h3> 619 <p> 620 (<em>Appears on:</em> 621 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec</a>) 622 </p> 623 <p> 624 <p>CertificateDelegation maps the authority to reference a secret 625 in the current namespace to a set of namespaces.</p> 626 </p> 627 <table> 628 <thead> 629 <tr> 630 <th>Field</th> 631 <th>Description</th> 632 </tr> 633 </thead> 634 <tbody> 635 <tr> 636 <td style="white-space:nowrap"> 637 <code>secretName</code> 638 <br> 639 <em> 640 string 641 </em> 642 </td> 643 <td> 644 <p>required, the name of a secret in the current namespace.</p> 645 </td> 646 </tr> 647 <tr> 648 <td style="white-space:nowrap"> 649 <code>targetNamespaces</code> 650 <br> 651 <em> 652 []string 653 </em> 654 </td> 655 <td> 656 <p>required, the namespaces the authority to reference the 657 secret will be delegated to. 658 If TargetNamespaces is nil or empty, the CertificateDelegation’ 659 is ignored. If the TargetNamespace list contains the character, “*” 660 the secret will be delegated to all namespaces.</p> 661 </td> 662 </tr> 663 </tbody> 664 </table> 665 <h3 id="projectcontour.io/v1.ClientCertificateDetails">ClientCertificateDetails 666 </h3> 667 <p> 668 (<em>Appears on:</em> 669 <a href="#projectcontour.io/v1.DownstreamValidation">DownstreamValidation</a>) 670 </p> 671 <p> 672 <p>ClientCertificateDetails defines which parts of the client certificate will be forwarded.</p> 673 </p> 674 <table> 675 <thead> 676 <tr> 677 <th>Field</th> 678 <th>Description</th> 679 </tr> 680 </thead> 681 <tbody> 682 <tr> 683 <td style="white-space:nowrap"> 684 <code>subject</code> 685 <br> 686 <em> 687 bool 688 </em> 689 </td> 690 <td> 691 <em>(Optional)</em> 692 <p>Subject of the client cert.</p> 693 </td> 694 </tr> 695 <tr> 696 <td style="white-space:nowrap"> 697 <code>cert</code> 698 <br> 699 <em> 700 bool 701 </em> 702 </td> 703 <td> 704 <em>(Optional)</em> 705 <p>Client cert in URL encoded PEM format.</p> 706 </td> 707 </tr> 708 <tr> 709 <td style="white-space:nowrap"> 710 <code>chain</code> 711 <br> 712 <em> 713 bool 714 </em> 715 </td> 716 <td> 717 <em>(Optional)</em> 718 <p>Client cert chain (including the leaf cert) in URL encoded PEM format.</p> 719 </td> 720 </tr> 721 <tr> 722 <td style="white-space:nowrap"> 723 <code>dns</code> 724 <br> 725 <em> 726 bool 727 </em> 728 </td> 729 <td> 730 <em>(Optional)</em> 731 <p>DNS type Subject Alternative Names of the client cert.</p> 732 </td> 733 </tr> 734 <tr> 735 <td style="white-space:nowrap"> 736 <code>uri</code> 737 <br> 738 <em> 739 bool 740 </em> 741 </td> 742 <td> 743 <em>(Optional)</em> 744 <p>URI type Subject Alternative Name of the client cert.</p> 745 </td> 746 </tr> 747 </tbody> 748 </table> 749 <h3 id="projectcontour.io/v1.CookieDomainRewrite">CookieDomainRewrite 750 </h3> 751 <p> 752 (<em>Appears on:</em> 753 <a href="#projectcontour.io/v1.CookieRewritePolicy">CookieRewritePolicy</a>) 754 </p> 755 <p> 756 </p> 757 <table> 758 <thead> 759 <tr> 760 <th>Field</th> 761 <th>Description</th> 762 </tr> 763 </thead> 764 <tbody> 765 <tr> 766 <td style="white-space:nowrap"> 767 <code>value</code> 768 <br> 769 <em> 770 string 771 </em> 772 </td> 773 <td> 774 <p>Value is the value to rewrite the Domain attribute to. 775 For now this is required.</p> 776 </td> 777 </tr> 778 </tbody> 779 </table> 780 <h3 id="projectcontour.io/v1.CookiePathRewrite">CookiePathRewrite 781 </h3> 782 <p> 783 (<em>Appears on:</em> 784 <a href="#projectcontour.io/v1.CookieRewritePolicy">CookieRewritePolicy</a>) 785 </p> 786 <p> 787 </p> 788 <table> 789 <thead> 790 <tr> 791 <th>Field</th> 792 <th>Description</th> 793 </tr> 794 </thead> 795 <tbody> 796 <tr> 797 <td style="white-space:nowrap"> 798 <code>value</code> 799 <br> 800 <em> 801 string 802 </em> 803 </td> 804 <td> 805 <p>Value is the value to rewrite the Path attribute to. 806 For now this is required.</p> 807 </td> 808 </tr> 809 </tbody> 810 </table> 811 <h3 id="projectcontour.io/v1.CookieRewritePolicy">CookieRewritePolicy 812 </h3> 813 <p> 814 (<em>Appears on:</em> 815 <a href="#projectcontour.io/v1.Route">Route</a>, 816 <a href="#projectcontour.io/v1.Service">Service</a>) 817 </p> 818 <p> 819 </p> 820 <table> 821 <thead> 822 <tr> 823 <th>Field</th> 824 <th>Description</th> 825 </tr> 826 </thead> 827 <tbody> 828 <tr> 829 <td style="white-space:nowrap"> 830 <code>name</code> 831 <br> 832 <em> 833 string 834 </em> 835 </td> 836 <td> 837 <p>Name is the name of the cookie for which attributes will be rewritten.</p> 838 </td> 839 </tr> 840 <tr> 841 <td style="white-space:nowrap"> 842 <code>pathRewrite</code> 843 <br> 844 <em> 845 <a href="#projectcontour.io/v1.CookiePathRewrite"> 846 CookiePathRewrite 847 </a> 848 </em> 849 </td> 850 <td> 851 <em>(Optional)</em> 852 <p>PathRewrite enables rewriting the Set-Cookie Path element. 853 If not set, Path will not be rewritten.</p> 854 </td> 855 </tr> 856 <tr> 857 <td style="white-space:nowrap"> 858 <code>domainRewrite</code> 859 <br> 860 <em> 861 <a href="#projectcontour.io/v1.CookieDomainRewrite"> 862 CookieDomainRewrite 863 </a> 864 </em> 865 </td> 866 <td> 867 <em>(Optional)</em> 868 <p>DomainRewrite enables rewriting the Set-Cookie Domain element. 869 If not set, Domain will not be rewritten.</p> 870 </td> 871 </tr> 872 <tr> 873 <td style="white-space:nowrap"> 874 <code>secure</code> 875 <br> 876 <em> 877 bool 878 </em> 879 </td> 880 <td> 881 <em>(Optional)</em> 882 <p>Secure enables rewriting the Set-Cookie Secure element. 883 If not set, Secure attribute will not be rewritten.</p> 884 </td> 885 </tr> 886 <tr> 887 <td style="white-space:nowrap"> 888 <code>sameSite</code> 889 <br> 890 <em> 891 string 892 </em> 893 </td> 894 <td> 895 <em>(Optional)</em> 896 <p>SameSite enables rewriting the Set-Cookie SameSite element. 897 If not set, SameSite attribute will not be rewritten.</p> 898 </td> 899 </tr> 900 </tbody> 901 </table> 902 <h3 id="projectcontour.io/v1.DetailedCondition">DetailedCondition 903 </h3> 904 <p> 905 (<em>Appears on:</em> 906 <a href="#projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus</a>, 907 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus</a>, 908 <a href="#projectcontour.io/v1alpha1.ContourConfigurationStatus">ContourConfigurationStatus</a>, 909 <a href="#projectcontour.io/v1alpha1.ExtensionServiceStatus">ExtensionServiceStatus</a>) 910 </p> 911 <p> 912 <p>DetailedCondition is an extension of the normal Kubernetes conditions, with two extra 913 fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) 914 of the condition.</p> 915 <p><code>errors</code> holds information about sub-conditions which are fatal to that condition and render its state False.</p> 916 <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> 917 <p>Remember that Conditions have a type, a status, and a reason.</p> 918 <p>The type is the type of the condition, the most important one in this CRD set is <code>Valid</code>. 919 <code>Valid</code> is a positive-polarity condition: when it is <code>status: true</code> there are no problems.</p> 920 <p>In more detail, <code>status: true</code> means that the object is has been ingested into Contour with no errors. 921 <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> 922 slice in this case.</p> 923 <p><code>Valid</code>, <code>status: false</code> means that the object has had one or more fatal errors during processing into Contour. 924 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> 925 slice if <code>status</code> is <code>false</code>.</p> 926 <p>For DetailedConditions of types other than <code>Valid</code>, the Condition must be in the negative polarity. 927 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. 928 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. 929 In either case, there may be entries in the <code>warnings</code> slice.</p> 930 <p>Regardless of the polarity, the <code>reason</code> and <code>message</code> fields must be updated with either the detail of the reason 931 (if there is one and only one entry in total across both the <code>errors</code> and <code>warnings</code> slices), or 932 <code>MultipleReasons</code> if there is more than one entry.</p> 933 </p> 934 <table> 935 <thead> 936 <tr> 937 <th>Field</th> 938 <th>Description</th> 939 </tr> 940 </thead> 941 <tbody> 942 <tr> 943 <td style="white-space:nowrap"> 944 <code>Condition</code> 945 <br> 946 <em> 947 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#condition-v1-meta"> 948 Kubernetes meta/v1.Condition 949 </a> 950 </em> 951 </td> 952 <td> 953 <p> 954 (Members of <code>Condition</code> are embedded into this type.) 955 </p> 956 </td> 957 </tr> 958 <tr> 959 <td style="white-space:nowrap"> 960 <code>errors</code> 961 <br> 962 <em> 963 <a href="#projectcontour.io/v1.SubCondition"> 964 []SubCondition 965 </a> 966 </em> 967 </td> 968 <td> 969 <em>(Optional)</em> 970 <p>Errors contains a slice of relevant error subconditions for this object.</p> 971 <p>Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. 972 An empty slice here indicates no errors.</p> 973 </td> 974 </tr> 975 <tr> 976 <td style="white-space:nowrap"> 977 <code>warnings</code> 978 <br> 979 <em> 980 <a href="#projectcontour.io/v1.SubCondition"> 981 []SubCondition 982 </a> 983 </em> 984 </td> 985 <td> 986 <em>(Optional)</em> 987 <p>Warnings contains a slice of relevant warning subconditions for this object.</p> 988 <p>Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. 989 An empty slice here indicates no warnings.</p> 990 </td> 991 </tr> 992 </tbody> 993 </table> 994 <h3 id="projectcontour.io/v1.DownstreamValidation">DownstreamValidation 995 </h3> 996 <p> 997 (<em>Appears on:</em> 998 <a href="#projectcontour.io/v1.TLS">TLS</a>) 999 </p> 1000 <p> 1001 <p>DownstreamValidation defines how to verify the client certificate.</p> 1002 </p> 1003 <table> 1004 <thead> 1005 <tr> 1006 <th>Field</th> 1007 <th>Description</th> 1008 </tr> 1009 </thead> 1010 <tbody> 1011 <tr> 1012 <td style="white-space:nowrap"> 1013 <code>caSecret</code> 1014 <br> 1015 <em> 1016 string 1017 </em> 1018 </td> 1019 <td> 1020 <em>(Optional)</em> 1021 <p>Name of a Kubernetes secret that contains a CA certificate bundle. 1022 The secret must contain key named ca.crt. 1023 The client certificate must validate against the certificates in the bundle. 1024 If specified and SkipClientCertValidation is true, client certificates will 1025 be required on requests. 1026 The name can be optionally prefixed with namespace “namespace/name”. 1027 When cross-namespace reference is used, TLSCertificateDelegation resource must exist in the namespace to grant access to the secret.</p> 1028 </td> 1029 </tr> 1030 <tr> 1031 <td style="white-space:nowrap"> 1032 <code>skipClientCertValidation</code> 1033 <br> 1034 <em> 1035 bool 1036 </em> 1037 </td> 1038 <td> 1039 <em>(Optional)</em> 1040 <p>SkipClientCertValidation disables downstream client certificate 1041 validation. Defaults to false. This field is intended to be used in 1042 conjunction with external authorization in order to enable the external 1043 authorization server to validate client certificates. When this field 1044 is set to true, client certificates are requested but not verified by 1045 Envoy. If CACertificate is specified, client certificates are required on 1046 requests, but not verified. If external authorization is in use, they are 1047 presented to the external authorization server.</p> 1048 </td> 1049 </tr> 1050 <tr> 1051 <td style="white-space:nowrap"> 1052 <code>forwardClientCertificate</code> 1053 <br> 1054 <em> 1055 <a href="#projectcontour.io/v1.ClientCertificateDetails"> 1056 ClientCertificateDetails 1057 </a> 1058 </em> 1059 </td> 1060 <td> 1061 <em>(Optional)</em> 1062 <p>ForwardClientCertificate adds the selected data from the passed client TLS certificate 1063 to the x-forwarded-client-cert header.</p> 1064 </td> 1065 </tr> 1066 <tr> 1067 <td style="white-space:nowrap"> 1068 <code>crlSecret</code> 1069 <br> 1070 <em> 1071 string 1072 </em> 1073 </td> 1074 <td> 1075 <em>(Optional)</em> 1076 <p>Name of a Kubernetes opaque secret that contains a concatenated list of PEM encoded CRLs. 1077 The secret must contain key named crl.pem. 1078 This field will be used to verify that a client certificate has not been revoked. 1079 CRLs must be available from all CAs, unless crlOnlyVerifyLeafCert is true. 1080 Large CRL lists are not supported since individual secrets are limited to 1MiB in size. 1081 The name can be optionally prefixed with namespace “namespace/name”. 1082 When cross-namespace reference is used, TLSCertificateDelegation resource must exist in the namespace to grant access to the secret.</p> 1083 </td> 1084 </tr> 1085 <tr> 1086 <td style="white-space:nowrap"> 1087 <code>crlOnlyVerifyLeafCert</code> 1088 <br> 1089 <em> 1090 bool 1091 </em> 1092 </td> 1093 <td> 1094 <em>(Optional)</em> 1095 <p>If this option is set to true, only the certificate at the end of the 1096 certificate chain will be subject to validation by CRL.</p> 1097 </td> 1098 </tr> 1099 <tr> 1100 <td style="white-space:nowrap"> 1101 <code>optionalClientCertificate</code> 1102 <br> 1103 <em> 1104 bool 1105 </em> 1106 </td> 1107 <td> 1108 <em>(Optional)</em> 1109 <p>OptionalClientCertificate when set to true will request a client certificate 1110 but allow the connection to continue if the client does not provide one. 1111 If a client certificate is sent, it will be verified according to the 1112 other properties, which includes disabling validation if 1113 SkipClientCertValidation is set. Defaults to false.</p> 1114 </td> 1115 </tr> 1116 </tbody> 1117 </table> 1118 <h3 id="projectcontour.io/v1.ExtensionServiceReference">ExtensionServiceReference 1119 </h3> 1120 <p> 1121 (<em>Appears on:</em> 1122 <a href="#projectcontour.io/v1.AuthorizationServer">AuthorizationServer</a>) 1123 </p> 1124 <p> 1125 <p>ExtensionServiceReference names an ExtensionService resource.</p> 1126 </p> 1127 <table> 1128 <thead> 1129 <tr> 1130 <th>Field</th> 1131 <th>Description</th> 1132 </tr> 1133 </thead> 1134 <tbody> 1135 <tr> 1136 <td style="white-space:nowrap"> 1137 <code>apiVersion</code> 1138 <br> 1139 <em> 1140 string 1141 </em> 1142 </td> 1143 <td> 1144 <em>(Optional)</em> 1145 <p>API version of the referent. 1146 If this field is not specified, the default “projectcontour.io/v1alpha1” will be used</p> 1147 </td> 1148 </tr> 1149 <tr> 1150 <td style="white-space:nowrap"> 1151 <code>namespace</code> 1152 <br> 1153 <em> 1154 string 1155 </em> 1156 </td> 1157 <td> 1158 <em>(Optional)</em> 1159 <p>Namespace of the referent. 1160 If this field is not specifies, the namespace of the resource that targets the referent will be used.</p> 1161 <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> 1162 </td> 1163 </tr> 1164 <tr> 1165 <td style="white-space:nowrap"> 1166 <code>name</code> 1167 <br> 1168 <em> 1169 string 1170 </em> 1171 </td> 1172 <td> 1173 <p>Name of the referent.</p> 1174 <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> 1175 </td> 1176 </tr> 1177 </tbody> 1178 </table> 1179 <h3 id="projectcontour.io/v1.GenericKeyDescriptor">GenericKeyDescriptor 1180 </h3> 1181 <p> 1182 (<em>Appears on:</em> 1183 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 1184 </p> 1185 <p> 1186 <p>GenericKeyDescriptor defines a descriptor entry with a static key and 1187 value.</p> 1188 </p> 1189 <table> 1190 <thead> 1191 <tr> 1192 <th>Field</th> 1193 <th>Description</th> 1194 </tr> 1195 </thead> 1196 <tbody> 1197 <tr> 1198 <td style="white-space:nowrap"> 1199 <code>key</code> 1200 <br> 1201 <em> 1202 string 1203 </em> 1204 </td> 1205 <td> 1206 <em>(Optional)</em> 1207 <p>Key defines the key of the descriptor entry. If not set, the 1208 key is set to “generic_key”.</p> 1209 </td> 1210 </tr> 1211 <tr> 1212 <td style="white-space:nowrap"> 1213 <code>value</code> 1214 <br> 1215 <em> 1216 string 1217 </em> 1218 </td> 1219 <td> 1220 <p>Value defines the value of the descriptor entry.</p> 1221 </td> 1222 </tr> 1223 </tbody> 1224 </table> 1225 <h3 id="projectcontour.io/v1.GlobalRateLimitPolicy">GlobalRateLimitPolicy 1226 </h3> 1227 <p> 1228 (<em>Appears on:</em> 1229 <a href="#projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy</a>, 1230 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig">RateLimitServiceConfig</a>) 1231 </p> 1232 <p> 1233 <p>GlobalRateLimitPolicy defines global rate limiting parameters.</p> 1234 </p> 1235 <table> 1236 <thead> 1237 <tr> 1238 <th>Field</th> 1239 <th>Description</th> 1240 </tr> 1241 </thead> 1242 <tbody> 1243 <tr> 1244 <td style="white-space:nowrap"> 1245 <code>disabled</code> 1246 <br> 1247 <em> 1248 bool 1249 </em> 1250 </td> 1251 <td> 1252 <em>(Optional)</em> 1253 <p>Disabled configures the HTTPProxy to not use 1254 the default global rate limit policy defined by the Contour configuration.</p> 1255 </td> 1256 </tr> 1257 <tr> 1258 <td style="white-space:nowrap"> 1259 <code>descriptors</code> 1260 <br> 1261 <em> 1262 <a href="#projectcontour.io/v1.RateLimitDescriptor"> 1263 []RateLimitDescriptor 1264 </a> 1265 </em> 1266 </td> 1267 <td> 1268 <em>(Optional)</em> 1269 <p>Descriptors defines the list of descriptors that will 1270 be generated and sent to the rate limit service. Each 1271 descriptor contains 1+ key-value pair entries.</p> 1272 </td> 1273 </tr> 1274 </tbody> 1275 </table> 1276 <h3 id="projectcontour.io/v1.HTTPDirectResponsePolicy">HTTPDirectResponsePolicy 1277 </h3> 1278 <p> 1279 (<em>Appears on:</em> 1280 <a href="#projectcontour.io/v1.Route">Route</a>) 1281 </p> 1282 <p> 1283 </p> 1284 <table> 1285 <thead> 1286 <tr> 1287 <th>Field</th> 1288 <th>Description</th> 1289 </tr> 1290 </thead> 1291 <tbody> 1292 <tr> 1293 <td style="white-space:nowrap"> 1294 <code>statusCode</code> 1295 <br> 1296 <em> 1297 int 1298 </em> 1299 </td> 1300 <td> 1301 <p>StatusCode is the HTTP response status to be returned.</p> 1302 </td> 1303 </tr> 1304 <tr> 1305 <td style="white-space:nowrap"> 1306 <code>body</code> 1307 <br> 1308 <em> 1309 string 1310 </em> 1311 </td> 1312 <td> 1313 <em>(Optional)</em> 1314 <p>Body is the content of the response body. 1315 If this setting is omitted, no body is included in the generated response.</p> 1316 <p>Note: Body is not recommended to set too long 1317 otherwise it can have significant resource usage impacts.</p> 1318 </td> 1319 </tr> 1320 </tbody> 1321 </table> 1322 <h3 id="projectcontour.io/v1.HTTPHealthCheckPolicy">HTTPHealthCheckPolicy 1323 </h3> 1324 <p> 1325 (<em>Appears on:</em> 1326 <a href="#projectcontour.io/v1.Route">Route</a>) 1327 </p> 1328 <p> 1329 <p>HTTPHealthCheckPolicy defines health checks on the upstream service.</p> 1330 </p> 1331 <table> 1332 <thead> 1333 <tr> 1334 <th>Field</th> 1335 <th>Description</th> 1336 </tr> 1337 </thead> 1338 <tbody> 1339 <tr> 1340 <td style="white-space:nowrap"> 1341 <code>path</code> 1342 <br> 1343 <em> 1344 string 1345 </em> 1346 </td> 1347 <td> 1348 <p>HTTP endpoint used to perform health checks on upstream service</p> 1349 </td> 1350 </tr> 1351 <tr> 1352 <td style="white-space:nowrap"> 1353 <code>host</code> 1354 <br> 1355 <em> 1356 string 1357 </em> 1358 </td> 1359 <td> 1360 <p>The value of the host header in the HTTP health check request. 1361 If left empty (default value), the name “contour-envoy-healthcheck” 1362 will be used.</p> 1363 </td> 1364 </tr> 1365 <tr> 1366 <td style="white-space:nowrap"> 1367 <code>intervalSeconds</code> 1368 <br> 1369 <em> 1370 int64 1371 </em> 1372 </td> 1373 <td> 1374 <em>(Optional)</em> 1375 <p>The interval (seconds) between health checks</p> 1376 </td> 1377 </tr> 1378 <tr> 1379 <td style="white-space:nowrap"> 1380 <code>timeoutSeconds</code> 1381 <br> 1382 <em> 1383 int64 1384 </em> 1385 </td> 1386 <td> 1387 <em>(Optional)</em> 1388 <p>The time to wait (seconds) for a health check response</p> 1389 </td> 1390 </tr> 1391 <tr> 1392 <td style="white-space:nowrap"> 1393 <code>unhealthyThresholdCount</code> 1394 <br> 1395 <em> 1396 int64 1397 </em> 1398 </td> 1399 <td> 1400 <em>(Optional)</em> 1401 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 1402 </td> 1403 </tr> 1404 <tr> 1405 <td style="white-space:nowrap"> 1406 <code>healthyThresholdCount</code> 1407 <br> 1408 <em> 1409 int64 1410 </em> 1411 </td> 1412 <td> 1413 <em>(Optional)</em> 1414 <p>The number of healthy health checks required before a host is marked healthy</p> 1415 </td> 1416 </tr> 1417 <tr> 1418 <td style="white-space:nowrap"> 1419 <code>expectedStatuses</code> 1420 <br> 1421 <em> 1422 <a href="#projectcontour.io/v1.HTTPStatusRange"> 1423 []HTTPStatusRange 1424 </a> 1425 </em> 1426 </td> 1427 <td> 1428 <em>(Optional)</em> 1429 <p>The ranges of HTTP response statuses considered healthy. Follow half-open 1430 semantics, i.e. for each range the start is inclusive and the end is exclusive. 1431 Must be within the range [100,600). If not specified, only a 200 response status 1432 is considered healthy.</p> 1433 </td> 1434 </tr> 1435 </tbody> 1436 </table> 1437 <h3 id="projectcontour.io/v1.HTTPInternalRedirectPolicy">HTTPInternalRedirectPolicy 1438 </h3> 1439 <p> 1440 (<em>Appears on:</em> 1441 <a href="#projectcontour.io/v1.Route">Route</a>) 1442 </p> 1443 <p> 1444 </p> 1445 <table> 1446 <thead> 1447 <tr> 1448 <th>Field</th> 1449 <th>Description</th> 1450 </tr> 1451 </thead> 1452 <tbody> 1453 <tr> 1454 <td style="white-space:nowrap"> 1455 <code>maxInternalRedirects</code> 1456 <br> 1457 <em> 1458 uint32 1459 </em> 1460 </td> 1461 <td> 1462 <em>(Optional)</em> 1463 <p>MaxInternalRedirects An internal redirect is not handled, unless the number of previous internal 1464 redirects that a downstream request has encountered is lower than this value.</p> 1465 </td> 1466 </tr> 1467 <tr> 1468 <td style="white-space:nowrap"> 1469 <code>redirectResponseCodes</code> 1470 <br> 1471 <em> 1472 <a href="#projectcontour.io/v1.RedirectResponseCode"> 1473 []RedirectResponseCode 1474 </a> 1475 </em> 1476 </td> 1477 <td> 1478 <em>(Optional)</em> 1479 <p>RedirectResponseCodes If unspecified, only 302 will be treated as internal redirect. 1480 Only 301, 302, 303, 307 and 308 are valid values.</p> 1481 </td> 1482 </tr> 1483 <tr> 1484 <td style="white-space:nowrap"> 1485 <code>allowCrossSchemeRedirect</code> 1486 <br> 1487 <em> 1488 string 1489 </em> 1490 </td> 1491 <td> 1492 <em>(Optional)</em> 1493 <p>AllowCrossSchemeRedirect Allow internal redirect to follow a target URI with a different scheme 1494 than the value of x-forwarded-proto. 1495 SafeOnly allows same scheme redirect and safe cross scheme redirect, which means if the downstream 1496 scheme is HTTPS, both HTTPS and HTTP redirect targets are allowed, but if the downstream scheme 1497 is HTTP, only HTTP redirect targets are allowed.</p> 1498 </td> 1499 </tr> 1500 <tr> 1501 <td style="white-space:nowrap"> 1502 <code>denyRepeatedRouteRedirect</code> 1503 <br> 1504 <em> 1505 bool 1506 </em> 1507 </td> 1508 <td> 1509 <em>(Optional)</em> 1510 <p>If DenyRepeatedRouteRedirect is true, rejects redirect targets that are pointing to a route that has 1511 been followed by a previous redirect from the current route.</p> 1512 </td> 1513 </tr> 1514 </tbody> 1515 </table> 1516 <h3 id="projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec 1517 </h3> 1518 <p> 1519 (<em>Appears on:</em> 1520 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 1521 </p> 1522 <p> 1523 <p>HTTPProxySpec defines the spec of the CRD.</p> 1524 </p> 1525 <table> 1526 <thead> 1527 <tr> 1528 <th>Field</th> 1529 <th>Description</th> 1530 </tr> 1531 </thead> 1532 <tbody> 1533 <tr> 1534 <td style="white-space:nowrap"> 1535 <code>virtualhost</code> 1536 <br> 1537 <em> 1538 <a href="#projectcontour.io/v1.VirtualHost"> 1539 VirtualHost 1540 </a> 1541 </em> 1542 </td> 1543 <td> 1544 <em>(Optional)</em> 1545 <p>Virtualhost appears at most once. If it is present, the object is considered 1546 to be a “root” HTTPProxy.</p> 1547 </td> 1548 </tr> 1549 <tr> 1550 <td style="white-space:nowrap"> 1551 <code>routes</code> 1552 <br> 1553 <em> 1554 <a href="#projectcontour.io/v1.Route"> 1555 []Route 1556 </a> 1557 </em> 1558 </td> 1559 <td> 1560 <em>(Optional)</em> 1561 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 1562 </td> 1563 </tr> 1564 <tr> 1565 <td style="white-space:nowrap"> 1566 <code>tcpproxy</code> 1567 <br> 1568 <em> 1569 <a href="#projectcontour.io/v1.TCPProxy"> 1570 TCPProxy 1571 </a> 1572 </em> 1573 </td> 1574 <td> 1575 <em>(Optional)</em> 1576 <p>TCPProxy holds TCP proxy information.</p> 1577 </td> 1578 </tr> 1579 <tr> 1580 <td style="white-space:nowrap"> 1581 <code>includes</code> 1582 <br> 1583 <em> 1584 <a href="#projectcontour.io/v1.Include"> 1585 []Include 1586 </a> 1587 </em> 1588 </td> 1589 <td> 1590 <em>(Optional)</em> 1591 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 1592 possibly in another namespace.</p> 1593 </td> 1594 </tr> 1595 <tr> 1596 <td style="white-space:nowrap"> 1597 <code>ingressClassName</code> 1598 <br> 1599 <em> 1600 string 1601 </em> 1602 </td> 1603 <td> 1604 <em>(Optional)</em> 1605 <p>IngressClassName optionally specifies the ingress class to use for this 1606 HTTPProxy. This replaces the deprecated <code>kubernetes.io/ingress.class</code> 1607 annotation. For backwards compatibility, when that annotation is set, it 1608 is given precedence over this field.</p> 1609 </td> 1610 </tr> 1611 </tbody> 1612 </table> 1613 <h3 id="projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus 1614 </h3> 1615 <p> 1616 (<em>Appears on:</em> 1617 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 1618 </p> 1619 <p> 1620 <p>HTTPProxyStatus reports the current state of the HTTPProxy.</p> 1621 </p> 1622 <table> 1623 <thead> 1624 <tr> 1625 <th>Field</th> 1626 <th>Description</th> 1627 </tr> 1628 </thead> 1629 <tbody> 1630 <tr> 1631 <td style="white-space:nowrap"> 1632 <code>currentStatus</code> 1633 <br> 1634 <em> 1635 string 1636 </em> 1637 </td> 1638 <td> 1639 <em>(Optional)</em> 1640 </td> 1641 </tr> 1642 <tr> 1643 <td style="white-space:nowrap"> 1644 <code>description</code> 1645 <br> 1646 <em> 1647 string 1648 </em> 1649 </td> 1650 <td> 1651 <em>(Optional)</em> 1652 </td> 1653 </tr> 1654 <tr> 1655 <td style="white-space:nowrap"> 1656 <code>loadBalancer</code> 1657 <br> 1658 <em> 1659 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#loadbalancerstatus-v1-core"> 1660 Kubernetes core/v1.LoadBalancerStatus 1661 </a> 1662 </em> 1663 </td> 1664 <td> 1665 <em>(Optional)</em> 1666 <p>LoadBalancer contains the current status of the load balancer.</p> 1667 </td> 1668 </tr> 1669 <tr> 1670 <td style="white-space:nowrap"> 1671 <code>conditions</code> 1672 <br> 1673 <em> 1674 <a href="#projectcontour.io/v1.DetailedCondition"> 1675 []DetailedCondition 1676 </a> 1677 </em> 1678 </td> 1679 <td> 1680 <em>(Optional)</em> 1681 <p>Conditions contains information about the current status of the HTTPProxy, 1682 in an upstream-friendly container.</p> 1683 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 1684 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 1685 and vice versa.</p> 1686 <p>Contour will leave untouched any other Conditions set in this block, 1687 in case some other controller wants to add a Condition.</p> 1688 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 1689 namespace your condition with a label, like <code>controller.domain.com/ConditionName</code>.</p> 1690 </td> 1691 </tr> 1692 </tbody> 1693 </table> 1694 <h3 id="projectcontour.io/v1.HTTPRequestRedirectPolicy">HTTPRequestRedirectPolicy 1695 </h3> 1696 <p> 1697 (<em>Appears on:</em> 1698 <a href="#projectcontour.io/v1.Route">Route</a>) 1699 </p> 1700 <p> 1701 <p>HTTPRequestRedirectPolicy defines configuration for redirecting a request.</p> 1702 </p> 1703 <table> 1704 <thead> 1705 <tr> 1706 <th>Field</th> 1707 <th>Description</th> 1708 </tr> 1709 </thead> 1710 <tbody> 1711 <tr> 1712 <td style="white-space:nowrap"> 1713 <code>scheme</code> 1714 <br> 1715 <em> 1716 string 1717 </em> 1718 </td> 1719 <td> 1720 <em>(Optional)</em> 1721 <p>Scheme is the scheme to be used in the value of the <code>Location</code> 1722 header in the response. 1723 When empty, the scheme of the request is used.</p> 1724 </td> 1725 </tr> 1726 <tr> 1727 <td style="white-space:nowrap"> 1728 <code>hostname</code> 1729 <br> 1730 <em> 1731 string 1732 </em> 1733 </td> 1734 <td> 1735 <em>(Optional)</em> 1736 <p>Hostname is the precise hostname to be used in the value of the <code>Location</code> 1737 header in the response. 1738 When empty, the hostname of the request is used. 1739 No wildcards are allowed.</p> 1740 </td> 1741 </tr> 1742 <tr> 1743 <td style="white-space:nowrap"> 1744 <code>port</code> 1745 <br> 1746 <em> 1747 int32 1748 </em> 1749 </td> 1750 <td> 1751 <em>(Optional)</em> 1752 <p>Port is the port to be used in the value of the <code>Location</code> 1753 header in the response. 1754 When empty, port (if specified) of the request is used.</p> 1755 </td> 1756 </tr> 1757 <tr> 1758 <td style="white-space:nowrap"> 1759 <code>statusCode</code> 1760 <br> 1761 <em> 1762 int 1763 </em> 1764 </td> 1765 <td> 1766 <em>(Optional)</em> 1767 <p>StatusCode is the HTTP status code to be used in response.</p> 1768 </td> 1769 </tr> 1770 <tr> 1771 <td style="white-space:nowrap"> 1772 <code>path</code> 1773 <br> 1774 <em> 1775 string 1776 </em> 1777 </td> 1778 <td> 1779 <em>(Optional)</em> 1780 <p>Path allows for redirection to a different path from the 1781 original on the request. The path must start with a 1782 leading slash.</p> 1783 <p>Note: Only one of Path or Prefix can be defined.</p> 1784 </td> 1785 </tr> 1786 <tr> 1787 <td style="white-space:nowrap"> 1788 <code>prefix</code> 1789 <br> 1790 <em> 1791 string 1792 </em> 1793 </td> 1794 <td> 1795 <em>(Optional)</em> 1796 <p>Prefix defines the value to swap the matched prefix or path with. 1797 The prefix must start with a leading slash.</p> 1798 <p>Note: Only one of Path or Prefix can be defined.</p> 1799 </td> 1800 </tr> 1801 </tbody> 1802 </table> 1803 <h3 id="projectcontour.io/v1.HTTPStatusRange">HTTPStatusRange 1804 </h3> 1805 <p> 1806 (<em>Appears on:</em> 1807 <a href="#projectcontour.io/v1.HTTPHealthCheckPolicy">HTTPHealthCheckPolicy</a>) 1808 </p> 1809 <p> 1810 </p> 1811 <table> 1812 <thead> 1813 <tr> 1814 <th>Field</th> 1815 <th>Description</th> 1816 </tr> 1817 </thead> 1818 <tbody> 1819 <tr> 1820 <td style="white-space:nowrap"> 1821 <code>start</code> 1822 <br> 1823 <em> 1824 int64 1825 </em> 1826 </td> 1827 <td> 1828 <p>The start (inclusive) of a range of HTTP status codes.</p> 1829 </td> 1830 </tr> 1831 <tr> 1832 <td style="white-space:nowrap"> 1833 <code>end</code> 1834 <br> 1835 <em> 1836 int64 1837 </em> 1838 </td> 1839 <td> 1840 <p>The end (exclusive) of a range of HTTP status codes.</p> 1841 </td> 1842 </tr> 1843 </tbody> 1844 </table> 1845 <h3 id="projectcontour.io/v1.HeaderHashOptions">HeaderHashOptions 1846 </h3> 1847 <p> 1848 (<em>Appears on:</em> 1849 <a href="#projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy</a>) 1850 </p> 1851 <p> 1852 <p>HeaderHashOptions contains options to configure a HTTP request header hash 1853 policy, used in request attribute hash based load balancing.</p> 1854 </p> 1855 <table> 1856 <thead> 1857 <tr> 1858 <th>Field</th> 1859 <th>Description</th> 1860 </tr> 1861 </thead> 1862 <tbody> 1863 <tr> 1864 <td style="white-space:nowrap"> 1865 <code>headerName</code> 1866 <br> 1867 <em> 1868 string 1869 </em> 1870 </td> 1871 <td> 1872 <p>HeaderName is the name of the HTTP request header that will be used to 1873 calculate the hash key. If the header specified is not present on a 1874 request, no hash will be produced.</p> 1875 </td> 1876 </tr> 1877 </tbody> 1878 </table> 1879 <h3 id="projectcontour.io/v1.HeaderMatchCondition">HeaderMatchCondition 1880 </h3> 1881 <p> 1882 (<em>Appears on:</em> 1883 <a href="#projectcontour.io/v1.MatchCondition">MatchCondition</a>, 1884 <a href="#projectcontour.io/v1.RequestHeaderValueMatchDescriptor">RequestHeaderValueMatchDescriptor</a>) 1885 </p> 1886 <p> 1887 <p>HeaderMatchCondition specifies how to conditionally match against HTTP 1888 headers. The Name field is required, only one of Present, NotPresent, 1889 Contains, NotContains, Exact, NotExact and Regex can be set. 1890 For negative matching rules only (e.g. NotContains or NotExact) you can set 1891 TreatMissingAsEmpty. 1892 IgnoreCase has no effect for Regex.</p> 1893 </p> 1894 <table> 1895 <thead> 1896 <tr> 1897 <th>Field</th> 1898 <th>Description</th> 1899 </tr> 1900 </thead> 1901 <tbody> 1902 <tr> 1903 <td style="white-space:nowrap"> 1904 <code>name</code> 1905 <br> 1906 <em> 1907 string 1908 </em> 1909 </td> 1910 <td> 1911 <p>Name is the name of the header to match against. Name is required. 1912 Header names are case insensitive.</p> 1913 </td> 1914 </tr> 1915 <tr> 1916 <td style="white-space:nowrap"> 1917 <code>present</code> 1918 <br> 1919 <em> 1920 bool 1921 </em> 1922 </td> 1923 <td> 1924 <em>(Optional)</em> 1925 <p>Present specifies that condition is true when the named header 1926 is present, regardless of its value. Note that setting Present 1927 to false does not make the condition true if the named header 1928 is absent.</p> 1929 </td> 1930 </tr> 1931 <tr> 1932 <td style="white-space:nowrap"> 1933 <code>notpresent</code> 1934 <br> 1935 <em> 1936 bool 1937 </em> 1938 </td> 1939 <td> 1940 <em>(Optional)</em> 1941 <p>NotPresent specifies that condition is true when the named header 1942 is not present. Note that setting NotPresent to false does not 1943 make the condition true if the named header is present.</p> 1944 </td> 1945 </tr> 1946 <tr> 1947 <td style="white-space:nowrap"> 1948 <code>contains</code> 1949 <br> 1950 <em> 1951 string 1952 </em> 1953 </td> 1954 <td> 1955 <em>(Optional)</em> 1956 <p>Contains specifies a substring that must be present in 1957 the header value.</p> 1958 </td> 1959 </tr> 1960 <tr> 1961 <td style="white-space:nowrap"> 1962 <code>notcontains</code> 1963 <br> 1964 <em> 1965 string 1966 </em> 1967 </td> 1968 <td> 1969 <em>(Optional)</em> 1970 <p>NotContains specifies a substring that must not be present 1971 in the header value.</p> 1972 </td> 1973 </tr> 1974 <tr> 1975 <td style="white-space:nowrap"> 1976 <code>ignoreCase</code> 1977 <br> 1978 <em> 1979 bool 1980 </em> 1981 </td> 1982 <td> 1983 <em>(Optional)</em> 1984 <p>IgnoreCase specifies that string matching should be case insensitive. 1985 Note that this has no effect on the Regex parameter.</p> 1986 </td> 1987 </tr> 1988 <tr> 1989 <td style="white-space:nowrap"> 1990 <code>exact</code> 1991 <br> 1992 <em> 1993 string 1994 </em> 1995 </td> 1996 <td> 1997 <em>(Optional)</em> 1998 <p>Exact specifies a string that the header value must be equal to.</p> 1999 </td> 2000 </tr> 2001 <tr> 2002 <td style="white-space:nowrap"> 2003 <code>notexact</code> 2004 <br> 2005 <em> 2006 string 2007 </em> 2008 </td> 2009 <td> 2010 <em>(Optional)</em> 2011 <p>NoExact specifies a string that the header value must not be 2012 equal to. The condition is true if the header has any other value.</p> 2013 </td> 2014 </tr> 2015 <tr> 2016 <td style="white-space:nowrap"> 2017 <code>regex</code> 2018 <br> 2019 <em> 2020 string 2021 </em> 2022 </td> 2023 <td> 2024 <em>(Optional)</em> 2025 <p>Regex specifies a regular expression pattern that must match the header 2026 value.</p> 2027 </td> 2028 </tr> 2029 <tr> 2030 <td style="white-space:nowrap"> 2031 <code>treatMissingAsEmpty</code> 2032 <br> 2033 <em> 2034 bool 2035 </em> 2036 </td> 2037 <td> 2038 <em>(Optional)</em> 2039 <p>TreatMissingAsEmpty specifies if the header match rule specified header 2040 does not exist, this header value will be treated as empty. Defaults to false. 2041 Unlike the underlying Envoy implementation this is <strong>only</strong> supported for 2042 negative matches (e.g. NotContains, NotExact).</p> 2043 </td> 2044 </tr> 2045 </tbody> 2046 </table> 2047 <h3 id="projectcontour.io/v1.HeaderValue">HeaderValue 2048 </h3> 2049 <p> 2050 (<em>Appears on:</em> 2051 <a href="#projectcontour.io/v1.HeadersPolicy">HeadersPolicy</a>, 2052 <a href="#projectcontour.io/v1.LocalRateLimitPolicy">LocalRateLimitPolicy</a>) 2053 </p> 2054 <p> 2055 <p>HeaderValue represents a header name/value pair</p> 2056 </p> 2057 <table> 2058 <thead> 2059 <tr> 2060 <th>Field</th> 2061 <th>Description</th> 2062 </tr> 2063 </thead> 2064 <tbody> 2065 <tr> 2066 <td style="white-space:nowrap"> 2067 <code>name</code> 2068 <br> 2069 <em> 2070 string 2071 </em> 2072 </td> 2073 <td> 2074 <p>Name represents a key of a header</p> 2075 </td> 2076 </tr> 2077 <tr> 2078 <td style="white-space:nowrap"> 2079 <code>value</code> 2080 <br> 2081 <em> 2082 string 2083 </em> 2084 </td> 2085 <td> 2086 <p>Value represents the value of a header specified by a key</p> 2087 </td> 2088 </tr> 2089 </tbody> 2090 </table> 2091 <h3 id="projectcontour.io/v1.HeadersPolicy">HeadersPolicy 2092 </h3> 2093 <p> 2094 (<em>Appears on:</em> 2095 <a href="#projectcontour.io/v1.Route">Route</a>, 2096 <a href="#projectcontour.io/v1.Service">Service</a>) 2097 </p> 2098 <p> 2099 <p>HeadersPolicy defines how headers are managed during forwarding. 2100 The <code>Host</code> header is treated specially and if set in a HTTP request 2101 will be used as the SNI server name when forwarding over TLS. It is an 2102 error to attempt to set the <code>Host</code> header in a HTTP response.</p> 2103 </p> 2104 <table> 2105 <thead> 2106 <tr> 2107 <th>Field</th> 2108 <th>Description</th> 2109 </tr> 2110 </thead> 2111 <tbody> 2112 <tr> 2113 <td style="white-space:nowrap"> 2114 <code>set</code> 2115 <br> 2116 <em> 2117 <a href="#projectcontour.io/v1.HeaderValue"> 2118 []HeaderValue 2119 </a> 2120 </em> 2121 </td> 2122 <td> 2123 <em>(Optional)</em> 2124 <p>Set specifies a list of HTTP header values that will be set in the HTTP header. 2125 If the header does not exist it will be added, otherwise it will be overwritten with the new value.</p> 2126 </td> 2127 </tr> 2128 <tr> 2129 <td style="white-space:nowrap"> 2130 <code>remove</code> 2131 <br> 2132 <em> 2133 []string 2134 </em> 2135 </td> 2136 <td> 2137 <em>(Optional)</em> 2138 <p>Remove specifies a list of HTTP header names to remove.</p> 2139 </td> 2140 </tr> 2141 </tbody> 2142 </table> 2143 <h3 id="projectcontour.io/v1.IPFilterPolicy">IPFilterPolicy 2144 </h3> 2145 <p> 2146 (<em>Appears on:</em> 2147 <a href="#projectcontour.io/v1.Route">Route</a>, 2148 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 2149 </p> 2150 <p> 2151 </p> 2152 <table> 2153 <thead> 2154 <tr> 2155 <th>Field</th> 2156 <th>Description</th> 2157 </tr> 2158 </thead> 2159 <tbody> 2160 <tr> 2161 <td style="white-space:nowrap"> 2162 <code>source</code> 2163 <br> 2164 <em> 2165 <a href="#projectcontour.io/v1.IPFilterSource"> 2166 IPFilterSource 2167 </a> 2168 </em> 2169 </td> 2170 <td> 2171 <p>Source indicates how to determine the ip address to filter on, and can be 2172 one of two values: 2173 - <code>Remote</code> filters on the ip address of the client, accounting for PROXY and 2174 X-Forwarded-For as needed. 2175 - <code>Peer</code> filters on the ip of the network request, ignoring PROXY and 2176 X-Forwarded-For.</p> 2177 </td> 2178 </tr> 2179 <tr> 2180 <td style="white-space:nowrap"> 2181 <code>cidr</code> 2182 <br> 2183 <em> 2184 string 2185 </em> 2186 </td> 2187 <td> 2188 <p>CIDR is a CIDR block of ipv4 or ipv6 addresses to filter on. This can also be 2189 a bare IP address (without a mask) to filter on exactly one address.</p> 2190 </td> 2191 </tr> 2192 </tbody> 2193 </table> 2194 <h3 id="projectcontour.io/v1.IPFilterSource">IPFilterSource 2195 (<code>string</code> alias)</p></h3> 2196 <p> 2197 (<em>Appears on:</em> 2198 <a href="#projectcontour.io/v1.IPFilterPolicy">IPFilterPolicy</a>) 2199 </p> 2200 <p> 2201 <p>IPFilterSource indicates which IP should be considered for filtering</p> 2202 </p> 2203 <table> 2204 <thead> 2205 <tr> 2206 <th>Value</th> 2207 <th>Description</th> 2208 </tr> 2209 </thead> 2210 <tbody><tr><td><p>"Peer"</p></td> 2211 <td></td> 2212 </tr><tr><td><p>"Remote"</p></td> 2213 <td></td> 2214 </tr></tbody> 2215 </table> 2216 <h3 id="projectcontour.io/v1.Include">Include 2217 </h3> 2218 <p> 2219 (<em>Appears on:</em> 2220 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 2221 </p> 2222 <p> 2223 <p>Include describes a set of policies that can be applied to an HTTPProxy in a namespace.</p> 2224 </p> 2225 <table> 2226 <thead> 2227 <tr> 2228 <th>Field</th> 2229 <th>Description</th> 2230 </tr> 2231 </thead> 2232 <tbody> 2233 <tr> 2234 <td style="white-space:nowrap"> 2235 <code>name</code> 2236 <br> 2237 <em> 2238 string 2239 </em> 2240 </td> 2241 <td> 2242 <p>Name of the HTTPProxy</p> 2243 </td> 2244 </tr> 2245 <tr> 2246 <td style="white-space:nowrap"> 2247 <code>namespace</code> 2248 <br> 2249 <em> 2250 string 2251 </em> 2252 </td> 2253 <td> 2254 <em>(Optional)</em> 2255 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 2256 </td> 2257 </tr> 2258 <tr> 2259 <td style="white-space:nowrap"> 2260 <code>conditions</code> 2261 <br> 2262 <em> 2263 <a href="#projectcontour.io/v1.MatchCondition"> 2264 []MatchCondition 2265 </a> 2266 </em> 2267 </td> 2268 <td> 2269 <em>(Optional)</em> 2270 <p>Conditions are a set of rules that are applied to included HTTPProxies. 2271 In effect, they are added onto the Conditions of included HTTPProxy Route 2272 structs. 2273 When applied, they are merged using AND, with one exception: 2274 There can be only one Prefix MatchCondition per Conditions slice. 2275 More than one Prefix, or contradictory Conditions, will make the 2276 include invalid. Exact and Regex match conditions are not allowed 2277 on includes.</p> 2278 </td> 2279 </tr> 2280 </tbody> 2281 </table> 2282 <h3 id="projectcontour.io/v1.JWTProvider">JWTProvider 2283 </h3> 2284 <p> 2285 (<em>Appears on:</em> 2286 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 2287 </p> 2288 <p> 2289 <p>JWTProvider defines how to verify JWTs on requests.</p> 2290 </p> 2291 <table> 2292 <thead> 2293 <tr> 2294 <th>Field</th> 2295 <th>Description</th> 2296 </tr> 2297 </thead> 2298 <tbody> 2299 <tr> 2300 <td style="white-space:nowrap"> 2301 <code>name</code> 2302 <br> 2303 <em> 2304 string 2305 </em> 2306 </td> 2307 <td> 2308 <p>Unique name for the provider.</p> 2309 </td> 2310 </tr> 2311 <tr> 2312 <td style="white-space:nowrap"> 2313 <code>default</code> 2314 <br> 2315 <em> 2316 bool 2317 </em> 2318 </td> 2319 <td> 2320 <em>(Optional)</em> 2321 <p>Whether the provider should apply to all 2322 routes in the HTTPProxy/its includes by 2323 default. At most one provider can be marked 2324 as the default. If no provider is marked 2325 as the default, individual routes must explicitly 2326 identify the provider they require.</p> 2327 </td> 2328 </tr> 2329 <tr> 2330 <td style="white-space:nowrap"> 2331 <code>issuer</code> 2332 <br> 2333 <em> 2334 string 2335 </em> 2336 </td> 2337 <td> 2338 <em>(Optional)</em> 2339 <p>Issuer that JWTs are required to have in the “iss” field. 2340 If not provided, JWT issuers are not checked.</p> 2341 </td> 2342 </tr> 2343 <tr> 2344 <td style="white-space:nowrap"> 2345 <code>audiences</code> 2346 <br> 2347 <em> 2348 []string 2349 </em> 2350 </td> 2351 <td> 2352 <em>(Optional)</em> 2353 <p>Audiences that JWTs are allowed to have in the “aud” field. 2354 If not provided, JWT audiences are not checked.</p> 2355 </td> 2356 </tr> 2357 <tr> 2358 <td style="white-space:nowrap"> 2359 <code>remoteJWKS</code> 2360 <br> 2361 <em> 2362 <a href="#projectcontour.io/v1.RemoteJWKS"> 2363 RemoteJWKS 2364 </a> 2365 </em> 2366 </td> 2367 <td> 2368 <p>Remote JWKS to use for verifying JWT signatures.</p> 2369 </td> 2370 </tr> 2371 <tr> 2372 <td style="white-space:nowrap"> 2373 <code>forwardJWT</code> 2374 <br> 2375 <em> 2376 bool 2377 </em> 2378 </td> 2379 <td> 2380 <em>(Optional)</em> 2381 <p>Whether the JWT should be forwarded to the backend 2382 service after successful verification. By default, 2383 the JWT is not forwarded.</p> 2384 </td> 2385 </tr> 2386 </tbody> 2387 </table> 2388 <h3 id="projectcontour.io/v1.JWTVerificationPolicy">JWTVerificationPolicy 2389 </h3> 2390 <p> 2391 (<em>Appears on:</em> 2392 <a href="#projectcontour.io/v1.Route">Route</a>) 2393 </p> 2394 <p> 2395 </p> 2396 <table> 2397 <thead> 2398 <tr> 2399 <th>Field</th> 2400 <th>Description</th> 2401 </tr> 2402 </thead> 2403 <tbody> 2404 <tr> 2405 <td style="white-space:nowrap"> 2406 <code>require</code> 2407 <br> 2408 <em> 2409 string 2410 </em> 2411 </td> 2412 <td> 2413 <em>(Optional)</em> 2414 <p>Require names a specific JWT provider (defined in the virtual host) 2415 to require for the route. If specified, this field overrides the 2416 default provider if one exists. If this field is not specified, 2417 the default provider will be required if one exists. At most one of 2418 this field or the “disabled” field can be specified.</p> 2419 </td> 2420 </tr> 2421 <tr> 2422 <td style="white-space:nowrap"> 2423 <code>disabled</code> 2424 <br> 2425 <em> 2426 bool 2427 </em> 2428 </td> 2429 <td> 2430 <em>(Optional)</em> 2431 <p>Disabled defines whether to disable all JWT verification for this 2432 route. This can be used to opt specific routes out of the default 2433 JWT provider for the HTTPProxy. At most one of this field or the 2434 “require” field can be specified.</p> 2435 </td> 2436 </tr> 2437 </tbody> 2438 </table> 2439 <h3 id="projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy 2440 </h3> 2441 <p> 2442 (<em>Appears on:</em> 2443 <a href="#projectcontour.io/v1.Route">Route</a>, 2444 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>, 2445 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 2446 </p> 2447 <p> 2448 <p>LoadBalancerPolicy defines the load balancing policy.</p> 2449 </p> 2450 <table> 2451 <thead> 2452 <tr> 2453 <th>Field</th> 2454 <th>Description</th> 2455 </tr> 2456 </thead> 2457 <tbody> 2458 <tr> 2459 <td style="white-space:nowrap"> 2460 <code>strategy</code> 2461 <br> 2462 <em> 2463 string 2464 </em> 2465 </td> 2466 <td> 2467 <p>Strategy specifies the policy used to balance requests 2468 across the pool of backend pods. Valid policy names are 2469 <code>Random</code>, <code>RoundRobin</code>, <code>WeightedLeastRequest</code>, <code>Cookie</code>, 2470 and <code>RequestHash</code>. If an unknown strategy name is specified 2471 or no policy is supplied, the default <code>RoundRobin</code> policy 2472 is used.</p> 2473 </td> 2474 </tr> 2475 <tr> 2476 <td style="white-space:nowrap"> 2477 <code>requestHashPolicies</code> 2478 <br> 2479 <em> 2480 <a href="#projectcontour.io/v1.RequestHashPolicy"> 2481 []RequestHashPolicy 2482 </a> 2483 </em> 2484 </td> 2485 <td> 2486 <p>RequestHashPolicies contains a list of hash policies to apply when the 2487 <code>RequestHash</code> load balancing strategy is chosen. If an element of the 2488 supplied list of hash policies is invalid, it will be ignored. If the 2489 list of hash policies is empty after validation, the load balancing 2490 strategy will fall back to the default <code>RoundRobin</code>.</p> 2491 </td> 2492 </tr> 2493 </tbody> 2494 </table> 2495 <h3 id="projectcontour.io/v1.LocalRateLimitPolicy">LocalRateLimitPolicy 2496 </h3> 2497 <p> 2498 (<em>Appears on:</em> 2499 <a href="#projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy</a>) 2500 </p> 2501 <p> 2502 <p>LocalRateLimitPolicy defines local rate limiting parameters.</p> 2503 </p> 2504 <table> 2505 <thead> 2506 <tr> 2507 <th>Field</th> 2508 <th>Description</th> 2509 </tr> 2510 </thead> 2511 <tbody> 2512 <tr> 2513 <td style="white-space:nowrap"> 2514 <code>requests</code> 2515 <br> 2516 <em> 2517 uint32 2518 </em> 2519 </td> 2520 <td> 2521 <p>Requests defines how many requests per unit of time should 2522 be allowed before rate limiting occurs.</p> 2523 </td> 2524 </tr> 2525 <tr> 2526 <td style="white-space:nowrap"> 2527 <code>unit</code> 2528 <br> 2529 <em> 2530 string 2531 </em> 2532 </td> 2533 <td> 2534 <p>Unit defines the period of time within which requests 2535 over the limit will be rate limited. Valid values are 2536 “second”, “minute” and “hour”.</p> 2537 </td> 2538 </tr> 2539 <tr> 2540 <td style="white-space:nowrap"> 2541 <code>burst</code> 2542 <br> 2543 <em> 2544 uint32 2545 </em> 2546 </td> 2547 <td> 2548 <em>(Optional)</em> 2549 <p>Burst defines the number of requests above the requests per 2550 unit that should be allowed within a short period of time.</p> 2551 </td> 2552 </tr> 2553 <tr> 2554 <td style="white-space:nowrap"> 2555 <code>responseStatusCode</code> 2556 <br> 2557 <em> 2558 uint32 2559 </em> 2560 </td> 2561 <td> 2562 <em>(Optional)</em> 2563 <p>ResponseStatusCode is the HTTP status code to use for responses 2564 to rate-limited requests. Codes must be in the 400-599 range 2565 (inclusive). If not specified, the Envoy default of 429 (Too 2566 Many Requests) is used.</p> 2567 </td> 2568 </tr> 2569 <tr> 2570 <td style="white-space:nowrap"> 2571 <code>responseHeadersToAdd</code> 2572 <br> 2573 <em> 2574 <a href="#projectcontour.io/v1.HeaderValue"> 2575 []HeaderValue 2576 </a> 2577 </em> 2578 </td> 2579 <td> 2580 <em>(Optional)</em> 2581 <p>ResponseHeadersToAdd is an optional list of response headers to 2582 set when a request is rate-limited.</p> 2583 </td> 2584 </tr> 2585 </tbody> 2586 </table> 2587 <h3 id="projectcontour.io/v1.MatchCondition">MatchCondition 2588 </h3> 2589 <p> 2590 (<em>Appears on:</em> 2591 <a href="#projectcontour.io/v1.Include">Include</a>, 2592 <a href="#projectcontour.io/v1.Route">Route</a>) 2593 </p> 2594 <p> 2595 <p>MatchCondition are a general holder for matching rules for HTTPProxies. 2596 One of Prefix, Exact, Regex, Header or QueryParameter must be provided.</p> 2597 </p> 2598 <table> 2599 <thead> 2600 <tr> 2601 <th>Field</th> 2602 <th>Description</th> 2603 </tr> 2604 </thead> 2605 <tbody> 2606 <tr> 2607 <td style="white-space:nowrap"> 2608 <code>prefix</code> 2609 <br> 2610 <em> 2611 string 2612 </em> 2613 </td> 2614 <td> 2615 <em>(Optional)</em> 2616 <p>Prefix defines a prefix match for a request.</p> 2617 </td> 2618 </tr> 2619 <tr> 2620 <td style="white-space:nowrap"> 2621 <code>exact</code> 2622 <br> 2623 <em> 2624 string 2625 </em> 2626 </td> 2627 <td> 2628 <em>(Optional)</em> 2629 <p>Exact defines a exact match for a request. 2630 This field is not allowed in include match conditions.</p> 2631 </td> 2632 </tr> 2633 <tr> 2634 <td style="white-space:nowrap"> 2635 <code>regex</code> 2636 <br> 2637 <em> 2638 string 2639 </em> 2640 </td> 2641 <td> 2642 <em>(Optional)</em> 2643 <p>Regex defines a regex match for a request. 2644 This field is not allowed in include match conditions.</p> 2645 </td> 2646 </tr> 2647 <tr> 2648 <td style="white-space:nowrap"> 2649 <code>header</code> 2650 <br> 2651 <em> 2652 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 2653 HeaderMatchCondition 2654 </a> 2655 </em> 2656 </td> 2657 <td> 2658 <em>(Optional)</em> 2659 <p>Header specifies the header condition to match.</p> 2660 </td> 2661 </tr> 2662 <tr> 2663 <td style="white-space:nowrap"> 2664 <code>queryParameter</code> 2665 <br> 2666 <em> 2667 <a href="#projectcontour.io/v1.QueryParameterMatchCondition"> 2668 QueryParameterMatchCondition 2669 </a> 2670 </em> 2671 </td> 2672 <td> 2673 <em>(Optional)</em> 2674 <p>QueryParameter specifies the query parameter condition to match.</p> 2675 </td> 2676 </tr> 2677 </tbody> 2678 </table> 2679 <h3 id="projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy 2680 </h3> 2681 <p> 2682 (<em>Appears on:</em> 2683 <a href="#projectcontour.io/v1.Route">Route</a>) 2684 </p> 2685 <p> 2686 <p>PathRewritePolicy specifies how a request URL path should be 2687 rewritten. This rewriting takes place after a request is routed 2688 and has no subsequent effects on the proxy’s routing decision. 2689 No HTTP headers or body content is rewritten.</p> 2690 <p>Exactly one field in this struct may be specified.</p> 2691 </p> 2692 <table> 2693 <thead> 2694 <tr> 2695 <th>Field</th> 2696 <th>Description</th> 2697 </tr> 2698 </thead> 2699 <tbody> 2700 <tr> 2701 <td style="white-space:nowrap"> 2702 <code>replacePrefix</code> 2703 <br> 2704 <em> 2705 <a href="#projectcontour.io/v1.ReplacePrefix"> 2706 []ReplacePrefix 2707 </a> 2708 </em> 2709 </td> 2710 <td> 2711 <em>(Optional)</em> 2712 <p>ReplacePrefix describes how the path prefix should be replaced.</p> 2713 </td> 2714 </tr> 2715 </tbody> 2716 </table> 2717 <h3 id="projectcontour.io/v1.QueryParameterHashOptions">QueryParameterHashOptions 2718 </h3> 2719 <p> 2720 (<em>Appears on:</em> 2721 <a href="#projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy</a>) 2722 </p> 2723 <p> 2724 <p>QueryParameterHashOptions contains options to configure a query parameter based hash 2725 policy, used in request attribute hash based load balancing.</p> 2726 </p> 2727 <table> 2728 <thead> 2729 <tr> 2730 <th>Field</th> 2731 <th>Description</th> 2732 </tr> 2733 </thead> 2734 <tbody> 2735 <tr> 2736 <td style="white-space:nowrap"> 2737 <code>parameterName</code> 2738 <br> 2739 <em> 2740 string 2741 </em> 2742 </td> 2743 <td> 2744 <p>ParameterName is the name of the HTTP request query parameter that will be used to 2745 calculate the hash key. If the query parameter specified is not present on a 2746 request, no hash will be produced.</p> 2747 </td> 2748 </tr> 2749 </tbody> 2750 </table> 2751 <h3 id="projectcontour.io/v1.QueryParameterMatchCondition">QueryParameterMatchCondition 2752 </h3> 2753 <p> 2754 (<em>Appears on:</em> 2755 <a href="#projectcontour.io/v1.MatchCondition">MatchCondition</a>) 2756 </p> 2757 <p> 2758 <p>QueryParameterMatchCondition specifies how to conditionally match against HTTP 2759 query parameters. The Name field is required, only one of Exact, Prefix, 2760 Suffix, Regex, Contains and Present can be set. IgnoreCase has no effect 2761 for Regex.</p> 2762 </p> 2763 <table> 2764 <thead> 2765 <tr> 2766 <th>Field</th> 2767 <th>Description</th> 2768 </tr> 2769 </thead> 2770 <tbody> 2771 <tr> 2772 <td style="white-space:nowrap"> 2773 <code>name</code> 2774 <br> 2775 <em> 2776 string 2777 </em> 2778 </td> 2779 <td> 2780 <p>Name is the name of the query parameter to match against. Name is required. 2781 Query parameter names are case insensitive.</p> 2782 </td> 2783 </tr> 2784 <tr> 2785 <td style="white-space:nowrap"> 2786 <code>exact</code> 2787 <br> 2788 <em> 2789 string 2790 </em> 2791 </td> 2792 <td> 2793 <em>(Optional)</em> 2794 <p>Exact specifies a string that the query parameter value must be equal to.</p> 2795 </td> 2796 </tr> 2797 <tr> 2798 <td style="white-space:nowrap"> 2799 <code>prefix</code> 2800 <br> 2801 <em> 2802 string 2803 </em> 2804 </td> 2805 <td> 2806 <em>(Optional)</em> 2807 <p>Prefix defines a prefix match for the query parameter value.</p> 2808 </td> 2809 </tr> 2810 <tr> 2811 <td style="white-space:nowrap"> 2812 <code>suffix</code> 2813 <br> 2814 <em> 2815 string 2816 </em> 2817 </td> 2818 <td> 2819 <em>(Optional)</em> 2820 <p>Suffix defines a suffix match for a query parameter value.</p> 2821 </td> 2822 </tr> 2823 <tr> 2824 <td style="white-space:nowrap"> 2825 <code>regex</code> 2826 <br> 2827 <em> 2828 string 2829 </em> 2830 </td> 2831 <td> 2832 <em>(Optional)</em> 2833 <p>Regex specifies a regular expression pattern that must match the query 2834 parameter value.</p> 2835 </td> 2836 </tr> 2837 <tr> 2838 <td style="white-space:nowrap"> 2839 <code>contains</code> 2840 <br> 2841 <em> 2842 string 2843 </em> 2844 </td> 2845 <td> 2846 <em>(Optional)</em> 2847 <p>Contains specifies a substring that must be present in 2848 the query parameter value.</p> 2849 </td> 2850 </tr> 2851 <tr> 2852 <td style="white-space:nowrap"> 2853 <code>ignoreCase</code> 2854 <br> 2855 <em> 2856 bool 2857 </em> 2858 </td> 2859 <td> 2860 <em>(Optional)</em> 2861 <p>IgnoreCase specifies that string matching should be case insensitive. 2862 Note that this has no effect on the Regex parameter.</p> 2863 </td> 2864 </tr> 2865 <tr> 2866 <td style="white-space:nowrap"> 2867 <code>present</code> 2868 <br> 2869 <em> 2870 bool 2871 </em> 2872 </td> 2873 <td> 2874 <em>(Optional)</em> 2875 <p>Present specifies that condition is true when the named query parameter 2876 is present, regardless of its value. Note that setting Present 2877 to false does not make the condition true if the named query parameter 2878 is absent.</p> 2879 </td> 2880 </tr> 2881 </tbody> 2882 </table> 2883 <h3 id="projectcontour.io/v1.RateLimitDescriptor">RateLimitDescriptor 2884 </h3> 2885 <p> 2886 (<em>Appears on:</em> 2887 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy">GlobalRateLimitPolicy</a>) 2888 </p> 2889 <p> 2890 <p>RateLimitDescriptor defines a list of key-value pair generators.</p> 2891 </p> 2892 <table> 2893 <thead> 2894 <tr> 2895 <th>Field</th> 2896 <th>Description</th> 2897 </tr> 2898 </thead> 2899 <tbody> 2900 <tr> 2901 <td style="white-space:nowrap"> 2902 <code>entries</code> 2903 <br> 2904 <em> 2905 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry"> 2906 []RateLimitDescriptorEntry 2907 </a> 2908 </em> 2909 </td> 2910 <td> 2911 <p>Entries is the list of key-value pair generators.</p> 2912 </td> 2913 </tr> 2914 </tbody> 2915 </table> 2916 <h3 id="projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry 2917 </h3> 2918 <p> 2919 (<em>Appears on:</em> 2920 <a href="#projectcontour.io/v1.RateLimitDescriptor">RateLimitDescriptor</a>) 2921 </p> 2922 <p> 2923 <p>RateLimitDescriptorEntry is a key-value pair generator. Exactly 2924 one field on this struct must be non-nil.</p> 2925 </p> 2926 <table> 2927 <thead> 2928 <tr> 2929 <th>Field</th> 2930 <th>Description</th> 2931 </tr> 2932 </thead> 2933 <tbody> 2934 <tr> 2935 <td style="white-space:nowrap"> 2936 <code>genericKey</code> 2937 <br> 2938 <em> 2939 <a href="#projectcontour.io/v1.GenericKeyDescriptor"> 2940 GenericKeyDescriptor 2941 </a> 2942 </em> 2943 </td> 2944 <td> 2945 <em>(Optional)</em> 2946 <p>GenericKey defines a descriptor entry with a static key and value.</p> 2947 </td> 2948 </tr> 2949 <tr> 2950 <td style="white-space:nowrap"> 2951 <code>requestHeader</code> 2952 <br> 2953 <em> 2954 <a href="#projectcontour.io/v1.RequestHeaderDescriptor"> 2955 RequestHeaderDescriptor 2956 </a> 2957 </em> 2958 </td> 2959 <td> 2960 <em>(Optional)</em> 2961 <p>RequestHeader defines a descriptor entry that’s populated only if 2962 a given header is present on the request. The descriptor key is static, 2963 and the descriptor value is equal to the value of the header.</p> 2964 </td> 2965 </tr> 2966 <tr> 2967 <td style="white-space:nowrap"> 2968 <code>requestHeaderValueMatch</code> 2969 <br> 2970 <em> 2971 <a href="#projectcontour.io/v1.RequestHeaderValueMatchDescriptor"> 2972 RequestHeaderValueMatchDescriptor 2973 </a> 2974 </em> 2975 </td> 2976 <td> 2977 <em>(Optional)</em> 2978 <p>RequestHeaderValueMatch defines a descriptor entry that’s populated 2979 if the request’s headers match a set of 1+ match criteria. The 2980 descriptor key is “header_match”, and the descriptor value is static.</p> 2981 </td> 2982 </tr> 2983 <tr> 2984 <td style="white-space:nowrap"> 2985 <code>remoteAddress</code> 2986 <br> 2987 <em> 2988 <a href="#projectcontour.io/v1.RemoteAddressDescriptor"> 2989 RemoteAddressDescriptor 2990 </a> 2991 </em> 2992 </td> 2993 <td> 2994 <em>(Optional)</em> 2995 <p>RemoteAddress defines a descriptor entry with a key of “remote_address” 2996 and a value equal to the client’s IP address (from x-forwarded-for).</p> 2997 </td> 2998 </tr> 2999 </tbody> 3000 </table> 3001 <h3 id="projectcontour.io/v1.RateLimitPolicy">RateLimitPolicy 3002 </h3> 3003 <p> 3004 (<em>Appears on:</em> 3005 <a href="#projectcontour.io/v1.Route">Route</a>, 3006 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 3007 </p> 3008 <p> 3009 <p>RateLimitPolicy defines rate limiting parameters.</p> 3010 </p> 3011 <table> 3012 <thead> 3013 <tr> 3014 <th>Field</th> 3015 <th>Description</th> 3016 </tr> 3017 </thead> 3018 <tbody> 3019 <tr> 3020 <td style="white-space:nowrap"> 3021 <code>local</code> 3022 <br> 3023 <em> 3024 <a href="#projectcontour.io/v1.LocalRateLimitPolicy"> 3025 LocalRateLimitPolicy 3026 </a> 3027 </em> 3028 </td> 3029 <td> 3030 <em>(Optional)</em> 3031 <p>Local defines local rate limiting parameters, i.e. parameters 3032 for rate limiting that occurs within each Envoy pod as requests 3033 are handled.</p> 3034 </td> 3035 </tr> 3036 <tr> 3037 <td style="white-space:nowrap"> 3038 <code>global</code> 3039 <br> 3040 <em> 3041 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy"> 3042 GlobalRateLimitPolicy 3043 </a> 3044 </em> 3045 </td> 3046 <td> 3047 <em>(Optional)</em> 3048 <p>Global defines global rate limiting parameters, i.e. parameters 3049 defining descriptors that are sent to an external rate limit 3050 service (RLS) for a rate limit decision on each request.</p> 3051 </td> 3052 </tr> 3053 </tbody> 3054 </table> 3055 <h3 id="projectcontour.io/v1.RedirectResponseCode">RedirectResponseCode 3056 (<code>uint32</code> alias)</p></h3> 3057 <p> 3058 (<em>Appears on:</em> 3059 <a href="#projectcontour.io/v1.HTTPInternalRedirectPolicy">HTTPInternalRedirectPolicy</a>) 3060 </p> 3061 <p> 3062 <p>RedirectResponseCode is a uint32 type alias with validation to ensure that the value is valid.</p> 3063 </p> 3064 <h3 id="projectcontour.io/v1.RemoteAddressDescriptor">RemoteAddressDescriptor 3065 </h3> 3066 <p> 3067 (<em>Appears on:</em> 3068 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 3069 </p> 3070 <p> 3071 <p>RemoteAddressDescriptor defines a descriptor entry with a key of 3072 “remote_address” and a value equal to the client’s IP address 3073 (from x-forwarded-for).</p> 3074 </p> 3075 <h3 id="projectcontour.io/v1.RemoteJWKS">RemoteJWKS 3076 </h3> 3077 <p> 3078 (<em>Appears on:</em> 3079 <a href="#projectcontour.io/v1.JWTProvider">JWTProvider</a>) 3080 </p> 3081 <p> 3082 <p>RemoteJWKS defines how to fetch a JWKS from an HTTP endpoint.</p> 3083 </p> 3084 <table> 3085 <thead> 3086 <tr> 3087 <th>Field</th> 3088 <th>Description</th> 3089 </tr> 3090 </thead> 3091 <tbody> 3092 <tr> 3093 <td style="white-space:nowrap"> 3094 <code>uri</code> 3095 <br> 3096 <em> 3097 string 3098 </em> 3099 </td> 3100 <td> 3101 <p>The URI for the JWKS.</p> 3102 </td> 3103 </tr> 3104 <tr> 3105 <td style="white-space:nowrap"> 3106 <code>validation</code> 3107 <br> 3108 <em> 3109 <a href="#projectcontour.io/v1.UpstreamValidation"> 3110 UpstreamValidation 3111 </a> 3112 </em> 3113 </td> 3114 <td> 3115 <em>(Optional)</em> 3116 <p>UpstreamValidation defines how to verify the JWKS’s TLS certificate.</p> 3117 </td> 3118 </tr> 3119 <tr> 3120 <td style="white-space:nowrap"> 3121 <code>timeout</code> 3122 <br> 3123 <em> 3124 string 3125 </em> 3126 </td> 3127 <td> 3128 <em>(Optional)</em> 3129 <p>How long to wait for a response from the URI. 3130 If not specified, a default of 1s applies.</p> 3131 </td> 3132 </tr> 3133 <tr> 3134 <td style="white-space:nowrap"> 3135 <code>cacheDuration</code> 3136 <br> 3137 <em> 3138 string 3139 </em> 3140 </td> 3141 <td> 3142 <em>(Optional)</em> 3143 <p>How long to cache the JWKS locally. If not specified, 3144 Envoy’s default of 5m applies.</p> 3145 </td> 3146 </tr> 3147 <tr> 3148 <td style="white-space:nowrap"> 3149 <code>dnsLookupFamily</code> 3150 <br> 3151 <em> 3152 string 3153 </em> 3154 </td> 3155 <td> 3156 <em>(Optional)</em> 3157 <p>The DNS IP address resolution policy for the JWKS URI. 3158 When configured as “v4”, the DNS resolver will only perform a lookup 3159 for addresses in the IPv4 family. If “v6” is configured, the DNS resolver 3160 will only perform a lookup for addresses in the IPv6 family. 3161 If “all” is configured, the DNS resolver 3162 will perform a lookup for addresses in both the IPv4 and IPv6 family. 3163 If “auto” is configured, the DNS resolver will first perform a lookup 3164 for addresses in the IPv6 family and fallback to a lookup for addresses 3165 in the IPv4 family. If not specified, the Contour-wide setting defined 3166 in the config file or ContourConfiguration applies (defaults to “auto”).</p> 3167 <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> 3168 for more information.</p> 3169 </td> 3170 </tr> 3171 </tbody> 3172 </table> 3173 <h3 id="projectcontour.io/v1.ReplacePrefix">ReplacePrefix 3174 </h3> 3175 <p> 3176 (<em>Appears on:</em> 3177 <a href="#projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy</a>) 3178 </p> 3179 <p> 3180 <p>ReplacePrefix describes a path prefix replacement.</p> 3181 </p> 3182 <table> 3183 <thead> 3184 <tr> 3185 <th>Field</th> 3186 <th>Description</th> 3187 </tr> 3188 </thead> 3189 <tbody> 3190 <tr> 3191 <td style="white-space:nowrap"> 3192 <code>prefix</code> 3193 <br> 3194 <em> 3195 string 3196 </em> 3197 </td> 3198 <td> 3199 <em>(Optional)</em> 3200 <p>Prefix specifies the URL path prefix to be replaced.</p> 3201 <p>If Prefix is specified, it must exactly match the MatchCondition 3202 prefix that is rendered by the chain of including HTTPProxies 3203 and only that path prefix will be replaced by Replacement. 3204 This allows HTTPProxies that are included through multiple 3205 roots to only replace specific path prefixes, leaving others 3206 unmodified.</p> 3207 <p>If Prefix is not specified, all routing prefixes rendered 3208 by the include chain will be replaced.</p> 3209 </td> 3210 </tr> 3211 <tr> 3212 <td style="white-space:nowrap"> 3213 <code>replacement</code> 3214 <br> 3215 <em> 3216 string 3217 </em> 3218 </td> 3219 <td> 3220 <p>Replacement is the string that the routing path prefix 3221 will be replaced with. This must not be empty.</p> 3222 </td> 3223 </tr> 3224 </tbody> 3225 </table> 3226 <h3 id="projectcontour.io/v1.RequestHashPolicy">RequestHashPolicy 3227 </h3> 3228 <p> 3229 (<em>Appears on:</em> 3230 <a href="#projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy</a>) 3231 </p> 3232 <p> 3233 <p>RequestHashPolicy contains configuration for an individual hash policy 3234 on a request attribute.</p> 3235 </p> 3236 <table> 3237 <thead> 3238 <tr> 3239 <th>Field</th> 3240 <th>Description</th> 3241 </tr> 3242 </thead> 3243 <tbody> 3244 <tr> 3245 <td style="white-space:nowrap"> 3246 <code>terminal</code> 3247 <br> 3248 <em> 3249 bool 3250 </em> 3251 </td> 3252 <td> 3253 <p>Terminal is a flag that allows for short-circuiting computing of a hash 3254 for a given request. If set to true, and the request attribute specified 3255 in the attribute hash options is present, no further hash policies will 3256 be used to calculate a hash for the request.</p> 3257 </td> 3258 </tr> 3259 <tr> 3260 <td style="white-space:nowrap"> 3261 <code>headerHashOptions</code> 3262 <br> 3263 <em> 3264 <a href="#projectcontour.io/v1.HeaderHashOptions"> 3265 HeaderHashOptions 3266 </a> 3267 </em> 3268 </td> 3269 <td> 3270 <em>(Optional)</em> 3271 <p>HeaderHashOptions should be set when request header hash based load 3272 balancing is desired. It must be the only hash option field set, 3273 otherwise this request hash policy object will be ignored.</p> 3274 </td> 3275 </tr> 3276 <tr> 3277 <td style="white-space:nowrap"> 3278 <code>queryParameterHashOptions</code> 3279 <br> 3280 <em> 3281 <a href="#projectcontour.io/v1.QueryParameterHashOptions"> 3282 QueryParameterHashOptions 3283 </a> 3284 </em> 3285 </td> 3286 <td> 3287 <em>(Optional)</em> 3288 <p>QueryParameterHashOptions should be set when request query parameter hash based load 3289 balancing is desired. It must be the only hash option field set, 3290 otherwise this request hash policy object will be ignored.</p> 3291 </td> 3292 </tr> 3293 <tr> 3294 <td style="white-space:nowrap"> 3295 <code>hashSourceIP</code> 3296 <br> 3297 <em> 3298 bool 3299 </em> 3300 </td> 3301 <td> 3302 <em>(Optional)</em> 3303 <p>HashSourceIP should be set to true when request source IP hash based 3304 load balancing is desired. It must be the only hash option field set, 3305 otherwise this request hash policy object will be ignored.</p> 3306 </td> 3307 </tr> 3308 </tbody> 3309 </table> 3310 <h3 id="projectcontour.io/v1.RequestHeaderDescriptor">RequestHeaderDescriptor 3311 </h3> 3312 <p> 3313 (<em>Appears on:</em> 3314 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 3315 </p> 3316 <p> 3317 <p>RequestHeaderDescriptor defines a descriptor entry that’s populated only 3318 if a given header is present on the request. The value of the descriptor 3319 entry is equal to the value of the header (if present).</p> 3320 </p> 3321 <table> 3322 <thead> 3323 <tr> 3324 <th>Field</th> 3325 <th>Description</th> 3326 </tr> 3327 </thead> 3328 <tbody> 3329 <tr> 3330 <td style="white-space:nowrap"> 3331 <code>headerName</code> 3332 <br> 3333 <em> 3334 string 3335 </em> 3336 </td> 3337 <td> 3338 <p>HeaderName defines the name of the header to look for on the request.</p> 3339 </td> 3340 </tr> 3341 <tr> 3342 <td style="white-space:nowrap"> 3343 <code>descriptorKey</code> 3344 <br> 3345 <em> 3346 string 3347 </em> 3348 </td> 3349 <td> 3350 <p>DescriptorKey defines the key to use on the descriptor entry.</p> 3351 </td> 3352 </tr> 3353 </tbody> 3354 </table> 3355 <h3 id="projectcontour.io/v1.RequestHeaderValueMatchDescriptor">RequestHeaderValueMatchDescriptor 3356 </h3> 3357 <p> 3358 (<em>Appears on:</em> 3359 <a href="#projectcontour.io/v1.RateLimitDescriptorEntry">RateLimitDescriptorEntry</a>) 3360 </p> 3361 <p> 3362 <p>RequestHeaderValueMatchDescriptor defines a descriptor entry that’s populated 3363 if the request’s headers match a set of 1+ match criteria. The descriptor key 3364 is “header_match”, and the descriptor value is statically defined.</p> 3365 </p> 3366 <table> 3367 <thead> 3368 <tr> 3369 <th>Field</th> 3370 <th>Description</th> 3371 </tr> 3372 </thead> 3373 <tbody> 3374 <tr> 3375 <td style="white-space:nowrap"> 3376 <code>headers</code> 3377 <br> 3378 <em> 3379 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 3380 []HeaderMatchCondition 3381 </a> 3382 </em> 3383 </td> 3384 <td> 3385 <p>Headers is a list of 1+ match criteria to apply against the request 3386 to determine whether to populate the descriptor entry or not.</p> 3387 </td> 3388 </tr> 3389 <tr> 3390 <td style="white-space:nowrap"> 3391 <code>expectMatch</code> 3392 <br> 3393 <em> 3394 bool 3395 </em> 3396 </td> 3397 <td> 3398 <p>ExpectMatch defines whether the request must positively match the match 3399 criteria in order to generate a descriptor entry (i.e. true), or not 3400 match the match criteria in order to generate a descriptor entry (i.e. false). 3401 The default is true.</p> 3402 </td> 3403 </tr> 3404 <tr> 3405 <td style="white-space:nowrap"> 3406 <code>value</code> 3407 <br> 3408 <em> 3409 string 3410 </em> 3411 </td> 3412 <td> 3413 <p>Value defines the value of the descriptor entry.</p> 3414 </td> 3415 </tr> 3416 </tbody> 3417 </table> 3418 <h3 id="projectcontour.io/v1.RetryOn">RetryOn 3419 (<code>string</code> alias)</p></h3> 3420 <p> 3421 (<em>Appears on:</em> 3422 <a href="#projectcontour.io/v1.RetryPolicy">RetryPolicy</a>) 3423 </p> 3424 <p> 3425 <p>RetryOn is a string type alias with validation to ensure that the value is valid.</p> 3426 </p> 3427 <h3 id="projectcontour.io/v1.RetryPolicy">RetryPolicy 3428 </h3> 3429 <p> 3430 (<em>Appears on:</em> 3431 <a href="#projectcontour.io/v1.Route">Route</a>) 3432 </p> 3433 <p> 3434 <p>RetryPolicy defines the attributes associated with retrying policy.</p> 3435 </p> 3436 <table> 3437 <thead> 3438 <tr> 3439 <th>Field</th> 3440 <th>Description</th> 3441 </tr> 3442 </thead> 3443 <tbody> 3444 <tr> 3445 <td style="white-space:nowrap"> 3446 <code>count</code> 3447 <br> 3448 <em> 3449 int64 3450 </em> 3451 </td> 3452 <td> 3453 <em>(Optional)</em> 3454 <p>NumRetries is maximum allowed number of retries. 3455 If set to -1, then retries are disabled. 3456 If set to 0 or not supplied, the value is set 3457 to the Envoy default of 1.</p> 3458 </td> 3459 </tr> 3460 <tr> 3461 <td style="white-space:nowrap"> 3462 <code>perTryTimeout</code> 3463 <br> 3464 <em> 3465 string 3466 </em> 3467 </td> 3468 <td> 3469 <em>(Optional)</em> 3470 <p>PerTryTimeout specifies the timeout per retry attempt. 3471 Ignored if NumRetries is not supplied.</p> 3472 </td> 3473 </tr> 3474 <tr> 3475 <td style="white-space:nowrap"> 3476 <code>retryOn</code> 3477 <br> 3478 <em> 3479 <a href="#projectcontour.io/v1.RetryOn"> 3480 []RetryOn 3481 </a> 3482 </em> 3483 </td> 3484 <td> 3485 <em>(Optional)</em> 3486 <p>RetryOn specifies the conditions on which to retry a request.</p> 3487 <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> 3488 <ul> 3489 <li><code>5xx</code></li> 3490 <li><code>gateway-error</code></li> 3491 <li><code>reset</code></li> 3492 <li><code>connect-failure</code></li> 3493 <li><code>retriable-4xx</code></li> 3494 <li><code>refused-stream</code></li> 3495 <li><code>retriable-status-codes</code></li> 3496 <li><code>retriable-headers</code></li> 3497 </ul> 3498 <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> 3499 <ul> 3500 <li><code>cancelled</code></li> 3501 <li><code>deadline-exceeded</code></li> 3502 <li><code>internal</code></li> 3503 <li><code>resource-exhausted</code></li> 3504 <li><code>unavailable</code></li> 3505 </ul> 3506 </td> 3507 </tr> 3508 <tr> 3509 <td style="white-space:nowrap"> 3510 <code>retriableStatusCodes</code> 3511 <br> 3512 <em> 3513 []uint32 3514 </em> 3515 </td> 3516 <td> 3517 <em>(Optional)</em> 3518 <p>RetriableStatusCodes specifies the HTTP status codes that should be retried.</p> 3519 <p>This field is only respected when you include <code>retriable-status-codes</code> in the <code>RetryOn</code> field.</p> 3520 </td> 3521 </tr> 3522 </tbody> 3523 </table> 3524 <h3 id="projectcontour.io/v1.Route">Route 3525 </h3> 3526 <p> 3527 (<em>Appears on:</em> 3528 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 3529 </p> 3530 <p> 3531 <p>Route contains the set of routes for a virtual host.</p> 3532 </p> 3533 <table> 3534 <thead> 3535 <tr> 3536 <th>Field</th> 3537 <th>Description</th> 3538 </tr> 3539 </thead> 3540 <tbody> 3541 <tr> 3542 <td style="white-space:nowrap"> 3543 <code>conditions</code> 3544 <br> 3545 <em> 3546 <a href="#projectcontour.io/v1.MatchCondition"> 3547 []MatchCondition 3548 </a> 3549 </em> 3550 </td> 3551 <td> 3552 <em>(Optional)</em> 3553 <p>Conditions are a set of rules that are applied to a Route. 3554 When applied, they are merged using AND, with one exception: 3555 There can be only one Prefix, Exact or Regex MatchCondition 3556 per Conditions slice. More than one of these condition types, 3557 or contradictory Conditions, will make the route invalid.</p> 3558 </td> 3559 </tr> 3560 <tr> 3561 <td style="white-space:nowrap"> 3562 <code>services</code> 3563 <br> 3564 <em> 3565 <a href="#projectcontour.io/v1.Service"> 3566 []Service 3567 </a> 3568 </em> 3569 </td> 3570 <td> 3571 <em>(Optional)</em> 3572 <p>Services are the services to proxy traffic.</p> 3573 </td> 3574 </tr> 3575 <tr> 3576 <td style="white-space:nowrap"> 3577 <code>enableWebsockets</code> 3578 <br> 3579 <em> 3580 bool 3581 </em> 3582 </td> 3583 <td> 3584 <em>(Optional)</em> 3585 <p>Enables websocket support for the route.</p> 3586 </td> 3587 </tr> 3588 <tr> 3589 <td style="white-space:nowrap"> 3590 <code>permitInsecure</code> 3591 <br> 3592 <em> 3593 bool 3594 </em> 3595 </td> 3596 <td> 3597 <em>(Optional)</em> 3598 <p>Allow this path to respond to insecure requests over HTTP which are normally 3599 not permitted when a <code>virtualhost.tls</code> block is present.</p> 3600 </td> 3601 </tr> 3602 <tr> 3603 <td style="white-space:nowrap"> 3604 <code>authPolicy</code> 3605 <br> 3606 <em> 3607 <a href="#projectcontour.io/v1.AuthorizationPolicy"> 3608 AuthorizationPolicy 3609 </a> 3610 </em> 3611 </td> 3612 <td> 3613 <em>(Optional)</em> 3614 <p>AuthPolicy updates the authorization policy that was set 3615 on the root HTTPProxy object for client requests that 3616 match this route.</p> 3617 </td> 3618 </tr> 3619 <tr> 3620 <td style="white-space:nowrap"> 3621 <code>timeoutPolicy</code> 3622 <br> 3623 <em> 3624 <a href="#projectcontour.io/v1.TimeoutPolicy"> 3625 TimeoutPolicy 3626 </a> 3627 </em> 3628 </td> 3629 <td> 3630 <em>(Optional)</em> 3631 <p>The timeout policy for this route.</p> 3632 </td> 3633 </tr> 3634 <tr> 3635 <td style="white-space:nowrap"> 3636 <code>retryPolicy</code> 3637 <br> 3638 <em> 3639 <a href="#projectcontour.io/v1.RetryPolicy"> 3640 RetryPolicy 3641 </a> 3642 </em> 3643 </td> 3644 <td> 3645 <em>(Optional)</em> 3646 <p>The retry policy for this route.</p> 3647 </td> 3648 </tr> 3649 <tr> 3650 <td style="white-space:nowrap"> 3651 <code>healthCheckPolicy</code> 3652 <br> 3653 <em> 3654 <a href="#projectcontour.io/v1.HTTPHealthCheckPolicy"> 3655 HTTPHealthCheckPolicy 3656 </a> 3657 </em> 3658 </td> 3659 <td> 3660 <em>(Optional)</em> 3661 <p>The health check policy for this route.</p> 3662 </td> 3663 </tr> 3664 <tr> 3665 <td style="white-space:nowrap"> 3666 <code>loadBalancerPolicy</code> 3667 <br> 3668 <em> 3669 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 3670 LoadBalancerPolicy 3671 </a> 3672 </em> 3673 </td> 3674 <td> 3675 <em>(Optional)</em> 3676 <p>The load balancing policy for this route.</p> 3677 </td> 3678 </tr> 3679 <tr> 3680 <td style="white-space:nowrap"> 3681 <code>pathRewritePolicy</code> 3682 <br> 3683 <em> 3684 <a href="#projectcontour.io/v1.PathRewritePolicy"> 3685 PathRewritePolicy 3686 </a> 3687 </em> 3688 </td> 3689 <td> 3690 <em>(Optional)</em> 3691 <p>The policy for rewriting the path of the request URL 3692 after the request has been routed to a Service.</p> 3693 </td> 3694 </tr> 3695 <tr> 3696 <td style="white-space:nowrap"> 3697 <code>requestHeadersPolicy</code> 3698 <br> 3699 <em> 3700 <a href="#projectcontour.io/v1.HeadersPolicy"> 3701 HeadersPolicy 3702 </a> 3703 </em> 3704 </td> 3705 <td> 3706 <em>(Optional)</em> 3707 <p>The policy for managing request headers during proxying.</p> 3708 <p>You may dynamically rewrite the Host header to be forwarded 3709 upstream to the content of a request header using 3710 the below format “%REQ(X-Header-Name)%”. If the value of the header 3711 is empty, it is ignored.</p> 3712 <p>*NOTE: Pay attention to the potential security implications of using this option. 3713 Provided header must come from trusted source.</p> 3714 <p>**NOTE: The header rewrite is only done while forwarding and has no bearing 3715 on the routing decision.</p> 3716 </td> 3717 </tr> 3718 <tr> 3719 <td style="white-space:nowrap"> 3720 <code>responseHeadersPolicy</code> 3721 <br> 3722 <em> 3723 <a href="#projectcontour.io/v1.HeadersPolicy"> 3724 HeadersPolicy 3725 </a> 3726 </em> 3727 </td> 3728 <td> 3729 <em>(Optional)</em> 3730 <p>The policy for managing response headers during proxying. 3731 Rewriting the ‘Host’ header is not supported.</p> 3732 </td> 3733 </tr> 3734 <tr> 3735 <td style="white-space:nowrap"> 3736 <code>cookieRewritePolicies</code> 3737 <br> 3738 <em> 3739 <a href="#projectcontour.io/v1.CookieRewritePolicy"> 3740 []CookieRewritePolicy 3741 </a> 3742 </em> 3743 </td> 3744 <td> 3745 <em>(Optional)</em> 3746 <p>The policies for rewriting Set-Cookie header attributes. Note that 3747 rewritten cookie names must be unique in this list. Order rewrite 3748 policies are specified in does not matter.</p> 3749 </td> 3750 </tr> 3751 <tr> 3752 <td style="white-space:nowrap"> 3753 <code>rateLimitPolicy</code> 3754 <br> 3755 <em> 3756 <a href="#projectcontour.io/v1.RateLimitPolicy"> 3757 RateLimitPolicy 3758 </a> 3759 </em> 3760 </td> 3761 <td> 3762 <em>(Optional)</em> 3763 <p>The policy for rate limiting on the route.</p> 3764 </td> 3765 </tr> 3766 <tr> 3767 <td style="white-space:nowrap"> 3768 <code>requestRedirectPolicy</code> 3769 <br> 3770 <em> 3771 <a href="#projectcontour.io/v1.HTTPRequestRedirectPolicy"> 3772 HTTPRequestRedirectPolicy 3773 </a> 3774 </em> 3775 </td> 3776 <td> 3777 <em>(Optional)</em> 3778 <p>RequestRedirectPolicy defines an HTTP redirection.</p> 3779 </td> 3780 </tr> 3781 <tr> 3782 <td style="white-space:nowrap"> 3783 <code>directResponsePolicy</code> 3784 <br> 3785 <em> 3786 <a href="#projectcontour.io/v1.HTTPDirectResponsePolicy"> 3787 HTTPDirectResponsePolicy 3788 </a> 3789 </em> 3790 </td> 3791 <td> 3792 <em>(Optional)</em> 3793 <p>DirectResponsePolicy returns an arbitrary HTTP response directly.</p> 3794 </td> 3795 </tr> 3796 <tr> 3797 <td style="white-space:nowrap"> 3798 <code>internalRedirectPolicy</code> 3799 <br> 3800 <em> 3801 <a href="#projectcontour.io/v1.HTTPInternalRedirectPolicy"> 3802 HTTPInternalRedirectPolicy 3803 </a> 3804 </em> 3805 </td> 3806 <td> 3807 <em>(Optional)</em> 3808 <p>The policy to define when to handle redirects responses internally.</p> 3809 </td> 3810 </tr> 3811 <tr> 3812 <td style="white-space:nowrap"> 3813 <code>jwtVerificationPolicy</code> 3814 <br> 3815 <em> 3816 <a href="#projectcontour.io/v1.JWTVerificationPolicy"> 3817 JWTVerificationPolicy 3818 </a> 3819 </em> 3820 </td> 3821 <td> 3822 <em>(Optional)</em> 3823 <p>The policy for verifying JWTs for requests to this route.</p> 3824 </td> 3825 </tr> 3826 <tr> 3827 <td style="white-space:nowrap"> 3828 <code>ipAllowPolicy</code> 3829 <br> 3830 <em> 3831 <a href="#projectcontour.io/v1.IPFilterPolicy"> 3832 []IPFilterPolicy 3833 </a> 3834 </em> 3835 </td> 3836 <td> 3837 <p>IPAllowFilterPolicy is a list of ipv4/6 filter rules for which matching 3838 requests should be allowed. All other requests will be denied. 3839 Only one of IPAllowFilterPolicy and IPDenyFilterPolicy can be defined. 3840 The rules defined here override any rules set on the root HTTPProxy.</p> 3841 </td> 3842 </tr> 3843 <tr> 3844 <td style="white-space:nowrap"> 3845 <code>ipDenyPolicy</code> 3846 <br> 3847 <em> 3848 <a href="#projectcontour.io/v1.IPFilterPolicy"> 3849 []IPFilterPolicy 3850 </a> 3851 </em> 3852 </td> 3853 <td> 3854 <p>IPDenyFilterPolicy is a list of ipv4/6 filter rules for which matching 3855 requests should be denied. All other requests will be allowed. 3856 Only one of IPAllowFilterPolicy and IPDenyFilterPolicy can be defined. 3857 The rules defined here override any rules set on the root HTTPProxy.</p> 3858 </td> 3859 </tr> 3860 </tbody> 3861 </table> 3862 <h3 id="projectcontour.io/v1.Service">Service 3863 </h3> 3864 <p> 3865 (<em>Appears on:</em> 3866 <a href="#projectcontour.io/v1.Route">Route</a>, 3867 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 3868 </p> 3869 <p> 3870 <p>Service defines an Kubernetes Service to proxy traffic.</p> 3871 </p> 3872 <table> 3873 <thead> 3874 <tr> 3875 <th>Field</th> 3876 <th>Description</th> 3877 </tr> 3878 </thead> 3879 <tbody> 3880 <tr> 3881 <td style="white-space:nowrap"> 3882 <code>name</code> 3883 <br> 3884 <em> 3885 string 3886 </em> 3887 </td> 3888 <td> 3889 <p>Name is the name of Kubernetes service to proxy traffic. 3890 Names defined here will be used to look up corresponding endpoints which contain the ips to route.</p> 3891 </td> 3892 </tr> 3893 <tr> 3894 <td style="white-space:nowrap"> 3895 <code>port</code> 3896 <br> 3897 <em> 3898 int 3899 </em> 3900 </td> 3901 <td> 3902 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 3903 </td> 3904 </tr> 3905 <tr> 3906 <td style="white-space:nowrap"> 3907 <code>healthPort</code> 3908 <br> 3909 <em> 3910 int 3911 </em> 3912 </td> 3913 <td> 3914 <em>(Optional)</em> 3915 <p>HealthPort is the port for this service healthcheck. 3916 If not specified, Port is used for service healthchecks.</p> 3917 </td> 3918 </tr> 3919 <tr> 3920 <td style="white-space:nowrap"> 3921 <code>protocol</code> 3922 <br> 3923 <em> 3924 string 3925 </em> 3926 </td> 3927 <td> 3928 <em>(Optional)</em> 3929 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 3930 Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.</p> 3931 </td> 3932 </tr> 3933 <tr> 3934 <td style="white-space:nowrap"> 3935 <code>weight</code> 3936 <br> 3937 <em> 3938 int64 3939 </em> 3940 </td> 3941 <td> 3942 <em>(Optional)</em> 3943 <p>Weight defines percentage of traffic to balance traffic</p> 3944 </td> 3945 </tr> 3946 <tr> 3947 <td style="white-space:nowrap"> 3948 <code>validation</code> 3949 <br> 3950 <em> 3951 <a href="#projectcontour.io/v1.UpstreamValidation"> 3952 UpstreamValidation 3953 </a> 3954 </em> 3955 </td> 3956 <td> 3957 <em>(Optional)</em> 3958 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 3959 </td> 3960 </tr> 3961 <tr> 3962 <td style="white-space:nowrap"> 3963 <code>mirror</code> 3964 <br> 3965 <em> 3966 bool 3967 </em> 3968 </td> 3969 <td> 3970 <p>If Mirror is true the Service will receive a read only mirror of the traffic for this route. 3971 If Mirror is true, then fractional mirroring can be enabled by optionally setting the Weight 3972 field. Legal values for Weight are 1-100. Omitting the Weight field will result in 100% mirroring. 3973 NOTE: Setting Weight explicitly to 0 will unexpectedly result in 100% traffic mirroring. This 3974 occurs since we cannot distinguish omitted fields from those explicitly set to their default 3975 values</p> 3976 </td> 3977 </tr> 3978 <tr> 3979 <td style="white-space:nowrap"> 3980 <code>requestHeadersPolicy</code> 3981 <br> 3982 <em> 3983 <a href="#projectcontour.io/v1.HeadersPolicy"> 3984 HeadersPolicy 3985 </a> 3986 </em> 3987 </td> 3988 <td> 3989 <em>(Optional)</em> 3990 <p>The policy for managing request headers during proxying.</p> 3991 </td> 3992 </tr> 3993 <tr> 3994 <td style="white-space:nowrap"> 3995 <code>responseHeadersPolicy</code> 3996 <br> 3997 <em> 3998 <a href="#projectcontour.io/v1.HeadersPolicy"> 3999 HeadersPolicy 4000 </a> 4001 </em> 4002 </td> 4003 <td> 4004 <em>(Optional)</em> 4005 <p>The policy for managing response headers during proxying. 4006 Rewriting the ‘Host’ header is not supported.</p> 4007 </td> 4008 </tr> 4009 <tr> 4010 <td style="white-space:nowrap"> 4011 <code>cookieRewritePolicies</code> 4012 <br> 4013 <em> 4014 <a href="#projectcontour.io/v1.CookieRewritePolicy"> 4015 []CookieRewritePolicy 4016 </a> 4017 </em> 4018 </td> 4019 <td> 4020 <em>(Optional)</em> 4021 <p>The policies for rewriting Set-Cookie header attributes.</p> 4022 </td> 4023 </tr> 4024 <tr> 4025 <td style="white-space:nowrap"> 4026 <code>slowStartPolicy</code> 4027 <br> 4028 <em> 4029 <a href="#projectcontour.io/v1.SlowStartPolicy"> 4030 SlowStartPolicy 4031 </a> 4032 </em> 4033 </td> 4034 <td> 4035 <em>(Optional)</em> 4036 <p>Slow start will gradually increase amount of traffic to a newly added endpoint.</p> 4037 </td> 4038 </tr> 4039 </tbody> 4040 </table> 4041 <h3 id="projectcontour.io/v1.SlowStartPolicy">SlowStartPolicy 4042 </h3> 4043 <p> 4044 (<em>Appears on:</em> 4045 <a href="#projectcontour.io/v1.Service">Service</a>) 4046 </p> 4047 <p> 4048 <p>SlowStartPolicy will gradually increase amount of traffic to a newly added endpoint. 4049 It can be used only with RoundRobin and WeightedLeastRequest load balancing strategies.</p> 4050 </p> 4051 <table> 4052 <thead> 4053 <tr> 4054 <th>Field</th> 4055 <th>Description</th> 4056 </tr> 4057 </thead> 4058 <tbody> 4059 <tr> 4060 <td style="white-space:nowrap"> 4061 <code>window</code> 4062 <br> 4063 <em> 4064 string 4065 </em> 4066 </td> 4067 <td> 4068 <p>The duration of slow start window. 4069 Duration is expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 4070 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”.</p> 4071 </td> 4072 </tr> 4073 <tr> 4074 <td style="white-space:nowrap"> 4075 <code>aggression</code> 4076 <br> 4077 <em> 4078 string 4079 </em> 4080 </td> 4081 <td> 4082 <em>(Optional)</em> 4083 <p>The speed of traffic increase over the slow start window. 4084 Defaults to 1.0, so that endpoint would get linearly increasing amount of traffic. 4085 When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly. 4086 The value of aggression parameter should be greater than 0.0.</p> 4087 <p>More info: <a href="https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/slow_start">https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/slow_start</a></p> 4088 </td> 4089 </tr> 4090 <tr> 4091 <td style="white-space:nowrap"> 4092 <code>minWeightPercent</code> 4093 <br> 4094 <em> 4095 uint32 4096 </em> 4097 </td> 4098 <td> 4099 <em>(Optional)</em> 4100 <p>The minimum or starting percentage of traffic to send to new endpoints. 4101 A non-zero value helps avoid a too small initial weight, which may cause endpoints in slow start mode to receive no traffic in the beginning of the slow start window. 4102 If not specified, the default is 10%.</p> 4103 </td> 4104 </tr> 4105 </tbody> 4106 </table> 4107 <h3 id="projectcontour.io/v1.SubCondition">SubCondition 4108 </h3> 4109 <p> 4110 (<em>Appears on:</em> 4111 <a href="#projectcontour.io/v1.DetailedCondition">DetailedCondition</a>) 4112 </p> 4113 <p> 4114 <p>SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition.</p> 4115 <p>It contains a subset of the Condition fields.</p> 4116 <p>It is intended for warnings and errors, so <code>type</code> names should use abnormal-true polarity, 4117 that is, they should be of the form “ErrorPresent: true”.</p> 4118 <p>The expected lifecycle for these errors is that they should only be present when the error or warning is, 4119 and should be removed when they are not relevant.</p> 4120 </p> 4121 <table> 4122 <thead> 4123 <tr> 4124 <th>Field</th> 4125 <th>Description</th> 4126 </tr> 4127 </thead> 4128 <tbody> 4129 <tr> 4130 <td style="white-space:nowrap"> 4131 <code>type</code> 4132 <br> 4133 <em> 4134 string 4135 </em> 4136 </td> 4137 <td> 4138 <p>Type of condition in <code>CamelCase</code> or in <code>foo.example.com/CamelCase</code>.</p> 4139 <p>This must be in abnormal-true polarity, that is, <code>ErrorFound</code> or <code>controller.io/ErrorFound</code>.</p> 4140 <p>The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)</p> 4141 </td> 4142 </tr> 4143 <tr> 4144 <td style="white-space:nowrap"> 4145 <code>status</code> 4146 <br> 4147 <em> 4148 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#conditionstatus-v1-meta"> 4149 Kubernetes meta/v1.ConditionStatus 4150 </a> 4151 </em> 4152 </td> 4153 <td> 4154 <p>Status of the condition, one of True, False, Unknown.</p> 4155 </td> 4156 </tr> 4157 <tr> 4158 <td style="white-space:nowrap"> 4159 <code>reason</code> 4160 <br> 4161 <em> 4162 string 4163 </em> 4164 </td> 4165 <td> 4166 <p>Reason contains a programmatic identifier indicating the reason for the condition’s last transition. 4167 Producers of specific condition types may define expected values and meanings for this field, 4168 and whether the values are considered a guaranteed API.</p> 4169 <p>The value should be a CamelCase string.</p> 4170 <p>This field may not be empty.</p> 4171 </td> 4172 </tr> 4173 <tr> 4174 <td style="white-space:nowrap"> 4175 <code>message</code> 4176 <br> 4177 <em> 4178 string 4179 </em> 4180 </td> 4181 <td> 4182 <p>Message is a human readable message indicating details about the transition.</p> 4183 <p>This may be an empty string.</p> 4184 </td> 4185 </tr> 4186 </tbody> 4187 </table> 4188 <h3 id="projectcontour.io/v1.TCPHealthCheckPolicy">TCPHealthCheckPolicy 4189 </h3> 4190 <p> 4191 (<em>Appears on:</em> 4192 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 4193 </p> 4194 <p> 4195 <p>TCPHealthCheckPolicy defines health checks on the upstream service.</p> 4196 </p> 4197 <table> 4198 <thead> 4199 <tr> 4200 <th>Field</th> 4201 <th>Description</th> 4202 </tr> 4203 </thead> 4204 <tbody> 4205 <tr> 4206 <td style="white-space:nowrap"> 4207 <code>intervalSeconds</code> 4208 <br> 4209 <em> 4210 int64 4211 </em> 4212 </td> 4213 <td> 4214 <em>(Optional)</em> 4215 <p>The interval (seconds) between health checks</p> 4216 </td> 4217 </tr> 4218 <tr> 4219 <td style="white-space:nowrap"> 4220 <code>timeoutSeconds</code> 4221 <br> 4222 <em> 4223 int64 4224 </em> 4225 </td> 4226 <td> 4227 <em>(Optional)</em> 4228 <p>The time to wait (seconds) for a health check response</p> 4229 </td> 4230 </tr> 4231 <tr> 4232 <td style="white-space:nowrap"> 4233 <code>unhealthyThresholdCount</code> 4234 <br> 4235 <em> 4236 uint32 4237 </em> 4238 </td> 4239 <td> 4240 <em>(Optional)</em> 4241 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 4242 </td> 4243 </tr> 4244 <tr> 4245 <td style="white-space:nowrap"> 4246 <code>healthyThresholdCount</code> 4247 <br> 4248 <em> 4249 uint32 4250 </em> 4251 </td> 4252 <td> 4253 <em>(Optional)</em> 4254 <p>The number of healthy health checks required before a host is marked healthy</p> 4255 </td> 4256 </tr> 4257 </tbody> 4258 </table> 4259 <h3 id="projectcontour.io/v1.TCPProxy">TCPProxy 4260 </h3> 4261 <p> 4262 (<em>Appears on:</em> 4263 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 4264 </p> 4265 <p> 4266 <p>TCPProxy contains the set of services to proxy TCP connections.</p> 4267 </p> 4268 <table> 4269 <thead> 4270 <tr> 4271 <th>Field</th> 4272 <th>Description</th> 4273 </tr> 4274 </thead> 4275 <tbody> 4276 <tr> 4277 <td style="white-space:nowrap"> 4278 <code>loadBalancerPolicy</code> 4279 <br> 4280 <em> 4281 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 4282 LoadBalancerPolicy 4283 </a> 4284 </em> 4285 </td> 4286 <td> 4287 <em>(Optional)</em> 4288 <p>The load balancing policy for the backend services. Note that the 4289 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 4290 here.</p> 4291 </td> 4292 </tr> 4293 <tr> 4294 <td style="white-space:nowrap"> 4295 <code>services</code> 4296 <br> 4297 <em> 4298 <a href="#projectcontour.io/v1.Service"> 4299 []Service 4300 </a> 4301 </em> 4302 </td> 4303 <td> 4304 <em>(Optional)</em> 4305 <p>Services are the services to proxy traffic</p> 4306 </td> 4307 </tr> 4308 <tr> 4309 <td style="white-space:nowrap"> 4310 <code>include</code> 4311 <br> 4312 <em> 4313 <a href="#projectcontour.io/v1.TCPProxyInclude"> 4314 TCPProxyInclude 4315 </a> 4316 </em> 4317 </td> 4318 <td> 4319 <em>(Optional)</em> 4320 <p>Include specifies that this tcpproxy should be delegated to another HTTPProxy.</p> 4321 </td> 4322 </tr> 4323 <tr> 4324 <td style="white-space:nowrap"> 4325 <code>includes</code> 4326 <br> 4327 <em> 4328 <a href="#projectcontour.io/v1.TCPProxyInclude"> 4329 TCPProxyInclude 4330 </a> 4331 </em> 4332 </td> 4333 <td> 4334 <em>(Optional)</em> 4335 <p>IncludesDeprecated allow for specific routing configuration to be appended to another HTTPProxy in another namespace.</p> 4336 <p>Exists due to a mistake when developing HTTPProxy and the field was marked plural 4337 when it should have been singular. This field should stay to not break backwards compatibility to v1 users.</p> 4338 </td> 4339 </tr> 4340 <tr> 4341 <td style="white-space:nowrap"> 4342 <code>healthCheckPolicy</code> 4343 <br> 4344 <em> 4345 <a href="#projectcontour.io/v1.TCPHealthCheckPolicy"> 4346 TCPHealthCheckPolicy 4347 </a> 4348 </em> 4349 </td> 4350 <td> 4351 <em>(Optional)</em> 4352 <p>The health check policy for this tcp proxy</p> 4353 </td> 4354 </tr> 4355 </tbody> 4356 </table> 4357 <h3 id="projectcontour.io/v1.TCPProxyInclude">TCPProxyInclude 4358 </h3> 4359 <p> 4360 (<em>Appears on:</em> 4361 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 4362 </p> 4363 <p> 4364 <p>TCPProxyInclude describes a target HTTPProxy document which contains the TCPProxy details.</p> 4365 </p> 4366 <table> 4367 <thead> 4368 <tr> 4369 <th>Field</th> 4370 <th>Description</th> 4371 </tr> 4372 </thead> 4373 <tbody> 4374 <tr> 4375 <td style="white-space:nowrap"> 4376 <code>name</code> 4377 <br> 4378 <em> 4379 string 4380 </em> 4381 </td> 4382 <td> 4383 <p>Name of the child HTTPProxy</p> 4384 </td> 4385 </tr> 4386 <tr> 4387 <td style="white-space:nowrap"> 4388 <code>namespace</code> 4389 <br> 4390 <em> 4391 string 4392 </em> 4393 </td> 4394 <td> 4395 <em>(Optional)</em> 4396 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 4397 </td> 4398 </tr> 4399 </tbody> 4400 </table> 4401 <h3 id="projectcontour.io/v1.TLS">TLS 4402 </h3> 4403 <p> 4404 (<em>Appears on:</em> 4405 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 4406 </p> 4407 <p> 4408 <p>TLS describes tls properties. The SNI names that will be matched on 4409 are described in the HTTPProxy’s Spec.VirtualHost.Fqdn field.</p> 4410 </p> 4411 <table> 4412 <thead> 4413 <tr> 4414 <th>Field</th> 4415 <th>Description</th> 4416 </tr> 4417 </thead> 4418 <tbody> 4419 <tr> 4420 <td style="white-space:nowrap"> 4421 <code>secretName</code> 4422 <br> 4423 <em> 4424 string 4425 </em> 4426 </td> 4427 <td> 4428 <p>SecretName is the name of a TLS secret. 4429 Either SecretName or Passthrough must be specified, but not both. 4430 If specified, the named secret must contain a matching certificate 4431 for the virtual host’s FQDN. 4432 The name can be optionally prefixed with namespace “namespace/name”. 4433 When cross-namespace reference is used, TLSCertificateDelegation resource must exist in the namespace to grant access to the secret.</p> 4434 </td> 4435 </tr> 4436 <tr> 4437 <td style="white-space:nowrap"> 4438 <code>minimumProtocolVersion</code> 4439 <br> 4440 <em> 4441 string 4442 </em> 4443 </td> 4444 <td> 4445 <em>(Optional)</em> 4446 <p>MinimumProtocolVersion is the minimum TLS version this vhost should 4447 negotiate. Valid options are <code>1.2</code> (default) and <code>1.3</code>. Any other value 4448 defaults to TLS 1.2.</p> 4449 </td> 4450 </tr> 4451 <tr> 4452 <td style="white-space:nowrap"> 4453 <code>maximumProtocolVersion</code> 4454 <br> 4455 <em> 4456 string 4457 </em> 4458 </td> 4459 <td> 4460 <em>(Optional)</em> 4461 <p>MaximumProtocolVersion is the maximum TLS version this vhost should 4462 negotiate. Valid options are <code>1.2</code> and <code>1.3</code> (default). Any other value 4463 defaults to TLS 1.3.</p> 4464 </td> 4465 </tr> 4466 <tr> 4467 <td style="white-space:nowrap"> 4468 <code>passthrough</code> 4469 <br> 4470 <em> 4471 bool 4472 </em> 4473 </td> 4474 <td> 4475 <em>(Optional)</em> 4476 <p>Passthrough defines whether the encrypted TLS handshake will be 4477 passed through to the backing cluster. Either Passthrough or 4478 SecretName must be specified, but not both.</p> 4479 </td> 4480 </tr> 4481 <tr> 4482 <td style="white-space:nowrap"> 4483 <code>clientValidation</code> 4484 <br> 4485 <em> 4486 <a href="#projectcontour.io/v1.DownstreamValidation"> 4487 DownstreamValidation 4488 </a> 4489 </em> 4490 </td> 4491 <td> 4492 <em>(Optional)</em> 4493 <p>ClientValidation defines how to verify the client certificate 4494 when an external client establishes a TLS connection to Envoy.</p> 4495 <p>This setting:</p> 4496 <ol> 4497 <li>Enables TLS client certificate validation.</li> 4498 <li>Specifies how the client certificate will be validated (i.e. 4499 validation required or skipped).</li> 4500 </ol> 4501 <p>Note: Setting client certificate validation to be skipped should 4502 be only used in conjunction with an external authorization server that 4503 performs client validation as Contour will ensure client certificates 4504 are passed along.</p> 4505 </td> 4506 </tr> 4507 <tr> 4508 <td style="white-space:nowrap"> 4509 <code>enableFallbackCertificate</code> 4510 <br> 4511 <em> 4512 bool 4513 </em> 4514 </td> 4515 <td> 4516 <p>EnableFallbackCertificate defines if the vhost should allow a default certificate to 4517 be applied which handles all requests which don’t match the SNI defined in this vhost.</p> 4518 </td> 4519 </tr> 4520 </tbody> 4521 </table> 4522 <h3 id="projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec 4523 </h3> 4524 <p> 4525 (<em>Appears on:</em> 4526 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 4527 </p> 4528 <p> 4529 <p>TLSCertificateDelegationSpec defines the spec of the CRD</p> 4530 </p> 4531 <table> 4532 <thead> 4533 <tr> 4534 <th>Field</th> 4535 <th>Description</th> 4536 </tr> 4537 </thead> 4538 <tbody> 4539 <tr> 4540 <td style="white-space:nowrap"> 4541 <code>delegations</code> 4542 <br> 4543 <em> 4544 <a href="#projectcontour.io/v1.CertificateDelegation"> 4545 []CertificateDelegation 4546 </a> 4547 </em> 4548 </td> 4549 <td> 4550 </td> 4551 </tr> 4552 </tbody> 4553 </table> 4554 <h3 id="projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus 4555 </h3> 4556 <p> 4557 (<em>Appears on:</em> 4558 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 4559 </p> 4560 <p> 4561 <p>TLSCertificateDelegationStatus allows for the status of the delegation 4562 to be presented to the user.</p> 4563 </p> 4564 <table> 4565 <thead> 4566 <tr> 4567 <th>Field</th> 4568 <th>Description</th> 4569 </tr> 4570 </thead> 4571 <tbody> 4572 <tr> 4573 <td style="white-space:nowrap"> 4574 <code>conditions</code> 4575 <br> 4576 <em> 4577 <a href="#projectcontour.io/v1.DetailedCondition"> 4578 []DetailedCondition 4579 </a> 4580 </em> 4581 </td> 4582 <td> 4583 <em>(Optional)</em> 4584 <p>Conditions contains information about the current status of the HTTPProxy, 4585 in an upstream-friendly container.</p> 4586 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 4587 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 4588 and vice versa.</p> 4589 <p>Contour will leave untouched any other Conditions set in this block, 4590 in case some other controller wants to add a Condition.</p> 4591 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 4592 namespace your condition with a label, like <code>controller.domain.com\ConditionName</code>.</p> 4593 </td> 4594 </tr> 4595 </tbody> 4596 </table> 4597 <h3 id="projectcontour.io/v1.TimeoutPolicy">TimeoutPolicy 4598 </h3> 4599 <p> 4600 (<em>Appears on:</em> 4601 <a href="#projectcontour.io/v1.Route">Route</a>, 4602 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 4603 </p> 4604 <p> 4605 <p>TimeoutPolicy configures timeouts that are used for handling network requests.</p> 4606 <p>TimeoutPolicy durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 4607 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 4608 The string “infinity” is also a valid input and specifies no timeout. 4609 A value of “0s” will be treated as if the field were not set, i.e. by using Envoy’s default behavior.</p> 4610 <p>Example input values: “300ms”, “5s”, “1m”.</p> 4611 </p> 4612 <table> 4613 <thead> 4614 <tr> 4615 <th>Field</th> 4616 <th>Description</th> 4617 </tr> 4618 </thead> 4619 <tbody> 4620 <tr> 4621 <td style="white-space:nowrap"> 4622 <code>response</code> 4623 <br> 4624 <em> 4625 string 4626 </em> 4627 </td> 4628 <td> 4629 <em>(Optional)</em> 4630 <p>Timeout for receiving a response from the server after processing a request from client. 4631 If not supplied, Envoy’s default value of 15s applies.</p> 4632 </td> 4633 </tr> 4634 <tr> 4635 <td style="white-space:nowrap"> 4636 <code>idle</code> 4637 <br> 4638 <em> 4639 string 4640 </em> 4641 </td> 4642 <td> 4643 <em>(Optional)</em> 4644 <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). 4645 Timeout will not trigger while HTTP/1.1 connection is idle between two consecutive requests. 4646 If not specified, there is no per-route idle timeout, though a connection manager-wide 4647 stream_idle_timeout default of 5m still applies.</p> 4648 </td> 4649 </tr> 4650 <tr> 4651 <td style="white-space:nowrap"> 4652 <code>idleConnection</code> 4653 <br> 4654 <em> 4655 string 4656 </em> 4657 </td> 4658 <td> 4659 <em>(Optional)</em> 4660 <p>Timeout for how long connection from the proxy to the upstream service is kept when there are no active requests. 4661 If not supplied, Envoy’s default value of 1h applies.</p> 4662 </td> 4663 </tr> 4664 </tbody> 4665 </table> 4666 <h3 id="projectcontour.io/v1.UpstreamValidation">UpstreamValidation 4667 </h3> 4668 <p> 4669 (<em>Appears on:</em> 4670 <a href="#projectcontour.io/v1.RemoteJWKS">RemoteJWKS</a>, 4671 <a href="#projectcontour.io/v1.Service">Service</a>, 4672 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 4673 </p> 4674 <p> 4675 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 4676 </p> 4677 <table> 4678 <thead> 4679 <tr> 4680 <th>Field</th> 4681 <th>Description</th> 4682 </tr> 4683 </thead> 4684 <tbody> 4685 <tr> 4686 <td style="white-space:nowrap"> 4687 <code>caSecret</code> 4688 <br> 4689 <em> 4690 string 4691 </em> 4692 </td> 4693 <td> 4694 <p>Name or namespaced name of the Kubernetes secret used to validate the certificate presented by the backend. 4695 The secret must contain key named ca.crt. 4696 The name can be optionally prefixed with namespace “namespace/name”. 4697 When cross-namespace reference is used, TLSCertificateDelegation resource must exist in the namespace to grant access to the secret.</p> 4698 </td> 4699 </tr> 4700 <tr> 4701 <td style="white-space:nowrap"> 4702 <code>subjectName</code> 4703 <br> 4704 <em> 4705 string 4706 </em> 4707 </td> 4708 <td> 4709 <p>Key which is expected to be present in the ‘subjectAltName’ of the presented certificate.</p> 4710 </td> 4711 </tr> 4712 </tbody> 4713 </table> 4714 <h3 id="projectcontour.io/v1.VirtualHost">VirtualHost 4715 </h3> 4716 <p> 4717 (<em>Appears on:</em> 4718 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 4719 </p> 4720 <p> 4721 <p>VirtualHost appears at most once. If it is present, the object is considered 4722 to be a “root”.</p> 4723 </p> 4724 <table> 4725 <thead> 4726 <tr> 4727 <th>Field</th> 4728 <th>Description</th> 4729 </tr> 4730 </thead> 4731 <tbody> 4732 <tr> 4733 <td style="white-space:nowrap"> 4734 <code>fqdn</code> 4735 <br> 4736 <em> 4737 string 4738 </em> 4739 </td> 4740 <td> 4741 <p>The fully qualified domain name of the root of the ingress tree 4742 all leaves of the DAG rooted at this object relate to the fqdn.</p> 4743 </td> 4744 </tr> 4745 <tr> 4746 <td style="white-space:nowrap"> 4747 <code>tls</code> 4748 <br> 4749 <em> 4750 <a href="#projectcontour.io/v1.TLS"> 4751 TLS 4752 </a> 4753 </em> 4754 </td> 4755 <td> 4756 <em>(Optional)</em> 4757 <p>If present the fields describes TLS properties of the virtual 4758 host. The SNI names that will be matched on are described in fqdn, 4759 the tls.secretName secret must contain a certificate that itself 4760 contains a name that matches the FQDN.</p> 4761 </td> 4762 </tr> 4763 <tr> 4764 <td style="white-space:nowrap"> 4765 <code>authorization</code> 4766 <br> 4767 <em> 4768 <a href="#projectcontour.io/v1.AuthorizationServer"> 4769 AuthorizationServer 4770 </a> 4771 </em> 4772 </td> 4773 <td> 4774 <em>(Optional)</em> 4775 <p>This field configures an extension service to perform 4776 authorization for this virtual host. Authorization can 4777 only be configured on virtual hosts that have TLS enabled. 4778 If the TLS configuration requires client certificate 4779 validation, the client certificate is always included in the 4780 authentication check request.</p> 4781 </td> 4782 </tr> 4783 <tr> 4784 <td style="white-space:nowrap"> 4785 <code>corsPolicy</code> 4786 <br> 4787 <em> 4788 <a href="#projectcontour.io/v1.CORSPolicy"> 4789 CORSPolicy 4790 </a> 4791 </em> 4792 </td> 4793 <td> 4794 <em>(Optional)</em> 4795 <p>Specifies the cross-origin policy to apply to the VirtualHost.</p> 4796 </td> 4797 </tr> 4798 <tr> 4799 <td style="white-space:nowrap"> 4800 <code>rateLimitPolicy</code> 4801 <br> 4802 <em> 4803 <a href="#projectcontour.io/v1.RateLimitPolicy"> 4804 RateLimitPolicy 4805 </a> 4806 </em> 4807 </td> 4808 <td> 4809 <em>(Optional)</em> 4810 <p>The policy for rate limiting on the virtual host.</p> 4811 </td> 4812 </tr> 4813 <tr> 4814 <td style="white-space:nowrap"> 4815 <code>jwtProviders</code> 4816 <br> 4817 <em> 4818 <a href="#projectcontour.io/v1.JWTProvider"> 4819 []JWTProvider 4820 </a> 4821 </em> 4822 </td> 4823 <td> 4824 <em>(Optional)</em> 4825 <p>Providers to use for verifying JSON Web Tokens (JWTs) on the virtual host.</p> 4826 </td> 4827 </tr> 4828 <tr> 4829 <td style="white-space:nowrap"> 4830 <code>ipAllowPolicy</code> 4831 <br> 4832 <em> 4833 <a href="#projectcontour.io/v1.IPFilterPolicy"> 4834 []IPFilterPolicy 4835 </a> 4836 </em> 4837 </td> 4838 <td> 4839 <p>IPAllowFilterPolicy is a list of ipv4/6 filter rules for which matching 4840 requests should be allowed. All other requests will be denied. 4841 Only one of IPAllowFilterPolicy and IPDenyFilterPolicy can be defined. 4842 The rules defined here may be overridden in a Route.</p> 4843 </td> 4844 </tr> 4845 <tr> 4846 <td style="white-space:nowrap"> 4847 <code>ipDenyPolicy</code> 4848 <br> 4849 <em> 4850 <a href="#projectcontour.io/v1.IPFilterPolicy"> 4851 []IPFilterPolicy 4852 </a> 4853 </em> 4854 </td> 4855 <td> 4856 <p>IPDenyFilterPolicy is a list of ipv4/6 filter rules for which matching 4857 requests should be denied. All other requests will be allowed. 4858 Only one of IPAllowFilterPolicy and IPDenyFilterPolicy can be defined. 4859 The rules defined here may be overridden in a Route.</p> 4860 </td> 4861 </tr> 4862 </tbody> 4863 </table> 4864 <hr/> 4865 <h2 id="projectcontour.io/v1alpha1">projectcontour.io/v1alpha1</h2> 4866 <p> 4867 <p>Package v1alpha1 contains API Schema definitions for the projectcontour.io v1alpha1 API group</p> 4868 </p> 4869 Resource Types: 4870 <ul><li> 4871 <a href="#projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration</a> 4872 </li><li> 4873 <a href="#projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment</a> 4874 </li><li> 4875 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a> 4876 </li></ul> 4877 <h3 id="projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration 4878 </h3> 4879 <p> 4880 <p>ContourConfiguration is the schema for a Contour instance.</p> 4881 </p> 4882 <table> 4883 <thead> 4884 <tr> 4885 <th>Field</th> 4886 <th>Description</th> 4887 </tr> 4888 </thead> 4889 <tbody> 4890 <tr> 4891 <td> 4892 <code>apiVersion</code></br> 4893 string</td> 4894 <td> 4895 <code> 4896 projectcontour.io/v1alpha1 4897 </code> 4898 </td> 4899 </tr> 4900 <tr> 4901 <td> 4902 <code>kind</code></br> 4903 string 4904 </td> 4905 <td><code>ContourConfiguration</code></td> 4906 </tr> 4907 <tr> 4908 <td style="white-space:nowrap"> 4909 <code>metadata</code> 4910 <br> 4911 <em> 4912 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#objectmeta-v1-meta"> 4913 Kubernetes meta/v1.ObjectMeta 4914 </a> 4915 </em> 4916 </td> 4917 <td> 4918 Refer to the Kubernetes API documentation for the fields of the 4919 <code>metadata</code> field. 4920 </td> 4921 </tr> 4922 <tr> 4923 <td style="white-space:nowrap"> 4924 <code>spec</code> 4925 <br> 4926 <em> 4927 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec"> 4928 ContourConfigurationSpec 4929 </a> 4930 </em> 4931 </td> 4932 <td> 4933 <br> 4934 <br> 4935 <table style="border:none"> 4936 <tr> 4937 <td style="white-space:nowrap"> 4938 <code>xdsServer</code> 4939 <br> 4940 <em> 4941 <a href="#projectcontour.io/v1alpha1.XDSServerConfig"> 4942 XDSServerConfig 4943 </a> 4944 </em> 4945 </td> 4946 <td> 4947 <em>(Optional)</em> 4948 <p>XDSServer contains parameters for the xDS server.</p> 4949 </td> 4950 </tr> 4951 <tr> 4952 <td style="white-space:nowrap"> 4953 <code>ingress</code> 4954 <br> 4955 <em> 4956 <a href="#projectcontour.io/v1alpha1.IngressConfig"> 4957 IngressConfig 4958 </a> 4959 </em> 4960 </td> 4961 <td> 4962 <em>(Optional)</em> 4963 <p>Ingress contains parameters for ingress options.</p> 4964 </td> 4965 </tr> 4966 <tr> 4967 <td style="white-space:nowrap"> 4968 <code>debug</code> 4969 <br> 4970 <em> 4971 <a href="#projectcontour.io/v1alpha1.DebugConfig"> 4972 DebugConfig 4973 </a> 4974 </em> 4975 </td> 4976 <td> 4977 <em>(Optional)</em> 4978 <p>Debug contains parameters to enable debug logging 4979 and debug interfaces inside Contour.</p> 4980 </td> 4981 </tr> 4982 <tr> 4983 <td style="white-space:nowrap"> 4984 <code>health</code> 4985 <br> 4986 <em> 4987 <a href="#projectcontour.io/v1alpha1.HealthConfig"> 4988 HealthConfig 4989 </a> 4990 </em> 4991 </td> 4992 <td> 4993 <em>(Optional)</em> 4994 <p>Health defines the endpoints Contour uses to serve health checks.</p> 4995 <p>Contour’s default is { address: “0.0.0.0”, port: 8000 }.</p> 4996 </td> 4997 </tr> 4998 <tr> 4999 <td style="white-space:nowrap"> 5000 <code>envoy</code> 5001 <br> 5002 <em> 5003 <a href="#projectcontour.io/v1alpha1.EnvoyConfig"> 5004 EnvoyConfig 5005 </a> 5006 </em> 5007 </td> 5008 <td> 5009 <em>(Optional)</em> 5010 <p>Envoy contains parameters for Envoy as well 5011 as how to optionally configure a managed Envoy fleet.</p> 5012 </td> 5013 </tr> 5014 <tr> 5015 <td style="white-space:nowrap"> 5016 <code>gateway</code> 5017 <br> 5018 <em> 5019 <a href="#projectcontour.io/v1alpha1.GatewayConfig"> 5020 GatewayConfig 5021 </a> 5022 </em> 5023 </td> 5024 <td> 5025 <em>(Optional)</em> 5026 <p>Gateway contains parameters for the gateway-api Gateway that Contour 5027 is configured to serve traffic.</p> 5028 </td> 5029 </tr> 5030 <tr> 5031 <td style="white-space:nowrap"> 5032 <code>httpproxy</code> 5033 <br> 5034 <em> 5035 <a href="#projectcontour.io/v1alpha1.HTTPProxyConfig"> 5036 HTTPProxyConfig 5037 </a> 5038 </em> 5039 </td> 5040 <td> 5041 <em>(Optional)</em> 5042 <p>HTTPProxy defines parameters on HTTPProxy.</p> 5043 </td> 5044 </tr> 5045 <tr> 5046 <td style="white-space:nowrap"> 5047 <code>enableExternalNameService</code> 5048 <br> 5049 <em> 5050 bool 5051 </em> 5052 </td> 5053 <td> 5054 <em>(Optional)</em> 5055 <p>EnableExternalNameService allows processing of ExternalNameServices</p> 5056 <p>Contour’s default is false for security reasons.</p> 5057 </td> 5058 </tr> 5059 <tr> 5060 <td style="white-space:nowrap"> 5061 <code>globalExtAuth</code> 5062 <br> 5063 <em> 5064 <a href="#projectcontour.io/v1.AuthorizationServer"> 5065 AuthorizationServer 5066 </a> 5067 </em> 5068 </td> 5069 <td> 5070 <em>(Optional)</em> 5071 <p>GlobalExternalAuthorization allows envoys external authorization filter 5072 to be enabled for all virtual hosts.</p> 5073 </td> 5074 </tr> 5075 <tr> 5076 <td style="white-space:nowrap"> 5077 <code>rateLimitService</code> 5078 <br> 5079 <em> 5080 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig"> 5081 RateLimitServiceConfig 5082 </a> 5083 </em> 5084 </td> 5085 <td> 5086 <em>(Optional)</em> 5087 <p>RateLimitService optionally holds properties of the Rate Limit Service 5088 to be used for global rate limiting.</p> 5089 </td> 5090 </tr> 5091 <tr> 5092 <td style="white-space:nowrap"> 5093 <code>policy</code> 5094 <br> 5095 <em> 5096 <a href="#projectcontour.io/v1alpha1.PolicyConfig"> 5097 PolicyConfig 5098 </a> 5099 </em> 5100 </td> 5101 <td> 5102 <em>(Optional)</em> 5103 <p>Policy specifies default policy applied if not overridden by the user</p> 5104 </td> 5105 </tr> 5106 <tr> 5107 <td style="white-space:nowrap"> 5108 <code>metrics</code> 5109 <br> 5110 <em> 5111 <a href="#projectcontour.io/v1alpha1.MetricsConfig"> 5112 MetricsConfig 5113 </a> 5114 </em> 5115 </td> 5116 <td> 5117 <em>(Optional)</em> 5118 <p>Metrics defines the endpoint Contour uses to serve metrics.</p> 5119 <p>Contour’s default is { address: “0.0.0.0”, port: 8000 }.</p> 5120 </td> 5121 </tr> 5122 <tr> 5123 <td style="white-space:nowrap"> 5124 <code>tracing</code> 5125 <br> 5126 <em> 5127 <a href="#projectcontour.io/v1alpha1.TracingConfig"> 5128 TracingConfig 5129 </a> 5130 </em> 5131 </td> 5132 <td> 5133 <p>Tracing defines properties for exporting trace data to OpenTelemetry.</p> 5134 </td> 5135 </tr> 5136 <tr> 5137 <td style="white-space:nowrap"> 5138 <code>featureFlags</code> 5139 <br> 5140 <em> 5141 <a href="#projectcontour.io/v1alpha1.FeatureFlags"> 5142 FeatureFlags 5143 </a> 5144 </em> 5145 </td> 5146 <td> 5147 <p>FeatureFlags defines toggle to enable new contour features. 5148 Available toggles are: 5149 useEndpointSlices - configures contour to fetch endpoint data 5150 from k8s endpoint slices. defaults to false and reading endpoint 5151 data from the k8s endpoints.</p> 5152 </td> 5153 </tr> 5154 </table> 5155 </td> 5156 </tr> 5157 <tr> 5158 <td style="white-space:nowrap"> 5159 <code>status</code> 5160 <br> 5161 <em> 5162 <a href="#projectcontour.io/v1alpha1.ContourConfigurationStatus"> 5163 ContourConfigurationStatus 5164 </a> 5165 </em> 5166 </td> 5167 <td> 5168 <em>(Optional)</em> 5169 </td> 5170 </tr> 5171 </tbody> 5172 </table> 5173 <h3 id="projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment 5174 </h3> 5175 <p> 5176 <p>ContourDeployment is the schema for a Contour Deployment.</p> 5177 </p> 5178 <table> 5179 <thead> 5180 <tr> 5181 <th>Field</th> 5182 <th>Description</th> 5183 </tr> 5184 </thead> 5185 <tbody> 5186 <tr> 5187 <td> 5188 <code>apiVersion</code></br> 5189 string</td> 5190 <td> 5191 <code> 5192 projectcontour.io/v1alpha1 5193 </code> 5194 </td> 5195 </tr> 5196 <tr> 5197 <td> 5198 <code>kind</code></br> 5199 string 5200 </td> 5201 <td><code>ContourDeployment</code></td> 5202 </tr> 5203 <tr> 5204 <td style="white-space:nowrap"> 5205 <code>metadata</code> 5206 <br> 5207 <em> 5208 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#objectmeta-v1-meta"> 5209 Kubernetes meta/v1.ObjectMeta 5210 </a> 5211 </em> 5212 </td> 5213 <td> 5214 Refer to the Kubernetes API documentation for the fields of the 5215 <code>metadata</code> field. 5216 </td> 5217 </tr> 5218 <tr> 5219 <td style="white-space:nowrap"> 5220 <code>spec</code> 5221 <br> 5222 <em> 5223 <a href="#projectcontour.io/v1alpha1.ContourDeploymentSpec"> 5224 ContourDeploymentSpec 5225 </a> 5226 </em> 5227 </td> 5228 <td> 5229 <br> 5230 <br> 5231 <table style="border:none"> 5232 <tr> 5233 <td style="white-space:nowrap"> 5234 <code>contour</code> 5235 <br> 5236 <em> 5237 <a href="#projectcontour.io/v1alpha1.ContourSettings"> 5238 ContourSettings 5239 </a> 5240 </em> 5241 </td> 5242 <td> 5243 <em>(Optional)</em> 5244 <p>Contour specifies deployment-time settings for the Contour 5245 part of the installation, i.e. the xDS server/control plane 5246 and associated resources, including things like replica count 5247 for the Deployment, and node placement constraints for the pods.</p> 5248 </td> 5249 </tr> 5250 <tr> 5251 <td style="white-space:nowrap"> 5252 <code>envoy</code> 5253 <br> 5254 <em> 5255 <a href="#projectcontour.io/v1alpha1.EnvoySettings"> 5256 EnvoySettings 5257 </a> 5258 </em> 5259 </td> 5260 <td> 5261 <em>(Optional)</em> 5262 <p>Envoy specifies deployment-time settings for the Envoy 5263 part of the installation, i.e. the xDS client/data plane 5264 and associated resources, including things like the workload 5265 type to use (DaemonSet or Deployment), node placement constraints 5266 for the pods, and various options for the Envoy service.</p> 5267 </td> 5268 </tr> 5269 <tr> 5270 <td style="white-space:nowrap"> 5271 <code>runtimeSettings</code> 5272 <br> 5273 <em> 5274 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec"> 5275 ContourConfigurationSpec 5276 </a> 5277 </em> 5278 </td> 5279 <td> 5280 <em>(Optional)</em> 5281 <p>RuntimeSettings is a ContourConfiguration spec to be used when 5282 provisioning a Contour instance that will influence aspects of 5283 the Contour instance’s runtime behavior.</p> 5284 </td> 5285 </tr> 5286 <tr> 5287 <td style="white-space:nowrap"> 5288 <code>resourceLabels</code> 5289 <br> 5290 <em> 5291 map[string]string 5292 </em> 5293 </td> 5294 <td> 5295 <em>(Optional)</em> 5296 <p>ResourceLabels is a set of labels to add to the provisioned Contour resources.</p> 5297 </td> 5298 </tr> 5299 </table> 5300 </td> 5301 </tr> 5302 <tr> 5303 <td style="white-space:nowrap"> 5304 <code>status</code> 5305 <br> 5306 <em> 5307 <a href="#projectcontour.io/v1alpha1.ContourDeploymentStatus"> 5308 ContourDeploymentStatus 5309 </a> 5310 </em> 5311 </td> 5312 <td> 5313 </td> 5314 </tr> 5315 </tbody> 5316 </table> 5317 <h3 id="projectcontour.io/v1alpha1.ExtensionService">ExtensionService 5318 </h3> 5319 <p> 5320 <p>ExtensionService is the schema for the Contour extension services API. 5321 An ExtensionService resource binds a network service to the Contour 5322 API so that Contour API features can be implemented by collaborating 5323 components.</p> 5324 </p> 5325 <table> 5326 <thead> 5327 <tr> 5328 <th>Field</th> 5329 <th>Description</th> 5330 </tr> 5331 </thead> 5332 <tbody> 5333 <tr> 5334 <td> 5335 <code>apiVersion</code></br> 5336 string</td> 5337 <td> 5338 <code> 5339 projectcontour.io/v1alpha1 5340 </code> 5341 </td> 5342 </tr> 5343 <tr> 5344 <td> 5345 <code>kind</code></br> 5346 string 5347 </td> 5348 <td><code>ExtensionService</code></td> 5349 </tr> 5350 <tr> 5351 <td style="white-space:nowrap"> 5352 <code>metadata</code> 5353 <br> 5354 <em> 5355 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#objectmeta-v1-meta"> 5356 Kubernetes meta/v1.ObjectMeta 5357 </a> 5358 </em> 5359 </td> 5360 <td> 5361 Refer to the Kubernetes API documentation for the fields of the 5362 <code>metadata</code> field. 5363 </td> 5364 </tr> 5365 <tr> 5366 <td style="white-space:nowrap"> 5367 <code>spec</code> 5368 <br> 5369 <em> 5370 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec"> 5371 ExtensionServiceSpec 5372 </a> 5373 </em> 5374 </td> 5375 <td> 5376 <br> 5377 <br> 5378 <table style="border:none"> 5379 <tr> 5380 <td style="white-space:nowrap"> 5381 <code>services</code> 5382 <br> 5383 <em> 5384 <a href="#projectcontour.io/v1alpha1.ExtensionServiceTarget"> 5385 []ExtensionServiceTarget 5386 </a> 5387 </em> 5388 </td> 5389 <td> 5390 <p>Services specifies the set of Kubernetes Service resources that 5391 receive GRPC extension API requests. 5392 If no weights are specified for any of the entries in 5393 this array, traffic will be spread evenly across all the 5394 services. 5395 Otherwise, traffic is balanced proportionally to the 5396 Weight field in each entry.</p> 5397 </td> 5398 </tr> 5399 <tr> 5400 <td style="white-space:nowrap"> 5401 <code>validation</code> 5402 <br> 5403 <em> 5404 <a href="#projectcontour.io/v1.UpstreamValidation"> 5405 UpstreamValidation 5406 </a> 5407 </em> 5408 </td> 5409 <td> 5410 <em>(Optional)</em> 5411 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 5412 </td> 5413 </tr> 5414 <tr> 5415 <td style="white-space:nowrap"> 5416 <code>protocol</code> 5417 <br> 5418 <em> 5419 string 5420 </em> 5421 </td> 5422 <td> 5423 <em>(Optional)</em> 5424 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 5425 Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.</p> 5426 </td> 5427 </tr> 5428 <tr> 5429 <td style="white-space:nowrap"> 5430 <code>loadBalancerPolicy</code> 5431 <br> 5432 <em> 5433 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 5434 LoadBalancerPolicy 5435 </a> 5436 </em> 5437 </td> 5438 <td> 5439 <em>(Optional)</em> 5440 <p>The policy for load balancing GRPC service requests. Note that the 5441 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 5442 here.</p> 5443 </td> 5444 </tr> 5445 <tr> 5446 <td style="white-space:nowrap"> 5447 <code>timeoutPolicy</code> 5448 <br> 5449 <em> 5450 <a href="#projectcontour.io/v1.TimeoutPolicy"> 5451 TimeoutPolicy 5452 </a> 5453 </em> 5454 </td> 5455 <td> 5456 <em>(Optional)</em> 5457 <p>The timeout policy for requests to the services.</p> 5458 </td> 5459 </tr> 5460 <tr> 5461 <td style="white-space:nowrap"> 5462 <code>protocolVersion</code> 5463 <br> 5464 <em> 5465 <a href="#projectcontour.io/v1alpha1.ExtensionProtocolVersion"> 5466 ExtensionProtocolVersion 5467 </a> 5468 </em> 5469 </td> 5470 <td> 5471 <em>(Optional)</em> 5472 <p>This field sets the version of the GRPC protocol that Envoy uses to 5473 send requests to the extension service. Since Contour always uses the 5474 v3 Envoy API, this is currently fixed at “v3”. However, other 5475 protocol options will be available in future.</p> 5476 </td> 5477 </tr> 5478 </table> 5479 </td> 5480 </tr> 5481 <tr> 5482 <td style="white-space:nowrap"> 5483 <code>status</code> 5484 <br> 5485 <em> 5486 <a href="#projectcontour.io/v1alpha1.ExtensionServiceStatus"> 5487 ExtensionServiceStatus 5488 </a> 5489 </em> 5490 </td> 5491 <td> 5492 </td> 5493 </tr> 5494 </tbody> 5495 </table> 5496 <h3 id="projectcontour.io/v1alpha1.AccessLogFormatString">AccessLogFormatString 5497 (<code>string</code> alias)</p></h3> 5498 <p> 5499 </p> 5500 <h3 id="projectcontour.io/v1alpha1.AccessLogJSONFields">AccessLogJSONFields 5501 (<code>[]string</code> alias)</p></h3> 5502 <p> 5503 (<em>Appears on:</em> 5504 <a href="#projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging</a>) 5505 </p> 5506 <p> 5507 </p> 5508 <h3 id="projectcontour.io/v1alpha1.AccessLogLevel">AccessLogLevel 5509 (<code>string</code> alias)</p></h3> 5510 <p> 5511 (<em>Appears on:</em> 5512 <a href="#projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging</a>) 5513 </p> 5514 <p> 5515 </p> 5516 <table> 5517 <thead> 5518 <tr> 5519 <th>Value</th> 5520 <th>Description</th> 5521 </tr> 5522 </thead> 5523 <tbody><tr><td><p>"critical"</p></td> 5524 <td><p>Log only requests that result in an server error (i.e. 500+) response code.</p> 5525 </td> 5526 </tr><tr><td><p>"disabled"</p></td> 5527 <td><p>Disable the access log.</p> 5528 </td> 5529 </tr><tr><td><p>"error"</p></td> 5530 <td><p>Log only requests that result in a non-success (i.e. 300+) response code</p> 5531 </td> 5532 </tr><tr><td><p>"info"</p></td> 5533 <td><p>Log all requests. This is the default.</p> 5534 </td> 5535 </tr></tbody> 5536 </table> 5537 <h3 id="projectcontour.io/v1alpha1.AccessLogType">AccessLogType 5538 (<code>string</code> alias)</p></h3> 5539 <p> 5540 (<em>Appears on:</em> 5541 <a href="#projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging</a>) 5542 </p> 5543 <p> 5544 <p>AccessLogType is the name of a supported access logging mechanism.</p> 5545 </p> 5546 <table> 5547 <thead> 5548 <tr> 5549 <th>Value</th> 5550 <th>Description</th> 5551 </tr> 5552 </thead> 5553 <tbody><tr><td><p>"envoy"</p></td> 5554 <td><p>DefaultAccessLogType is the default access log format.</p> 5555 </td> 5556 </tr><tr><td><p>"envoy"</p></td> 5557 <td><p>Set the Envoy access logging to Envoy’s standard format. 5558 Can be customized using <code>accessLogFormatString</code>.</p> 5559 </td> 5560 </tr><tr><td><p>"json"</p></td> 5561 <td><p>Set the Envoy access logging to a JSON format. 5562 Can be customized using <code>jsonFields</code>.</p> 5563 </td> 5564 </tr></tbody> 5565 </table> 5566 <h3 id="projectcontour.io/v1alpha1.ClusterDNSFamilyType">ClusterDNSFamilyType 5567 (<code>string</code> alias)</p></h3> 5568 <p> 5569 (<em>Appears on:</em> 5570 <a href="#projectcontour.io/v1alpha1.ClusterParameters">ClusterParameters</a>) 5571 </p> 5572 <p> 5573 <p>ClusterDNSFamilyType is the Ip family to use for resolving DNS 5574 names in an Envoy cluster config.</p> 5575 </p> 5576 <table> 5577 <thead> 5578 <tr> 5579 <th>Value</th> 5580 <th>Description</th> 5581 </tr> 5582 </thead> 5583 <tbody><tr><td><p>"all"</p></td> 5584 <td><p>DNS lookups will attempt both v4 and v6 queries.</p> 5585 </td> 5586 </tr><tr><td><p>"auto"</p></td> 5587 <td><p>DNS lookups will do a v6 lookup first, followed by a v4 if that fails.</p> 5588 </td> 5589 </tr><tr><td><p>"v4"</p></td> 5590 <td><p>DNS lookups will only attempt v4 queries.</p> 5591 </td> 5592 </tr><tr><td><p>"v6"</p></td> 5593 <td><p>DNS lookups will only attempt v6 queries.</p> 5594 </td> 5595 </tr></tbody> 5596 </table> 5597 <h3 id="projectcontour.io/v1alpha1.ClusterParameters">ClusterParameters 5598 </h3> 5599 <p> 5600 (<em>Appears on:</em> 5601 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 5602 </p> 5603 <p> 5604 <p>ClusterParameters holds various configurable cluster values.</p> 5605 </p> 5606 <table> 5607 <thead> 5608 <tr> 5609 <th>Field</th> 5610 <th>Description</th> 5611 </tr> 5612 </thead> 5613 <tbody> 5614 <tr> 5615 <td style="white-space:nowrap"> 5616 <code>dnsLookupFamily</code> 5617 <br> 5618 <em> 5619 <a href="#projectcontour.io/v1alpha1.ClusterDNSFamilyType"> 5620 ClusterDNSFamilyType 5621 </a> 5622 </em> 5623 </td> 5624 <td> 5625 <em>(Optional)</em> 5626 <p>DNSLookupFamily defines how external names are looked up 5627 When configured as V4, the DNS resolver will only perform a lookup 5628 for addresses in the IPv4 family. If V6 is configured, the DNS resolver 5629 will only perform a lookup for addresses in the IPv6 family. 5630 If AUTO is configured, the DNS resolver will first perform a lookup 5631 for addresses in the IPv6 family and fallback to a lookup for addresses 5632 in the IPv4 family. If ALL is specified, the DNS resolver will perform a lookup for 5633 both IPv4 and IPv6 families, and return all resolved addresses. 5634 When this is used, Happy Eyeballs will be enabled for upstream connections. 5635 Refer to Happy Eyeballs Support for more information. 5636 Note: This only applies to externalName clusters.</p> 5637 <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> 5638 for more information.</p> 5639 <p>Values: <code>auto</code> (default), <code>v4</code>, <code>v6</code>, <code>all</code>.</p> 5640 <p>Other values will produce an error.</p> 5641 </td> 5642 </tr> 5643 <tr> 5644 <td style="white-space:nowrap"> 5645 <code>maxRequestsPerConnection</code> 5646 <br> 5647 <em> 5648 uint32 5649 </em> 5650 </td> 5651 <td> 5652 <em>(Optional)</em> 5653 <p>Defines the maximum requests for upstream connections. If not specified, there is no limit. 5654 see <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-msg-config-core-v3-httpprotocoloptions">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-msg-config-core-v3-httpprotocoloptions</a> 5655 for more information.</p> 5656 </td> 5657 </tr> 5658 <tr> 5659 <td style="white-space:nowrap"> 5660 <code>per-connection-buffer-limit-bytes</code> 5661 <br> 5662 <em> 5663 uint32 5664 </em> 5665 </td> 5666 <td> 5667 <em>(Optional)</em> 5668 <p>Defines the soft limit on size of the cluster’s new connection read and write buffers in bytes. 5669 If unspecified, an implementation defined default is applied (1MiB). 5670 see <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-per-connection-buffer-limit-bytes">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-per-connection-buffer-limit-bytes</a> 5671 for more information.</p> 5672 </td> 5673 </tr> 5674 </tbody> 5675 </table> 5676 <h3 id="projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec 5677 </h3> 5678 <p> 5679 (<em>Appears on:</em> 5680 <a href="#projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration</a>, 5681 <a href="#projectcontour.io/v1alpha1.ContourDeploymentSpec">ContourDeploymentSpec</a>) 5682 </p> 5683 <p> 5684 <p>ContourConfigurationSpec represents a configuration of a Contour controller. 5685 It contains most of all the options that can be customized, the 5686 other remaining options being command line flags.</p> 5687 </p> 5688 <table> 5689 <thead> 5690 <tr> 5691 <th>Field</th> 5692 <th>Description</th> 5693 </tr> 5694 </thead> 5695 <tbody> 5696 <tr> 5697 <td style="white-space:nowrap"> 5698 <code>xdsServer</code> 5699 <br> 5700 <em> 5701 <a href="#projectcontour.io/v1alpha1.XDSServerConfig"> 5702 XDSServerConfig 5703 </a> 5704 </em> 5705 </td> 5706 <td> 5707 <em>(Optional)</em> 5708 <p>XDSServer contains parameters for the xDS server.</p> 5709 </td> 5710 </tr> 5711 <tr> 5712 <td style="white-space:nowrap"> 5713 <code>ingress</code> 5714 <br> 5715 <em> 5716 <a href="#projectcontour.io/v1alpha1.IngressConfig"> 5717 IngressConfig 5718 </a> 5719 </em> 5720 </td> 5721 <td> 5722 <em>(Optional)</em> 5723 <p>Ingress contains parameters for ingress options.</p> 5724 </td> 5725 </tr> 5726 <tr> 5727 <td style="white-space:nowrap"> 5728 <code>debug</code> 5729 <br> 5730 <em> 5731 <a href="#projectcontour.io/v1alpha1.DebugConfig"> 5732 DebugConfig 5733 </a> 5734 </em> 5735 </td> 5736 <td> 5737 <em>(Optional)</em> 5738 <p>Debug contains parameters to enable debug logging 5739 and debug interfaces inside Contour.</p> 5740 </td> 5741 </tr> 5742 <tr> 5743 <td style="white-space:nowrap"> 5744 <code>health</code> 5745 <br> 5746 <em> 5747 <a href="#projectcontour.io/v1alpha1.HealthConfig"> 5748 HealthConfig 5749 </a> 5750 </em> 5751 </td> 5752 <td> 5753 <em>(Optional)</em> 5754 <p>Health defines the endpoints Contour uses to serve health checks.</p> 5755 <p>Contour’s default is { address: “0.0.0.0”, port: 8000 }.</p> 5756 </td> 5757 </tr> 5758 <tr> 5759 <td style="white-space:nowrap"> 5760 <code>envoy</code> 5761 <br> 5762 <em> 5763 <a href="#projectcontour.io/v1alpha1.EnvoyConfig"> 5764 EnvoyConfig 5765 </a> 5766 </em> 5767 </td> 5768 <td> 5769 <em>(Optional)</em> 5770 <p>Envoy contains parameters for Envoy as well 5771 as how to optionally configure a managed Envoy fleet.</p> 5772 </td> 5773 </tr> 5774 <tr> 5775 <td style="white-space:nowrap"> 5776 <code>gateway</code> 5777 <br> 5778 <em> 5779 <a href="#projectcontour.io/v1alpha1.GatewayConfig"> 5780 GatewayConfig 5781 </a> 5782 </em> 5783 </td> 5784 <td> 5785 <em>(Optional)</em> 5786 <p>Gateway contains parameters for the gateway-api Gateway that Contour 5787 is configured to serve traffic.</p> 5788 </td> 5789 </tr> 5790 <tr> 5791 <td style="white-space:nowrap"> 5792 <code>httpproxy</code> 5793 <br> 5794 <em> 5795 <a href="#projectcontour.io/v1alpha1.HTTPProxyConfig"> 5796 HTTPProxyConfig 5797 </a> 5798 </em> 5799 </td> 5800 <td> 5801 <em>(Optional)</em> 5802 <p>HTTPProxy defines parameters on HTTPProxy.</p> 5803 </td> 5804 </tr> 5805 <tr> 5806 <td style="white-space:nowrap"> 5807 <code>enableExternalNameService</code> 5808 <br> 5809 <em> 5810 bool 5811 </em> 5812 </td> 5813 <td> 5814 <em>(Optional)</em> 5815 <p>EnableExternalNameService allows processing of ExternalNameServices</p> 5816 <p>Contour’s default is false for security reasons.</p> 5817 </td> 5818 </tr> 5819 <tr> 5820 <td style="white-space:nowrap"> 5821 <code>globalExtAuth</code> 5822 <br> 5823 <em> 5824 <a href="#projectcontour.io/v1.AuthorizationServer"> 5825 AuthorizationServer 5826 </a> 5827 </em> 5828 </td> 5829 <td> 5830 <em>(Optional)</em> 5831 <p>GlobalExternalAuthorization allows envoys external authorization filter 5832 to be enabled for all virtual hosts.</p> 5833 </td> 5834 </tr> 5835 <tr> 5836 <td style="white-space:nowrap"> 5837 <code>rateLimitService</code> 5838 <br> 5839 <em> 5840 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig"> 5841 RateLimitServiceConfig 5842 </a> 5843 </em> 5844 </td> 5845 <td> 5846 <em>(Optional)</em> 5847 <p>RateLimitService optionally holds properties of the Rate Limit Service 5848 to be used for global rate limiting.</p> 5849 </td> 5850 </tr> 5851 <tr> 5852 <td style="white-space:nowrap"> 5853 <code>policy</code> 5854 <br> 5855 <em> 5856 <a href="#projectcontour.io/v1alpha1.PolicyConfig"> 5857 PolicyConfig 5858 </a> 5859 </em> 5860 </td> 5861 <td> 5862 <em>(Optional)</em> 5863 <p>Policy specifies default policy applied if not overridden by the user</p> 5864 </td> 5865 </tr> 5866 <tr> 5867 <td style="white-space:nowrap"> 5868 <code>metrics</code> 5869 <br> 5870 <em> 5871 <a href="#projectcontour.io/v1alpha1.MetricsConfig"> 5872 MetricsConfig 5873 </a> 5874 </em> 5875 </td> 5876 <td> 5877 <em>(Optional)</em> 5878 <p>Metrics defines the endpoint Contour uses to serve metrics.</p> 5879 <p>Contour’s default is { address: “0.0.0.0”, port: 8000 }.</p> 5880 </td> 5881 </tr> 5882 <tr> 5883 <td style="white-space:nowrap"> 5884 <code>tracing</code> 5885 <br> 5886 <em> 5887 <a href="#projectcontour.io/v1alpha1.TracingConfig"> 5888 TracingConfig 5889 </a> 5890 </em> 5891 </td> 5892 <td> 5893 <p>Tracing defines properties for exporting trace data to OpenTelemetry.</p> 5894 </td> 5895 </tr> 5896 <tr> 5897 <td style="white-space:nowrap"> 5898 <code>featureFlags</code> 5899 <br> 5900 <em> 5901 <a href="#projectcontour.io/v1alpha1.FeatureFlags"> 5902 FeatureFlags 5903 </a> 5904 </em> 5905 </td> 5906 <td> 5907 <p>FeatureFlags defines toggle to enable new contour features. 5908 Available toggles are: 5909 useEndpointSlices - configures contour to fetch endpoint data 5910 from k8s endpoint slices. defaults to false and reading endpoint 5911 data from the k8s endpoints.</p> 5912 </td> 5913 </tr> 5914 </tbody> 5915 </table> 5916 <h3 id="projectcontour.io/v1alpha1.ContourConfigurationStatus">ContourConfigurationStatus 5917 </h3> 5918 <p> 5919 (<em>Appears on:</em> 5920 <a href="#projectcontour.io/v1alpha1.ContourConfiguration">ContourConfiguration</a>) 5921 </p> 5922 <p> 5923 <p>ContourConfigurationStatus defines the observed state of a ContourConfiguration resource.</p> 5924 </p> 5925 <table> 5926 <thead> 5927 <tr> 5928 <th>Field</th> 5929 <th>Description</th> 5930 </tr> 5931 </thead> 5932 <tbody> 5933 <tr> 5934 <td style="white-space:nowrap"> 5935 <code>conditions</code> 5936 <br> 5937 <em> 5938 <a href="#projectcontour.io/v1.DetailedCondition"> 5939 []DetailedCondition 5940 </a> 5941 </em> 5942 </td> 5943 <td> 5944 <em>(Optional)</em> 5945 <p>Conditions contains the current status of the Contour resource.</p> 5946 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity.</p> 5947 <p>Contour will not modify any other Conditions set in this block, 5948 in case some other controller wants to add a Condition.</p> 5949 </td> 5950 </tr> 5951 </tbody> 5952 </table> 5953 <h3 id="projectcontour.io/v1alpha1.ContourDeploymentSpec">ContourDeploymentSpec 5954 </h3> 5955 <p> 5956 (<em>Appears on:</em> 5957 <a href="#projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment</a>) 5958 </p> 5959 <p> 5960 <p>ContourDeploymentSpec specifies options for how a Contour 5961 instance should be provisioned.</p> 5962 </p> 5963 <table> 5964 <thead> 5965 <tr> 5966 <th>Field</th> 5967 <th>Description</th> 5968 </tr> 5969 </thead> 5970 <tbody> 5971 <tr> 5972 <td style="white-space:nowrap"> 5973 <code>contour</code> 5974 <br> 5975 <em> 5976 <a href="#projectcontour.io/v1alpha1.ContourSettings"> 5977 ContourSettings 5978 </a> 5979 </em> 5980 </td> 5981 <td> 5982 <em>(Optional)</em> 5983 <p>Contour specifies deployment-time settings for the Contour 5984 part of the installation, i.e. the xDS server/control plane 5985 and associated resources, including things like replica count 5986 for the Deployment, and node placement constraints for the pods.</p> 5987 </td> 5988 </tr> 5989 <tr> 5990 <td style="white-space:nowrap"> 5991 <code>envoy</code> 5992 <br> 5993 <em> 5994 <a href="#projectcontour.io/v1alpha1.EnvoySettings"> 5995 EnvoySettings 5996 </a> 5997 </em> 5998 </td> 5999 <td> 6000 <em>(Optional)</em> 6001 <p>Envoy specifies deployment-time settings for the Envoy 6002 part of the installation, i.e. the xDS client/data plane 6003 and associated resources, including things like the workload 6004 type to use (DaemonSet or Deployment), node placement constraints 6005 for the pods, and various options for the Envoy service.</p> 6006 </td> 6007 </tr> 6008 <tr> 6009 <td style="white-space:nowrap"> 6010 <code>runtimeSettings</code> 6011 <br> 6012 <em> 6013 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec"> 6014 ContourConfigurationSpec 6015 </a> 6016 </em> 6017 </td> 6018 <td> 6019 <em>(Optional)</em> 6020 <p>RuntimeSettings is a ContourConfiguration spec to be used when 6021 provisioning a Contour instance that will influence aspects of 6022 the Contour instance’s runtime behavior.</p> 6023 </td> 6024 </tr> 6025 <tr> 6026 <td style="white-space:nowrap"> 6027 <code>resourceLabels</code> 6028 <br> 6029 <em> 6030 map[string]string 6031 </em> 6032 </td> 6033 <td> 6034 <em>(Optional)</em> 6035 <p>ResourceLabels is a set of labels to add to the provisioned Contour resources.</p> 6036 </td> 6037 </tr> 6038 </tbody> 6039 </table> 6040 <h3 id="projectcontour.io/v1alpha1.ContourDeploymentStatus">ContourDeploymentStatus 6041 </h3> 6042 <p> 6043 (<em>Appears on:</em> 6044 <a href="#projectcontour.io/v1alpha1.ContourDeployment">ContourDeployment</a>) 6045 </p> 6046 <p> 6047 <p>ContourDeploymentStatus defines the observed state of a ContourDeployment resource.</p> 6048 </p> 6049 <table> 6050 <thead> 6051 <tr> 6052 <th>Field</th> 6053 <th>Description</th> 6054 </tr> 6055 </thead> 6056 <tbody> 6057 <tr> 6058 <td style="white-space:nowrap"> 6059 <code>conditions</code> 6060 <br> 6061 <em> 6062 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#condition-v1-meta"> 6063 []Kubernetes meta/v1.Condition 6064 </a> 6065 </em> 6066 </td> 6067 <td> 6068 <em>(Optional)</em> 6069 <p>Conditions describe the current conditions of the ContourDeployment resource.</p> 6070 </td> 6071 </tr> 6072 </tbody> 6073 </table> 6074 <h3 id="projectcontour.io/v1alpha1.ContourSettings">ContourSettings 6075 </h3> 6076 <p> 6077 (<em>Appears on:</em> 6078 <a href="#projectcontour.io/v1alpha1.ContourDeploymentSpec">ContourDeploymentSpec</a>) 6079 </p> 6080 <p> 6081 <p>ContourSettings contains settings for the Contour part of the installation, 6082 i.e. the xDS server/control plane and associated resources.</p> 6083 </p> 6084 <table> 6085 <thead> 6086 <tr> 6087 <th>Field</th> 6088 <th>Description</th> 6089 </tr> 6090 </thead> 6091 <tbody> 6092 <tr> 6093 <td style="white-space:nowrap"> 6094 <code>replicas</code> 6095 <br> 6096 <em> 6097 int32 6098 </em> 6099 </td> 6100 <td> 6101 <em>(Optional)</em> 6102 <p>Deprecated: Use <code>DeploymentSettings.Replicas</code> instead.</p> 6103 <p>Replicas is the desired number of Contour replicas. If if unset, 6104 defaults to 2.</p> 6105 <p>if both <code>DeploymentSettings.Replicas</code> and this one is set, use <code>DeploymentSettings.Replicas</code>.</p> 6106 </td> 6107 </tr> 6108 <tr> 6109 <td style="white-space:nowrap"> 6110 <code>nodePlacement</code> 6111 <br> 6112 <em> 6113 <a href="#projectcontour.io/v1alpha1.NodePlacement"> 6114 NodePlacement 6115 </a> 6116 </em> 6117 </td> 6118 <td> 6119 <em>(Optional)</em> 6120 <p>NodePlacement describes node scheduling configuration of Contour pods.</p> 6121 </td> 6122 </tr> 6123 <tr> 6124 <td style="white-space:nowrap"> 6125 <code>kubernetesLogLevel</code> 6126 <br> 6127 <em> 6128 byte 6129 </em> 6130 </td> 6131 <td> 6132 <em>(Optional)</em> 6133 <p>KubernetesLogLevel Enable Kubernetes client debug logging with log level. If unset, 6134 defaults to 0.</p> 6135 </td> 6136 </tr> 6137 <tr> 6138 <td style="white-space:nowrap"> 6139 <code>logLevel</code> 6140 <br> 6141 <em> 6142 <a href="#projectcontour.io/v1alpha1.LogLevel"> 6143 LogLevel 6144 </a> 6145 </em> 6146 </td> 6147 <td> 6148 <em>(Optional)</em> 6149 <p>LogLevel sets the log level for Contour 6150 Allowed values are “info”, “debug”.</p> 6151 </td> 6152 </tr> 6153 <tr> 6154 <td style="white-space:nowrap"> 6155 <code>resources</code> 6156 <br> 6157 <em> 6158 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#resourcerequirements-v1-core"> 6159 Kubernetes core/v1.ResourceRequirements 6160 </a> 6161 </em> 6162 </td> 6163 <td> 6164 <em>(Optional)</em> 6165 <p>Compute Resources required by contour container. 6166 Cannot be updated. 6167 More info: <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/">https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/</a></p> 6168 </td> 6169 </tr> 6170 <tr> 6171 <td style="white-space:nowrap"> 6172 <code>deployment</code> 6173 <br> 6174 <em> 6175 <a href="#projectcontour.io/v1alpha1.DeploymentSettings"> 6176 DeploymentSettings 6177 </a> 6178 </em> 6179 </td> 6180 <td> 6181 <em>(Optional)</em> 6182 <p>Deployment describes the settings for running contour as a <code>Deployment</code>.</p> 6183 </td> 6184 </tr> 6185 <tr> 6186 <td style="white-space:nowrap"> 6187 <code>podAnnotations</code> 6188 <br> 6189 <em> 6190 map[string]string 6191 </em> 6192 </td> 6193 <td> 6194 <em>(Optional)</em> 6195 <p>PodAnnotations defines annotations to add to the Contour pods. 6196 the annotations for Prometheus will be appended or overwritten with predefined value.</p> 6197 </td> 6198 </tr> 6199 </tbody> 6200 </table> 6201 <h3 id="projectcontour.io/v1alpha1.CustomTag">CustomTag 6202 </h3> 6203 <p> 6204 <p>CustomTag defines custom tags with unique tag name 6205 to create tags for the active span.</p> 6206 </p> 6207 <table> 6208 <thead> 6209 <tr> 6210 <th>Field</th> 6211 <th>Description</th> 6212 </tr> 6213 </thead> 6214 <tbody> 6215 <tr> 6216 <td style="white-space:nowrap"> 6217 <code>tagName</code> 6218 <br> 6219 <em> 6220 string 6221 </em> 6222 </td> 6223 <td> 6224 <p>TagName is the unique name of the custom tag.</p> 6225 </td> 6226 </tr> 6227 <tr> 6228 <td style="white-space:nowrap"> 6229 <code>literal</code> 6230 <br> 6231 <em> 6232 string 6233 </em> 6234 </td> 6235 <td> 6236 <em>(Optional)</em> 6237 <p>Literal is a static custom tag value. 6238 Precisely one of Literal, RequestHeaderName must be set.</p> 6239 </td> 6240 </tr> 6241 <tr> 6242 <td style="white-space:nowrap"> 6243 <code>requestHeaderName</code> 6244 <br> 6245 <em> 6246 string 6247 </em> 6248 </td> 6249 <td> 6250 <em>(Optional)</em> 6251 <p>RequestHeaderName indicates which request header 6252 the label value is obtained from. 6253 Precisely one of Literal, RequestHeaderName must be set.</p> 6254 </td> 6255 </tr> 6256 </tbody> 6257 </table> 6258 <h3 id="projectcontour.io/v1alpha1.DaemonSetSettings">DaemonSetSettings 6259 </h3> 6260 <p> 6261 (<em>Appears on:</em> 6262 <a href="#projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings</a>) 6263 </p> 6264 <p> 6265 <p>DaemonSetSettings contains settings for DaemonSet resources.</p> 6266 </p> 6267 <table> 6268 <thead> 6269 <tr> 6270 <th>Field</th> 6271 <th>Description</th> 6272 </tr> 6273 </thead> 6274 <tbody> 6275 <tr> 6276 <td style="white-space:nowrap"> 6277 <code>updateStrategy</code> 6278 <br> 6279 <em> 6280 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#daemonsetupdatestrategy-v1-apps"> 6281 Kubernetes apps/v1.DaemonSetUpdateStrategy 6282 </a> 6283 </em> 6284 </td> 6285 <td> 6286 <em>(Optional)</em> 6287 <p>Strategy describes the deployment strategy to use to replace existing DaemonSet pods with new pods.</p> 6288 </td> 6289 </tr> 6290 </tbody> 6291 </table> 6292 <h3 id="projectcontour.io/v1alpha1.DebugConfig">DebugConfig 6293 </h3> 6294 <p> 6295 (<em>Appears on:</em> 6296 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 6297 </p> 6298 <p> 6299 <p>DebugConfig contains Contour specific troubleshooting options.</p> 6300 </p> 6301 <table> 6302 <thead> 6303 <tr> 6304 <th>Field</th> 6305 <th>Description</th> 6306 </tr> 6307 </thead> 6308 <tbody> 6309 <tr> 6310 <td style="white-space:nowrap"> 6311 <code>address</code> 6312 <br> 6313 <em> 6314 string 6315 </em> 6316 </td> 6317 <td> 6318 <em>(Optional)</em> 6319 <p>Defines the Contour debug address interface.</p> 6320 <p>Contour’s default is “127.0.0.1”.</p> 6321 </td> 6322 </tr> 6323 <tr> 6324 <td style="white-space:nowrap"> 6325 <code>port</code> 6326 <br> 6327 <em> 6328 int 6329 </em> 6330 </td> 6331 <td> 6332 <em>(Optional)</em> 6333 <p>Defines the Contour debug address port.</p> 6334 <p>Contour’s default is 6060.</p> 6335 </td> 6336 </tr> 6337 </tbody> 6338 </table> 6339 <h3 id="projectcontour.io/v1alpha1.DeploymentSettings">DeploymentSettings 6340 </h3> 6341 <p> 6342 (<em>Appears on:</em> 6343 <a href="#projectcontour.io/v1alpha1.ContourSettings">ContourSettings</a>, 6344 <a href="#projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings</a>) 6345 </p> 6346 <p> 6347 <p>DeploymentSettings contains settings for Deployment resources.</p> 6348 </p> 6349 <table> 6350 <thead> 6351 <tr> 6352 <th>Field</th> 6353 <th>Description</th> 6354 </tr> 6355 </thead> 6356 <tbody> 6357 <tr> 6358 <td style="white-space:nowrap"> 6359 <code>replicas</code> 6360 <br> 6361 <em> 6362 int32 6363 </em> 6364 </td> 6365 <td> 6366 <p>Replicas is the desired number of replicas.</p> 6367 </td> 6368 </tr> 6369 <tr> 6370 <td style="white-space:nowrap"> 6371 <code>strategy</code> 6372 <br> 6373 <em> 6374 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#deploymentstrategy-v1-apps"> 6375 Kubernetes apps/v1.DeploymentStrategy 6376 </a> 6377 </em> 6378 </td> 6379 <td> 6380 <em>(Optional)</em> 6381 <p>Strategy describes the deployment strategy to use to replace existing pods with new pods.</p> 6382 </td> 6383 </tr> 6384 </tbody> 6385 </table> 6386 <h3 id="projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig 6387 </h3> 6388 <p> 6389 (<em>Appears on:</em> 6390 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 6391 </p> 6392 <p> 6393 <p>EnvoyConfig defines how Envoy is to be Configured from Contour.</p> 6394 </p> 6395 <table> 6396 <thead> 6397 <tr> 6398 <th>Field</th> 6399 <th>Description</th> 6400 </tr> 6401 </thead> 6402 <tbody> 6403 <tr> 6404 <td style="white-space:nowrap"> 6405 <code>listener</code> 6406 <br> 6407 <em> 6408 <a href="#projectcontour.io/v1alpha1.EnvoyListenerConfig"> 6409 EnvoyListenerConfig 6410 </a> 6411 </em> 6412 </td> 6413 <td> 6414 <em>(Optional)</em> 6415 <p>Listener hold various configurable Envoy listener values.</p> 6416 </td> 6417 </tr> 6418 <tr> 6419 <td style="white-space:nowrap"> 6420 <code>service</code> 6421 <br> 6422 <em> 6423 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 6424 NamespacedName 6425 </a> 6426 </em> 6427 </td> 6428 <td> 6429 <em>(Optional)</em> 6430 <p>Service holds Envoy service parameters for setting Ingress status.</p> 6431 <p>Contour’s default is { namespace: “projectcontour”, name: “envoy” }.</p> 6432 </td> 6433 </tr> 6434 <tr> 6435 <td style="white-space:nowrap"> 6436 <code>http</code> 6437 <br> 6438 <em> 6439 <a href="#projectcontour.io/v1alpha1.EnvoyListener"> 6440 EnvoyListener 6441 </a> 6442 </em> 6443 </td> 6444 <td> 6445 <em>(Optional)</em> 6446 <p>Defines the HTTP Listener for Envoy.</p> 6447 <p>Contour’s default is { address: “0.0.0.0”, port: 8080, accessLog: “/dev/stdout” }.</p> 6448 </td> 6449 </tr> 6450 <tr> 6451 <td style="white-space:nowrap"> 6452 <code>https</code> 6453 <br> 6454 <em> 6455 <a href="#projectcontour.io/v1alpha1.EnvoyListener"> 6456 EnvoyListener 6457 </a> 6458 </em> 6459 </td> 6460 <td> 6461 <em>(Optional)</em> 6462 <p>Defines the HTTPS Listener for Envoy.</p> 6463 <p>Contour’s default is { address: “0.0.0.0”, port: 8443, accessLog: “/dev/stdout” }.</p> 6464 </td> 6465 </tr> 6466 <tr> 6467 <td style="white-space:nowrap"> 6468 <code>health</code> 6469 <br> 6470 <em> 6471 <a href="#projectcontour.io/v1alpha1.HealthConfig"> 6472 HealthConfig 6473 </a> 6474 </em> 6475 </td> 6476 <td> 6477 <em>(Optional)</em> 6478 <p>Health defines the endpoint Envoy uses to serve health checks.</p> 6479 <p>Contour’s default is { address: “0.0.0.0”, port: 8002 }.</p> 6480 </td> 6481 </tr> 6482 <tr> 6483 <td style="white-space:nowrap"> 6484 <code>metrics</code> 6485 <br> 6486 <em> 6487 <a href="#projectcontour.io/v1alpha1.MetricsConfig"> 6488 MetricsConfig 6489 </a> 6490 </em> 6491 </td> 6492 <td> 6493 <em>(Optional)</em> 6494 <p>Metrics defines the endpoint Envoy uses to serve metrics.</p> 6495 <p>Contour’s default is { address: “0.0.0.0”, port: 8002 }.</p> 6496 </td> 6497 </tr> 6498 <tr> 6499 <td style="white-space:nowrap"> 6500 <code>clientCertificate</code> 6501 <br> 6502 <em> 6503 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 6504 NamespacedName 6505 </a> 6506 </em> 6507 </td> 6508 <td> 6509 <em>(Optional)</em> 6510 <p>ClientCertificate defines the namespace/name of the Kubernetes 6511 secret containing the client certificate and private key 6512 to be used when establishing TLS connection to upstream 6513 cluster.</p> 6514 </td> 6515 </tr> 6516 <tr> 6517 <td style="white-space:nowrap"> 6518 <code>logging</code> 6519 <br> 6520 <em> 6521 <a href="#projectcontour.io/v1alpha1.EnvoyLogging"> 6522 EnvoyLogging 6523 </a> 6524 </em> 6525 </td> 6526 <td> 6527 <em>(Optional)</em> 6528 <p>Logging defines how Envoy’s logs can be configured.</p> 6529 </td> 6530 </tr> 6531 <tr> 6532 <td style="white-space:nowrap"> 6533 <code>defaultHTTPVersions</code> 6534 <br> 6535 <em> 6536 <a href="#projectcontour.io/v1alpha1.HTTPVersionType"> 6537 []HTTPVersionType 6538 </a> 6539 </em> 6540 </td> 6541 <td> 6542 <em>(Optional)</em> 6543 <p>DefaultHTTPVersions defines the default set of HTTPS 6544 versions the proxy should accept. HTTP versions are 6545 strings of the form “HTTP/xx”. Supported versions are 6546 “HTTP/1.1” and “HTTP/2”.</p> 6547 <p>Values: <code>HTTP/1.1</code>, <code>HTTP/2</code> (default: both).</p> 6548 <p>Other values will produce an error.</p> 6549 </td> 6550 </tr> 6551 <tr> 6552 <td style="white-space:nowrap"> 6553 <code>timeouts</code> 6554 <br> 6555 <em> 6556 <a href="#projectcontour.io/v1alpha1.TimeoutParameters"> 6557 TimeoutParameters 6558 </a> 6559 </em> 6560 </td> 6561 <td> 6562 <em>(Optional)</em> 6563 <p>Timeouts holds various configurable timeouts that can 6564 be set in the config file.</p> 6565 </td> 6566 </tr> 6567 <tr> 6568 <td style="white-space:nowrap"> 6569 <code>cluster</code> 6570 <br> 6571 <em> 6572 <a href="#projectcontour.io/v1alpha1.ClusterParameters"> 6573 ClusterParameters 6574 </a> 6575 </em> 6576 </td> 6577 <td> 6578 <em>(Optional)</em> 6579 <p>Cluster holds various configurable Envoy cluster values that can 6580 be set in the config file.</p> 6581 </td> 6582 </tr> 6583 <tr> 6584 <td style="white-space:nowrap"> 6585 <code>network</code> 6586 <br> 6587 <em> 6588 <a href="#projectcontour.io/v1alpha1.NetworkParameters"> 6589 NetworkParameters 6590 </a> 6591 </em> 6592 </td> 6593 <td> 6594 <em>(Optional)</em> 6595 <p>Network holds various configurable Envoy network values.</p> 6596 </td> 6597 </tr> 6598 </tbody> 6599 </table> 6600 <h3 id="projectcontour.io/v1alpha1.EnvoyListener">EnvoyListener 6601 </h3> 6602 <p> 6603 (<em>Appears on:</em> 6604 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 6605 </p> 6606 <p> 6607 <p>EnvoyListener defines parameters for an Envoy Listener.</p> 6608 </p> 6609 <table> 6610 <thead> 6611 <tr> 6612 <th>Field</th> 6613 <th>Description</th> 6614 </tr> 6615 </thead> 6616 <tbody> 6617 <tr> 6618 <td style="white-space:nowrap"> 6619 <code>address</code> 6620 <br> 6621 <em> 6622 string 6623 </em> 6624 </td> 6625 <td> 6626 <em>(Optional)</em> 6627 <p>Defines an Envoy Listener Address.</p> 6628 </td> 6629 </tr> 6630 <tr> 6631 <td style="white-space:nowrap"> 6632 <code>port</code> 6633 <br> 6634 <em> 6635 int 6636 </em> 6637 </td> 6638 <td> 6639 <em>(Optional)</em> 6640 <p>Defines an Envoy listener Port.</p> 6641 </td> 6642 </tr> 6643 <tr> 6644 <td style="white-space:nowrap"> 6645 <code>accessLog</code> 6646 <br> 6647 <em> 6648 string 6649 </em> 6650 </td> 6651 <td> 6652 <em>(Optional)</em> 6653 <p>AccessLog defines where Envoy logs are outputted for this listener.</p> 6654 </td> 6655 </tr> 6656 </tbody> 6657 </table> 6658 <h3 id="projectcontour.io/v1alpha1.EnvoyListenerConfig">EnvoyListenerConfig 6659 </h3> 6660 <p> 6661 (<em>Appears on:</em> 6662 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 6663 </p> 6664 <p> 6665 <p>EnvoyListenerConfig hold various configurable Envoy listener values.</p> 6666 </p> 6667 <table> 6668 <thead> 6669 <tr> 6670 <th>Field</th> 6671 <th>Description</th> 6672 </tr> 6673 </thead> 6674 <tbody> 6675 <tr> 6676 <td style="white-space:nowrap"> 6677 <code>useProxyProtocol</code> 6678 <br> 6679 <em> 6680 bool 6681 </em> 6682 </td> 6683 <td> 6684 <em>(Optional)</em> 6685 <p>Use PROXY protocol for all listeners.</p> 6686 <p>Contour’s default is false.</p> 6687 </td> 6688 </tr> 6689 <tr> 6690 <td style="white-space:nowrap"> 6691 <code>disableAllowChunkedLength</code> 6692 <br> 6693 <em> 6694 bool 6695 </em> 6696 </td> 6697 <td> 6698 <em>(Optional)</em> 6699 <p>DisableAllowChunkedLength disables the RFC-compliant Envoy behavior to 6700 strip the “Content-Length” header if “Transfer-Encoding: chunked” is 6701 also set. This is an emergency off-switch to revert back to Envoy’s 6702 default behavior in case of failures. Please file an issue if failures 6703 are encountered. 6704 See: <a href="https://github.com/projectcontour/contour/issues/3221">https://github.com/projectcontour/contour/issues/3221</a></p> 6705 <p>Contour’s default is false.</p> 6706 </td> 6707 </tr> 6708 <tr> 6709 <td style="white-space:nowrap"> 6710 <code>disableMergeSlashes</code> 6711 <br> 6712 <em> 6713 bool 6714 </em> 6715 </td> 6716 <td> 6717 <em>(Optional)</em> 6718 <p>DisableMergeSlashes disables Envoy’s non-standard merge_slashes path transformation option 6719 which strips duplicate slashes from request URL paths.</p> 6720 <p>Contour’s default is false.</p> 6721 </td> 6722 </tr> 6723 <tr> 6724 <td style="white-space:nowrap"> 6725 <code>serverHeaderTransformation</code> 6726 <br> 6727 <em> 6728 <a href="#projectcontour.io/v1alpha1.ServerHeaderTransformationType"> 6729 ServerHeaderTransformationType 6730 </a> 6731 </em> 6732 </td> 6733 <td> 6734 <em>(Optional)</em> 6735 <p>Defines the action to be applied to the Server header on the response path. 6736 When configured as overwrite, overwrites any Server header with “envoy”. 6737 When configured as append_if_absent, if a Server header is present, pass it through, otherwise set it to “envoy”. 6738 When configured as pass_through, pass through the value of the Server header, and do not append a header if none is present.</p> 6739 <p>Values: <code>overwrite</code> (default), <code>append_if_absent</code>, <code>pass_through</code></p> 6740 <p>Other values will produce an error. 6741 Contour’s default is overwrite.</p> 6742 </td> 6743 </tr> 6744 <tr> 6745 <td style="white-space:nowrap"> 6746 <code>connectionBalancer</code> 6747 <br> 6748 <em> 6749 string 6750 </em> 6751 </td> 6752 <td> 6753 <em>(Optional)</em> 6754 <p>ConnectionBalancer. If the value is exact, the listener will use the exact connection balancer 6755 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> 6756 for more information.</p> 6757 <p>Values: (empty string): use the default ConnectionBalancer, <code>exact</code>: use the Exact ConnectionBalancer.</p> 6758 <p>Other values will produce an error.</p> 6759 </td> 6760 </tr> 6761 <tr> 6762 <td style="white-space:nowrap"> 6763 <code>maxRequestsPerConnection</code> 6764 <br> 6765 <em> 6766 uint32 6767 </em> 6768 </td> 6769 <td> 6770 <em>(Optional)</em> 6771 <p>Defines the maximum requests for downstream connections. If not specified, there is no limit. 6772 see <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-msg-config-core-v3-httpprotocoloptions">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-msg-config-core-v3-httpprotocoloptions</a> 6773 for more information.</p> 6774 </td> 6775 </tr> 6776 <tr> 6777 <td style="white-space:nowrap"> 6778 <code>per-connection-buffer-limit-bytes</code> 6779 <br> 6780 <em> 6781 uint32 6782 </em> 6783 </td> 6784 <td> 6785 <em>(Optional)</em> 6786 <p>Defines the soft limit on size of the listener’s new connection read and write buffers in bytes. 6787 If unspecified, an implementation defined default is applied (1MiB). 6788 see <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto#envoy-v3-api-field-config-listener-v3-listener-per-connection-buffer-limit-bytes">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto#envoy-v3-api-field-config-listener-v3-listener-per-connection-buffer-limit-bytes</a> 6789 for more information.</p> 6790 </td> 6791 </tr> 6792 <tr> 6793 <td style="white-space:nowrap"> 6794 <code>tls</code> 6795 <br> 6796 <em> 6797 <a href="#projectcontour.io/v1alpha1.EnvoyTLS"> 6798 EnvoyTLS 6799 </a> 6800 </em> 6801 </td> 6802 <td> 6803 <em>(Optional)</em> 6804 <p>TLS holds various configurable Envoy TLS listener values.</p> 6805 </td> 6806 </tr> 6807 <tr> 6808 <td style="white-space:nowrap"> 6809 <code>socketOptions</code> 6810 <br> 6811 <em> 6812 <a href="#projectcontour.io/v1alpha1.SocketOptions"> 6813 SocketOptions 6814 </a> 6815 </em> 6816 </td> 6817 <td> 6818 <em>(Optional)</em> 6819 <p>SocketOptions defines configurable socket options for the listeners. 6820 Single set of options are applied to all listeners.</p> 6821 </td> 6822 </tr> 6823 <tr> 6824 <td style="white-space:nowrap"> 6825 <code>maxRequestsPerIOCycle</code> 6826 <br> 6827 <em> 6828 uint32 6829 </em> 6830 </td> 6831 <td> 6832 <em>(Optional)</em> 6833 <p>Defines the limit on number of HTTP requests that Envoy will process from a single 6834 connection in a single I/O cycle. Requests over this limit are processed in subsequent 6835 I/O cycles. Can be used as a mitigation for CVE-2023-44487 when abusive traffic is 6836 detected. Configures the http.max_requests_per_io_cycle Envoy runtime setting. The default 6837 value when this is not set is no limit.</p> 6838 </td> 6839 </tr> 6840 <tr> 6841 <td style="white-space:nowrap"> 6842 <code>httpMaxConcurrentStreams</code> 6843 <br> 6844 <em> 6845 uint32 6846 </em> 6847 </td> 6848 <td> 6849 <em>(Optional)</em> 6850 <p>Defines the value for SETTINGS_MAX_CONCURRENT_STREAMS Envoy will advertise in the 6851 SETTINGS frame in HTTP/2 connections and the limit for concurrent streams allowed 6852 for a peer on a single HTTP/2 connection. It is recommended to not set this lower 6853 than 100 but this field can be used to bound resource usage by HTTP/2 connections 6854 and mitigate attacks like CVE-2023-44487. The default value when this is not set is 6855 unlimited.</p> 6856 </td> 6857 </tr> 6858 </tbody> 6859 </table> 6860 <h3 id="projectcontour.io/v1alpha1.EnvoyLogging">EnvoyLogging 6861 </h3> 6862 <p> 6863 (<em>Appears on:</em> 6864 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 6865 </p> 6866 <p> 6867 <p>EnvoyLogging defines how Envoy’s logs can be configured.</p> 6868 </p> 6869 <table> 6870 <thead> 6871 <tr> 6872 <th>Field</th> 6873 <th>Description</th> 6874 </tr> 6875 </thead> 6876 <tbody> 6877 <tr> 6878 <td style="white-space:nowrap"> 6879 <code>accessLogFormat</code> 6880 <br> 6881 <em> 6882 <a href="#projectcontour.io/v1alpha1.AccessLogType"> 6883 AccessLogType 6884 </a> 6885 </em> 6886 </td> 6887 <td> 6888 <em>(Optional)</em> 6889 <p>AccessLogFormat sets the global access log format.</p> 6890 <p>Values: <code>envoy</code> (default), <code>json</code>.</p> 6891 <p>Other values will produce an error.</p> 6892 </td> 6893 </tr> 6894 <tr> 6895 <td style="white-space:nowrap"> 6896 <code>accessLogFormatString</code> 6897 <br> 6898 <em> 6899 string 6900 </em> 6901 </td> 6902 <td> 6903 <em>(Optional)</em> 6904 <p>AccessLogFormatString sets the access log format when format is set to <code>envoy</code>. 6905 When empty, Envoy’s default format is used.</p> 6906 </td> 6907 </tr> 6908 <tr> 6909 <td style="white-space:nowrap"> 6910 <code>accessLogJSONFields</code> 6911 <br> 6912 <em> 6913 <a href="#projectcontour.io/v1alpha1.AccessLogJSONFields"> 6914 AccessLogJSONFields 6915 </a> 6916 </em> 6917 </td> 6918 <td> 6919 <em>(Optional)</em> 6920 <p>AccessLogJSONFields sets the fields that JSON logging will 6921 output when AccessLogFormat is json.</p> 6922 </td> 6923 </tr> 6924 <tr> 6925 <td style="white-space:nowrap"> 6926 <code>accessLogLevel</code> 6927 <br> 6928 <em> 6929 <a href="#projectcontour.io/v1alpha1.AccessLogLevel"> 6930 AccessLogLevel 6931 </a> 6932 </em> 6933 </td> 6934 <td> 6935 <em>(Optional)</em> 6936 <p>AccessLogLevel sets the verbosity level of the access log.</p> 6937 <p>Values: <code>info</code> (default, all requests are logged), <code>error</code> (all non-success requests, i.e. 300+ response code, are logged), <code>critical</code> (all 5xx requests are logged) and <code>disabled</code>.</p> 6938 <p>Other values will produce an error.</p> 6939 </td> 6940 </tr> 6941 </tbody> 6942 </table> 6943 <h3 id="projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings 6944 </h3> 6945 <p> 6946 (<em>Appears on:</em> 6947 <a href="#projectcontour.io/v1alpha1.ContourDeploymentSpec">ContourDeploymentSpec</a>) 6948 </p> 6949 <p> 6950 <p>EnvoySettings contains settings for the Envoy part of the installation, 6951 i.e. the xDS client/data plane and associated resources.</p> 6952 </p> 6953 <table> 6954 <thead> 6955 <tr> 6956 <th>Field</th> 6957 <th>Description</th> 6958 </tr> 6959 </thead> 6960 <tbody> 6961 <tr> 6962 <td style="white-space:nowrap"> 6963 <code>workloadType</code> 6964 <br> 6965 <em> 6966 <a href="#projectcontour.io/v1alpha1.WorkloadType"> 6967 WorkloadType 6968 </a> 6969 </em> 6970 </td> 6971 <td> 6972 <em>(Optional)</em> 6973 <p>WorkloadType is the type of workload to install Envoy 6974 as. Choices are DaemonSet and Deployment. If unset, defaults 6975 to DaemonSet.</p> 6976 </td> 6977 </tr> 6978 <tr> 6979 <td style="white-space:nowrap"> 6980 <code>replicas</code> 6981 <br> 6982 <em> 6983 int32 6984 </em> 6985 </td> 6986 <td> 6987 <em>(Optional)</em> 6988 <p>Deprecated: Use <code>DeploymentSettings.Replicas</code> instead.</p> 6989 <p>Replicas is the desired number of Envoy replicas. If WorkloadType 6990 is not “Deployment”, this field is ignored. Otherwise, if unset, 6991 defaults to 2.</p> 6992 <p>if both <code>DeploymentSettings.Replicas</code> and this one is set, use <code>DeploymentSettings.Replicas</code>.</p> 6993 </td> 6994 </tr> 6995 <tr> 6996 <td style="white-space:nowrap"> 6997 <code>networkPublishing</code> 6998 <br> 6999 <em> 7000 <a href="#projectcontour.io/v1alpha1.NetworkPublishing"> 7001 NetworkPublishing 7002 </a> 7003 </em> 7004 </td> 7005 <td> 7006 <p>NetworkPublishing defines how to expose Envoy to a network.</p> 7007 </td> 7008 </tr> 7009 <tr> 7010 <td style="white-space:nowrap"> 7011 <code>nodePlacement</code> 7012 <br> 7013 <em> 7014 <a href="#projectcontour.io/v1alpha1.NodePlacement"> 7015 NodePlacement 7016 </a> 7017 </em> 7018 </td> 7019 <td> 7020 <em>(Optional)</em> 7021 <p>NodePlacement describes node scheduling configuration of Envoy pods.</p> 7022 </td> 7023 </tr> 7024 <tr> 7025 <td style="white-space:nowrap"> 7026 <code>extraVolumes</code> 7027 <br> 7028 <em> 7029 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#volume-v1-core"> 7030 []Kubernetes core/v1.Volume 7031 </a> 7032 </em> 7033 </td> 7034 <td> 7035 <em>(Optional)</em> 7036 <p>ExtraVolumes holds the extra volumes to add.</p> 7037 </td> 7038 </tr> 7039 <tr> 7040 <td style="white-space:nowrap"> 7041 <code>extraVolumeMounts</code> 7042 <br> 7043 <em> 7044 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#volumemount-v1-core"> 7045 []Kubernetes core/v1.VolumeMount 7046 </a> 7047 </em> 7048 </td> 7049 <td> 7050 <em>(Optional)</em> 7051 <p>ExtraVolumeMounts holds the extra volume mounts to add (normally used with extraVolumes).</p> 7052 </td> 7053 </tr> 7054 <tr> 7055 <td style="white-space:nowrap"> 7056 <code>podAnnotations</code> 7057 <br> 7058 <em> 7059 map[string]string 7060 </em> 7061 </td> 7062 <td> 7063 <em>(Optional)</em> 7064 <p>PodAnnotations defines annotations to add to the Envoy pods. 7065 the annotations for Prometheus will be appended or overwritten with predefined value.</p> 7066 </td> 7067 </tr> 7068 <tr> 7069 <td style="white-space:nowrap"> 7070 <code>resources</code> 7071 <br> 7072 <em> 7073 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#resourcerequirements-v1-core"> 7074 Kubernetes core/v1.ResourceRequirements 7075 </a> 7076 </em> 7077 </td> 7078 <td> 7079 <em>(Optional)</em> 7080 <p>Compute Resources required by envoy container. 7081 Cannot be updated. 7082 More info: <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/">https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/</a></p> 7083 </td> 7084 </tr> 7085 <tr> 7086 <td style="white-space:nowrap"> 7087 <code>logLevel</code> 7088 <br> 7089 <em> 7090 <a href="#projectcontour.io/v1alpha1.LogLevel"> 7091 LogLevel 7092 </a> 7093 </em> 7094 </td> 7095 <td> 7096 <em>(Optional)</em> 7097 <p>LogLevel sets the log level for Envoy. 7098 Allowed values are “trace”, “debug”, “info”, “warn”, “error”, “critical”, “off”.</p> 7099 </td> 7100 </tr> 7101 <tr> 7102 <td style="white-space:nowrap"> 7103 <code>daemonSet</code> 7104 <br> 7105 <em> 7106 <a href="#projectcontour.io/v1alpha1.DaemonSetSettings"> 7107 DaemonSetSettings 7108 </a> 7109 </em> 7110 </td> 7111 <td> 7112 <em>(Optional)</em> 7113 <p>DaemonSet describes the settings for running envoy as a <code>DaemonSet</code>. 7114 if <code>WorkloadType</code> is <code>Deployment</code>,it’s must be nil</p> 7115 </td> 7116 </tr> 7117 <tr> 7118 <td style="white-space:nowrap"> 7119 <code>deployment</code> 7120 <br> 7121 <em> 7122 <a href="#projectcontour.io/v1alpha1.DeploymentSettings"> 7123 DeploymentSettings 7124 </a> 7125 </em> 7126 </td> 7127 <td> 7128 <em>(Optional)</em> 7129 <p>Deployment describes the settings for running envoy as a <code>Deployment</code>. 7130 if <code>WorkloadType</code> is <code>DaemonSet</code>,it’s must be nil</p> 7131 </td> 7132 </tr> 7133 <tr> 7134 <td style="white-space:nowrap"> 7135 <code>baseID</code> 7136 <br> 7137 <em> 7138 int32 7139 </em> 7140 </td> 7141 <td> 7142 <em>(Optional)</em> 7143 <p>The base ID to use when allocating shared memory regions. 7144 if Envoy needs to be run multiple times on the same machine, each running Envoy will need a unique base ID 7145 so that the shared memory regions do not conflict. 7146 defaults to 0.</p> 7147 </td> 7148 </tr> 7149 <tr> 7150 <td style="white-space:nowrap"> 7151 <code>overloadMaxHeapSize</code> 7152 <br> 7153 <em> 7154 uint64 7155 </em> 7156 </td> 7157 <td> 7158 <em>(Optional)</em> 7159 <p>OverloadMaxHeapSize defines the maximum heap memory of the envoy controlled by the overload manager. 7160 When the value is greater than 0, the overload manager is enabled, 7161 and when envoy reaches 95% of the maximum heap size, it performs a shrink heap operation, 7162 When it reaches 98% of the maximum heap size, Envoy Will stop accepting requests. 7163 More info: <a href="https://projectcontour.io/docs/main/config/overload-manager/">https://projectcontour.io/docs/main/config/overload-manager/</a></p> 7164 </td> 7165 </tr> 7166 </tbody> 7167 </table> 7168 <h3 id="projectcontour.io/v1alpha1.EnvoyTLS">EnvoyTLS 7169 </h3> 7170 <p> 7171 (<em>Appears on:</em> 7172 <a href="#projectcontour.io/v1alpha1.EnvoyListenerConfig">EnvoyListenerConfig</a>) 7173 </p> 7174 <p> 7175 <p>EnvoyTLS describes tls parameters for Envoy listneners.</p> 7176 </p> 7177 <table> 7178 <thead> 7179 <tr> 7180 <th>Field</th> 7181 <th>Description</th> 7182 </tr> 7183 </thead> 7184 <tbody> 7185 <tr> 7186 <td style="white-space:nowrap"> 7187 <code>minimumProtocolVersion</code> 7188 <br> 7189 <em> 7190 string 7191 </em> 7192 </td> 7193 <td> 7194 <em>(Optional)</em> 7195 <p>MinimumProtocolVersion is the minimum TLS version this vhost should 7196 negotiate.</p> 7197 <p>Values: <code>1.2</code> (default), <code>1.3</code>.</p> 7198 <p>Other values will produce an error.</p> 7199 </td> 7200 </tr> 7201 <tr> 7202 <td style="white-space:nowrap"> 7203 <code>maximumProtocolVersion</code> 7204 <br> 7205 <em> 7206 string 7207 </em> 7208 </td> 7209 <td> 7210 <em>(Optional)</em> 7211 <p>MaximumProtocolVersion is the maximum TLS version this vhost should 7212 negotiate.</p> 7213 <p>Values: <code>1.2</code>, <code>1.3</code>(default).</p> 7214 <p>Other values will produce an error.</p> 7215 </td> 7216 </tr> 7217 <tr> 7218 <td style="white-space:nowrap"> 7219 <code>cipherSuites</code> 7220 <br> 7221 <em> 7222 []string 7223 </em> 7224 </td> 7225 <td> 7226 <em>(Optional)</em> 7227 <p>CipherSuites defines the TLS ciphers to be supported by Envoy TLS 7228 listeners when negotiating TLS 1.2. Ciphers are validated against the 7229 set that Envoy supports by default. This parameter should only be used 7230 by advanced users. Note that these will be ignored when TLS 1.3 is in 7231 use.</p> 7232 <p>This field is optional; when it is undefined, a Contour-managed ciphersuite list 7233 will be used, which may be updated to keep it secure.</p> 7234 <p>Contour’s default list is: 7235 - “[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]” 7236 - “[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]” 7237 - “ECDHE-ECDSA-AES256-GCM-SHA384” 7238 - “ECDHE-RSA-AES256-GCM-SHA384”</p> 7239 <p>Ciphers provided are validated against the following list: 7240 - “[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]” 7241 - “[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]” 7242 - “ECDHE-ECDSA-AES128-GCM-SHA256” 7243 - “ECDHE-RSA-AES128-GCM-SHA256” 7244 - “ECDHE-ECDSA-AES128-SHA” 7245 - “ECDHE-RSA-AES128-SHA” 7246 - “AES128-GCM-SHA256” 7247 - “AES128-SHA” 7248 - “ECDHE-ECDSA-AES256-GCM-SHA384” 7249 - “ECDHE-RSA-AES256-GCM-SHA384” 7250 - “ECDHE-ECDSA-AES256-SHA” 7251 - “ECDHE-RSA-AES256-SHA” 7252 - “AES256-GCM-SHA384” 7253 - “AES256-SHA”</p> 7254 <p>Contour recommends leaving this undefined unless you are sure you must.</p> 7255 <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> 7256 Note: This list is a superset of what is valid for stock Envoy builds and those using BoringSSL FIPS.</p> 7257 </td> 7258 </tr> 7259 </tbody> 7260 </table> 7261 <h3 id="projectcontour.io/v1alpha1.ExtensionProtocolVersion">ExtensionProtocolVersion 7262 (<code>string</code> alias)</p></h3> 7263 <p> 7264 (<em>Appears on:</em> 7265 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 7266 </p> 7267 <p> 7268 <p>ExtensionProtocolVersion is the version of the GRPC protocol used 7269 to access extension services. The only version currently supported 7270 is “v3”.</p> 7271 </p> 7272 <table> 7273 <thead> 7274 <tr> 7275 <th>Value</th> 7276 <th>Description</th> 7277 </tr> 7278 </thead> 7279 <tbody><tr><td><p>"v2"</p></td> 7280 <td><p>SupportProtocolVersion2 requests the “v2” support protocol version.</p> 7281 <p>Deprecated: this protocol version is no longer supported and the 7282 constant is retained for backwards compatibility only.</p> 7283 </td> 7284 </tr><tr><td><p>"v3"</p></td> 7285 <td><p>SupportProtocolVersion3 requests the “v3” support protocol version.</p> 7286 </td> 7287 </tr></tbody> 7288 </table> 7289 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec 7290 </h3> 7291 <p> 7292 (<em>Appears on:</em> 7293 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a>) 7294 </p> 7295 <p> 7296 <p>ExtensionServiceSpec defines the desired state of an ExtensionService resource.</p> 7297 </p> 7298 <table> 7299 <thead> 7300 <tr> 7301 <th>Field</th> 7302 <th>Description</th> 7303 </tr> 7304 </thead> 7305 <tbody> 7306 <tr> 7307 <td style="white-space:nowrap"> 7308 <code>services</code> 7309 <br> 7310 <em> 7311 <a href="#projectcontour.io/v1alpha1.ExtensionServiceTarget"> 7312 []ExtensionServiceTarget 7313 </a> 7314 </em> 7315 </td> 7316 <td> 7317 <p>Services specifies the set of Kubernetes Service resources that 7318 receive GRPC extension API requests. 7319 If no weights are specified for any of the entries in 7320 this array, traffic will be spread evenly across all the 7321 services. 7322 Otherwise, traffic is balanced proportionally to the 7323 Weight field in each entry.</p> 7324 </td> 7325 </tr> 7326 <tr> 7327 <td style="white-space:nowrap"> 7328 <code>validation</code> 7329 <br> 7330 <em> 7331 <a href="#projectcontour.io/v1.UpstreamValidation"> 7332 UpstreamValidation 7333 </a> 7334 </em> 7335 </td> 7336 <td> 7337 <em>(Optional)</em> 7338 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 7339 </td> 7340 </tr> 7341 <tr> 7342 <td style="white-space:nowrap"> 7343 <code>protocol</code> 7344 <br> 7345 <em> 7346 string 7347 </em> 7348 </td> 7349 <td> 7350 <em>(Optional)</em> 7351 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 7352 Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.</p> 7353 </td> 7354 </tr> 7355 <tr> 7356 <td style="white-space:nowrap"> 7357 <code>loadBalancerPolicy</code> 7358 <br> 7359 <em> 7360 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 7361 LoadBalancerPolicy 7362 </a> 7363 </em> 7364 </td> 7365 <td> 7366 <em>(Optional)</em> 7367 <p>The policy for load balancing GRPC service requests. Note that the 7368 <code>Cookie</code> and <code>RequestHash</code> load balancing strategies cannot be used 7369 here.</p> 7370 </td> 7371 </tr> 7372 <tr> 7373 <td style="white-space:nowrap"> 7374 <code>timeoutPolicy</code> 7375 <br> 7376 <em> 7377 <a href="#projectcontour.io/v1.TimeoutPolicy"> 7378 TimeoutPolicy 7379 </a> 7380 </em> 7381 </td> 7382 <td> 7383 <em>(Optional)</em> 7384 <p>The timeout policy for requests to the services.</p> 7385 </td> 7386 </tr> 7387 <tr> 7388 <td style="white-space:nowrap"> 7389 <code>protocolVersion</code> 7390 <br> 7391 <em> 7392 <a href="#projectcontour.io/v1alpha1.ExtensionProtocolVersion"> 7393 ExtensionProtocolVersion 7394 </a> 7395 </em> 7396 </td> 7397 <td> 7398 <em>(Optional)</em> 7399 <p>This field sets the version of the GRPC protocol that Envoy uses to 7400 send requests to the extension service. Since Contour always uses the 7401 v3 Envoy API, this is currently fixed at “v3”. However, other 7402 protocol options will be available in future.</p> 7403 </td> 7404 </tr> 7405 </tbody> 7406 </table> 7407 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceStatus">ExtensionServiceStatus 7408 </h3> 7409 <p> 7410 (<em>Appears on:</em> 7411 <a href="#projectcontour.io/v1alpha1.ExtensionService">ExtensionService</a>) 7412 </p> 7413 <p> 7414 <p>ExtensionServiceStatus defines the observed state of an 7415 ExtensionService resource.</p> 7416 </p> 7417 <table> 7418 <thead> 7419 <tr> 7420 <th>Field</th> 7421 <th>Description</th> 7422 </tr> 7423 </thead> 7424 <tbody> 7425 <tr> 7426 <td style="white-space:nowrap"> 7427 <code>conditions</code> 7428 <br> 7429 <em> 7430 <a href="#projectcontour.io/v1.DetailedCondition"> 7431 []DetailedCondition 7432 </a> 7433 </em> 7434 </td> 7435 <td> 7436 <em>(Optional)</em> 7437 <p>Conditions contains the current status of the ExtensionService resource.</p> 7438 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity.</p> 7439 <p>Contour will not modify any other Conditions set in this block, 7440 in case some other controller wants to add a Condition.</p> 7441 </td> 7442 </tr> 7443 </tbody> 7444 </table> 7445 <h3 id="projectcontour.io/v1alpha1.ExtensionServiceTarget">ExtensionServiceTarget 7446 </h3> 7447 <p> 7448 (<em>Appears on:</em> 7449 <a href="#projectcontour.io/v1alpha1.ExtensionServiceSpec">ExtensionServiceSpec</a>) 7450 </p> 7451 <p> 7452 <p>ExtensionServiceTarget defines an Kubernetes Service to target with 7453 extension service traffic.</p> 7454 </p> 7455 <table> 7456 <thead> 7457 <tr> 7458 <th>Field</th> 7459 <th>Description</th> 7460 </tr> 7461 </thead> 7462 <tbody> 7463 <tr> 7464 <td style="white-space:nowrap"> 7465 <code>name</code> 7466 <br> 7467 <em> 7468 string 7469 </em> 7470 </td> 7471 <td> 7472 <p>Name is the name of Kubernetes service that will accept service 7473 traffic.</p> 7474 </td> 7475 </tr> 7476 <tr> 7477 <td style="white-space:nowrap"> 7478 <code>port</code> 7479 <br> 7480 <em> 7481 int 7482 </em> 7483 </td> 7484 <td> 7485 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 7486 </td> 7487 </tr> 7488 <tr> 7489 <td style="white-space:nowrap"> 7490 <code>weight</code> 7491 <br> 7492 <em> 7493 uint32 7494 </em> 7495 </td> 7496 <td> 7497 <em>(Optional)</em> 7498 <p>Weight defines proportion of traffic to balance to the Kubernetes Service.</p> 7499 </td> 7500 </tr> 7501 </tbody> 7502 </table> 7503 <h3 id="projectcontour.io/v1alpha1.FeatureFlags">FeatureFlags 7504 (<code>[]string</code> alias)</p></h3> 7505 <p> 7506 (<em>Appears on:</em> 7507 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 7508 </p> 7509 <p> 7510 <p>FeatureFlags defines the set of feature flags 7511 to toggle new contour features.</p> 7512 </p> 7513 <h3 id="projectcontour.io/v1alpha1.GatewayConfig">GatewayConfig 7514 </h3> 7515 <p> 7516 (<em>Appears on:</em> 7517 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 7518 </p> 7519 <p> 7520 <p>GatewayConfig holds the config for Gateway API controllers.</p> 7521 </p> 7522 <table> 7523 <thead> 7524 <tr> 7525 <th>Field</th> 7526 <th>Description</th> 7527 </tr> 7528 </thead> 7529 <tbody> 7530 <tr> 7531 <td style="white-space:nowrap"> 7532 <code>controllerName</code> 7533 <br> 7534 <em> 7535 string 7536 </em> 7537 </td> 7538 <td> 7539 <em>(Optional)</em> 7540 <p>ControllerName is used to determine whether Contour should reconcile a 7541 GatewayClass. The string takes the form of “projectcontour.io/<namespace>/contour”. 7542 If unset, the gatewayclass controller will not be started. 7543 Exactly one of ControllerName or GatewayRef must be set.</p> 7544 </td> 7545 </tr> 7546 <tr> 7547 <td style="white-space:nowrap"> 7548 <code>gatewayRef</code> 7549 <br> 7550 <em> 7551 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 7552 NamespacedName 7553 </a> 7554 </em> 7555 </td> 7556 <td> 7557 <em>(Optional)</em> 7558 <p>GatewayRef defines a specific Gateway that this Contour 7559 instance corresponds to. If set, Contour will reconcile 7560 only this gateway, and will not reconcile any gateway 7561 classes. 7562 Exactly one of ControllerName or GatewayRef must be set.</p> 7563 </td> 7564 </tr> 7565 </tbody> 7566 </table> 7567 <h3 id="projectcontour.io/v1alpha1.HTTPProxyConfig">HTTPProxyConfig 7568 </h3> 7569 <p> 7570 (<em>Appears on:</em> 7571 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 7572 </p> 7573 <p> 7574 <p>HTTPProxyConfig defines parameters on HTTPProxy.</p> 7575 </p> 7576 <table> 7577 <thead> 7578 <tr> 7579 <th>Field</th> 7580 <th>Description</th> 7581 </tr> 7582 </thead> 7583 <tbody> 7584 <tr> 7585 <td style="white-space:nowrap"> 7586 <code>disablePermitInsecure</code> 7587 <br> 7588 <em> 7589 bool 7590 </em> 7591 </td> 7592 <td> 7593 <em>(Optional)</em> 7594 <p>DisablePermitInsecure disables the use of the 7595 permitInsecure field in HTTPProxy.</p> 7596 <p>Contour’s default is false.</p> 7597 </td> 7598 </tr> 7599 <tr> 7600 <td style="white-space:nowrap"> 7601 <code>rootNamespaces</code> 7602 <br> 7603 <em> 7604 []string 7605 </em> 7606 </td> 7607 <td> 7608 <em>(Optional)</em> 7609 <p>Restrict Contour to searching these namespaces for root ingress routes.</p> 7610 </td> 7611 </tr> 7612 <tr> 7613 <td style="white-space:nowrap"> 7614 <code>fallbackCertificate</code> 7615 <br> 7616 <em> 7617 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 7618 NamespacedName 7619 </a> 7620 </em> 7621 </td> 7622 <td> 7623 <em>(Optional)</em> 7624 <p>FallbackCertificate defines the namespace/name of the Kubernetes secret to 7625 use as fallback when a non-SNI request is received.</p> 7626 </td> 7627 </tr> 7628 </tbody> 7629 </table> 7630 <h3 id="projectcontour.io/v1alpha1.HTTPVersionType">HTTPVersionType 7631 (<code>string</code> alias)</p></h3> 7632 <p> 7633 (<em>Appears on:</em> 7634 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 7635 </p> 7636 <p> 7637 <p>HTTPVersionType is the name of a supported HTTP version.</p> 7638 </p> 7639 <table> 7640 <thead> 7641 <tr> 7642 <th>Value</th> 7643 <th>Description</th> 7644 </tr> 7645 </thead> 7646 <tbody><tr><td><p>"HTTP/1.1"</p></td> 7647 <td><p>HTTPVersion1 is the name of the HTTP/1.1 version.</p> 7648 </td> 7649 </tr><tr><td><p>"HTTP/2"</p></td> 7650 <td><p>HTTPVersion2 is the name of the HTTP/2 version.</p> 7651 </td> 7652 </tr></tbody> 7653 </table> 7654 <h3 id="projectcontour.io/v1alpha1.HeadersPolicy">HeadersPolicy 7655 </h3> 7656 <p> 7657 (<em>Appears on:</em> 7658 <a href="#projectcontour.io/v1alpha1.PolicyConfig">PolicyConfig</a>) 7659 </p> 7660 <p> 7661 </p> 7662 <table> 7663 <thead> 7664 <tr> 7665 <th>Field</th> 7666 <th>Description</th> 7667 </tr> 7668 </thead> 7669 <tbody> 7670 <tr> 7671 <td style="white-space:nowrap"> 7672 <code>set</code> 7673 <br> 7674 <em> 7675 map[string]string 7676 </em> 7677 </td> 7678 <td> 7679 <em>(Optional)</em> 7680 </td> 7681 </tr> 7682 <tr> 7683 <td style="white-space:nowrap"> 7684 <code>remove</code> 7685 <br> 7686 <em> 7687 []string 7688 </em> 7689 </td> 7690 <td> 7691 <em>(Optional)</em> 7692 </td> 7693 </tr> 7694 </tbody> 7695 </table> 7696 <h3 id="projectcontour.io/v1alpha1.HealthConfig">HealthConfig 7697 </h3> 7698 <p> 7699 (<em>Appears on:</em> 7700 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>, 7701 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 7702 </p> 7703 <p> 7704 <p>HealthConfig defines the endpoints to enable health checks.</p> 7705 </p> 7706 <table> 7707 <thead> 7708 <tr> 7709 <th>Field</th> 7710 <th>Description</th> 7711 </tr> 7712 </thead> 7713 <tbody> 7714 <tr> 7715 <td style="white-space:nowrap"> 7716 <code>address</code> 7717 <br> 7718 <em> 7719 string 7720 </em> 7721 </td> 7722 <td> 7723 <em>(Optional)</em> 7724 <p>Defines the health address interface.</p> 7725 </td> 7726 </tr> 7727 <tr> 7728 <td style="white-space:nowrap"> 7729 <code>port</code> 7730 <br> 7731 <em> 7732 int 7733 </em> 7734 </td> 7735 <td> 7736 <em>(Optional)</em> 7737 <p>Defines the health port.</p> 7738 </td> 7739 </tr> 7740 </tbody> 7741 </table> 7742 <h3 id="projectcontour.io/v1alpha1.IngressConfig">IngressConfig 7743 </h3> 7744 <p> 7745 (<em>Appears on:</em> 7746 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 7747 </p> 7748 <p> 7749 <p>IngressConfig defines ingress specific config items.</p> 7750 </p> 7751 <table> 7752 <thead> 7753 <tr> 7754 <th>Field</th> 7755 <th>Description</th> 7756 </tr> 7757 </thead> 7758 <tbody> 7759 <tr> 7760 <td style="white-space:nowrap"> 7761 <code>classNames</code> 7762 <br> 7763 <em> 7764 []string 7765 </em> 7766 </td> 7767 <td> 7768 <em>(Optional)</em> 7769 <p>Ingress Class Names Contour should use.</p> 7770 </td> 7771 </tr> 7772 <tr> 7773 <td style="white-space:nowrap"> 7774 <code>statusAddress</code> 7775 <br> 7776 <em> 7777 string 7778 </em> 7779 </td> 7780 <td> 7781 <em>(Optional)</em> 7782 <p>Address to set in Ingress object status.</p> 7783 </td> 7784 </tr> 7785 </tbody> 7786 </table> 7787 <h3 id="projectcontour.io/v1alpha1.LogLevel">LogLevel 7788 (<code>string</code> alias)</p></h3> 7789 <p> 7790 (<em>Appears on:</em> 7791 <a href="#projectcontour.io/v1alpha1.ContourSettings">ContourSettings</a>, 7792 <a href="#projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings</a>) 7793 </p> 7794 <p> 7795 <p>LogLevel is the logging levels available.</p> 7796 </p> 7797 <table> 7798 <thead> 7799 <tr> 7800 <th>Value</th> 7801 <th>Description</th> 7802 </tr> 7803 </thead> 7804 <tbody><tr><td><p>"critical"</p></td> 7805 <td><p>CriticalLog sets the log level for Envoy to <code>critical</code>.</p> 7806 </td> 7807 </tr><tr><td><p>"debug"</p></td> 7808 <td><p>DebugLog sets the log level for Contour/Envoy to <code>debug</code>.</p> 7809 </td> 7810 </tr><tr><td><p>"error"</p></td> 7811 <td><p>ErrorLog sets the log level for Envoy to <code>error</code>.</p> 7812 </td> 7813 </tr><tr><td><p>"info"</p></td> 7814 <td><p>InfoLog sets the log level for Contour/Envoy to <code>info</code>.</p> 7815 </td> 7816 </tr><tr><td><p>"off"</p></td> 7817 <td><p>OffLog disable logging for Envoy.</p> 7818 </td> 7819 </tr><tr><td><p>"trace"</p></td> 7820 <td><p>TraceLog sets the log level for Envoy to <code>trace</code>.</p> 7821 </td> 7822 </tr><tr><td><p>"warn"</p></td> 7823 <td><p>WarnLog sets the log level for Envoy to <code>warn</code>.</p> 7824 </td> 7825 </tr></tbody> 7826 </table> 7827 <h3 id="projectcontour.io/v1alpha1.MetricsConfig">MetricsConfig 7828 </h3> 7829 <p> 7830 (<em>Appears on:</em> 7831 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>, 7832 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 7833 </p> 7834 <p> 7835 <p>MetricsConfig defines the metrics endpoint.</p> 7836 </p> 7837 <table> 7838 <thead> 7839 <tr> 7840 <th>Field</th> 7841 <th>Description</th> 7842 </tr> 7843 </thead> 7844 <tbody> 7845 <tr> 7846 <td style="white-space:nowrap"> 7847 <code>address</code> 7848 <br> 7849 <em> 7850 string 7851 </em> 7852 </td> 7853 <td> 7854 <em>(Optional)</em> 7855 <p>Defines the metrics address interface.</p> 7856 </td> 7857 </tr> 7858 <tr> 7859 <td style="white-space:nowrap"> 7860 <code>port</code> 7861 <br> 7862 <em> 7863 int 7864 </em> 7865 </td> 7866 <td> 7867 <em>(Optional)</em> 7868 <p>Defines the metrics port.</p> 7869 </td> 7870 </tr> 7871 <tr> 7872 <td style="white-space:nowrap"> 7873 <code>tls</code> 7874 <br> 7875 <em> 7876 <a href="#projectcontour.io/v1alpha1.MetricsTLS"> 7877 MetricsTLS 7878 </a> 7879 </em> 7880 </td> 7881 <td> 7882 <em>(Optional)</em> 7883 <p>TLS holds TLS file config details. 7884 Metrics and health endpoints cannot have same port number when metrics is served over HTTPS.</p> 7885 </td> 7886 </tr> 7887 </tbody> 7888 </table> 7889 <h3 id="projectcontour.io/v1alpha1.MetricsTLS">MetricsTLS 7890 </h3> 7891 <p> 7892 (<em>Appears on:</em> 7893 <a href="#projectcontour.io/v1alpha1.MetricsConfig">MetricsConfig</a>) 7894 </p> 7895 <p> 7896 <p>TLS holds TLS file config details.</p> 7897 </p> 7898 <table> 7899 <thead> 7900 <tr> 7901 <th>Field</th> 7902 <th>Description</th> 7903 </tr> 7904 </thead> 7905 <tbody> 7906 <tr> 7907 <td style="white-space:nowrap"> 7908 <code>caFile</code> 7909 <br> 7910 <em> 7911 string 7912 </em> 7913 </td> 7914 <td> 7915 <em>(Optional)</em> 7916 <p>CA filename.</p> 7917 </td> 7918 </tr> 7919 <tr> 7920 <td style="white-space:nowrap"> 7921 <code>certFile</code> 7922 <br> 7923 <em> 7924 string 7925 </em> 7926 </td> 7927 <td> 7928 <em>(Optional)</em> 7929 <p>Client certificate filename.</p> 7930 </td> 7931 </tr> 7932 <tr> 7933 <td style="white-space:nowrap"> 7934 <code>keyFile</code> 7935 <br> 7936 <em> 7937 string 7938 </em> 7939 </td> 7940 <td> 7941 <em>(Optional)</em> 7942 <p>Client key filename.</p> 7943 </td> 7944 </tr> 7945 </tbody> 7946 </table> 7947 <h3 id="projectcontour.io/v1alpha1.NamespacedName">NamespacedName 7948 </h3> 7949 <p> 7950 (<em>Appears on:</em> 7951 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>, 7952 <a href="#projectcontour.io/v1alpha1.GatewayConfig">GatewayConfig</a>, 7953 <a href="#projectcontour.io/v1alpha1.HTTPProxyConfig">HTTPProxyConfig</a>, 7954 <a href="#projectcontour.io/v1alpha1.RateLimitServiceConfig">RateLimitServiceConfig</a>, 7955 <a href="#projectcontour.io/v1alpha1.TracingConfig">TracingConfig</a>) 7956 </p> 7957 <p> 7958 <p>NamespacedName defines the namespace/name of the Kubernetes resource referred from the config file. 7959 Used for Contour config YAML file parsing, otherwise we could use K8s types.NamespacedName.</p> 7960 </p> 7961 <table> 7962 <thead> 7963 <tr> 7964 <th>Field</th> 7965 <th>Description</th> 7966 </tr> 7967 </thead> 7968 <tbody> 7969 <tr> 7970 <td style="white-space:nowrap"> 7971 <code>name</code> 7972 <br> 7973 <em> 7974 string 7975 </em> 7976 </td> 7977 <td> 7978 </td> 7979 </tr> 7980 <tr> 7981 <td style="white-space:nowrap"> 7982 <code>namespace</code> 7983 <br> 7984 <em> 7985 string 7986 </em> 7987 </td> 7988 <td> 7989 </td> 7990 </tr> 7991 </tbody> 7992 </table> 7993 <h3 id="projectcontour.io/v1alpha1.NetworkParameters">NetworkParameters 7994 </h3> 7995 <p> 7996 (<em>Appears on:</em> 7997 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 7998 </p> 7999 <p> 8000 <p>NetworkParameters hold various configurable network values.</p> 8001 </p> 8002 <table> 8003 <thead> 8004 <tr> 8005 <th>Field</th> 8006 <th>Description</th> 8007 </tr> 8008 </thead> 8009 <tbody> 8010 <tr> 8011 <td style="white-space:nowrap"> 8012 <code>numTrustedHops</code> 8013 <br> 8014 <em> 8015 uint32 8016 </em> 8017 </td> 8018 <td> 8019 <em>(Optional)</em> 8020 <p>XffNumTrustedHops defines the number of additional ingress proxy hops from the 8021 right side of the x-forwarded-for HTTP header to trust when determining the origin 8022 client’s IP address.</p> 8023 <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> 8024 for more information.</p> 8025 <p>Contour’s default is 0.</p> 8026 </td> 8027 </tr> 8028 <tr> 8029 <td style="white-space:nowrap"> 8030 <code>adminPort</code> 8031 <br> 8032 <em> 8033 int 8034 </em> 8035 </td> 8036 <td> 8037 <em>(Optional)</em> 8038 <p>Configure the port used to access the Envoy Admin interface. 8039 If configured to port “0” then the admin interface is disabled.</p> 8040 <p>Contour’s default is 9001.</p> 8041 </td> 8042 </tr> 8043 </tbody> 8044 </table> 8045 <h3 id="projectcontour.io/v1alpha1.NetworkPublishing">NetworkPublishing 8046 </h3> 8047 <p> 8048 (<em>Appears on:</em> 8049 <a href="#projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings</a>) 8050 </p> 8051 <p> 8052 <p>NetworkPublishing defines the schema for publishing to a network.</p> 8053 </p> 8054 <table> 8055 <thead> 8056 <tr> 8057 <th>Field</th> 8058 <th>Description</th> 8059 </tr> 8060 </thead> 8061 <tbody> 8062 <tr> 8063 <td style="white-space:nowrap"> 8064 <code>type</code> 8065 <br> 8066 <em> 8067 <a href="#projectcontour.io/v1alpha1.NetworkPublishingType"> 8068 NetworkPublishingType 8069 </a> 8070 </em> 8071 </td> 8072 <td> 8073 <em>(Optional)</em> 8074 <p>NetworkPublishingType is the type of publishing strategy to use. Valid values are:</p> 8075 <ul> 8076 <li>LoadBalancerService</li> 8077 </ul> 8078 <p>In this configuration, network endpoints for Envoy use container networking. 8079 A Kubernetes LoadBalancer Service is created to publish Envoy network 8080 endpoints.</p> 8081 <p>See: <a href="https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer">https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer</a></p> 8082 <ul> 8083 <li>NodePortService</li> 8084 </ul> 8085 <p>Publishes Envoy network endpoints using a Kubernetes NodePort Service.</p> 8086 <p>In this configuration, Envoy network endpoints use container networking. A Kubernetes 8087 NodePort Service is created to publish the network endpoints.</p> 8088 <p>See: <a href="https://kubernetes.io/docs/concepts/services-networking/service/#nodeport">https://kubernetes.io/docs/concepts/services-networking/service/#nodeport</a></p> 8089 <p>NOTE: 8090 When provisioning an Envoy <code>NodePortService</code>, use Gateway Listeners’ port numbers to populate 8091 the Service’s node port values, there’s no way to auto-allocate them.</p> 8092 <p>See: <a href="https://github.com/projectcontour/contour/issues/4499">https://github.com/projectcontour/contour/issues/4499</a></p> 8093 <ul> 8094 <li>ClusterIPService</li> 8095 </ul> 8096 <p>Publishes Envoy network endpoints using a Kubernetes ClusterIP Service.</p> 8097 <p>In this configuration, Envoy network endpoints use container networking. A Kubernetes 8098 ClusterIP Service is created to publish the network endpoints.</p> 8099 <p>See: <a href="https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types">https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types</a></p> 8100 <p>If unset, defaults to LoadBalancerService.</p> 8101 </td> 8102 </tr> 8103 <tr> 8104 <td style="white-space:nowrap"> 8105 <code>externalTrafficPolicy</code> 8106 <br> 8107 <em> 8108 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#serviceexternaltrafficpolicy-v1-core"> 8109 Kubernetes core/v1.ServiceExternalTrafficPolicy 8110 </a> 8111 </em> 8112 </td> 8113 <td> 8114 <em>(Optional)</em> 8115 <p>ExternalTrafficPolicy describes how nodes distribute service traffic they 8116 receive on one of the Service’s “externally-facing” addresses (NodePorts, ExternalIPs, 8117 and LoadBalancer IPs).</p> 8118 <p>If unset, defaults to “Local”.</p> 8119 </td> 8120 </tr> 8121 <tr> 8122 <td style="white-space:nowrap"> 8123 <code>ipFamilyPolicy</code> 8124 <br> 8125 <em> 8126 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#ipfamilypolicy-v1-core"> 8127 Kubernetes core/v1.IPFamilyPolicy 8128 </a> 8129 </em> 8130 </td> 8131 <td> 8132 <em>(Optional)</em> 8133 <p>IPFamilyPolicy represents the dual-stack-ness requested or required by 8134 this Service. If there is no value provided, then this field will be set 8135 to SingleStack. Services can be “SingleStack” (a single IP family), 8136 “PreferDualStack” (two IP families on dual-stack configured clusters or 8137 a single IP family on single-stack clusters), or “RequireDualStack” 8138 (two IP families on dual-stack configured clusters, otherwise fail).</p> 8139 </td> 8140 </tr> 8141 <tr> 8142 <td style="white-space:nowrap"> 8143 <code>serviceAnnotations</code> 8144 <br> 8145 <em> 8146 map[string]string 8147 </em> 8148 </td> 8149 <td> 8150 <em>(Optional)</em> 8151 <p>ServiceAnnotations is the annotations to add to 8152 the provisioned Envoy service.</p> 8153 </td> 8154 </tr> 8155 </tbody> 8156 </table> 8157 <h3 id="projectcontour.io/v1alpha1.NetworkPublishingType">NetworkPublishingType 8158 (<code>string</code> alias)</p></h3> 8159 <p> 8160 (<em>Appears on:</em> 8161 <a href="#projectcontour.io/v1alpha1.NetworkPublishing">NetworkPublishing</a>) 8162 </p> 8163 <p> 8164 <p>NetworkPublishingType is a way to publish network endpoints.</p> 8165 </p> 8166 <table> 8167 <thead> 8168 <tr> 8169 <th>Value</th> 8170 <th>Description</th> 8171 </tr> 8172 </thead> 8173 <tbody><tr><td><p>"ClusterIPService"</p></td> 8174 <td><p>ClusterIPServicePublishingType publishes a network endpoint using a Kubernetes 8175 ClusterIP Service.</p> 8176 </td> 8177 </tr><tr><td><p>"LoadBalancerService"</p></td> 8178 <td><p>LoadBalancerServicePublishingType publishes a network endpoint using a Kubernetes 8179 LoadBalancer Service.</p> 8180 </td> 8181 </tr><tr><td><p>"NodePortService"</p></td> 8182 <td><p>NodePortServicePublishingType publishes a network endpoint using a Kubernetes 8183 NodePort Service.</p> 8184 </td> 8185 </tr></tbody> 8186 </table> 8187 <h3 id="projectcontour.io/v1alpha1.NodePlacement">NodePlacement 8188 </h3> 8189 <p> 8190 (<em>Appears on:</em> 8191 <a href="#projectcontour.io/v1alpha1.ContourSettings">ContourSettings</a>, 8192 <a href="#projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings</a>) 8193 </p> 8194 <p> 8195 <p>NodePlacement describes node scheduling configuration for pods. 8196 If nodeSelector and tolerations are specified, the scheduler will use both to 8197 determine where to place the pod(s).</p> 8198 </p> 8199 <table> 8200 <thead> 8201 <tr> 8202 <th>Field</th> 8203 <th>Description</th> 8204 </tr> 8205 </thead> 8206 <tbody> 8207 <tr> 8208 <td style="white-space:nowrap"> 8209 <code>nodeSelector</code> 8210 <br> 8211 <em> 8212 map[string]string 8213 </em> 8214 </td> 8215 <td> 8216 <em>(Optional)</em> 8217 <p>NodeSelector is the simplest recommended form of node selection constraint 8218 and specifies a map of key-value pairs. For the pod to be eligible 8219 to run on a node, the node must have each of the indicated key-value pairs 8220 as labels (it can have additional labels as well).</p> 8221 <p>If unset, the pod(s) will be scheduled to any available node.</p> 8222 </td> 8223 </tr> 8224 <tr> 8225 <td style="white-space:nowrap"> 8226 <code>tolerations</code> 8227 <br> 8228 <em> 8229 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#toleration-v1-core"> 8230 []Kubernetes core/v1.Toleration 8231 </a> 8232 </em> 8233 </td> 8234 <td> 8235 <em>(Optional)</em> 8236 <p>Tolerations work with taints to ensure that pods are not scheduled 8237 onto inappropriate nodes. One or more taints are applied to a node; this 8238 marks that the node should not accept any pods that do not tolerate the 8239 taints.</p> 8240 <p>The default is an empty list.</p> 8241 <p>See <a href="https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/">https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/</a> 8242 for additional details.</p> 8243 </td> 8244 </tr> 8245 </tbody> 8246 </table> 8247 <h3 id="projectcontour.io/v1alpha1.PolicyConfig">PolicyConfig 8248 </h3> 8249 <p> 8250 (<em>Appears on:</em> 8251 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 8252 </p> 8253 <p> 8254 <p>PolicyConfig holds default policy used if not explicitly set by the user</p> 8255 </p> 8256 <table> 8257 <thead> 8258 <tr> 8259 <th>Field</th> 8260 <th>Description</th> 8261 </tr> 8262 </thead> 8263 <tbody> 8264 <tr> 8265 <td style="white-space:nowrap"> 8266 <code>requestHeaders</code> 8267 <br> 8268 <em> 8269 <a href="#projectcontour.io/v1alpha1.HeadersPolicy"> 8270 HeadersPolicy 8271 </a> 8272 </em> 8273 </td> 8274 <td> 8275 <em>(Optional)</em> 8276 <p>RequestHeadersPolicy defines the request headers set/removed on all routes</p> 8277 </td> 8278 </tr> 8279 <tr> 8280 <td style="white-space:nowrap"> 8281 <code>responseHeaders</code> 8282 <br> 8283 <em> 8284 <a href="#projectcontour.io/v1alpha1.HeadersPolicy"> 8285 HeadersPolicy 8286 </a> 8287 </em> 8288 </td> 8289 <td> 8290 <em>(Optional)</em> 8291 <p>ResponseHeadersPolicy defines the response headers set/removed on all routes</p> 8292 </td> 8293 </tr> 8294 <tr> 8295 <td style="white-space:nowrap"> 8296 <code>applyToIngress</code> 8297 <br> 8298 <em> 8299 bool 8300 </em> 8301 </td> 8302 <td> 8303 <em>(Optional)</em> 8304 <p>ApplyToIngress determines if the Policies will apply to ingress objects</p> 8305 <p>Contour’s default is false.</p> 8306 </td> 8307 </tr> 8308 </tbody> 8309 </table> 8310 <h3 id="projectcontour.io/v1alpha1.RateLimitServiceConfig">RateLimitServiceConfig 8311 </h3> 8312 <p> 8313 (<em>Appears on:</em> 8314 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 8315 </p> 8316 <p> 8317 <p>RateLimitServiceConfig defines properties of a global Rate Limit Service.</p> 8318 </p> 8319 <table> 8320 <thead> 8321 <tr> 8322 <th>Field</th> 8323 <th>Description</th> 8324 </tr> 8325 </thead> 8326 <tbody> 8327 <tr> 8328 <td style="white-space:nowrap"> 8329 <code>extensionService</code> 8330 <br> 8331 <em> 8332 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 8333 NamespacedName 8334 </a> 8335 </em> 8336 </td> 8337 <td> 8338 <p>ExtensionService identifies the extension service defining the RLS.</p> 8339 </td> 8340 </tr> 8341 <tr> 8342 <td style="white-space:nowrap"> 8343 <code>domain</code> 8344 <br> 8345 <em> 8346 string 8347 </em> 8348 </td> 8349 <td> 8350 <em>(Optional)</em> 8351 <p>Domain is passed to the Rate Limit Service.</p> 8352 </td> 8353 </tr> 8354 <tr> 8355 <td style="white-space:nowrap"> 8356 <code>failOpen</code> 8357 <br> 8358 <em> 8359 bool 8360 </em> 8361 </td> 8362 <td> 8363 <em>(Optional)</em> 8364 <p>FailOpen defines whether to allow requests to proceed when the 8365 Rate Limit Service fails to respond with a valid rate limit 8366 decision within the timeout defined on the extension service.</p> 8367 </td> 8368 </tr> 8369 <tr> 8370 <td style="white-space:nowrap"> 8371 <code>enableXRateLimitHeaders</code> 8372 <br> 8373 <em> 8374 bool 8375 </em> 8376 </td> 8377 <td> 8378 <em>(Optional)</em> 8379 <p>EnableXRateLimitHeaders defines whether to include the X-RateLimit 8380 headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset 8381 (as defined by the IETF Internet-Draft linked below), on responses 8382 to clients when the Rate Limit Service is consulted for a request.</p> 8383 <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> 8384 </td> 8385 </tr> 8386 <tr> 8387 <td style="white-space:nowrap"> 8388 <code>enableResourceExhaustedCode</code> 8389 <br> 8390 <em> 8391 bool 8392 </em> 8393 </td> 8394 <td> 8395 <em>(Optional)</em> 8396 <p>EnableResourceExhaustedCode enables translating error code 429 to 8397 grpc code RESOURCE_EXHAUSTED. When disabled it’s translated to UNAVAILABLE</p> 8398 </td> 8399 </tr> 8400 <tr> 8401 <td style="white-space:nowrap"> 8402 <code>defaultGlobalRateLimitPolicy</code> 8403 <br> 8404 <em> 8405 <a href="#projectcontour.io/v1.GlobalRateLimitPolicy"> 8406 GlobalRateLimitPolicy 8407 </a> 8408 </em> 8409 </td> 8410 <td> 8411 <em>(Optional)</em> 8412 <p>DefaultGlobalRateLimitPolicy allows setting a default global rate limit policy for every HTTPProxy. 8413 HTTPProxy can overwrite this configuration.</p> 8414 </td> 8415 </tr> 8416 </tbody> 8417 </table> 8418 <h3 id="projectcontour.io/v1alpha1.ServerHeaderTransformationType">ServerHeaderTransformationType 8419 (<code>string</code> alias)</p></h3> 8420 <p> 8421 (<em>Appears on:</em> 8422 <a href="#projectcontour.io/v1alpha1.EnvoyListenerConfig">EnvoyListenerConfig</a>) 8423 </p> 8424 <p> 8425 <p>ServerHeaderTransformation defines the action to be applied to the Server header on the response path</p> 8426 </p> 8427 <table> 8428 <thead> 8429 <tr> 8430 <th>Value</th> 8431 <th>Description</th> 8432 </tr> 8433 </thead> 8434 <tbody><tr><td><p>"append_if_absent"</p></td> 8435 <td><p>If no Server header is present, set it to “envoy”. 8436 If a Server header is present, pass it through.</p> 8437 </td> 8438 </tr><tr><td><p>"overwrite"</p></td> 8439 <td><p>Overwrite any Server header with “envoy”. 8440 This is the default value.</p> 8441 </td> 8442 </tr><tr><td><p>"pass_through"</p></td> 8443 <td><p>Pass through the value of the Server header, and do not append a header 8444 if none is present.</p> 8445 </td> 8446 </tr></tbody> 8447 </table> 8448 <h3 id="projectcontour.io/v1alpha1.SocketOptions">SocketOptions 8449 </h3> 8450 <p> 8451 (<em>Appears on:</em> 8452 <a href="#projectcontour.io/v1alpha1.EnvoyListenerConfig">EnvoyListenerConfig</a>) 8453 </p> 8454 <p> 8455 <p>SocketOptions defines configurable socket options for Envoy listeners.</p> 8456 </p> 8457 <table> 8458 <thead> 8459 <tr> 8460 <th>Field</th> 8461 <th>Description</th> 8462 </tr> 8463 </thead> 8464 <tbody> 8465 <tr> 8466 <td style="white-space:nowrap"> 8467 <code>tos</code> 8468 <br> 8469 <em> 8470 int32 8471 </em> 8472 </td> 8473 <td> 8474 <em>(Optional)</em> 8475 <p>Defines the value for IPv4 TOS field (including 6 bit DSCP field) for IP packets originating from Envoy listeners. 8476 Single value is applied to all listeners. 8477 If listeners are bound to IPv6-only addresses, setting this option will cause an error.</p> 8478 </td> 8479 </tr> 8480 <tr> 8481 <td style="white-space:nowrap"> 8482 <code>trafficClass</code> 8483 <br> 8484 <em> 8485 int32 8486 </em> 8487 </td> 8488 <td> 8489 <em>(Optional)</em> 8490 <p>Defines the value for IPv6 Traffic Class field (including 6 bit DSCP field) for IP packets originating from the Envoy listeners. 8491 Single value is applied to all listeners. 8492 If listeners are bound to IPv4-only addresses, setting this option will cause an error.</p> 8493 </td> 8494 </tr> 8495 </tbody> 8496 </table> 8497 <h3 id="projectcontour.io/v1alpha1.TLS">TLS 8498 </h3> 8499 <p> 8500 (<em>Appears on:</em> 8501 <a href="#projectcontour.io/v1alpha1.XDSServerConfig">XDSServerConfig</a>) 8502 </p> 8503 <p> 8504 <p>TLS holds TLS file config details.</p> 8505 </p> 8506 <table> 8507 <thead> 8508 <tr> 8509 <th>Field</th> 8510 <th>Description</th> 8511 </tr> 8512 </thead> 8513 <tbody> 8514 <tr> 8515 <td style="white-space:nowrap"> 8516 <code>caFile</code> 8517 <br> 8518 <em> 8519 string 8520 </em> 8521 </td> 8522 <td> 8523 <em>(Optional)</em> 8524 <p>CA filename.</p> 8525 </td> 8526 </tr> 8527 <tr> 8528 <td style="white-space:nowrap"> 8529 <code>certFile</code> 8530 <br> 8531 <em> 8532 string 8533 </em> 8534 </td> 8535 <td> 8536 <em>(Optional)</em> 8537 <p>Client certificate filename.</p> 8538 </td> 8539 </tr> 8540 <tr> 8541 <td style="white-space:nowrap"> 8542 <code>keyFile</code> 8543 <br> 8544 <em> 8545 string 8546 </em> 8547 </td> 8548 <td> 8549 <em>(Optional)</em> 8550 <p>Client key filename.</p> 8551 </td> 8552 </tr> 8553 <tr> 8554 <td style="white-space:nowrap"> 8555 <code>insecure</code> 8556 <br> 8557 <em> 8558 bool 8559 </em> 8560 </td> 8561 <td> 8562 <em>(Optional)</em> 8563 <p>Allow serving the xDS gRPC API without TLS.</p> 8564 </td> 8565 </tr> 8566 </tbody> 8567 </table> 8568 <h3 id="projectcontour.io/v1alpha1.TimeoutParameters">TimeoutParameters 8569 </h3> 8570 <p> 8571 (<em>Appears on:</em> 8572 <a href="#projectcontour.io/v1alpha1.EnvoyConfig">EnvoyConfig</a>) 8573 </p> 8574 <p> 8575 <p>TimeoutParameters holds various configurable proxy timeout values.</p> 8576 </p> 8577 <table> 8578 <thead> 8579 <tr> 8580 <th>Field</th> 8581 <th>Description</th> 8582 </tr> 8583 </thead> 8584 <tbody> 8585 <tr> 8586 <td style="white-space:nowrap"> 8587 <code>requestTimeout</code> 8588 <br> 8589 <em> 8590 string 8591 </em> 8592 </td> 8593 <td> 8594 <em>(Optional)</em> 8595 <p>RequestTimeout sets the client request timeout globally for Contour. Note that 8596 this is a timeout for the entire request, not an idle timeout. Omit or set to 8597 “infinity” to disable the timeout entirely.</p> 8598 <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> 8599 for more information.</p> 8600 </td> 8601 </tr> 8602 <tr> 8603 <td style="white-space:nowrap"> 8604 <code>connectionIdleTimeout</code> 8605 <br> 8606 <em> 8607 string 8608 </em> 8609 </td> 8610 <td> 8611 <em>(Optional)</em> 8612 <p>ConnectionIdleTimeout defines how long the proxy should wait while there are 8613 no active requests (for HTTP/1.1) or streams (for HTTP/2) before terminating 8614 an HTTP connection. Set to “infinity” to disable the timeout entirely.</p> 8615 <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> 8616 for more information.</p> 8617 </td> 8618 </tr> 8619 <tr> 8620 <td style="white-space:nowrap"> 8621 <code>streamIdleTimeout</code> 8622 <br> 8623 <em> 8624 string 8625 </em> 8626 </td> 8627 <td> 8628 <em>(Optional)</em> 8629 <p>StreamIdleTimeout defines how long the proxy should wait while there is no 8630 request activity (for HTTP/1.1) or stream activity (for HTTP/2) before 8631 terminating the HTTP request or stream. Set to “infinity” to disable the 8632 timeout entirely.</p> 8633 <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> 8634 for more information.</p> 8635 </td> 8636 </tr> 8637 <tr> 8638 <td style="white-space:nowrap"> 8639 <code>maxConnectionDuration</code> 8640 <br> 8641 <em> 8642 string 8643 </em> 8644 </td> 8645 <td> 8646 <em>(Optional)</em> 8647 <p>MaxConnectionDuration defines the maximum period of time after an HTTP connection 8648 has been established from the client to the proxy before it is closed by the proxy, 8649 regardless of whether there has been activity or not. Omit or set to “infinity” for 8650 no max duration.</p> 8651 <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> 8652 for more information.</p> 8653 </td> 8654 </tr> 8655 <tr> 8656 <td style="white-space:nowrap"> 8657 <code>delayedCloseTimeout</code> 8658 <br> 8659 <em> 8660 string 8661 </em> 8662 </td> 8663 <td> 8664 <em>(Optional)</em> 8665 <p>DelayedCloseTimeout defines how long envoy will wait, once connection 8666 close processing has been initiated, for the downstream peer to close 8667 the connection before Envoy closes the socket associated with the connection.</p> 8668 <p>Setting this timeout to ‘infinity’ will disable it, equivalent to setting it to ‘0’ 8669 in Envoy. Leaving it unset will result in the Envoy default value being used.</p> 8670 <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> 8671 for more information.</p> 8672 </td> 8673 </tr> 8674 <tr> 8675 <td style="white-space:nowrap"> 8676 <code>connectionShutdownGracePeriod</code> 8677 <br> 8678 <em> 8679 string 8680 </em> 8681 </td> 8682 <td> 8683 <em>(Optional)</em> 8684 <p>ConnectionShutdownGracePeriod defines how long the proxy will wait between sending an 8685 initial GOAWAY frame and a second, final GOAWAY frame when terminating an HTTP/2 connection. 8686 During this grace period, the proxy will continue to respond to new streams. After the final 8687 GOAWAY frame has been sent, the proxy will refuse new streams.</p> 8688 <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> 8689 for more information.</p> 8690 </td> 8691 </tr> 8692 <tr> 8693 <td style="white-space:nowrap"> 8694 <code>connectTimeout</code> 8695 <br> 8696 <em> 8697 string 8698 </em> 8699 </td> 8700 <td> 8701 <em>(Optional)</em> 8702 <p>ConnectTimeout defines how long the proxy should wait when establishing connection to upstream service. 8703 If not set, a default value of 2 seconds will be used.</p> 8704 <p>See <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-connect-timeout">https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-connect-timeout</a> 8705 for more information.</p> 8706 </td> 8707 </tr> 8708 </tbody> 8709 </table> 8710 <h3 id="projectcontour.io/v1alpha1.TracingConfig">TracingConfig 8711 </h3> 8712 <p> 8713 (<em>Appears on:</em> 8714 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 8715 </p> 8716 <p> 8717 <p>TracingConfig defines properties for exporting trace data to OpenTelemetry.</p> 8718 </p> 8719 <table> 8720 <thead> 8721 <tr> 8722 <th>Field</th> 8723 <th>Description</th> 8724 </tr> 8725 </thead> 8726 <tbody> 8727 <tr> 8728 <td style="white-space:nowrap"> 8729 <code>includePodDetail</code> 8730 <br> 8731 <em> 8732 bool 8733 </em> 8734 </td> 8735 <td> 8736 <em>(Optional)</em> 8737 <p>IncludePodDetail defines a flag. 8738 If it is true, contour will add the pod name and namespace to the span of the trace. 8739 the default is true. 8740 Note: The Envoy pods MUST have the HOSTNAME and CONTOUR_NAMESPACE environment variables set for this to work properly.</p> 8741 </td> 8742 </tr> 8743 <tr> 8744 <td style="white-space:nowrap"> 8745 <code>serviceName</code> 8746 <br> 8747 <em> 8748 string 8749 </em> 8750 </td> 8751 <td> 8752 <p>ServiceName defines the name for the service. 8753 contour’s default is contour.</p> 8754 </td> 8755 </tr> 8756 <tr> 8757 <td style="white-space:nowrap"> 8758 <code>overallSampling</code> 8759 <br> 8760 <em> 8761 string 8762 </em> 8763 </td> 8764 <td> 8765 <em>(Optional)</em> 8766 <p>OverallSampling defines the sampling rate of trace data. 8767 contour’s default is 100.</p> 8768 </td> 8769 </tr> 8770 <tr> 8771 <td style="white-space:nowrap"> 8772 <code>maxPathTagLength</code> 8773 <br> 8774 <em> 8775 uint32 8776 </em> 8777 </td> 8778 <td> 8779 <em>(Optional)</em> 8780 <p>MaxPathTagLength defines maximum length of the request path 8781 to extract and include in the HttpUrl tag. 8782 contour’s default is 256.</p> 8783 </td> 8784 </tr> 8785 <tr> 8786 <td style="white-space:nowrap"> 8787 <code>customTags</code> 8788 <br> 8789 <em> 8790 <a href="#projectcontour.io/v1alpha1.*github.com/projectcontour/contour/apis/projectcontour/v1alpha1.CustomTag"> 8791 []*github.com/projectcontour/contour/apis/projectcontour/v1alpha1.CustomTag 8792 </a> 8793 </em> 8794 </td> 8795 <td> 8796 <em>(Optional)</em> 8797 <p>CustomTags defines a list of custom tags with unique tag name.</p> 8798 </td> 8799 </tr> 8800 <tr> 8801 <td style="white-space:nowrap"> 8802 <code>extensionService</code> 8803 <br> 8804 <em> 8805 <a href="#projectcontour.io/v1alpha1.NamespacedName"> 8806 NamespacedName 8807 </a> 8808 </em> 8809 </td> 8810 <td> 8811 <p>ExtensionService identifies the extension service defining the otel-collector.</p> 8812 </td> 8813 </tr> 8814 </tbody> 8815 </table> 8816 <h3 id="projectcontour.io/v1alpha1.WorkloadType">WorkloadType 8817 (<code>string</code> alias)</p></h3> 8818 <p> 8819 (<em>Appears on:</em> 8820 <a href="#projectcontour.io/v1alpha1.EnvoySettings">EnvoySettings</a>) 8821 </p> 8822 <p> 8823 <p>WorkloadType is the type of Kubernetes workload to use for a component.</p> 8824 </p> 8825 <h3 id="projectcontour.io/v1alpha1.XDSServerConfig">XDSServerConfig 8826 </h3> 8827 <p> 8828 (<em>Appears on:</em> 8829 <a href="#projectcontour.io/v1alpha1.ContourConfigurationSpec">ContourConfigurationSpec</a>) 8830 </p> 8831 <p> 8832 <p>XDSServerConfig holds the config for the Contour xDS server.</p> 8833 </p> 8834 <table> 8835 <thead> 8836 <tr> 8837 <th>Field</th> 8838 <th>Description</th> 8839 </tr> 8840 </thead> 8841 <tbody> 8842 <tr> 8843 <td style="white-space:nowrap"> 8844 <code>type</code> 8845 <br> 8846 <em> 8847 <a href="#projectcontour.io/v1alpha1.XDSServerType"> 8848 XDSServerType 8849 </a> 8850 </em> 8851 </td> 8852 <td> 8853 <em>(Optional)</em> 8854 <p>Defines the XDSServer to use for <code>contour serve</code>.</p> 8855 <p>Values: <code>contour</code> (default), <code>envoy</code>.</p> 8856 <p>Other values will produce an error.</p> 8857 </td> 8858 </tr> 8859 <tr> 8860 <td style="white-space:nowrap"> 8861 <code>address</code> 8862 <br> 8863 <em> 8864 string 8865 </em> 8866 </td> 8867 <td> 8868 <em>(Optional)</em> 8869 <p>Defines the xDS gRPC API address which Contour will serve.</p> 8870 <p>Contour’s default is “0.0.0.0”.</p> 8871 </td> 8872 </tr> 8873 <tr> 8874 <td style="white-space:nowrap"> 8875 <code>port</code> 8876 <br> 8877 <em> 8878 int 8879 </em> 8880 </td> 8881 <td> 8882 <em>(Optional)</em> 8883 <p>Defines the xDS gRPC API port which Contour will serve.</p> 8884 <p>Contour’s default is 8001.</p> 8885 </td> 8886 </tr> 8887 <tr> 8888 <td style="white-space:nowrap"> 8889 <code>tls</code> 8890 <br> 8891 <em> 8892 <a href="#projectcontour.io/v1alpha1.TLS"> 8893 TLS 8894 </a> 8895 </em> 8896 </td> 8897 <td> 8898 <em>(Optional)</em> 8899 <p>TLS holds TLS file config details.</p> 8900 <p>Contour’s default is { caFile: “/certs/ca.crt”, certFile: “/certs/tls.cert”, keyFile: “/certs/tls.key”, insecure: false }.</p> 8901 </td> 8902 </tr> 8903 </tbody> 8904 </table> 8905 <h3 id="projectcontour.io/v1alpha1.XDSServerType">XDSServerType 8906 (<code>string</code> alias)</p></h3> 8907 <p> 8908 (<em>Appears on:</em> 8909 <a href="#projectcontour.io/v1alpha1.XDSServerConfig">XDSServerConfig</a>) 8910 </p> 8911 <p> 8912 <p>XDSServerType is the type of xDS server implementation.</p> 8913 </p> 8914 <table> 8915 <thead> 8916 <tr> 8917 <th>Value</th> 8918 <th>Description</th> 8919 </tr> 8920 </thead> 8921 <tbody><tr><td><p>"contour"</p></td> 8922 <td><p>Use Contour’s xDS server.</p> 8923 </td> 8924 </tr><tr><td><p>"envoy"</p></td> 8925 <td><p>Use the upstream <code>go-control-plane</code>-based xDS server.</p> 8926 </td> 8927 </tr></tbody> 8928 </table> 8929 <hr/> 8930 <p><em> 8931 Generated with <code>gen-crd-api-reference-docs</code>. 8932 </em></p>