github.com/projectcontour/contour@v1.28.2/site/content/docs/v1.8.0/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 </ul> 7 <h2 id="projectcontour.io/v1">projectcontour.io/v1</h2> 8 <p> 9 <p>This package holds the specification for the projectcontour.io Custom Resource Definitions (CRDs).</p> 10 <p>In building this CRD, we’ve inadvertently overloaded the word “Condition”, so we’ve tried to make 11 this spec clear as to which types of condition are which.</p> 12 <p><code>MatchConditions</code> are used by <code>Routes</code> and <code>Includes</code> to specify rules to match requests against for either 13 routing or inclusion.</p> 14 <p><code>DetailedConditions</code> are used in the <code>Status</code> of these objects to hold information about the relevant 15 state of the object and the world around it.</p> 16 <p><code>SubConditions</code> are used underneath <code>DetailedConditions</code> to give more detail to errors or warnings.</p> 17 </p> 18 Resource Types: 19 <ul><li> 20 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a> 21 </li><li> 22 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a> 23 </li></ul> 24 <h3 id="projectcontour.io/v1.HTTPProxy">HTTPProxy 25 </h3> 26 <p> 27 <p>HTTPProxy is an Ingress CRD specification.</p> 28 </p> 29 <table class="table table-striped table-borderless" style="border:none"> 30 <thead class="border-bottom"> 31 <tr> 32 <th>Field</th> 33 <th>Description</th> 34 </tr> 35 </thead> 36 <tbody class="border-top"> 37 <tr> 38 <td> 39 <code>apiVersion</code> 40 <br> 41 string</td> 42 <td> 43 <code> 44 projectcontour.io/v1 45 </code> 46 </td> 47 </tr> 48 <tr> 49 <td> 50 <code>kind</code> 51 <br> 52 string 53 </td> 54 <td><code>HTTPProxy</code></td> 55 </tr> 56 <tr> 57 <td style="white-space:nowrap"> 58 <code>metadata</code> 59 <br> 60 <em> 61 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 62 Kubernetes meta/v1.ObjectMeta 63 </a> 64 </em> 65 </td> 66 <td> 67 Refer to the Kubernetes API documentation for the fields of the 68 <code>metadata</code> field. 69 </td> 70 </tr> 71 <tr> 72 <td style="white-space:nowrap"> 73 <code>spec</code> 74 <br> 75 <em> 76 <a href="#projectcontour.io/v1.HTTPProxySpec"> 77 HTTPProxySpec 78 </a> 79 </em> 80 </td> 81 <td> 82 <br> 83 <br> 84 <table style="border:none"> 85 <tr> 86 <td style="white-space:nowrap"> 87 <code>virtualhost</code> 88 <br> 89 <em> 90 <a href="#projectcontour.io/v1.VirtualHost"> 91 VirtualHost 92 </a> 93 </em> 94 </td> 95 <td> 96 <em>(Optional)</em> 97 <p>Virtualhost appears at most once. If it is present, the object is considered 98 to be a “root” HTTPProxy.</p> 99 </td> 100 </tr> 101 <tr> 102 <td style="white-space:nowrap"> 103 <code>routes</code> 104 <br> 105 <em> 106 <a href="#projectcontour.io/v1.Route"> 107 []Route 108 </a> 109 </em> 110 </td> 111 <td> 112 <em>(Optional)</em> 113 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 114 </td> 115 </tr> 116 <tr> 117 <td style="white-space:nowrap"> 118 <code>tcpproxy</code> 119 <br> 120 <em> 121 <a href="#projectcontour.io/v1.TCPProxy"> 122 TCPProxy 123 </a> 124 </em> 125 </td> 126 <td> 127 <em>(Optional)</em> 128 <p>TCPProxy holds TCP proxy information.</p> 129 </td> 130 </tr> 131 <tr> 132 <td style="white-space:nowrap"> 133 <code>includes</code> 134 <br> 135 <em> 136 <a href="#projectcontour.io/v1.Include"> 137 []Include 138 </a> 139 </em> 140 </td> 141 <td> 142 <em>(Optional)</em> 143 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 144 possibly in another namespace.</p> 145 </td> 146 </tr> 147 </table> 148 </td> 149 </tr> 150 <tr> 151 <td style="white-space:nowrap"> 152 <code>status</code> 153 <br> 154 <em> 155 <a href="#projectcontour.io/v1.HTTPProxyStatus"> 156 HTTPProxyStatus 157 </a> 158 </em> 159 </td> 160 <td> 161 <em>(Optional)</em> 162 <p>Status is a container for computed information about the HTTPProxy.</p> 163 </td> 164 </tr> 165 </tbody> 166 </table> 167 <h3 id="projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation 168 </h3> 169 <p> 170 <p>TLSCertificateDelegation is an TLS Certificate Delegation CRD specification. 171 See design/tls-certificate-delegation.md for details.</p> 172 </p> 173 <table class="table table-striped table-borderless" style="border:none"> 174 <thead class="border-bottom"> 175 <tr> 176 <th>Field</th> 177 <th>Description</th> 178 </tr> 179 </thead> 180 <tbody class="border-top"> 181 <tr> 182 <td> 183 <code>apiVersion</code> 184 <br> 185 string</td> 186 <td> 187 <code> 188 projectcontour.io/v1 189 </code> 190 </td> 191 </tr> 192 <tr> 193 <td> 194 <code>kind</code> 195 <br> 196 string 197 </td> 198 <td><code>TLSCertificateDelegation</code></td> 199 </tr> 200 <tr> 201 <td style="white-space:nowrap"> 202 <code>metadata</code> 203 <br> 204 <em> 205 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta"> 206 Kubernetes meta/v1.ObjectMeta 207 </a> 208 </em> 209 </td> 210 <td> 211 Refer to the Kubernetes API documentation for the fields of the 212 <code>metadata</code> field. 213 </td> 214 </tr> 215 <tr> 216 <td style="white-space:nowrap"> 217 <code>spec</code> 218 <br> 219 <em> 220 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec"> 221 TLSCertificateDelegationSpec 222 </a> 223 </em> 224 </td> 225 <td> 226 <br> 227 <br> 228 <table style="border:none"> 229 <tr> 230 <td style="white-space:nowrap"> 231 <code>delegations</code> 232 <br> 233 <em> 234 <a href="#projectcontour.io/v1.CertificateDelegation"> 235 []CertificateDelegation 236 </a> 237 </em> 238 </td> 239 <td> 240 </td> 241 </tr> 242 </table> 243 </td> 244 </tr> 245 <tr> 246 <td style="white-space:nowrap"> 247 <code>status</code> 248 <br> 249 <em> 250 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus"> 251 TLSCertificateDelegationStatus 252 </a> 253 </em> 254 </td> 255 <td> 256 <em>(Optional)</em> 257 </td> 258 </tr> 259 </tbody> 260 </table> 261 <h3 id="projectcontour.io/v1.CertificateDelegation">CertificateDelegation 262 </h3> 263 <p> 264 (<em>Appears on:</em> 265 <a href="#projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec</a>) 266 </p> 267 <p> 268 <p>CertificateDelegation maps the authority to reference a secret 269 in the current namespace to a set of namespaces.</p> 270 </p> 271 <table class="table table-striped table-borderless" style="border:none"> 272 <thead class="border-bottom"> 273 <tr> 274 <th>Field</th> 275 <th>Description</th> 276 </tr> 277 </thead> 278 <tbody class="border-top"> 279 <tr> 280 <td style="white-space:nowrap"> 281 <code>secretName</code> 282 <br> 283 <em> 284 string 285 </em> 286 </td> 287 <td> 288 <p>required, the name of a secret in the current namespace.</p> 289 </td> 290 </tr> 291 <tr> 292 <td style="white-space:nowrap"> 293 <code>targetNamespaces</code> 294 <br> 295 <em> 296 []string 297 </em> 298 </td> 299 <td> 300 <p>required, the namespaces the authority to reference the 301 the secret will be delegated to. 302 If TargetNamespaces is nil or empty, the CertificateDelegation’ 303 is ignored. If the TargetNamespace list contains the character, “*” 304 the secret will be delegated to all namespaces.</p> 305 </td> 306 </tr> 307 </tbody> 308 </table> 309 <h3 id="projectcontour.io/v1.Condition">Condition 310 </h3> 311 <p> 312 (<em>Appears on:</em> 313 <a href="#projectcontour.io/v1.DetailedCondition">DetailedCondition</a>) 314 </p> 315 <p> 316 <p>Condition contains details for one aspect of the current state of this API Resource.</p> 317 <p>This struct is intended for direct use as an array at the field path .status.conditions. For example,</p> 318 <pre><code class="language-go">type FooStatus struct{ 319 // Represents the observations of a foo's current state. 320 // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" 321 // +patchMergeKey=type 322 // +patchStrategy=merge 323 // +listType=map 324 // +listMapKey=type 325 Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` 326 // other fields 327 } 328 </code></pre> 329 </p> 330 <table class="table table-striped table-borderless" style="border:none"> 331 <thead class="border-bottom"> 332 <tr> 333 <th>Field</th> 334 <th>Description</th> 335 </tr> 336 </thead> 337 <tbody class="border-top"> 338 <tr> 339 <td style="white-space:nowrap"> 340 <code>type</code> 341 <br> 342 <em> 343 string 344 </em> 345 </td> 346 <td> 347 <p>Type of condition in CamelCase or in foo.example.com/CamelCase.</p> 348 <p>Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be 349 useful (see .node.status.conditions), the ability to deconflict is important.</p> 350 <p>The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)</p> 351 </td> 352 </tr> 353 <tr> 354 <td style="white-space:nowrap"> 355 <code>status</code> 356 <br> 357 <em> 358 <a href="#projectcontour.io/v1.ConditionStatus"> 359 ConditionStatus 360 </a> 361 </em> 362 </td> 363 <td> 364 <p>status of the condition, one of True, False, Unknown.</p> 365 </td> 366 </tr> 367 <tr> 368 <td style="white-space:nowrap"> 369 <code>observedGeneration</code> 370 <br> 371 <em> 372 int64 373 </em> 374 </td> 375 <td> 376 <em>(Optional)</em> 377 <p>observedGeneration represents the .metadata.generation that the condition was set based upon.</p> 378 <p>For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 379 with respect to the current state of the instance.</p> 380 </td> 381 </tr> 382 <tr> 383 <td style="white-space:nowrap"> 384 <code>lastTransitionTime</code> 385 <br> 386 <em> 387 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#time-v1-meta"> 388 Kubernetes meta/v1.Time 389 </a> 390 </em> 391 </td> 392 <td> 393 <p>lastTransitionTime is the last time the condition transitioned from one status to another.</p> 394 <p>This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.</p> 395 </td> 396 </tr> 397 <tr> 398 <td style="white-space:nowrap"> 399 <code>reason</code> 400 <br> 401 <em> 402 string 403 </em> 404 </td> 405 <td> 406 <p>Reason contains a programmatic identifier indicating the reason for the condition’s last transition.</p> 407 <p>Producers of specific condition types may define expected values and meanings for this field, 408 and whether the values are considered a guaranteed API.</p> 409 <p>The value should be a CamelCase string.</p> 410 <p>This field may not be empty.</p> 411 </td> 412 </tr> 413 <tr> 414 <td style="white-space:nowrap"> 415 <code>message</code> 416 <br> 417 <em> 418 string 419 </em> 420 </td> 421 <td> 422 <p>message is a human readable message indicating details about the transition.</p> 423 <p>This may be an empty string.</p> 424 </td> 425 </tr> 426 </tbody> 427 </table> 428 <h3 id="projectcontour.io/v1.ConditionStatus">ConditionStatus 429 (<code>string</code> alias)</h3> 430 <p> 431 (<em>Appears on:</em> 432 <a href="#projectcontour.io/v1.Condition">Condition</a>, 433 <a href="#projectcontour.io/v1.SubCondition">SubCondition</a>) 434 </p> 435 <p> 436 </p> 437 <h3 id="projectcontour.io/v1.DetailedCondition">DetailedCondition 438 </h3> 439 <p> 440 (<em>Appears on:</em> 441 <a href="#projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus</a>, 442 <a href="#projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus</a>) 443 </p> 444 <p> 445 <p>DetailedCondition is an extension of the normal Kubernetes conditions, with two extra 446 fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) 447 of the condition.</p> 448 <p><code>errors</code> holds information about sub-conditions which are fatal to that condition and render its state False.</p> 449 <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> 450 <p>Remember that Conditions have a type, a status, and a reason.</p> 451 <p>The type is the type of the condition, the most important one in this CRD set is <code>Valid</code>.</p> 452 <p>In the case of <code>Valid</code>, <code>status: true</code> means that the object is has been ingested into Contour with no errors. 453 <code>warnings</code> may still be present, and will be indicated in the Reason field.</p> 454 <p><code>Valid</code>, <code>status: false</code> means that the object has had one or more fatal errors during processing into Contour. 455 The details of the errors will be present under the <code>errors</code> field.</p> 456 <p>There should never be subconditions under <code>errors</code> when <code>status</code> is <code>true</code>.</p> 457 </p> 458 <table class="table table-striped table-borderless" style="border:none"> 459 <thead class="border-bottom"> 460 <tr> 461 <th>Field</th> 462 <th>Description</th> 463 </tr> 464 </thead> 465 <tbody class="border-top"> 466 <tr> 467 <td style="white-space:nowrap"> 468 <code>Condition</code> 469 <br> 470 <em> 471 <a href="#projectcontour.io/v1.Condition"> 472 Condition 473 </a> 474 </em> 475 </td> 476 <td> 477 <p> 478 (Members of <code>Condition</code> are embedded into this type.) 479 </p> 480 </td> 481 </tr> 482 <tr> 483 <td style="white-space:nowrap"> 484 <code>errors</code> 485 <br> 486 <em> 487 <a href="#projectcontour.io/v1.SubCondition"> 488 []SubCondition 489 </a> 490 </em> 491 </td> 492 <td> 493 <em>(Optional)</em> 494 <p>Errors contains a slice of relevant error subconditions for this object.</p> 495 <p>Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. 496 An empty slice here indicates no errors.</p> 497 </td> 498 </tr> 499 <tr> 500 <td style="white-space:nowrap"> 501 <code>warnings</code> 502 <br> 503 <em> 504 <a href="#projectcontour.io/v1.SubCondition"> 505 []SubCondition 506 </a> 507 </em> 508 </td> 509 <td> 510 <em>(Optional)</em> 511 <p>Warnings contains a slice of relevant warning subconditions for this object.</p> 512 <p>Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. 513 An empty slice here indicates no warnings.</p> 514 </td> 515 </tr> 516 </tbody> 517 </table> 518 <h3 id="projectcontour.io/v1.DownstreamValidation">DownstreamValidation 519 </h3> 520 <p> 521 (<em>Appears on:</em> 522 <a href="#projectcontour.io/v1.TLS">TLS</a>) 523 </p> 524 <p> 525 <p>DownstreamValidation defines how to verify the client certificate.</p> 526 </p> 527 <table class="table table-striped table-borderless" style="border:none"> 528 <thead class="border-bottom"> 529 <tr> 530 <th>Field</th> 531 <th>Description</th> 532 </tr> 533 </thead> 534 <tbody class="border-top"> 535 <tr> 536 <td style="white-space:nowrap"> 537 <code>caSecret</code> 538 <br> 539 <em> 540 string 541 </em> 542 </td> 543 <td> 544 <p>Name of a Kubernetes secret that contains a CA certificate bundle. 545 The client certificate must validate against the certificates in the bundle.</p> 546 </td> 547 </tr> 548 </tbody> 549 </table> 550 <h3 id="projectcontour.io/v1.HTTPHealthCheckPolicy">HTTPHealthCheckPolicy 551 </h3> 552 <p> 553 (<em>Appears on:</em> 554 <a href="#projectcontour.io/v1.Route">Route</a>) 555 </p> 556 <p> 557 <p>HTTPHealthCheckPolicy defines health checks on the upstream service.</p> 558 </p> 559 <table class="table table-striped table-borderless" style="border:none"> 560 <thead class="border-bottom"> 561 <tr> 562 <th>Field</th> 563 <th>Description</th> 564 </tr> 565 </thead> 566 <tbody class="border-top"> 567 <tr> 568 <td style="white-space:nowrap"> 569 <code>path</code> 570 <br> 571 <em> 572 string 573 </em> 574 </td> 575 <td> 576 <p>HTTP endpoint used to perform health checks on upstream service</p> 577 </td> 578 </tr> 579 <tr> 580 <td style="white-space:nowrap"> 581 <code>host</code> 582 <br> 583 <em> 584 string 585 </em> 586 </td> 587 <td> 588 <p>The value of the host header in the HTTP health check request. 589 If left empty (default value), the name “contour-envoy-healthcheck” 590 will be used.</p> 591 </td> 592 </tr> 593 <tr> 594 <td style="white-space:nowrap"> 595 <code>intervalSeconds</code> 596 <br> 597 <em> 598 int64 599 </em> 600 </td> 601 <td> 602 <em>(Optional)</em> 603 <p>The interval (seconds) between health checks</p> 604 </td> 605 </tr> 606 <tr> 607 <td style="white-space:nowrap"> 608 <code>timeoutSeconds</code> 609 <br> 610 <em> 611 int64 612 </em> 613 </td> 614 <td> 615 <em>(Optional)</em> 616 <p>The time to wait (seconds) for a health check response</p> 617 </td> 618 </tr> 619 <tr> 620 <td style="white-space:nowrap"> 621 <code>unhealthyThresholdCount</code> 622 <br> 623 <em> 624 int64 625 </em> 626 </td> 627 <td> 628 <em>(Optional)</em> 629 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 630 </td> 631 </tr> 632 <tr> 633 <td style="white-space:nowrap"> 634 <code>healthyThresholdCount</code> 635 <br> 636 <em> 637 int64 638 </em> 639 </td> 640 <td> 641 <em>(Optional)</em> 642 <p>The number of healthy health checks required before a host is marked healthy</p> 643 </td> 644 </tr> 645 </tbody> 646 </table> 647 <h3 id="projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec 648 </h3> 649 <p> 650 (<em>Appears on:</em> 651 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 652 </p> 653 <p> 654 <p>HTTPProxySpec defines the spec of the CRD.</p> 655 </p> 656 <table class="table table-striped table-borderless" style="border:none"> 657 <thead class="border-bottom"> 658 <tr> 659 <th>Field</th> 660 <th>Description</th> 661 </tr> 662 </thead> 663 <tbody class="border-top"> 664 <tr> 665 <td style="white-space:nowrap"> 666 <code>virtualhost</code> 667 <br> 668 <em> 669 <a href="#projectcontour.io/v1.VirtualHost"> 670 VirtualHost 671 </a> 672 </em> 673 </td> 674 <td> 675 <em>(Optional)</em> 676 <p>Virtualhost appears at most once. If it is present, the object is considered 677 to be a “root” HTTPProxy.</p> 678 </td> 679 </tr> 680 <tr> 681 <td style="white-space:nowrap"> 682 <code>routes</code> 683 <br> 684 <em> 685 <a href="#projectcontour.io/v1.Route"> 686 []Route 687 </a> 688 </em> 689 </td> 690 <td> 691 <em>(Optional)</em> 692 <p>Routes are the ingress routes. If TCPProxy is present, Routes is ignored.</p> 693 </td> 694 </tr> 695 <tr> 696 <td style="white-space:nowrap"> 697 <code>tcpproxy</code> 698 <br> 699 <em> 700 <a href="#projectcontour.io/v1.TCPProxy"> 701 TCPProxy 702 </a> 703 </em> 704 </td> 705 <td> 706 <em>(Optional)</em> 707 <p>TCPProxy holds TCP proxy information.</p> 708 </td> 709 </tr> 710 <tr> 711 <td style="white-space:nowrap"> 712 <code>includes</code> 713 <br> 714 <em> 715 <a href="#projectcontour.io/v1.Include"> 716 []Include 717 </a> 718 </em> 719 </td> 720 <td> 721 <em>(Optional)</em> 722 <p>Includes allow for specific routing configuration to be included from another HTTPProxy, 723 possibly in another namespace.</p> 724 </td> 725 </tr> 726 </tbody> 727 </table> 728 <h3 id="projectcontour.io/v1.HTTPProxyStatus">HTTPProxyStatus 729 </h3> 730 <p> 731 (<em>Appears on:</em> 732 <a href="#projectcontour.io/v1.HTTPProxy">HTTPProxy</a>) 733 </p> 734 <p> 735 <p>HTTPProxyStatus reports the current state of the HTTPProxy.</p> 736 </p> 737 <table class="table table-striped table-borderless" style="border:none"> 738 <thead class="border-bottom"> 739 <tr> 740 <th>Field</th> 741 <th>Description</th> 742 </tr> 743 </thead> 744 <tbody class="border-top"> 745 <tr> 746 <td style="white-space:nowrap"> 747 <code>currentStatus</code> 748 <br> 749 <em> 750 string 751 </em> 752 </td> 753 <td> 754 <em>(Optional)</em> 755 </td> 756 </tr> 757 <tr> 758 <td style="white-space:nowrap"> 759 <code>description</code> 760 <br> 761 <em> 762 string 763 </em> 764 </td> 765 <td> 766 <em>(Optional)</em> 767 </td> 768 </tr> 769 <tr> 770 <td style="white-space:nowrap"> 771 <code>loadBalancer</code> 772 <br> 773 <em> 774 <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#loadbalancerstatus-v1-core"> 775 Kubernetes core/v1.LoadBalancerStatus 776 </a> 777 </em> 778 </td> 779 <td> 780 <em>(Optional)</em> 781 <p>LoadBalancer contains the current status of the load balancer.</p> 782 </td> 783 </tr> 784 <tr> 785 <td style="white-space:nowrap"> 786 <code>conditions</code> 787 <br> 788 <em> 789 <a href="#projectcontour.io/v1.DetailedCondition"> 790 []DetailedCondition 791 </a> 792 </em> 793 </td> 794 <td> 795 <em>(Optional)</em> 796 <p>Conditions contains information about the current status of the HTTPProxy, 797 in an upstream-friendly container.</p> 798 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 799 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 800 and vice versa.</p> 801 <p>Contour will leave untouched any other Conditions set in this block, 802 in case some other controller wants to add a Condition.</p> 803 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 804 namespace your condition with a label, like <code>controller.domain.com/ConditionName</code>.</p> 805 </td> 806 </tr> 807 </tbody> 808 </table> 809 <h3 id="projectcontour.io/v1.HeaderMatchCondition">HeaderMatchCondition 810 </h3> 811 <p> 812 (<em>Appears on:</em> 813 <a href="#projectcontour.io/v1.MatchCondition">MatchCondition</a>) 814 </p> 815 <p> 816 <p>HeaderMatchCondition specifies how to conditionally match against HTTP 817 headers. The Name field is required, but only one of the remaining 818 fields should be be provided.</p> 819 </p> 820 <table class="table table-striped table-borderless" style="border:none"> 821 <thead class="border-bottom"> 822 <tr> 823 <th>Field</th> 824 <th>Description</th> 825 </tr> 826 </thead> 827 <tbody class="border-top"> 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 header to match against. Name is required. 838 Header names are case insensitive.</p> 839 </td> 840 </tr> 841 <tr> 842 <td style="white-space:nowrap"> 843 <code>present</code> 844 <br> 845 <em> 846 bool 847 </em> 848 </td> 849 <td> 850 <em>(Optional)</em> 851 <p>Present specifies that condition is true when the named header 852 is present, regardless of its value. Note that setting Present 853 to false does not make the condition true if the named header 854 is absent.</p> 855 </td> 856 </tr> 857 <tr> 858 <td style="white-space:nowrap"> 859 <code>contains</code> 860 <br> 861 <em> 862 string 863 </em> 864 </td> 865 <td> 866 <em>(Optional)</em> 867 <p>Contains specifies a substring that must be present in 868 the header value.</p> 869 </td> 870 </tr> 871 <tr> 872 <td style="white-space:nowrap"> 873 <code>notcontains</code> 874 <br> 875 <em> 876 string 877 </em> 878 </td> 879 <td> 880 <em>(Optional)</em> 881 <p>NotContains specifies a substring that must not be present 882 in the header value.</p> 883 </td> 884 </tr> 885 <tr> 886 <td style="white-space:nowrap"> 887 <code>exact</code> 888 <br> 889 <em> 890 string 891 </em> 892 </td> 893 <td> 894 <em>(Optional)</em> 895 <p>Exact specifies a string that the header value must be equal to.</p> 896 </td> 897 </tr> 898 <tr> 899 <td style="white-space:nowrap"> 900 <code>notexact</code> 901 <br> 902 <em> 903 string 904 </em> 905 </td> 906 <td> 907 <em>(Optional)</em> 908 <p>NoExact specifies a string that the header value must not be 909 equal to. The condition is true if the header has any other value.</p> 910 </td> 911 </tr> 912 </tbody> 913 </table> 914 <h3 id="projectcontour.io/v1.HeaderValue">HeaderValue 915 </h3> 916 <p> 917 (<em>Appears on:</em> 918 <a href="#projectcontour.io/v1.HeadersPolicy">HeadersPolicy</a>) 919 </p> 920 <p> 921 <p>HeaderValue represents a header name/value pair</p> 922 </p> 923 <table class="table table-striped table-borderless" style="border:none"> 924 <thead class="border-bottom"> 925 <tr> 926 <th>Field</th> 927 <th>Description</th> 928 </tr> 929 </thead> 930 <tbody class="border-top"> 931 <tr> 932 <td style="white-space:nowrap"> 933 <code>name</code> 934 <br> 935 <em> 936 string 937 </em> 938 </td> 939 <td> 940 <p>Name represents a key of a header</p> 941 </td> 942 </tr> 943 <tr> 944 <td style="white-space:nowrap"> 945 <code>value</code> 946 <br> 947 <em> 948 string 949 </em> 950 </td> 951 <td> 952 <p>Value represents the value of a header specified by a key</p> 953 </td> 954 </tr> 955 </tbody> 956 </table> 957 <h3 id="projectcontour.io/v1.HeadersPolicy">HeadersPolicy 958 </h3> 959 <p> 960 (<em>Appears on:</em> 961 <a href="#projectcontour.io/v1.Route">Route</a>, 962 <a href="#projectcontour.io/v1.Service">Service</a>) 963 </p> 964 <p> 965 <p>HeadersPolicy defines how headers are managed during forwarding. 966 The <code>Host</code> header is treated specially and if set in a HTTP response 967 will be used as the SNI server name when forwarding over TLS. It is an 968 error to attempt to set the <code>Host</code> header in a HTTP response.</p> 969 </p> 970 <table class="table table-striped table-borderless" style="border:none"> 971 <thead class="border-bottom"> 972 <tr> 973 <th>Field</th> 974 <th>Description</th> 975 </tr> 976 </thead> 977 <tbody class="border-top"> 978 <tr> 979 <td style="white-space:nowrap"> 980 <code>set</code> 981 <br> 982 <em> 983 <a href="#projectcontour.io/v1.HeaderValue"> 984 []HeaderValue 985 </a> 986 </em> 987 </td> 988 <td> 989 <em>(Optional)</em> 990 <p>Set specifies a list of HTTP header values that will be set in the HTTP header. 991 If the header does not exist it will be added, otherwise it will be overwritten with the new value.</p> 992 </td> 993 </tr> 994 <tr> 995 <td style="white-space:nowrap"> 996 <code>remove</code> 997 <br> 998 <em> 999 []string 1000 </em> 1001 </td> 1002 <td> 1003 <em>(Optional)</em> 1004 <p>Remove specifies a list of HTTP header names to remove.</p> 1005 </td> 1006 </tr> 1007 </tbody> 1008 </table> 1009 <h3 id="projectcontour.io/v1.Include">Include 1010 </h3> 1011 <p> 1012 (<em>Appears on:</em> 1013 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 1014 </p> 1015 <p> 1016 <p>Include describes a set of policies that can be applied to an HTTPProxy in a namespace.</p> 1017 </p> 1018 <table class="table table-striped table-borderless" style="border:none"> 1019 <thead class="border-bottom"> 1020 <tr> 1021 <th>Field</th> 1022 <th>Description</th> 1023 </tr> 1024 </thead> 1025 <tbody class="border-top"> 1026 <tr> 1027 <td style="white-space:nowrap"> 1028 <code>name</code> 1029 <br> 1030 <em> 1031 string 1032 </em> 1033 </td> 1034 <td> 1035 <p>Name of the HTTPProxy</p> 1036 </td> 1037 </tr> 1038 <tr> 1039 <td style="white-space:nowrap"> 1040 <code>namespace</code> 1041 <br> 1042 <em> 1043 string 1044 </em> 1045 </td> 1046 <td> 1047 <em>(Optional)</em> 1048 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 1049 </td> 1050 </tr> 1051 <tr> 1052 <td style="white-space:nowrap"> 1053 <code>conditions</code> 1054 <br> 1055 <em> 1056 <a href="#projectcontour.io/v1.MatchCondition"> 1057 []MatchCondition 1058 </a> 1059 </em> 1060 </td> 1061 <td> 1062 <em>(Optional)</em> 1063 <p>Conditions are a set of rules that are applied to included HTTPProxies. 1064 In effect, they are added onto the Conditions of included HTTPProxy Route 1065 structs. 1066 When applied, they are merged using AND, with one exception: 1067 There can be only one Prefix MatchCondition per Conditions slice. 1068 More than one Prefix, or contradictory Conditions, will make the 1069 include invalid.</p> 1070 </td> 1071 </tr> 1072 </tbody> 1073 </table> 1074 <h3 id="projectcontour.io/v1.LoadBalancerPolicy">LoadBalancerPolicy 1075 </h3> 1076 <p> 1077 (<em>Appears on:</em> 1078 <a href="#projectcontour.io/v1.Route">Route</a>, 1079 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 1080 </p> 1081 <p> 1082 <p>LoadBalancerPolicy defines the load balancing policy.</p> 1083 </p> 1084 <table class="table table-striped table-borderless" style="border:none"> 1085 <thead class="border-bottom"> 1086 <tr> 1087 <th>Field</th> 1088 <th>Description</th> 1089 </tr> 1090 </thead> 1091 <tbody class="border-top"> 1092 <tr> 1093 <td style="white-space:nowrap"> 1094 <code>strategy</code> 1095 <br> 1096 <em> 1097 string 1098 </em> 1099 </td> 1100 <td> 1101 <p>Strategy specifies the policy used to balance requests 1102 across the pool of backend pods. Valid policy names are 1103 <code>Random</code>, <code>RoundRobin</code>, <code>WeightedLeastRequest</code>, <code>Random</code> 1104 and <code>Cookie</code>. If an unknown strategy name is specified 1105 or no policy is supplied, the default <code>RoundRobin</code> policy 1106 is used.</p> 1107 </td> 1108 </tr> 1109 </tbody> 1110 </table> 1111 <h3 id="projectcontour.io/v1.MatchCondition">MatchCondition 1112 </h3> 1113 <p> 1114 (<em>Appears on:</em> 1115 <a href="#projectcontour.io/v1.Include">Include</a>, 1116 <a href="#projectcontour.io/v1.Route">Route</a>) 1117 </p> 1118 <p> 1119 <p>MatchCondition are a general holder for matching rules for HTTPProxies. 1120 One of Prefix or Header must be provided.</p> 1121 </p> 1122 <table class="table table-striped table-borderless" style="border:none"> 1123 <thead class="border-bottom"> 1124 <tr> 1125 <th>Field</th> 1126 <th>Description</th> 1127 </tr> 1128 </thead> 1129 <tbody class="border-top"> 1130 <tr> 1131 <td style="white-space:nowrap"> 1132 <code>prefix</code> 1133 <br> 1134 <em> 1135 string 1136 </em> 1137 </td> 1138 <td> 1139 <em>(Optional)</em> 1140 <p>Prefix defines a prefix match for a request.</p> 1141 </td> 1142 </tr> 1143 <tr> 1144 <td style="white-space:nowrap"> 1145 <code>header</code> 1146 <br> 1147 <em> 1148 <a href="#projectcontour.io/v1.HeaderMatchCondition"> 1149 HeaderMatchCondition 1150 </a> 1151 </em> 1152 </td> 1153 <td> 1154 <em>(Optional)</em> 1155 <p>Header specifies the header condition to match.</p> 1156 </td> 1157 </tr> 1158 </tbody> 1159 </table> 1160 <h3 id="projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy 1161 </h3> 1162 <p> 1163 (<em>Appears on:</em> 1164 <a href="#projectcontour.io/v1.Route">Route</a>) 1165 </p> 1166 <p> 1167 <p>PathRewritePolicy specifies how a request URL path should be 1168 rewritten. This rewriting takes place after a request is routed 1169 and has no subsequent effects on the proxy’s routing decision. 1170 No HTTP headers or body content is rewritten.</p> 1171 <p>Exactly one field in this struct may be specified.</p> 1172 </p> 1173 <table class="table table-striped table-borderless" style="border:none"> 1174 <thead class="border-bottom"> 1175 <tr> 1176 <th>Field</th> 1177 <th>Description</th> 1178 </tr> 1179 </thead> 1180 <tbody class="border-top"> 1181 <tr> 1182 <td style="white-space:nowrap"> 1183 <code>replacePrefix</code> 1184 <br> 1185 <em> 1186 <a href="#projectcontour.io/v1.ReplacePrefix"> 1187 []ReplacePrefix 1188 </a> 1189 </em> 1190 </td> 1191 <td> 1192 <em>(Optional)</em> 1193 <p>ReplacePrefix describes how the path prefix should be replaced.</p> 1194 </td> 1195 </tr> 1196 </tbody> 1197 </table> 1198 <h3 id="projectcontour.io/v1.ReplacePrefix">ReplacePrefix 1199 </h3> 1200 <p> 1201 (<em>Appears on:</em> 1202 <a href="#projectcontour.io/v1.PathRewritePolicy">PathRewritePolicy</a>) 1203 </p> 1204 <p> 1205 <p>ReplacePrefix describes a path prefix replacement.</p> 1206 </p> 1207 <table class="table table-striped table-borderless" style="border:none"> 1208 <thead class="border-bottom"> 1209 <tr> 1210 <th>Field</th> 1211 <th>Description</th> 1212 </tr> 1213 </thead> 1214 <tbody class="border-top"> 1215 <tr> 1216 <td style="white-space:nowrap"> 1217 <code>prefix</code> 1218 <br> 1219 <em> 1220 string 1221 </em> 1222 </td> 1223 <td> 1224 <em>(Optional)</em> 1225 <p>Prefix specifies the URL path prefix to be replaced.</p> 1226 <p>If Prefix is specified, it must exactly match the MatchCondition 1227 prefix that is rendered by the chain of including HTTPProxies 1228 and only that path prefix will be replaced by Replacement. 1229 This allows HTTPProxies that are included through multiple 1230 roots to only replace specific path prefixes, leaving others 1231 unmodified.</p> 1232 <p>If Prefix is not specified, all routing prefixes rendered 1233 by the include chain will be replaced.</p> 1234 </td> 1235 </tr> 1236 <tr> 1237 <td style="white-space:nowrap"> 1238 <code>replacement</code> 1239 <br> 1240 <em> 1241 string 1242 </em> 1243 </td> 1244 <td> 1245 <p>Replacement is the string that the routing path prefix 1246 will be replaced with. This must not be empty.</p> 1247 </td> 1248 </tr> 1249 </tbody> 1250 </table> 1251 <h3 id="projectcontour.io/v1.RetryOn">RetryOn 1252 (<code>string</code> alias)</h3> 1253 <p> 1254 (<em>Appears on:</em> 1255 <a href="#projectcontour.io/v1.RetryPolicy">RetryPolicy</a>) 1256 </p> 1257 <p> 1258 <p>RetryOn is a string type alias with validation to ensure that the value is valid.</p> 1259 </p> 1260 <h3 id="projectcontour.io/v1.RetryPolicy">RetryPolicy 1261 </h3> 1262 <p> 1263 (<em>Appears on:</em> 1264 <a href="#projectcontour.io/v1.Route">Route</a>) 1265 </p> 1266 <p> 1267 <p>RetryPolicy defines the attributes associated with retrying policy.</p> 1268 </p> 1269 <table class="table table-striped table-borderless" style="border:none"> 1270 <thead class="border-bottom"> 1271 <tr> 1272 <th>Field</th> 1273 <th>Description</th> 1274 </tr> 1275 </thead> 1276 <tbody class="border-top"> 1277 <tr> 1278 <td style="white-space:nowrap"> 1279 <code>count</code> 1280 <br> 1281 <em> 1282 int64 1283 </em> 1284 </td> 1285 <td> 1286 <em>(Optional)</em> 1287 <p>NumRetries is maximum allowed number of retries. 1288 If not supplied, the number of retries is one.</p> 1289 </td> 1290 </tr> 1291 <tr> 1292 <td style="white-space:nowrap"> 1293 <code>perTryTimeout</code> 1294 <br> 1295 <em> 1296 string 1297 </em> 1298 </td> 1299 <td> 1300 <p>PerTryTimeout specifies the timeout per retry attempt. 1301 Ignored if NumRetries is not supplied.</p> 1302 </td> 1303 </tr> 1304 <tr> 1305 <td style="white-space:nowrap"> 1306 <code>retryOn</code> 1307 <br> 1308 <em> 1309 <a href="#projectcontour.io/v1.RetryOn"> 1310 []RetryOn 1311 </a> 1312 </em> 1313 </td> 1314 <td> 1315 <em>(Optional)</em> 1316 <p>RetryOn specifies the conditions on which to retry a request.</p> 1317 <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> 1318 <ul> 1319 <li><code>5xx</code></li> 1320 <li><code>gateway-error</code></li> 1321 <li><code>reset</code></li> 1322 <li><code>connect-failure</code></li> 1323 <li><code>retriable-4xx</code></li> 1324 <li><code>refused-stream</code></li> 1325 <li><code>retriable-status-codes</code></li> 1326 <li><code>retriable-headers</code></li> 1327 </ul> 1328 <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> 1329 <ul> 1330 <li><code>cancelled</code></li> 1331 <li><code>deadline-exceeded</code></li> 1332 <li><code>internal</code></li> 1333 <li><code>resource-exhausted</code></li> 1334 <li><code>unavailable</code></li> 1335 </ul> 1336 </td> 1337 </tr> 1338 <tr> 1339 <td style="white-space:nowrap"> 1340 <code>retriableStatusCodes</code> 1341 <br> 1342 <em> 1343 []uint32 1344 </em> 1345 </td> 1346 <td> 1347 <em>(Optional)</em> 1348 <p>RetriableStatusCodes specifies the HTTP status codes that should be retried.</p> 1349 <p>This field is only respected when you include <code>retriable-status-codes</code> in the <code>RetryOn</code> field.</p> 1350 </td> 1351 </tr> 1352 </tbody> 1353 </table> 1354 <h3 id="projectcontour.io/v1.Route">Route 1355 </h3> 1356 <p> 1357 (<em>Appears on:</em> 1358 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 1359 </p> 1360 <p> 1361 <p>Route contains the set of routes for a virtual host.</p> 1362 </p> 1363 <table class="table table-striped table-borderless" style="border:none"> 1364 <thead class="border-bottom"> 1365 <tr> 1366 <th>Field</th> 1367 <th>Description</th> 1368 </tr> 1369 </thead> 1370 <tbody class="border-top"> 1371 <tr> 1372 <td style="white-space:nowrap"> 1373 <code>conditions</code> 1374 <br> 1375 <em> 1376 <a href="#projectcontour.io/v1.MatchCondition"> 1377 []MatchCondition 1378 </a> 1379 </em> 1380 </td> 1381 <td> 1382 <em>(Optional)</em> 1383 <p>Conditions are a set of rules that are applied to a Route. 1384 When applied, they are merged using AND, with one exception: 1385 There can be only one Prefix MatchCondition per Conditions slice. 1386 More than one Prefix, or contradictory Conditions, will make the 1387 route invalid.</p> 1388 </td> 1389 </tr> 1390 <tr> 1391 <td style="white-space:nowrap"> 1392 <code>services</code> 1393 <br> 1394 <em> 1395 <a href="#projectcontour.io/v1.Service"> 1396 []Service 1397 </a> 1398 </em> 1399 </td> 1400 <td> 1401 <p>Services are the services to proxy traffic.</p> 1402 </td> 1403 </tr> 1404 <tr> 1405 <td style="white-space:nowrap"> 1406 <code>enableWebsockets</code> 1407 <br> 1408 <em> 1409 bool 1410 </em> 1411 </td> 1412 <td> 1413 <em>(Optional)</em> 1414 <p>Enables websocket support for the route.</p> 1415 </td> 1416 </tr> 1417 <tr> 1418 <td style="white-space:nowrap"> 1419 <code>permitInsecure</code> 1420 <br> 1421 <em> 1422 bool 1423 </em> 1424 </td> 1425 <td> 1426 <em>(Optional)</em> 1427 <p>Allow this path to respond to insecure requests over HTTP which are normally 1428 not permitted when a <code>virtualhost.tls</code> block is present.</p> 1429 </td> 1430 </tr> 1431 <tr> 1432 <td style="white-space:nowrap"> 1433 <code>timeoutPolicy</code> 1434 <br> 1435 <em> 1436 <a href="#projectcontour.io/v1.TimeoutPolicy"> 1437 TimeoutPolicy 1438 </a> 1439 </em> 1440 </td> 1441 <td> 1442 <em>(Optional)</em> 1443 <p>The timeout policy for this route.</p> 1444 </td> 1445 </tr> 1446 <tr> 1447 <td style="white-space:nowrap"> 1448 <code>retryPolicy</code> 1449 <br> 1450 <em> 1451 <a href="#projectcontour.io/v1.RetryPolicy"> 1452 RetryPolicy 1453 </a> 1454 </em> 1455 </td> 1456 <td> 1457 <em>(Optional)</em> 1458 <p>The retry policy for this route.</p> 1459 </td> 1460 </tr> 1461 <tr> 1462 <td style="white-space:nowrap"> 1463 <code>healthCheckPolicy</code> 1464 <br> 1465 <em> 1466 <a href="#projectcontour.io/v1.HTTPHealthCheckPolicy"> 1467 HTTPHealthCheckPolicy 1468 </a> 1469 </em> 1470 </td> 1471 <td> 1472 <em>(Optional)</em> 1473 <p>The health check policy for this route.</p> 1474 </td> 1475 </tr> 1476 <tr> 1477 <td style="white-space:nowrap"> 1478 <code>loadBalancerPolicy</code> 1479 <br> 1480 <em> 1481 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 1482 LoadBalancerPolicy 1483 </a> 1484 </em> 1485 </td> 1486 <td> 1487 <em>(Optional)</em> 1488 <p>The load balancing policy for this route.</p> 1489 </td> 1490 </tr> 1491 <tr> 1492 <td style="white-space:nowrap"> 1493 <code>pathRewritePolicy</code> 1494 <br> 1495 <em> 1496 <a href="#projectcontour.io/v1.PathRewritePolicy"> 1497 PathRewritePolicy 1498 </a> 1499 </em> 1500 </td> 1501 <td> 1502 <em>(Optional)</em> 1503 <p>The policy for rewriting the path of the request URL 1504 after the request has been routed to a Service.</p> 1505 </td> 1506 </tr> 1507 <tr> 1508 <td style="white-space:nowrap"> 1509 <code>requestHeadersPolicy</code> 1510 <br> 1511 <em> 1512 <a href="#projectcontour.io/v1.HeadersPolicy"> 1513 HeadersPolicy 1514 </a> 1515 </em> 1516 </td> 1517 <td> 1518 <em>(Optional)</em> 1519 <p>The policy for managing request headers during proxying</p> 1520 </td> 1521 </tr> 1522 <tr> 1523 <td style="white-space:nowrap"> 1524 <code>responseHeadersPolicy</code> 1525 <br> 1526 <em> 1527 <a href="#projectcontour.io/v1.HeadersPolicy"> 1528 HeadersPolicy 1529 </a> 1530 </em> 1531 </td> 1532 <td> 1533 <em>(Optional)</em> 1534 <p>The policy for managing response headers during proxying</p> 1535 </td> 1536 </tr> 1537 </tbody> 1538 </table> 1539 <h3 id="projectcontour.io/v1.Service">Service 1540 </h3> 1541 <p> 1542 (<em>Appears on:</em> 1543 <a href="#projectcontour.io/v1.Route">Route</a>, 1544 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 1545 </p> 1546 <p> 1547 <p>Service defines an Kubernetes Service to proxy traffic.</p> 1548 </p> 1549 <table class="table table-striped table-borderless" style="border:none"> 1550 <thead class="border-bottom"> 1551 <tr> 1552 <th>Field</th> 1553 <th>Description</th> 1554 </tr> 1555 </thead> 1556 <tbody class="border-top"> 1557 <tr> 1558 <td style="white-space:nowrap"> 1559 <code>name</code> 1560 <br> 1561 <em> 1562 string 1563 </em> 1564 </td> 1565 <td> 1566 <p>Name is the name of Kubernetes service to proxy traffic. 1567 Names defined here will be used to look up corresponding endpoints which contain the ips to route.</p> 1568 </td> 1569 </tr> 1570 <tr> 1571 <td style="white-space:nowrap"> 1572 <code>port</code> 1573 <br> 1574 <em> 1575 int 1576 </em> 1577 </td> 1578 <td> 1579 <p>Port (defined as Integer) to proxy traffic to since a service can have multiple defined.</p> 1580 </td> 1581 </tr> 1582 <tr> 1583 <td style="white-space:nowrap"> 1584 <code>protocol</code> 1585 <br> 1586 <em> 1587 string 1588 </em> 1589 </td> 1590 <td> 1591 <em>(Optional)</em> 1592 <p>Protocol may be used to specify (or override) the protocol used to reach this Service. 1593 Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.</p> 1594 </td> 1595 </tr> 1596 <tr> 1597 <td style="white-space:nowrap"> 1598 <code>weight</code> 1599 <br> 1600 <em> 1601 int64 1602 </em> 1603 </td> 1604 <td> 1605 <em>(Optional)</em> 1606 <p>Weight defines percentage of traffic to balance traffic</p> 1607 </td> 1608 </tr> 1609 <tr> 1610 <td style="white-space:nowrap"> 1611 <code>validation</code> 1612 <br> 1613 <em> 1614 <a href="#projectcontour.io/v1.UpstreamValidation"> 1615 UpstreamValidation 1616 </a> 1617 </em> 1618 </td> 1619 <td> 1620 <em>(Optional)</em> 1621 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 1622 </td> 1623 </tr> 1624 <tr> 1625 <td style="white-space:nowrap"> 1626 <code>mirror</code> 1627 <br> 1628 <em> 1629 bool 1630 </em> 1631 </td> 1632 <td> 1633 <p>If Mirror is true the Service will receive a read only mirror of the traffic for this route.</p> 1634 </td> 1635 </tr> 1636 <tr> 1637 <td style="white-space:nowrap"> 1638 <code>requestHeadersPolicy</code> 1639 <br> 1640 <em> 1641 <a href="#projectcontour.io/v1.HeadersPolicy"> 1642 HeadersPolicy 1643 </a> 1644 </em> 1645 </td> 1646 <td> 1647 <em>(Optional)</em> 1648 <p>The policy for managing request headers during proxying</p> 1649 </td> 1650 </tr> 1651 <tr> 1652 <td style="white-space:nowrap"> 1653 <code>responseHeadersPolicy</code> 1654 <br> 1655 <em> 1656 <a href="#projectcontour.io/v1.HeadersPolicy"> 1657 HeadersPolicy 1658 </a> 1659 </em> 1660 </td> 1661 <td> 1662 <em>(Optional)</em> 1663 <p>The policy for managing response headers during proxying</p> 1664 </td> 1665 </tr> 1666 </tbody> 1667 </table> 1668 <h3 id="projectcontour.io/v1.SubCondition">SubCondition 1669 </h3> 1670 <p> 1671 (<em>Appears on:</em> 1672 <a href="#projectcontour.io/v1.DetailedCondition">DetailedCondition</a>) 1673 </p> 1674 <p> 1675 <p>SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition.</p> 1676 <p>It contains a subset of the Condition fields.</p> 1677 <p>It is intended for warnings and errors, so <code>type</code> names should use abnormal-true polarity, 1678 that is, they should be of the form “ErrorPresent: true”.</p> 1679 <p>The expected lifecycle for these errors is that they should only be present when the error or warning is, 1680 and should be removed when they are not relevant.</p> 1681 </p> 1682 <table class="table table-striped table-borderless" style="border:none"> 1683 <thead class="border-bottom"> 1684 <tr> 1685 <th>Field</th> 1686 <th>Description</th> 1687 </tr> 1688 </thead> 1689 <tbody class="border-top"> 1690 <tr> 1691 <td style="white-space:nowrap"> 1692 <code>type</code> 1693 <br> 1694 <em> 1695 string 1696 </em> 1697 </td> 1698 <td> 1699 <p>Type of condition in <code>CamelCase</code> or in <code>foo.example.com/CamelCase</code>.</p> 1700 <p>This must be in abnormal-true polarity, that is, <code>ErrorFound</code> or <code>controller.io/ErrorFound</code>.</p> 1701 <p>The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)</p> 1702 </td> 1703 </tr> 1704 <tr> 1705 <td style="white-space:nowrap"> 1706 <code>status</code> 1707 <br> 1708 <em> 1709 <a href="#projectcontour.io/v1.ConditionStatus"> 1710 ConditionStatus 1711 </a> 1712 </em> 1713 </td> 1714 <td> 1715 <p>Status of the condition, one of True, False, Unknown.</p> 1716 </td> 1717 </tr> 1718 <tr> 1719 <td style="white-space:nowrap"> 1720 <code>reason</code> 1721 <br> 1722 <em> 1723 string 1724 </em> 1725 </td> 1726 <td> 1727 <p>Reason contains a programmatic identifier indicating the reason for the condition’s last transition. 1728 Producers of specific condition types may define expected values and meanings for this field, 1729 and whether the values are considered a guaranteed API.</p> 1730 <p>The value should be a CamelCase string.</p> 1731 <p>This field may not be empty.</p> 1732 </td> 1733 </tr> 1734 <tr> 1735 <td style="white-space:nowrap"> 1736 <code>message</code> 1737 <br> 1738 <em> 1739 string 1740 </em> 1741 </td> 1742 <td> 1743 <p>Message is a human readable message indicating details about the transition.</p> 1744 <p>This may be an empty string.</p> 1745 </td> 1746 </tr> 1747 </tbody> 1748 </table> 1749 <h3 id="projectcontour.io/v1.TCPHealthCheckPolicy">TCPHealthCheckPolicy 1750 </h3> 1751 <p> 1752 (<em>Appears on:</em> 1753 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 1754 </p> 1755 <p> 1756 <p>TCPHealthCheckPolicy defines health checks on the upstream service.</p> 1757 </p> 1758 <table class="table table-striped table-borderless" style="border:none"> 1759 <thead class="border-bottom"> 1760 <tr> 1761 <th>Field</th> 1762 <th>Description</th> 1763 </tr> 1764 </thead> 1765 <tbody class="border-top"> 1766 <tr> 1767 <td style="white-space:nowrap"> 1768 <code>intervalSeconds</code> 1769 <br> 1770 <em> 1771 int64 1772 </em> 1773 </td> 1774 <td> 1775 <em>(Optional)</em> 1776 <p>The interval (seconds) between health checks</p> 1777 </td> 1778 </tr> 1779 <tr> 1780 <td style="white-space:nowrap"> 1781 <code>timeoutSeconds</code> 1782 <br> 1783 <em> 1784 int64 1785 </em> 1786 </td> 1787 <td> 1788 <em>(Optional)</em> 1789 <p>The time to wait (seconds) for a health check response</p> 1790 </td> 1791 </tr> 1792 <tr> 1793 <td style="white-space:nowrap"> 1794 <code>unhealthyThresholdCount</code> 1795 <br> 1796 <em> 1797 uint32 1798 </em> 1799 </td> 1800 <td> 1801 <em>(Optional)</em> 1802 <p>The number of unhealthy health checks required before a host is marked unhealthy</p> 1803 </td> 1804 </tr> 1805 <tr> 1806 <td style="white-space:nowrap"> 1807 <code>healthyThresholdCount</code> 1808 <br> 1809 <em> 1810 uint32 1811 </em> 1812 </td> 1813 <td> 1814 <em>(Optional)</em> 1815 <p>The number of healthy health checks required before a host is marked healthy</p> 1816 </td> 1817 </tr> 1818 </tbody> 1819 </table> 1820 <h3 id="projectcontour.io/v1.TCPProxy">TCPProxy 1821 </h3> 1822 <p> 1823 (<em>Appears on:</em> 1824 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 1825 </p> 1826 <p> 1827 <p>TCPProxy contains the set of services to proxy TCP connections.</p> 1828 </p> 1829 <table class="table table-striped table-borderless" style="border:none"> 1830 <thead class="border-bottom"> 1831 <tr> 1832 <th>Field</th> 1833 <th>Description</th> 1834 </tr> 1835 </thead> 1836 <tbody class="border-top"> 1837 <tr> 1838 <td style="white-space:nowrap"> 1839 <code>loadBalancerPolicy</code> 1840 <br> 1841 <em> 1842 <a href="#projectcontour.io/v1.LoadBalancerPolicy"> 1843 LoadBalancerPolicy 1844 </a> 1845 </em> 1846 </td> 1847 <td> 1848 <em>(Optional)</em> 1849 <p>The load balancing policy for the backend services.</p> 1850 </td> 1851 </tr> 1852 <tr> 1853 <td style="white-space:nowrap"> 1854 <code>services</code> 1855 <br> 1856 <em> 1857 <a href="#projectcontour.io/v1.Service"> 1858 []Service 1859 </a> 1860 </em> 1861 </td> 1862 <td> 1863 <em>(Optional)</em> 1864 <p>Services are the services to proxy traffic</p> 1865 </td> 1866 </tr> 1867 <tr> 1868 <td style="white-space:nowrap"> 1869 <code>include</code> 1870 <br> 1871 <em> 1872 <a href="#projectcontour.io/v1.TCPProxyInclude"> 1873 TCPProxyInclude 1874 </a> 1875 </em> 1876 </td> 1877 <td> 1878 <em>(Optional)</em> 1879 <p>Include specifies that this tcpproxy should be delegated to another HTTPProxy.</p> 1880 </td> 1881 </tr> 1882 <tr> 1883 <td style="white-space:nowrap"> 1884 <code>includes</code> 1885 <br> 1886 <em> 1887 <a href="#projectcontour.io/v1.TCPProxyInclude"> 1888 TCPProxyInclude 1889 </a> 1890 </em> 1891 </td> 1892 <td> 1893 <em>(Optional)</em> 1894 <p>IncludesDeprecated allow for specific routing configuration to be appended to another HTTPProxy in another namespace.</p> 1895 <p>Exists due to a mistake when developing HTTPProxy and the field was marked plural 1896 when it should have been singular. This field should stay to not break backwards compatibility to v1 users.</p> 1897 </td> 1898 </tr> 1899 <tr> 1900 <td style="white-space:nowrap"> 1901 <code>healthCheckPolicy</code> 1902 <br> 1903 <em> 1904 <a href="#projectcontour.io/v1.TCPHealthCheckPolicy"> 1905 TCPHealthCheckPolicy 1906 </a> 1907 </em> 1908 </td> 1909 <td> 1910 <em>(Optional)</em> 1911 <p>The health check policy for this tcp proxy</p> 1912 </td> 1913 </tr> 1914 </tbody> 1915 </table> 1916 <h3 id="projectcontour.io/v1.TCPProxyInclude">TCPProxyInclude 1917 </h3> 1918 <p> 1919 (<em>Appears on:</em> 1920 <a href="#projectcontour.io/v1.TCPProxy">TCPProxy</a>) 1921 </p> 1922 <p> 1923 <p>TCPProxyInclude describes a target HTTPProxy document which contains the TCPProxy details.</p> 1924 </p> 1925 <table class="table table-striped table-borderless" style="border:none"> 1926 <thead class="border-bottom"> 1927 <tr> 1928 <th>Field</th> 1929 <th>Description</th> 1930 </tr> 1931 </thead> 1932 <tbody class="border-top"> 1933 <tr> 1934 <td style="white-space:nowrap"> 1935 <code>name</code> 1936 <br> 1937 <em> 1938 string 1939 </em> 1940 </td> 1941 <td> 1942 <p>Name of the child HTTPProxy</p> 1943 </td> 1944 </tr> 1945 <tr> 1946 <td style="white-space:nowrap"> 1947 <code>namespace</code> 1948 <br> 1949 <em> 1950 string 1951 </em> 1952 </td> 1953 <td> 1954 <em>(Optional)</em> 1955 <p>Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.</p> 1956 </td> 1957 </tr> 1958 </tbody> 1959 </table> 1960 <h3 id="projectcontour.io/v1.TLS">TLS 1961 </h3> 1962 <p> 1963 (<em>Appears on:</em> 1964 <a href="#projectcontour.io/v1.VirtualHost">VirtualHost</a>) 1965 </p> 1966 <p> 1967 <p>TLS describes tls properties. The SNI names that will be matched on 1968 are described in the HTTPProxy’s Spec.VirtualHost.Fqdn field.</p> 1969 </p> 1970 <table class="table table-striped table-borderless" style="border:none"> 1971 <thead class="border-bottom"> 1972 <tr> 1973 <th>Field</th> 1974 <th>Description</th> 1975 </tr> 1976 </thead> 1977 <tbody class="border-top"> 1978 <tr> 1979 <td style="white-space:nowrap"> 1980 <code>secretName</code> 1981 <br> 1982 <em> 1983 string 1984 </em> 1985 </td> 1986 <td> 1987 <p>SecretName is the name of a TLS secret in the current namespace. 1988 Either SecretName or Passthrough must be specified, but not both. 1989 If specified, the named secret must contain a matching certificate 1990 for the virtual host’s FQDN.</p> 1991 </td> 1992 </tr> 1993 <tr> 1994 <td style="white-space:nowrap"> 1995 <code>minimumProtocolVersion</code> 1996 <br> 1997 <em> 1998 string 1999 </em> 2000 </td> 2001 <td> 2002 <em>(Optional)</em> 2003 <p>Minimum TLS version this vhost should negotiate</p> 2004 </td> 2005 </tr> 2006 <tr> 2007 <td style="white-space:nowrap"> 2008 <code>passthrough</code> 2009 <br> 2010 <em> 2011 bool 2012 </em> 2013 </td> 2014 <td> 2015 <em>(Optional)</em> 2016 <p>Passthrough defines whether the encrypted TLS handshake will be 2017 passed through to the backing cluster. Either Passthrough or 2018 SecretName must be specified, but not both.</p> 2019 </td> 2020 </tr> 2021 <tr> 2022 <td style="white-space:nowrap"> 2023 <code>clientValidation</code> 2024 <br> 2025 <em> 2026 <a href="#projectcontour.io/v1.DownstreamValidation"> 2027 DownstreamValidation 2028 </a> 2029 </em> 2030 </td> 2031 <td> 2032 <em>(Optional)</em> 2033 <p>ClientValidation defines how to verify the client certificate 2034 when an external client establishes a TLS connection to Envoy.</p> 2035 <p>This setting:</p> 2036 <ol> 2037 <li>Enables TLS client certificate validation.</li> 2038 <li>Requires clients to present a TLS certificate (i.e. not optional validation).</li> 2039 <li>Specifies how the client certificate will be validated.</li> 2040 </ol> 2041 </td> 2042 </tr> 2043 <tr> 2044 <td style="white-space:nowrap"> 2045 <code>enableFallbackCertificate</code> 2046 <br> 2047 <em> 2048 bool 2049 </em> 2050 </td> 2051 <td> 2052 <p>EnableFallbackCertificate defines if the vhost should allow a default certificate to 2053 be applied which handles all requests which don’t match the SNI defined in this vhost.</p> 2054 </td> 2055 </tr> 2056 </tbody> 2057 </table> 2058 <h3 id="projectcontour.io/v1.TLSCertificateDelegationSpec">TLSCertificateDelegationSpec 2059 </h3> 2060 <p> 2061 (<em>Appears on:</em> 2062 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 2063 </p> 2064 <p> 2065 <p>TLSCertificateDelegationSpec defines the spec of the CRD</p> 2066 </p> 2067 <table class="table table-striped table-borderless" style="border:none"> 2068 <thead class="border-bottom"> 2069 <tr> 2070 <th>Field</th> 2071 <th>Description</th> 2072 </tr> 2073 </thead> 2074 <tbody class="border-top"> 2075 <tr> 2076 <td style="white-space:nowrap"> 2077 <code>delegations</code> 2078 <br> 2079 <em> 2080 <a href="#projectcontour.io/v1.CertificateDelegation"> 2081 []CertificateDelegation 2082 </a> 2083 </em> 2084 </td> 2085 <td> 2086 </td> 2087 </tr> 2088 </tbody> 2089 </table> 2090 <h3 id="projectcontour.io/v1.TLSCertificateDelegationStatus">TLSCertificateDelegationStatus 2091 </h3> 2092 <p> 2093 (<em>Appears on:</em> 2094 <a href="#projectcontour.io/v1.TLSCertificateDelegation">TLSCertificateDelegation</a>) 2095 </p> 2096 <p> 2097 <p>TLSCertificateDelegationStatus allows for the status of the delegation 2098 to be presented to the user.</p> 2099 </p> 2100 <table class="table table-striped table-borderless" style="border:none"> 2101 <thead class="border-bottom"> 2102 <tr> 2103 <th>Field</th> 2104 <th>Description</th> 2105 </tr> 2106 </thead> 2107 <tbody class="border-top"> 2108 <tr> 2109 <td style="white-space:nowrap"> 2110 <code>conditions</code> 2111 <br> 2112 <em> 2113 <a href="#projectcontour.io/v1.DetailedCondition"> 2114 []DetailedCondition 2115 </a> 2116 </em> 2117 </td> 2118 <td> 2119 <em>(Optional)</em> 2120 <p>Conditions contains information about the current status of the HTTPProxy, 2121 in an upstream-friendly container.</p> 2122 <p>Contour will update a single condition, <code>Valid</code>, that is in normal-true polarity. 2123 That is, when <code>currentStatus</code> is <code>valid</code>, the <code>Valid</code> condition will be <code>status: true</code>, 2124 and vice versa.</p> 2125 <p>Contour will leave untouched any other Conditions set in this block, 2126 in case some other controller wants to add a Condition.</p> 2127 <p>If you are another controller owner and wish to add a condition, you <em>should</em> 2128 namespace your condition with a label, like <code>controller.domain.com\ConditionName</code>.</p> 2129 </td> 2130 </tr> 2131 </tbody> 2132 </table> 2133 <h3 id="projectcontour.io/v1.TimeoutPolicy">TimeoutPolicy 2134 </h3> 2135 <p> 2136 (<em>Appears on:</em> 2137 <a href="#projectcontour.io/v1.Route">Route</a>) 2138 </p> 2139 <p> 2140 <p>TimeoutPolicy configures timeouts that are used for handling network requests.</p> 2141 <p>TimeoutPolicy durations are expressed in the Go <a href="https://godoc.org/time#ParseDuration">Duration format</a>. 2142 Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”. 2143 The string “infinity” is also a valid input and specifies no timeout. 2144 A value of “0s” will be treated as if the field were not set, i.e. by using Envoy’s default behavior.</p> 2145 <p>Example input values: “300ms”, “5s”, “1m”.</p> 2146 </p> 2147 <table class="table table-striped table-borderless" style="border:none"> 2148 <thead class="border-bottom"> 2149 <tr> 2150 <th>Field</th> 2151 <th>Description</th> 2152 </tr> 2153 </thead> 2154 <tbody class="border-top"> 2155 <tr> 2156 <td style="white-space:nowrap"> 2157 <code>response</code> 2158 <br> 2159 <em> 2160 string 2161 </em> 2162 </td> 2163 <td> 2164 <em>(Optional)</em> 2165 <p>Timeout for receiving a response from the server after processing a request from client. 2166 If not supplied, Envoy’s default value of 15s applies.</p> 2167 </td> 2168 </tr> 2169 <tr> 2170 <td style="white-space:nowrap"> 2171 <code>idle</code> 2172 <br> 2173 <em> 2174 string 2175 </em> 2176 </td> 2177 <td> 2178 <em>(Optional)</em> 2179 <p>Timeout after which, if there are no active requests for this route, the connection between 2180 Envoy and the backend or Envoy and the external client will be closed. 2181 If not specified, there is no per-route idle timeout, though a connection manager-wide 2182 stream_idle_timeout default of 5m still applies.</p> 2183 </td> 2184 </tr> 2185 </tbody> 2186 </table> 2187 <h3 id="projectcontour.io/v1.UpstreamValidation">UpstreamValidation 2188 </h3> 2189 <p> 2190 (<em>Appears on:</em> 2191 <a href="#projectcontour.io/v1.Service">Service</a>) 2192 </p> 2193 <p> 2194 <p>UpstreamValidation defines how to verify the backend service’s certificate</p> 2195 </p> 2196 <table class="table table-striped table-borderless" style="border:none"> 2197 <thead class="border-bottom"> 2198 <tr> 2199 <th>Field</th> 2200 <th>Description</th> 2201 </tr> 2202 </thead> 2203 <tbody class="border-top"> 2204 <tr> 2205 <td style="white-space:nowrap"> 2206 <code>caSecret</code> 2207 <br> 2208 <em> 2209 string 2210 </em> 2211 </td> 2212 <td> 2213 <p>Name of the Kubernetes secret be used to validate the certificate presented by the backend</p> 2214 </td> 2215 </tr> 2216 <tr> 2217 <td style="white-space:nowrap"> 2218 <code>subjectName</code> 2219 <br> 2220 <em> 2221 string 2222 </em> 2223 </td> 2224 <td> 2225 <p>Key which is expected to be present in the ‘subjectAltName’ of the presented certificate</p> 2226 </td> 2227 </tr> 2228 </tbody> 2229 </table> 2230 <h3 id="projectcontour.io/v1.VirtualHost">VirtualHost 2231 </h3> 2232 <p> 2233 (<em>Appears on:</em> 2234 <a href="#projectcontour.io/v1.HTTPProxySpec">HTTPProxySpec</a>) 2235 </p> 2236 <p> 2237 <p>VirtualHost appears at most once. If it is present, the object is considered 2238 to be a “root”.</p> 2239 </p> 2240 <table class="table table-striped table-borderless" style="border:none"> 2241 <thead class="border-bottom"> 2242 <tr> 2243 <th>Field</th> 2244 <th>Description</th> 2245 </tr> 2246 </thead> 2247 <tbody class="border-top"> 2248 <tr> 2249 <td style="white-space:nowrap"> 2250 <code>fqdn</code> 2251 <br> 2252 <em> 2253 string 2254 </em> 2255 </td> 2256 <td> 2257 <p>The fully qualified domain name of the root of the ingress tree 2258 all leaves of the DAG rooted at this object relate to the fqdn.</p> 2259 </td> 2260 </tr> 2261 <tr> 2262 <td style="white-space:nowrap"> 2263 <code>tls</code> 2264 <br> 2265 <em> 2266 <a href="#projectcontour.io/v1.TLS"> 2267 TLS 2268 </a> 2269 </em> 2270 </td> 2271 <td> 2272 <em>(Optional)</em> 2273 <p>If present describes tls properties. The SNI names that will be matched on 2274 are described in fqdn, the tls.secretName secret must contain a 2275 certificate that itself contains a name that matches the FQDN.</p> 2276 </td> 2277 </tr> 2278 </tbody> 2279 </table> 2280 <hr/> 2281 <p><em> 2282 Generated with <code>gen-crd-api-reference-docs</code>. 2283 </em></p>