Backport of Adds PassiveHealthCheck Fields to ServiceDefaults and IngressGateway into release/1.16.x (#18947)

* Adds PassiveHealthCheck Fields to ServiceDefaults and IngressGateway (#18532)

Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com>
This commit is contained in:
hc-github-team-consul-core 2023-09-22 13:08:22 -04:00 committed by GitHub
parent 1c302df2b9
commit c1a404cb24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 158 additions and 131 deletions

View File

@ -42,9 +42,11 @@ The following list describes the configuration hierarchy, language-specific data
- [`MaxPendingRequests`](#defaults-maxpendingrequests): number - [`MaxPendingRequests`](#defaults-maxpendingrequests): number
- [`MaxConcurrentRequests`](#defaults-maxconcurrentrequests): number - [`MaxConcurrentRequests`](#defaults-maxconcurrentrequests): number
- [`PassiveHealthCheck`](#defaults-passivehealthcheck): map - [`PassiveHealthCheck`](#defaults-passivehealthcheck): map
- [`interval`](#defaults-passivehealthcheck): number - [`Interval`](#defaults-passivehealthcheck): number
- [`max_failures`](#defaults-passivehealthcheck): number - [`MaxFailures`](#defaults-passivehealthcheck): number
- [`enforcing_consecutive_5xx`](#defaults-passivehealthcheck): number - [`EnforcingConsecutive5xx`](#defaults-passivehealthcheck): number
- [`MaxEjectionPercent`](#defaults-passivehealthcheck): number
- [`BaseEjectionTime`](#defaults-passivehealthcheck): string
- [`Listeners`](#listeners): list of maps - [`Listeners`](#listeners): list of maps
- [`Port`](#listeners-port): number | `0` - [`Port`](#listeners-port): number | `0`
- [`Protocol`](#listeners-protocol): number | `tcp` - [`Protocol`](#listeners-protocol): number | `tcp`
@ -69,9 +71,11 @@ The following list describes the configuration hierarchy, language-specific data
- [`MaxPendingRequests`](#listeners-services-maxconnections): number | `0` - [`MaxPendingRequests`](#listeners-services-maxconnections): number | `0`
- [`MaxConcurrentRequests`](#listeners-services-maxconnections): number | `0` - [`MaxConcurrentRequests`](#listeners-services-maxconnections): number | `0`
- [`PassiveHealthCheck`](#listeners-services-passivehealthcheck): map - [`PassiveHealthCheck`](#listeners-services-passivehealthcheck): map
- [`interval`](#listeners-services-passivehealthcheck): number - [`Interval`](#listeners-services-passivehealthcheck): number
- [`max_failures`](#listeners-services-passivehealthcheck): number - [`MaxFailures`](#listeners-services-passivehealthcheck): number
- [`enforcing_consecutive_5xx`](#listeners-services-passivehealthcheck): number - [`EnforcingConsecutive5xx`](#listeners-services-passivehealthcheck): number
- [`MaxEjectionPercent`](#listeners-services-passivehealthcheck): number
- [`BaseEjectionTime`](#listeners-services-passivehealthcheck): string
- [`TLS`](#listeners-tls): map - [`TLS`](#listeners-tls): map
- [`Enabled`](#listeners-tls-enabled): boolean | `false` - [`Enabled`](#listeners-tls-enabled): boolean | `false`
- [`TLSMinVersion`](#listeners-tls-tlsminversion): string | `TLSv1_2` - [`TLSMinVersion`](#listeners-tls-tlsminversion): string | `TLSv1_2`
@ -104,9 +108,11 @@ The following list describes the configuration hierarchy, language-specific data
- [`maxPendingRequests`](#spec-defaults-maxpendingrequests): number - [`maxPendingRequests`](#spec-defaults-maxpendingrequests): number
- [`maxConcurrentRequests`](#spec-defaults-maxconcurrentrequests): number - [`maxConcurrentRequests`](#spec-defaults-maxconcurrentrequests): number
- [`passiveHealthCheck`](#spec-defaults-passivehealthcheck): map - [`passiveHealthCheck`](#spec-defaults-passivehealthcheck): map
- [`interval`](#spec-defaults-passivehealthcheck): number | no proxy's default value - [`interval`](#spec-defaults-passivehealthcheck): string
- [`max_failures`](#spec-defaults-passivehealthcheck): number | no proxy's default value - [`maxFailures`](#spec-defaults-passivehealthcheck): integer
- [`enforcing_consecutive_5xx`](#spec-defaults-passivehealthcheck): number | proxy's default value - [`enforcingConsecutive5xx`](#spec-defaults-passivehealthcheck): number
- [`maxEjectionPercent`](#spec-defaults-passivehealthcheck): number
- [`baseEjectionTime`](#spec-defaults-passivehealthcheck): string
- [`listeners`](#spec-listeners): list of maps - [`listeners`](#spec-listeners): list of maps
- [`port`](#spec-listeners-port): number | `0` - [`port`](#spec-listeners-port): number | `0`
- [`protocol`](#spec-listeners-protocol): number | `tcp` - [`protocol`](#spec-listeners-protocol): number | `tcp`
@ -131,9 +137,11 @@ The following list describes the configuration hierarchy, language-specific data
- [`maxPendingRequests`](#spec-listeners-services-maxconnections): number | `0` - [`maxPendingRequests`](#spec-listeners-services-maxconnections): number | `0`
- [`maxConcurrentRequests`](#spec-listeners-services-maxconnections): number | `0` - [`maxConcurrentRequests`](#spec-listeners-services-maxconnections): number | `0`
- [`passiveHealthCheck`](#spec-listeners-services-passivehealthcheck): map - [`passiveHealthCheck`](#spec-listeners-services-passivehealthcheck): map
- [`interval`](#spec-listeners-services-passivehealthcheck): number - [`interval`](#spec-listeners-services-passivehealthcheck): string
- [`max_failures`](#spec-listeners-services-passivehealthcheck): number - [`maxFailures`](#spec-listeners-services-passivehealthcheck): number
- [`enforcing_consecutive_5xx`](#spec-listeners-services-passivehealthcheck): number - [`enforcingConsecutive5xx`](#spec-listeners-services-passivehealthcheck): number
- [`maxEjectionPercent`](#spec-listeners-services-passivehealthcheck): integer
- [`baseEjectionTime`](#spec-listeners-services-passivehealthcheck): string
- [`tls`](#spec-listeners-tls): map - [`tls`](#spec-listeners-tls): map
- [`enabled`](#spec-listeners-tls-enabled): boolean | `false` - [`enabled`](#spec-listeners-tls-enabled): boolean | `false`
- [`tlsMinVersion`](#spec-listeners-tls-tlsminversion): string | `TLSv1_2` - [`tlsMinVersion`](#spec-listeners-tls-tlsminversion): string | `TLSv1_2`
@ -176,13 +184,15 @@ TLS = {
} }
} }
Defaults = { Defaults = {
MaxConnections = 0 MaxConnections = <number>
MaxPendingRequests = 0 MaxPendingRequests = <number>
MaxConcurrentRequests = 0 MaxConcurrentRequests = <number>
PassiveHealthCheck = { PassiveHealthCheck = {
interval = 10 Interval = "<the time between checks>"
max_failures = 5 MaxFailures = <number>
enforcing_consecutive_5xx = 100 EnforcingConsecutive5xx = <number>
MaxEjectionPercent = <number>
BaseEjectionTime = "<the base time that a host is ejected for>"
} }
} }
Listeners = [ Listeners = [
@ -216,7 +226,7 @@ Listeners = [
ResponseHeaderName = "<response header value to set>" ResponseHeaderName = "<response header value to set>"
} }
Remove = [ Remove = [
"<response header remove>" "<response header to remove>"
] ]
} }
TLS = { TLS = {
@ -229,9 +239,11 @@ Listeners = [
MaxPendingRequests = <number> MaxPendingRequests = <number>
MaxConcurrentRequests = <number> MaxConcurrentRequests = <number>
PassiveHealthCheck = { PassiveHealthCheck = {
interval = 10 Interval = "<the time between checks>"
max_failures = 5 MaxFailures = <number>
enforcing_consecutive_5xx = 100 EnforcingConsecutive5xx = <number>
MaxEjectionPercent = <number>
BaseEjectionTime = "<the base time that a host is ejected for>"
} }
}] }]
TLS = { TLS = {
@ -271,13 +283,15 @@ spec:
clusterName: <name of SDS cluster> clusterName: <name of SDS cluster>
certResource: <SDS resource name> certResource: <SDS resource name>
defaults: defaults:
maxConnections: 0 maxConnections: <number>
maxPendingRequests: 0 maxPendingRequests: <number>
maxConcurrentRequests: 0 maxConcurrentRequests: <number>
passiveHealthCheck: passiveHealthCheck:
interval: 10 interval: "<the time between checks>"
max_failures: 5 maxFailures: <number>
enforcing_consecutive_5xx: 100 enforcingConsecutive5xx: <number>
maxEjectionPercent: <number>
baseEjectionTime: "<the base time that a host is ejected for>"
listeners: listeners:
- port: 0 - port: 0
protocol: tcp protocol: tcp
@ -292,7 +306,7 @@ spec:
requestHeaderName: <request header value to add> requestHeaderName: <request header value to add>
set: set:
requestHeaderName: <request header value to set> requestHeaderName: <request header value to set>
remove: remove:
- <request header to remove> - <request header to remove>
responseHeaders: responseHeaders:
add: add:
@ -300,7 +314,7 @@ spec:
set: set:
responseHeaderName: <response header value to set> responseHeaderName: <response header value to set>
remove: remove:
- <response header remove> - <response header to remove>
tls: tls:
sds: sds:
clusterName: <name of SDS cluster> clusterName: <name of SDS cluster>
@ -309,9 +323,11 @@ spec:
maxPendingRequests: <number> maxPendingRequests: <number>
maxConcurrentRequests: <number> maxConcurrentRequests: <number>
passiveHealthCheck: passiveHealthCheck:
interval: 10 interval: "<the time between checks>"
max_failures: 5 maxFailures: <number>
enforcing_consecutive_5xx: 100 enforcingConsecutive5xx:<number>
maxEjectionPercent: <number>
baseEjectionTime: "<the base time that a host is ejected for>"
tls: tls:
enabled: false enabled: false
tlsMinVersion: TLSv1_2 tlsMinVersion: TLSv1_2
@ -349,9 +365,9 @@ spec:
} }
}, },
"Defaults" : { "Defaults" : {
"MaxConnections" : 0, "MaxConnections" : <number>,
"MaxPendingRequests" : 0, "MaxPendingRequests" : <number>,
"MaxConcurrentRequests": 0, "MaxConcurrentRequests": <number>,
"PassiveHealthCheck" : { "PassiveHealthCheck" : {
"interval": "<the time between checks>", "interval": "<the time between checks>",
"maxFailures": <number>, "maxFailures": <number>,
@ -391,7 +407,7 @@ spec:
"ResponseHeaderName" : "<response header value to set>" "ResponseHeaderName" : "<response header value to set>"
}, },
"Remove" : [ "Remove" : [
"<response header remove>" "<response header to remove>"
] ]
}, },
"TLS" : { "TLS" : {
@ -406,10 +422,9 @@ spec:
"PassiveHealthCheck" : { "PassiveHealthCheck" : {
"interval": "<the time between checks>", "interval": "<the time between checks>",
"maxFailures": <number>, "maxFailures": <number>,
"enforcingConsecutive5xx":<number>, "enforcingConsecutive5xx": <number>,
"maxEjectionPercent": <number>, "maxEjectionPercent": <number>,
"baseEjectionTime": "<the base time that a host is ejected for>" "baseEjectionTime": "<the base time that a host is ejected for>"
}
} }
], ],
"TLS" : { "TLS" : {
@ -636,9 +651,11 @@ The following table describes the configurations for passive health checks:
| Parameter | Description | Data type | Default | | Parameter | Description | Data type | Default |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `interval` | Specifies the time in nanoseconds between checks. | Integer | Proxy's default configuration, which is `10` for Envoy | | `Interval` | Specifies the time between checks. | string | `0s` |
| `max_failures` | Specifies the number of consecutive failures that cause a host to be removed from the upstream cluster. | Integer | Proxy's default configuration, which is `5` for Envoy | | `MaxFailures` | Specifies the number of consecutive failures allowed per check interval. If exceeded, Consul removes the host from the load balancer. | integer | `0` |
| `enforcing_consecutive_5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | Integer | Proxy's default configuration, which is `100` for Envoy | | `EnforcingConsecutive5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | integer | `100` |
| `MaxEjectionPercent` | Specifies the maximum percentage of an upstream cluster that Consul ejects when the proxy reports an outlier. Consul ejects at least one host when an outlier is detected regardless of the value. | integer | `10` |
| `BaseEjectionTime` | Specifies the minimum amount of time that an ejected host must remain outside the cluster before rejoining. The real time is equal to the value of the `BaseEjectionTime` multiplied by the number of times the host has been ejected. | string | `30s` |
### `Listeners[]` ### `Listeners[]`
@ -871,9 +888,11 @@ The following table describes the configurations for passive health checks:
| Parameter | Description | Data type | Default | | Parameter | Description | Data type | Default |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `interval` | Specifies the time in nanoseconds between checks. | Integer | Proxy's default configuration, which is `10` for Envoy | | `Interval` | Specifies the time between checks. | string | `0s` |
| `max_failures` | Specifies the number of consecutive failures that cause a host to be removed from the upstream cluster. | Integer | Proxy's default configuration, which is `5` for Envoy | | `MaxFailures` | Specifies the number of consecutive failures allowed per check interval. If exceeded, Consul removes the host from the load balancer. | integer | `0` |
| `enforcing_consecutive_5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | Integer | Proxy's default configuration, which is `100` for Envoy | | `EnforcingConsecutive5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | integer | `100` |
| `MaxEjectionPercent` | Specifies the maximum percentage of an upstream cluster that Consul ejects when the proxy reports an outlier. Consul ejects at least one host when an outlier is detected regardless of the value. | integer | `10` |
| `BaseEjectionTime` | Specifies the minimum amount of time that an ejected host must remain outside the cluster before rejoining. The real time is equal to the value of the `BaseEjectionTime` multiplied by the number of times the host has been ejected. | string | `30s` |
### `Listeners[].TLS` ### `Listeners[].TLS`
@ -1167,9 +1186,11 @@ The following table describes the configurations for passive health checks:
| Parameter | Description | Data type | Default | | Parameter | Description | Data type | Default |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `interval` | Specifies the time in nanoseconds between checks. | Integer | Proxy's default configuration, which is `10` for Envoy | | `Interval` | Specifies the time between checks. | string | `0s` |
| `max_failures` | Specifies the number of consecutive failures that cause a host to be removed from the upstream cluster. | Integer | Proxy's default configuration, which is `5` for Envoy | | `MaxFailures` | Specifies the number of consecutive failures allowed per check interval. If exceeded, Consul removes the host from the load balancer. | integer | `0` |
| `enforcing_consecutive_5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | Integer | Proxy's default configuration, which is `100` for Envoy | | `EnforcingConsecutive5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | integer | `100` |
| `MaxEjectionPercent` | Specifies the maximum percentage of an upstream cluster that Consul ejects when the proxy reports an outlier. Consul ejects at least one host when an outlier is detected regardless of the value. | integer | `10` |
| `BaseEjectionTime` | Specifies the minimum amount of time that an ejected host must remain outside the cluster before rejoining. The real time is equal to the value of the `BaseEjectionTime` multiplied by the number of times the host has been ejected. | string | `30s` |
### `spec.listeners[]` ### `spec.listeners[]`
@ -1403,9 +1424,11 @@ The following table describes the configurations for passive health checks:
| Parameter | Description | Data type | Default | | Parameter | Description | Data type | Default |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `interval` | Specifies the time in nanoseconds between checks. | Integer | Proxy's default configuration, which is `10` for Envoy | | `Interval` | Specifies the time between checks. | string | `0s` |
| `max_failures` | Specifies the number of consecutive failures that cause a host to be removed from the upstream cluster. | Integer | Proxy's default configuration, which is `5` for Envoy | | `MaxFailures` | Specifies the number of consecutive failures allowed per check interval. If exceeded, Consul removes the host from the load balancer. | integer | `0` |
| `enforcing_consecutive_5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | Integer | Proxy's default configuration, which is `100` for Envoy | | `EnforcingConsecutive5xx` | Specifies a percentage that indicates how many times out of 100 that Consul ejects the host when it detects an outlier status. The outlier status is determined by consecutive errors in the 500-599 response range. | integer | `100` |
| `MaxEjectionPercent` | Specifies the maximum percentage of an upstream cluster that Consul ejects when the proxy reports an outlier. Consul ejects at least one host when an outlier is detected regardless of the value. | integer | `10` |
| `BaseEjectionTime` | Specifies the minimum amount of time that an ejected host must remain outside the cluster before rejoining. The real time is equal to the value of the `BaseEjectionTime` multiplied by the number of times the host has been ejected. | string | `30s` |
### `spec.listeners[].tls` ### `spec.listeners[].tls`

View File

@ -20,69 +20,69 @@ The following list outlines field hierarchy, language-specific data types, requi
- [`Name`](#name): string | required - [`Name`](#name): string | required
- [`Namespace`](#namespace): string | `default` <EnterpriseAlert inline /> - [`Namespace`](#namespace): string | `default` <EnterpriseAlert inline />
- [`Partition`](#partition): string | `default` <EnterpriseAlert inline /> - [`Partition`](#partition): string | `default` <EnterpriseAlert inline />
- [`Meta`](#meta): map - [`Meta`](#meta): map
- [`Protocol`](#protocol): string | `tcp` - [`Protocol`](#protocol): string | `tcp`
- [`BalanceInboundConnections`](#balanceinboundconnections): string - [`BalanceInboundConnections`](#balanceinboundconnections): string
- [`Mode`](#mode): string - [`Mode`](#mode): string
- [`UpstreamConfig`](#upstreamconfig): map - [`UpstreamConfig`](#upstreamconfig): map
- [`Overrides`](#upstreamconfig-overrides): map - [`Overrides`](#upstreamconfig-overrides): map
- [`Name`](#upstreamconfig-overrides-name): string - [`Name`](#upstreamconfig-overrides-name): string
- [`Namespace`](#upstreamconfig-overrides-namespace): string - [`Namespace`](#upstreamconfig-overrides-namespace): string
- [`Peer`](#upstreamconfig-overrides-peer): string - [`Peer`](#upstreamconfig-overrides-peer): string
- [`Protocol`](#upstreamconfig-overrides-protocol): string - [`Protocol`](#upstreamconfig-overrides-protocol): string
- [`ConnectTimeoutMs`](#upstreamconfig-overrides-connecttimeoutms): int | `5000` - [`ConnectTimeoutMs`](#upstreamconfig-overrides-connecttimeoutms): int | `5000`
- [`MeshGateway`](#upstreamconfig-overrides-meshgateway): map - [`MeshGateway`](#upstreamconfig-overrides-meshgateway): map
- [`mode`](#upstreamconfig-overrides-meshgateway): string - [`mode`](#upstreamconfig-overrides-meshgateway): string
- [`BalanceOutboundConnections`](#upstreamconfig-overrides-balanceoutboundconnections): string - [`BalanceOutboundConnections`](#upstreamconfig-overrides-balanceoutboundconnections): string
- [`Limits`](#upstreamconfig-overrides-limits): map - [`Limits`](#upstreamconfig-overrides-limits): map
- [`MaxConnections`](#upstreamconfig-overrides-limits): number | `0` - [`MaxConnections`](#upstreamconfig-overrides-limits): number | `0`
- [`MaxPendingRequests`](#upstreamconfig-overrides-limits): number | `0` - [`MaxPendingRequests`](#upstreamconfig-overrides-limits): number | `0`
- [`MaxConcurrentRequests`](#upstreamconfig-overrides-limits): number | `0` - [`MaxConcurrentRequests`](#upstreamconfig-overrides-limits): number | `0`
- [`PassiveHealthCheck`](#upstreamconfig-overrides-passivehealthcheck): map - [`PassiveHealthCheck`](#upstreamconfig-overrides-passivehealthcheck): map
- [`Interval`](#upstreamconfig-overrides-passivehealthcheck): string | `0s` - [`Interval`](#upstreamconfig-overrides-passivehealthcheck): string | `0s`
- [`MaxFailures`](#upstreamconfig-overrides-passivehealthcheck): number | `0` - [`MaxFailures`](#upstreamconfig-overrides-passivehealthcheck): number | `0`
- [`EnforcingConsecutive5xx`](#upstreamconfig-overrides-passivehealthcheck): number | `0` - [`EnforcingConsecutive5xx`](#upstreamconfig-overrides-passivehealthcheck): number | `0`
- [`MaxEjectionPercent`](#upstreamconfig-overrides-passivehealthcheck): number | `0` - [`MaxEjectionPercent`](#upstreamconfig-overrides-passivehealthcheck): number | `0`
- [`BaseEjectionTime`](#upstreamconfig-overrides-passivehealthcheck): string | `30s` - [`BaseEjectionTime`](#upstreamconfig-overrides-passivehealthcheck): string | `30s`
- [`Defaults`](#upstreamconfig-defaults): map - [`Defaults`](#upstreamconfig-defaults): map
- [`Protocol`](#upstreamconfig-defaults-protocol): string - [`Protocol`](#upstreamconfig-defaults-protocol): string
- [`ConnectTimeoutMs`](#upstreamconfig-defaults-connecttimeoutms): int | `5000` - [`ConnectTimeoutMs`](#upstreamconfig-defaults-connecttimeoutms): int | `5000`
- [`MeshGateway`](#upstreamconfig-defaults-meshgateway): map - [`MeshGateway`](#upstreamconfig-defaults-meshgateway): map
- [`mode`](#upstreamconfig-defaults-meshgateway): string - [`mode`](#upstreamconfig-defaults-meshgateway): string
- [`BalanceOutboundConnections`](#upstreamconfig-defaults-balanceoutboundconnections): string - [`BalanceOutboundConnections`](#upstreamconfig-defaults-balanceoutboundconnections): string
- [`Limits`](#upstreamconfig-defaults-limits): map - [`Limits`](#upstreamconfig-defaults-limits): map
- [`MaxConnections`](#upstreamconfig-defaults-limits): number | `0` - [`MaxConnections`](#upstreamconfig-defaults-limits): number | `0`
- [`MaxPendingRequests`](#upstreamconfig-defaults-limits): number | `0` - [`MaxPendingRequests`](#upstreamconfig-defaults-limits): number | `0`
- [`MaxConcurrentRequests`](#upstreamconfig-defaults-limits): number | `0` - [`MaxConcurrentRequests`](#upstreamconfig-defaults-limits): number | `0`
- [`PassiveHealthCheck`](#upstreamconfig-defaults-passivehealthcheck): map - [`PassiveHealthCheck`](#upstreamconfig-defaults-passivehealthcheck): map
- [`Interval`](#upstreamconfig-defaults-passivehealthcheck): string | `0s` - [`Interval`](#upstreamconfig-defaults-passivehealthcheck): string | `0s`
- [`MaxFailures`](#upstreamconfig-defaults-passivehealthcheck): number | `0` - [`MaxFailures`](#upstreamconfig-defaults-passivehealthcheck): number | `0`
- [`EnforcingConsecutive5xx`](#upstreamconfig-defaults-passivehealthcheck): number | `100` - [`EnforcingConsecutive5xx`](#upstreamconfig-defaults-passivehealthcheck): number | `100`
- [`MaxEjectionPercent`](#upstreamconfig-defaults-passivehealthcheck): number | `0` - [`MaxEjectionPercent`](#upstreamconfig-defaults-passivehealthcheck): number | `0`
- [`BaseEjectionTime`](#upstreamconfig-defaults-passivehealthcheck): string | `30s` - [`BaseEjectionTime`](#upstreamconfig-defaults-passivehealthcheck): string | `30s`
- [`TransparentProxy`](#transparentproxy): map - [`TransparentProxy`](#transparentproxy): map
- [`OutboundListenerPort`](#transparentproxy): number | `15001` - [`OutboundListenerPort`](#transparentproxy): number | `15001`
- [`DialedDirectly`](#transparentproxy ): boolean | `false` - [`DialedDirectly`](#transparentproxy ): boolean | `false`
- [`MutualTLSMode`](#mutualtlsmode): string - [`MutualTLSMode`](#mutualtlsmode): string
- [`EnvoyExtensions`](#envoyextensions): list - [`EnvoyExtensions`](#envoyextensions): list
- [`Name`](#envoyextensions): string - [`Name`](#envoyextensions): string
- [`Required`](#envoyextensions): string - [`Required`](#envoyextensions): string
- [`Arguments`](#envoyextensions): map - [`Arguments`](#envoyextensions): map
- [`ConsulVersion`](#envoyextensions): string - [`ConsulVersion`](#envoyextensions): string
- [`EnvoyVersion`](#envoyextensions): string - [`EnvoyVersion`](#envoyextensions): string
- [`Destination`](#destination): map - [`Destination`](#destination): map
- [`Addresses`](#destination): list - [`Addresses`](#destination): list
- [`Port`](#destination): integer | `0` - [`Port`](#destination): integer | `0`
- [`MaxInboundConnections`](#maxinboundconnections): number | `0` - [`MaxInboundConnections`](#maxinboundconnections): number | `0`
- [`LocalConnectTimeoutMs`](#localconnecttimeoutms): number | `0` - [`LocalConnectTimeoutMs`](#localconnecttimeoutms): number | `0`
- [`LocalRequestTimeoutMs`](#localrequesttimeoutms): number | `0` - [`LocalRequestTimeoutMs`](#localrequesttimeoutms): number | `0`
- [`MeshGateway`](#meshgateway): map - [`MeshGateway`](#meshgateway): map
- [`Mode`](#meshgateway): string - [`Mode`](#meshgateway): string
- [`ExternalSNI`](#externalsni): string - [`ExternalSNI`](#externalsni): string
- [`Expose`](#expose): map - [`Expose`](#expose): map
- [`Checks`](#expose-checks): boolean | `false` - [`Checks`](#expose-checks): boolean | `false`
- [`Paths`](#expose-paths): list - [`Paths`](#expose-paths): list
- [`Path`](#expose-paths): string - [`Path`](#expose-paths): string
- [`LocalPathPort`](#expose-paths): integer | `0` - [`LocalPathPort`](#expose-paths): integer | `0`
- [`ListenerPort`](#expose-paths): integer | `0` - [`ListenerPort`](#expose-paths): integer | `0`
- [`Protocol`](#expose-paths): string | `http` - [`Protocol`](#expose-paths): string | `http`
@ -91,73 +91,73 @@ The following list outlines field hierarchy, language-specific data types, requi
<Tab heading="Kubernetes YAML" group="yaml"> <Tab heading="Kubernetes YAML" group="yaml">
- [`apiVersion`](#apiversion): string | required | must be set to `consul.hashicorp.com/v1alpha1` - [`apiVersion`](#apiversion): string | required | must be set to `consul.hashicorp.com/v1alpha1`
- [`kind`](#kind): string - [`kind`](#kind): string
- [`metadata`](#metadata): map - [`metadata`](#metadata): map
- [`name`](#name): string - [`name`](#name): string
- [`namespace`](#namespace): string | `default`` | <EnterpriseAlert inline /> - [`namespace`](#namespace): string | `default`` | <EnterpriseAlert inline />
- [`spec`](#spec): map - [`spec`](#spec): map
- [`protocol`](#protocol): string | `tcp` - [`protocol`](#protocol): string | `tcp`
- [`balanceInboundConnections`](#balanceinboundconnections): string - [`balanceInboundConnections`](#balanceinboundconnections): string
- [`mode`](#mode): string - [`mode`](#mode): string
- [`upstreamConfig`](#upstreamconfig): map - [`upstreamConfig`](#upstreamconfig): map
- [`overrides`](#upstreamconfig-overrides): list - [`overrides`](#upstreamconfig-overrides): list
- [`name`](#upstreamconfig-overrides-name): string - [`name`](#upstreamconfig-overrides-name): string
- [`namespace`](#upstreamconfig-overrides-namespace): string - [`namespace`](#upstreamconfig-overrides-namespace): string
- [`peer`](#upstreamconfig-overrides-peer): string - [`peer`](#upstreamconfig-overrides-peer): string
- [`protocol`](#upstreamconfig-overrides-protocol): string - [`protocol`](#upstreamconfig-overrides-protocol): string
- [`connectTimeoutMs`](#upstreamconfig-overrides-connecttimeoutms): number | `5000` - [`connectTimeoutMs`](#upstreamconfig-overrides-connecttimeoutms): number | `5000`
- [`meshGateway`](#upstreamconfig-overrides-meshgateway): map - [`meshGateway`](#upstreamconfig-overrides-meshgateway): map
- [`mode`](#upstreamconfig-overrides-meshgateway): string - [`mode`](#upstreamconfig-overrides-meshgateway): string
- [`balanceOutboundConnections`](#overrides-balanceoutboundconnections): string - [`balanceOutboundConnections`](#overrides-balanceoutboundconnections): string
- [`limits`](#upstreamconfig-overrides-limits): map - [`limits`](#upstreamconfig-overrides-limits): map
- [`maxConnections`](#upstreamconfig-overrides-limits): number | `0` - [`maxConnections`](#upstreamconfig-overrides-limits): number | `0`
- [`maxPendingRequests`](#upstreamconfig-overrides-limits): number | `0` - [`maxPendingRequests`](#upstreamconfig-overrides-limits): number | `0`
- [`maxConcurrentRequests`](#upstreamconfig-overrides-limits): number | `0` - [`maxConcurrentRequests`](#upstreamconfig-overrides-limits): number | `0`
- [`passiveHealthCheck`](#upstreamconfig-overrides-passivehealthcheck): map - [`passiveHealthCheck`](#upstreamconfig-overrides-passivehealthcheck): map
- [`interval`](#upstreamconfig-overrides-passivehealthcheck): string | `0s` - [`interval`](#upstreamconfig-overrides-passivehealthcheck): string | `0s`
- [`maxFailures`](#upstreamconfig-overrides-passivehealthcheck): number | `0` - [`maxFailures`](#upstreamconfig-overrides-passivehealthcheck): number | `0`
- [`enforcingConsecutive5xx`](#upstreamconfig-overrides-passivehealthcheck): number | `100` - [`enforcingConsecutive5xx`](#upstreamconfig-overrides-passivehealthcheck): number | `100`
- [`maxEjectionPercent`](#upstreamconfig-overrides-passivehealthcheck): number | `10` - [`maxEjectionPercent`](#upstreamconfig-overrides-passivehealthcheck): number | `10`
- [`baseEjectionTime`](#upstreamconfig-overrides-passivehealthcheck): string | `30s` - [`baseEjectionTime`](#upstreamconfig-overrides-passivehealthcheck): string | `30s`
- [`defaults`](#upstreamconfig-defaults): map - [`defaults`](#upstreamconfig-defaults): map
- [`protocol`](#upstreamconfig-defaults-protocol): string - [`protocol`](#upstreamconfig-defaults-protocol): string
- [`connectTimeoutMs`](#upstreamconfig-defaults-connecttimeoutms): number | `5000` - [`connectTimeoutMs`](#upstreamconfig-defaults-connecttimeoutms): number | `5000`
- [`meshGateway`](#upstreamconfig-defaults-meshgateway): map - [`meshGateway`](#upstreamconfig-defaults-meshgateway): map
- [`mode`](#upstreamconfig-defaults-meshgateway): string - [`mode`](#upstreamconfig-defaults-meshgateway): string
- [`balanceOutboundConnections`](#upstreamconfig-defaults-balanceoutboundconnections): string - [`balanceOutboundConnections`](#upstreamconfig-defaults-balanceoutboundconnections): string
- [`limits`](#upstreamconfig-defaults-limits): map - [`limits`](#upstreamconfig-defaults-limits): map
- [`maxConnections`](#upstreamconfig-defaults-limits): number | `0` - [`maxConnections`](#upstreamconfig-defaults-limits): number | `0`
- [`maxPendingRequests`](#upstreamconfig-defaults-limits): number | `0` - [`maxPendingRequests`](#upstreamconfig-defaults-limits): number | `0`
- [`maxConcurrentRequests`](#upstreamconfig-defaults-limits): number | `0` - [`maxConcurrentRequests`](#upstreamconfig-defaults-limits): number | `0`
- [`passiveHealthCheck`](#upstreamconfig-defaults-passivehealthcheck): map - [`passiveHealthCheck`](#upstreamconfig-defaults-passivehealthcheck): map
- [`interval`](#upstreamconfig-defaults-passivehealthcheck): string | `0s` - [`interval`](#upstreamconfig-defaults-passivehealthcheck): string | `0s`
- [`maxFailures`](#upstreamconfig-defaults-passivehealthcheck): number | `0` - [`maxFailures`](#upstreamconfig-defaults-passivehealthcheck): number | `0`
- [`enforcingConsecutive5xx`](#upstreamconfig-defaults-passivehealthcheck): number | `100` - [`enforcingConsecutive5xx`](#upstreamconfig-defaults-passivehealthcheck): number | `100`
- [`maxEjectionPercent`](#upstreamconfig-defaults-passivehealthcheck): number | `10` - [`maxEjectionPercent`](#upstreamconfig-defaults-passivehealthcheck): number | `10`
- [`baseEjectionTime`](#upstreamconfig-defaults-passivehealthcheck): string | `30s` - [`baseEjectionTime`](#upstreamconfig-defaults-passivehealthcheck): string | `30s`
- [`transparentProxy`](#transparentproxy): map - [`transparentProxy`](#transparentproxy): map
- [`outboundListenerPort`](#transparentproxy): number | `15001` - [`outboundListenerPort`](#transparentproxy): number | `15001`
- [`dialedDirectly`](#transparentproxy): boolean | `false` - [`dialedDirectly`](#transparentproxy): boolean | `false`
- [`mutualTLSMode`](#mutualtlsmode): string - [`mutualTLSMode`](#mutualtlsmode): string
- [`envoyExtensions`](#envoyextensions): list - [`envoyExtensions`](#envoyextensions): list
- [`name`](#envoyextensions): string - [`name`](#envoyextensions): string
- [`required`](#envoyextensions): string - [`required`](#envoyextensions): string
- [`arguments`](#envoyextensions): map - [`arguments`](#envoyextensions): map
- [`consulVersion`](#envoyextensions): string - [`consulVersion`](#envoyextensions): string
- [`envoyVersion`](#envoyextensions): string - [`envoyVersion`](#envoyextensions): string
- [`destination`](#destination): map - [`destination`](#destination): map
- [`addresses`](#destination): list - [`addresses`](#destination): list
- [`port`](#destination): number | `0` - [`port`](#destination): number | `0`
- [`maxInboundConnections`](#maxinboundconnections): number | `0` - [`maxInboundConnections`](#maxinboundconnections): number | `0`
- [`localConnectTimeoutMs`](#localconnecttimeoutms): number | `0` - [`localConnectTimeoutMs`](#localconnecttimeoutms): number | `0`
- [`localRequestTimeoutMs`](#localrequesttimeoutms): number | `0` - [`localRequestTimeoutMs`](#localrequesttimeoutms): number | `0`
- [`meshGateway`](#meshgateway): map - [`meshGateway`](#meshgateway): map
- [`mode`](#meshgateway): string - [`mode`](#meshgateway): string
- [`externalSNI`](#externalsni): string - [`externalSNI`](#externalsni): string
- [`expose`](#expose): map - [`expose`](#expose): map
- [`checks`](#expose-checks): boolean | `false` - [`checks`](#expose-checks): boolean | `false`
- [`paths`](#expose-paths): list - [`paths`](#expose-paths): list
- [`path`](#expose-paths): string - [`path`](#expose-paths): string
- [`localPathPort`](#expose-paths): number | `0` - [`localPathPort`](#expose-paths): number | `0`
- [`listenerPort`](#expose-paths): number | `0` - [`listenerPort`](#expose-paths): number | `0`
- [`protocol`](#expose-paths): string | `http` - [`protocol`](#expose-paths): string | `http`
@ -300,6 +300,8 @@ spec:
interval: "0s" interval: "0s"
maxFailures: 0 maxFailures: 0
enforcingConsecutive5xx: 100 enforcingConsecutive5xx: 100
maxEjectionPercent: 10
baseEjectionTime: "30s"
defaults: defaults:
protocol: <default protocol for the upstream listener> protocol: <default protocol for the upstream listener>
connectTimeoutMs: 5000 connectTimeoutMs: 5000
@ -311,20 +313,22 @@ spec:
maxPendingRequests: 0 maxPendingRequests: 0
maxConcurrentRequests: 0 maxConcurrentRequests: 0
passiveHealthCheck: passiveHealthCheck:
interval: 0s interval: "0s"
maxFailures: 0 maxFailures: 0
enforcingConsecutive5xx: 100 enforcingConsecutive5xx: 100
maxEjectionPercent: 10
baseEjectionTime: "30s"
transparentProxy: transparentProxy:
outboundListenerPort: 15001 outboundListenerPort: 15001
dialedDirectly: false dialedDirectly: false
mutualTLSMode: strict mutualTLSMode: strict
envoyExtensions: envoyExtensions:
- name: <name of the extension> - name: <name of the extension>
required: false required: false
arguments: arguments:
- <specific to each extension> - <specific to each extension>
consulVersion: <Consul version constraint for applying the extension> consulVersion: <Consul version constraint for applying the extension>
envoyVersion: <Envoy version constraint for applying the extension> envoyVersion: <Envoy version constraint for applying the extension>
destination: destination:
addresses: addresses:
- <first hostname or IP address> - <first hostname or IP address>
@ -2171,4 +2175,4 @@ Reading a `service-defaults` config entry requires `service:read` on the resourc
Creating, updating, or deleting a `service-defaults` config entry requires Creating, updating, or deleting a `service-defaults` config entry requires
`service:write` on the resource. `service:write` on the resource.
--> -->