@@ -6340,7 +6548,7 @@ DeploymentSettings
(Appears on:
-ContourSettings,
+ContourSettings,
EnvoySettings)
@@ -7697,7 +7905,7 @@
HealthConfig
(Appears on:
-ContourConfigurationSpec,
+ContourConfigurationSpec,
EnvoyConfig)
@@ -7788,7 +7996,7 @@
LogLevel
(string
alias)
(Appears on:
-ContourSettings,
+ContourSettings,
EnvoySettings)
@@ -7828,7 +8036,7 @@
MetricsConfig
(Appears on:
-ContourConfigurationSpec,
+ContourConfigurationSpec,
EnvoyConfig)
@@ -7948,10 +8156,10 @@
NamespacedName
(Appears on:
-EnvoyConfig,
-GatewayConfig,
-HTTPProxyConfig,
-RateLimitServiceConfig,
+EnvoyConfig,
+GatewayConfig,
+HTTPProxyConfig,
+RateLimitServiceConfig,
TracingConfig)
@@ -8188,7 +8396,7 @@
NodePlacement
(Appears on:
-ContourSettings,
+ContourSettings,
EnvoySettings)
From b1767bd46cca142aadc727b76ab9a1784a135de5 Mon Sep 17 00:00:00 2001
From: yangyang
Date: Mon, 4 Dec 2023 10:26:04 +0800
Subject: [PATCH 2/7] update api-reference.html
Signed-off-by: yangyang
---
.../docs/main/config/api-reference.html | 60 +++++++++----------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/site/content/docs/main/config/api-reference.html b/site/content/docs/main/config/api-reference.html
index b180c7995a9..95563ff4154 100644
--- a/site/content/docs/main/config/api-reference.html
+++ b/site/content/docs/main/config/api-reference.html
@@ -277,7 +277,7 @@ AuthorizationPolicy
(Appears on:
-AuthorizationServer,
+AuthorizationServer,
Route)
@@ -328,7 +328,7 @@
AuthorizationServer
(Appears on:
-VirtualHost,
+VirtualHost,
ContourConfigurationSpec)
@@ -812,7 +812,7 @@
CookieRewritePolicy
(Appears on:
-Route,
+Route,
Service)
@@ -903,9 +903,9 @@
DetailedCondition
(Appears on:
-HTTPProxyStatus,
-TLSCertificateDelegationStatus,
-ContourConfigurationStatus,
+HTTPProxyStatus,
+TLSCertificateDelegationStatus,
+ContourConfigurationStatus,
ExtensionServiceStatus)
@@ -1226,7 +1226,7 @@
GlobalRateLimitPolicy
(Appears on:
-RateLimitPolicy,
+RateLimitPolicy,
RateLimitServiceConfig)
@@ -1880,7 +1880,7 @@
(Appears on:
-MatchCondition,
+MatchCondition,
RequestHeaderValueMatchDescriptor)
@@ -2048,7 +2048,7 @@
(Appears on:
-HeadersPolicy,
+HeadersPolicy,
LocalRateLimitPolicy)
@@ -2092,7 +2092,7 @@
(Appears on:
-Route,
+Route,
Service)
@@ -2144,7 +2144,7 @@
IPFilterPolicy
(Appears on:
-Route,
+Route,
VirtualHost)
@@ -2440,8 +2440,8 @@
LoadBalancerPolicy
(Appears on:
-Route,
-TCPProxy,
+Route,
+TCPProxy,
ExtensionServiceSpec)
@@ -2588,7 +2588,7 @@
MatchCondition
(Appears on:
-Include,
+Include,
Route)
@@ -2680,7 +2680,7 @@
OutlierDetection
(Appears on:
-Service,
+Service,
ContourConfigurationSpec)
@@ -3162,7 +3162,7 @@
RateLimitPolicy
(Appears on:
-Route,
+Route,
VirtualHost)
@@ -4023,7 +4023,7 @@
Service
(Appears on:
-Route,
+Route,
TCPProxy)
@@ -4774,7 +4774,7 @@
TimeoutPolicy
(Appears on:
-Route,
+Route,
ExtensionServiceSpec)
@@ -4843,8 +4843,8 @@
UpstreamValidation
(Appears on:
-RemoteJWKS,
-Service,
+RemoteJWKS,
+Service,
ExtensionServiceSpec)
@@ -5869,7 +5869,7 @@
ContourConfiguratio
(Appears on:
-ContourConfiguration,
+ContourConfiguration,
ContourDeploymentSpec)
@@ -6548,7 +6548,7 @@
DeploymentSettings
(Appears on:
-ContourSettings,
+ContourSettings,
EnvoySettings)
@@ -7905,7 +7905,7 @@
HealthConfig
(Appears on:
-ContourConfigurationSpec,
+ContourConfigurationSpec,
EnvoyConfig)
@@ -7996,7 +7996,7 @@
LogLevel
(string
alias)
(Appears on:
-ContourSettings,
+ContourSettings,
EnvoySettings)
@@ -8036,7 +8036,7 @@
MetricsConfig
(Appears on:
-ContourConfigurationSpec,
+ContourConfigurationSpec,
EnvoyConfig)
@@ -8156,10 +8156,10 @@
NamespacedName
(Appears on:
-EnvoyConfig,
-GatewayConfig,
-HTTPProxyConfig,
-RateLimitServiceConfig,
+EnvoyConfig,
+GatewayConfig,
+HTTPProxyConfig,
+RateLimitServiceConfig,
TracingConfig)
@@ -8396,7 +8396,7 @@
NodePlacement
(Appears on:
-ContourSettings,
+ContourSettings,
EnvoySettings)
From 2b9111fe46b6ce540c84e5b51d1392e4cf0d56ed Mon Sep 17 00:00:00 2001
From: yangyang
Date: Fri, 22 Dec 2023 18:05:52 +0800
Subject: [PATCH 3/7] update
Signed-off-by: yangyang
---
internal/dag/policy.go | 59 +++++++---------
internal/dag/policy_test.go | 25 +++----
internal/envoy/v3/cluster.go | 40 +++--------
internal/envoy/v3/cluster_test.go | 113 +++++++++++-------------------
4 files changed, 84 insertions(+), 153 deletions(-)
diff --git a/internal/dag/policy.go b/internal/dag/policy.go
index 7cf5d9d31a6..a86197549ee 100644
--- a/internal/dag/policy.go
+++ b/internal/dag/policy.go
@@ -837,50 +837,39 @@ func outlierDetectionPolicy(globalOutlierDetection, serviceOutlierDetection *con
}
var err error
- var interval, baseEjectionTime, maxEjectionTime, maxEjectionTimeJitter time.Duration
-
- if outlierDetection.Interval != nil {
- interval, err = time.ParseDuration(ref.Val(outlierDetection.Interval, "10s"))
- if err != nil {
- return nil, fmt.Errorf("error parsing interval: %w", err)
- }
- out.Interval = interval
+ out.Interval, err = time.ParseDuration(ref.Val(outlierDetection.Interval, "10s"))
+ if err != nil {
+ return nil, fmt.Errorf("error parsing interval: %w", err)
}
-
- if outlierDetection.BaseEjectionTime != nil {
- baseEjectionTime, err = time.ParseDuration(ref.Val(outlierDetection.BaseEjectionTime, "30s"))
- if err != nil {
- return nil, fmt.Errorf("error parsing baseEjectionTime: %w", err)
- }
- out.BaseEjectionTime = baseEjectionTime
+ if out.Interval == 0 {
+ return nil, fmt.Errorf("interval must be greater than 0s")
}
- if outlierDetection.MaxEjectionTime != nil {
- maxEjectionTime, err = time.ParseDuration(ref.Val(outlierDetection.MaxEjectionTime, "300s"))
- if err != nil {
- return nil, fmt.Errorf("error parsing maxEjectionTime: %w", err)
- }
- out.MaxEjectionTime = maxEjectionTime
+ out.BaseEjectionTime, err = time.ParseDuration(ref.Val(outlierDetection.BaseEjectionTime, "30s"))
+ if err != nil {
+ return nil, fmt.Errorf("error parsing baseEjectionTime: %w", err)
}
-
- if outlierDetection.ConsecutiveServerErrors != nil {
- out.ConsecutiveServerErrors = ref.Val(outlierDetection.ConsecutiveServerErrors, 5)
+ if out.BaseEjectionTime == 0 {
+ return nil, fmt.Errorf("baseEjectionTime must be greater than 0s")
}
- if outlierDetection.ConsecutiveLocalOriginFailure != nil {
- out.ConsecutiveLocalOriginFailure = ref.Val(outlierDetection.ConsecutiveLocalOriginFailure, 5)
+ out.MaxEjectionTime, err = time.ParseDuration(ref.Val(outlierDetection.MaxEjectionTime, "300s"))
+ if err != nil {
+ return nil, fmt.Errorf("error parsing maxEjectionTime: %w", err)
}
-
- if outlierDetection.MaxEjectionPercent != nil {
- out.MaxEjectionPercent = ref.Val(outlierDetection.MaxEjectionPercent, 10)
+ if out.MaxEjectionTime < out.BaseEjectionTime {
+ return nil, fmt.Errorf("maxEjectionTime cannot be smaller than baseEjectionTime")
}
- if outlierDetection.MaxEjectionTimeJitter != nil {
- maxEjectionTimeJitter, err = time.ParseDuration(ref.Val(outlierDetection.MaxEjectionTimeJitter, "0s"))
- if err != nil {
- return nil, fmt.Errorf("error parsing maxEjectionTimeJitter: %w", err)
- }
- out.MaxEjectionTimeJitter = maxEjectionTimeJitter
+ out.ConsecutiveServerErrors = ref.Val(outlierDetection.ConsecutiveServerErrors, 5)
+
+ out.ConsecutiveLocalOriginFailure = ref.Val(outlierDetection.ConsecutiveLocalOriginFailure, 5)
+
+ out.MaxEjectionPercent = ref.Val(outlierDetection.MaxEjectionPercent, 10)
+
+ out.MaxEjectionTimeJitter, err = time.ParseDuration(ref.Val(outlierDetection.MaxEjectionTimeJitter, "0s"))
+ if err != nil {
+ return nil, fmt.Errorf("error parsing maxEjectionTimeJitter: %w", err)
}
return out, nil
diff --git a/internal/dag/policy_test.go b/internal/dag/policy_test.go
index 3c8d7714105..ebd279fcc03 100644
--- a/internal/dag/policy_test.go
+++ b/internal/dag/policy_test.go
@@ -1358,15 +1358,16 @@ func TestOutlierDetectionPolicy(t *testing.T) {
want: nil,
},
"empty": {
- in: &contour_api_v1.OutlierDetection{},
- want: &OutlierDetectionPolicy{},
- },
- "consecutive server errors": {
- in: &contour_api_v1.OutlierDetection{
- ConsecutiveServerErrors: ref.To(uint32(5)),
- },
+ in: &contour_api_v1.OutlierDetection{},
want: &OutlierDetectionPolicy{
- ConsecutiveServerErrors: 5,
+ ConsecutiveServerErrors: 5,
+ Interval: 10 * time.Second,
+ BaseEjectionTime: 30 * time.Second,
+ MaxEjectionTime: 300 * time.Second,
+ SplitExternalLocalOriginErrors: false,
+ ConsecutiveLocalOriginFailure: 5,
+ MaxEjectionPercent: 10,
+ MaxEjectionTimeJitter: 0,
},
},
"interval no unit": {
@@ -1383,14 +1384,6 @@ func TestOutlierDetectionPolicy(t *testing.T) {
want: nil,
wantErr: true,
},
- "interval good": {
- in: &contour_api_v1.OutlierDetection{
- Interval: ref.To("10s"),
- },
- want: &OutlierDetectionPolicy{
- Interval: 10 * time.Second,
- },
- },
"normal": {
in: &contour_api_v1.OutlierDetection{
ConsecutiveServerErrors: ref.To(uint32(5)),
diff --git a/internal/envoy/v3/cluster.go b/internal/envoy/v3/cluster.go
index 6580ed55709..e7a43034376 100644
--- a/internal/envoy/v3/cluster.go
+++ b/internal/envoy/v3/cluster.go
@@ -382,42 +382,20 @@ func outlierDetection(policy *dag.OutlierDetectionPolicy) *envoy_cluster_v3.Outl
EnforcingConsecutive_5Xx: protobuf.UInt32Zero(),
EnforcingSuccessRate: protobuf.UInt32Zero(),
EnforcingConsecutiveGatewayFailure: protobuf.UInt32Zero(),
+ EnforcingLocalOriginSuccessRate: protobuf.UInt32Zero(),
+ Interval: durationpb.New(policy.Interval),
+ BaseEjectionTime: durationpb.New(policy.BaseEjectionTime),
+ MaxEjectionTime: durationpb.New(policy.MaxEjectionTime),
+ MaxEjectionPercent: protobuf.UInt32OrNil(policy.MaxEjectionPercent),
+ SplitExternalLocalOriginErrors: policy.SplitExternalLocalOriginErrors,
+ ConsecutiveLocalOriginFailure: protobuf.UInt32OrNil(policy.ConsecutiveLocalOriginFailure),
+ MaxEjectionTimeJitter: durationpb.New(policy.MaxEjectionTimeJitter),
}
+
if policy.ConsecutiveServerErrors > 0 {
out.Consecutive_5Xx = protobuf.UInt32OrNil(policy.ConsecutiveServerErrors)
out.EnforcingConsecutive_5Xx = protobuf.UInt32OrNil(100)
}
- if policy.Interval > 0 {
- out.Interval = durationpb.New(policy.Interval)
- }
-
- if policy.BaseEjectionTime > 0 {
- out.BaseEjectionTime = durationpb.New(policy.BaseEjectionTime)
- }
-
- if policy.MaxEjectionTime > 0 {
- out.MaxEjectionTime = durationpb.New(policy.MaxEjectionTime)
- }
-
- if policy.MaxEjectionPercent > 0 {
- out.MaxEjectionPercent = protobuf.UInt32OrNil(policy.MaxEjectionPercent)
- }
-
- if policy.SplitExternalLocalOriginErrors {
- out.SplitExternalLocalOriginErrors = true
- if policy.ConsecutiveLocalOriginFailure > 0 {
- out.ConsecutiveLocalOriginFailure = protobuf.UInt32OrNil(policy.ConsecutiveLocalOriginFailure)
- } else {
- // Default to 5 if not specified
- out.ConsecutiveLocalOriginFailure = protobuf.UInt32OrNil(5)
- }
- out.EnforcingLocalOriginSuccessRate = protobuf.UInt32Zero()
- }
-
- if policy.MaxEjectionTimeJitter > 0 {
- out.MaxEjectionTimeJitter = durationpb.New(policy.MaxEjectionTimeJitter)
- }
-
return out
}
diff --git a/internal/envoy/v3/cluster_test.go b/internal/envoy/v3/cluster_test.go
index eb69d3478c2..ecb71441c61 100644
--- a/internal/envoy/v3/cluster_test.go
+++ b/internal/envoy/v3/cluster_test.go
@@ -721,15 +721,22 @@ func TestCluster(t *testing.T) {
},
},
},
- "outlier detection only server error": {
+ "outlier detection ConsecutiveServerErrors is 0": {
cluster: &dag.Cluster{
Upstream: service(s1),
OutlierDetectionPolicy: &dag.OutlierDetectionPolicy{
- ConsecutiveServerErrors: 5,
+ ConsecutiveServerErrors: 0,
+ Interval: 10 * time.Second,
+ BaseEjectionTime: 30 * time.Second,
+ MaxEjectionTime: 300 * time.Second,
+ SplitExternalLocalOriginErrors: false,
+ ConsecutiveLocalOriginFailure: 5,
+ MaxEjectionPercent: 10,
+ MaxEjectionTimeJitter: 0,
},
},
want: &envoy_cluster_v3.Cluster{
- Name: "default/kuard/443/9edb41b67b",
+ Name: "default/kuard/443/e08d8f1af7",
AltStatName: "default_kuard_443",
ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_EDS),
EdsClusterConfig: &envoy_cluster_v3.Cluster_EdsClusterConfig{
@@ -737,23 +744,36 @@ func TestCluster(t *testing.T) {
ServiceName: "default/kuard/http",
},
OutlierDetection: &envoy_cluster_v3.OutlierDetection{
- Consecutive_5Xx: wrapperspb.UInt32(5),
- EnforcingSuccessRate: wrapperspb.UInt32(0),
- EnforcingConsecutiveGatewayFailure: wrapperspb.UInt32(0),
- EnforcingConsecutive_5Xx: wrapperspb.UInt32(100),
+ EnforcingConsecutive_5Xx: protobuf.UInt32Zero(),
+ EnforcingSuccessRate: protobuf.UInt32Zero(),
+ EnforcingConsecutiveGatewayFailure: protobuf.UInt32Zero(),
+ EnforcingLocalOriginSuccessRate: protobuf.UInt32Zero(),
+ Interval: durationpb.New(10 * time.Second),
+ BaseEjectionTime: durationpb.New(30 * time.Second),
+ MaxEjectionTime: durationpb.New(300 * time.Second),
+ MaxEjectionPercent: protobuf.UInt32OrNil(10),
+ SplitExternalLocalOriginErrors: false,
+ ConsecutiveLocalOriginFailure: protobuf.UInt32OrNil(5),
+ MaxEjectionTimeJitter: durationpb.New(0),
},
},
},
- "outlier detection split local origin error": {
+ "outlier detection ConsecutiveServerErrors greater than 0": {
cluster: &dag.Cluster{
Upstream: service(s1),
OutlierDetectionPolicy: &dag.OutlierDetectionPolicy{
ConsecutiveServerErrors: 5,
- SplitExternalLocalOriginErrors: true,
+ Interval: 10 * time.Second,
+ BaseEjectionTime: 30 * time.Second,
+ MaxEjectionTime: 300 * time.Second,
+ SplitExternalLocalOriginErrors: false,
+ ConsecutiveLocalOriginFailure: 5,
+ MaxEjectionPercent: 10,
+ MaxEjectionTimeJitter: 0,
},
},
want: &envoy_cluster_v3.Cluster{
- Name: "default/kuard/443/3bebc12a28",
+ Name: "default/kuard/443/447b5c0802",
AltStatName: "default_kuard_443",
ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_EDS),
EdsClusterConfig: &envoy_cluster_v3.Cluster_EdsClusterConfig{
@@ -761,67 +781,18 @@ func TestCluster(t *testing.T) {
ServiceName: "default/kuard/http",
},
OutlierDetection: &envoy_cluster_v3.OutlierDetection{
- Consecutive_5Xx: wrapperspb.UInt32(5),
- EnforcingSuccessRate: wrapperspb.UInt32(0),
- EnforcingConsecutiveGatewayFailure: wrapperspb.UInt32(0),
- EnforcingConsecutive_5Xx: wrapperspb.UInt32(100),
- SplitExternalLocalOriginErrors: true,
- ConsecutiveLocalOriginFailure: wrapperspb.UInt32(5),
- EnforcingLocalOriginSuccessRate: wrapperspb.UInt32(0),
- },
- },
- },
- "outlier detection split local origin error and consecutive local origin failure": {
- cluster: &dag.Cluster{
- Upstream: service(s1),
- OutlierDetectionPolicy: &dag.OutlierDetectionPolicy{
- ConsecutiveServerErrors: 5,
- SplitExternalLocalOriginErrors: true,
- ConsecutiveLocalOriginFailure: 10,
- },
- },
- want: &envoy_cluster_v3.Cluster{
- Name: "default/kuard/443/880ee463fa",
- AltStatName: "default_kuard_443",
- ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_EDS),
- EdsClusterConfig: &envoy_cluster_v3.Cluster_EdsClusterConfig{
- EdsConfig: ConfigSource("contour"),
- ServiceName: "default/kuard/http",
- },
- OutlierDetection: &envoy_cluster_v3.OutlierDetection{
- Consecutive_5Xx: wrapperspb.UInt32(5),
- EnforcingSuccessRate: wrapperspb.UInt32(0),
- EnforcingConsecutiveGatewayFailure: wrapperspb.UInt32(0),
- EnforcingConsecutive_5Xx: wrapperspb.UInt32(100),
- SplitExternalLocalOriginErrors: true,
- ConsecutiveLocalOriginFailure: wrapperspb.UInt32(10),
- EnforcingLocalOriginSuccessRate: wrapperspb.UInt32(0),
- },
- },
- },
- "outlier detection only local origin error": {
- cluster: &dag.Cluster{
- Upstream: service(s1),
- OutlierDetectionPolicy: &dag.OutlierDetectionPolicy{
- SplitExternalLocalOriginErrors: true,
- ConsecutiveLocalOriginFailure: 10,
- },
- },
- want: &envoy_cluster_v3.Cluster{
- Name: "default/kuard/443/011e0937a7",
- AltStatName: "default_kuard_443",
- ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_EDS),
- EdsClusterConfig: &envoy_cluster_v3.Cluster_EdsClusterConfig{
- EdsConfig: ConfigSource("contour"),
- ServiceName: "default/kuard/http",
- },
- OutlierDetection: &envoy_cluster_v3.OutlierDetection{
- EnforcingSuccessRate: wrapperspb.UInt32(0),
- EnforcingConsecutiveGatewayFailure: wrapperspb.UInt32(0),
- EnforcingConsecutive_5Xx: wrapperspb.UInt32(0),
- SplitExternalLocalOriginErrors: true,
- ConsecutiveLocalOriginFailure: wrapperspb.UInt32(10),
- EnforcingLocalOriginSuccessRate: wrapperspb.UInt32(0),
+ EnforcingConsecutive_5Xx: protobuf.UInt32OrNil(100),
+ EnforcingSuccessRate: protobuf.UInt32Zero(),
+ EnforcingConsecutiveGatewayFailure: protobuf.UInt32Zero(),
+ EnforcingLocalOriginSuccessRate: protobuf.UInt32Zero(),
+ Consecutive_5Xx: protobuf.UInt32OrNil(5),
+ Interval: durationpb.New(10 * time.Second),
+ BaseEjectionTime: durationpb.New(30 * time.Second),
+ MaxEjectionTime: durationpb.New(300 * time.Second),
+ MaxEjectionPercent: protobuf.UInt32OrNil(10),
+ SplitExternalLocalOriginErrors: false,
+ ConsecutiveLocalOriginFailure: protobuf.UInt32OrNil(5),
+ MaxEjectionTimeJitter: durationpb.New(0),
},
},
},
From 096857db58719f128d0f1ff2bedfe8236de88c55 Mon Sep 17 00:00:00 2001
From: yangyang
Date: Fri, 2 Feb 2024 15:28:21 +0800
Subject: [PATCH 4/7] resolve code conflicts
Signed-off-by: yangyang
---
examples/contour/01-crds.yaml | 349 ++++----
examples/render/contour-deployment.yaml | 765 ++++++++++++++----
.../render/contour-gateway-provisioner.yaml | 349 ++++----
examples/render/contour-gateway.yaml | 765 ++++++++++++++----
examples/render/contour.yaml | 765 ++++++++++++++----
.../docs/main/config/api-reference.html | 268 +++++-
6 files changed, 2356 insertions(+), 905 deletions(-)
diff --git a/examples/contour/01-crds.yaml b/examples/contour/01-crds.yaml
index d51313a7552..4238b94c974 100644
--- a/examples/contour/01-crds.yaml
+++ b/examples/contour/01-crds.yaml
@@ -807,72 +807,76 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration for
- outlier detection on all services. If defined, this will be used
- as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host is
- ejected for. A host will remain ejected for a period of time
- equal to the product of the ejection base duration and the number
- of times the host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive local
- origin ejection occurs. Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of consecutive
- server-side error responses before a consecutive 5xx ejection
- occurs. When the backend host encounters consecutive errors
- greater than or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services, a 5xx
- counts as an error and for TCP services connection failures
- and connection timeouts count as an error. It can be disabled
- by setting the value to 0. Defaults to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the default
- global OutlierDetection policy defined by the Contour configuration.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status is
- evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that can
- be ejected. But will eject at least one host regardless of the
- value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will be
- ejected for. After this amount of time, a host will be returned
- to normal operation. If not specified, the default value (300s)
- or BaseEjectionTime value is applied, whatever is larger. Defaults
- to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of jitter
- to add to the ejection time, in order to prevent a ‘thundering
- herd’ effect where all proxies try to reconnect to host at the
- same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether to
- split the local origin errors from the external origin errors.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
Defaults to false.
type: boolean
type: object
@@ -4558,76 +4562,77 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration
- for outlier detection on all services. If defined, this will
- be used as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host
- is ejected for. A host will remain ejected for a period
- of time equal to the product of the ejection base duration
- and the number of times the host has been ejected. Defaults
- to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive
- local origin ejection occurs. Parameters take effect only
- when SplitExternalLocalOriginErrors is true. Defaults to
- 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of
- consecutive server-side error responses before a consecutive
- 5xx ejection occurs. When the backend host encounters consecutive
- errors greater than or equal to ConsecutiveServerErrors,
- it will be ejected from the load balancing pool. for HTTP
- services, a 5xx counts as an error and for TCP services
- connection failures and connection timeouts count as an
- error. It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the
- default global OutlierDetection policy defined by the Contour
- configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status
- is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that
- can be ejected. But will eject at least one host regardless
- of the value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will
- be ejected for. After this amount of time, a host will be
- returned to normal operation. If not specified, the default
- value (300s) or BaseEjectionTime value is applied, whatever
- is larger. Defaults to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of
- jitter to add to the ejection time, in order to prevent
- a ‘thundering herd’ effect where all proxies try to reconnect
- to host at the same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether
- to split the local origin errors from the external origin
- errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
policy:
@@ -6806,80 +6811,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection
- on a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the
- ejection base duration and the number of times the
- host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines
- the number of consecutive local origin failures
- before a consecutive local origin ejection occurs.
- Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than
- or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services,
- a 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults
- to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a
- host will be ejected for. After this amount of time,
- a host will be returned to normal operation. If
- not specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum
- amount of jitter to add to the ejection time, in
- order to prevent a ‘thundering herd’ effect where
- all proxies try to reconnect to host at the same
- time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -7291,80 +7293,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection on
- a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the ejection
- base duration and the number of times the host has
- been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the
- number of consecutive local origin failures before
- a consecutive local origin ejection occurs. Parameters
- take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than or
- equal to ConsecutiveServerErrors, it will be ejected
- from the load balancing pool. for HTTP services, a
- 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults to
- 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host
- will be ejected for. After this amount of time, a
- host will be returned to normal operation. If not
- specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount
- of jitter to add to the ejection time, in order to
- prevent a ‘thundering herd’ effect where all proxies
- try to reconnect to host at the same time. Defaults
- to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
diff --git a/examples/render/contour-deployment.yaml b/examples/render/contour-deployment.yaml
index 4cec8ff4d42..2c040814d09 100644
--- a/examples/render/contour-deployment.yaml
+++ b/examples/render/contour-deployment.yaml
@@ -10,6 +10,7 @@
# examples/contour/02-role-contour.yaml
# examples/contour/02-service-contour.yaml
# examples/contour/02-service-envoy.yaml
+# examples/contour/03-contour-gateway.yaml
# examples/contour/03-contour.yaml
# examples/deployment/03-envoy-deployment.yaml
@@ -1026,72 +1027,76 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration for
- outlier detection on all services. If defined, this will be used
- as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host is
- ejected for. A host will remain ejected for a period of time
- equal to the product of the ejection base duration and the number
- of times the host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive local
- origin ejection occurs. Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of consecutive
- server-side error responses before a consecutive 5xx ejection
- occurs. When the backend host encounters consecutive errors
- greater than or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services, a 5xx
- counts as an error and for TCP services connection failures
- and connection timeouts count as an error. It can be disabled
- by setting the value to 0. Defaults to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the default
- global OutlierDetection policy defined by the Contour configuration.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status is
- evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that can
- be ejected. But will eject at least one host regardless of the
- value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will be
- ejected for. After this amount of time, a host will be returned
- to normal operation. If not specified, the default value (300s)
- or BaseEjectionTime value is applied, whatever is larger. Defaults
- to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of jitter
- to add to the ejection time, in order to prevent a ‘thundering
- herd’ effect where all proxies try to reconnect to host at the
- same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether to
- split the local origin errors from the external origin errors.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
Defaults to false.
type: boolean
type: object
@@ -4777,76 +4782,77 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration
- for outlier detection on all services. If defined, this will
- be used as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host
- is ejected for. A host will remain ejected for a period
- of time equal to the product of the ejection base duration
- and the number of times the host has been ejected. Defaults
- to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive
- local origin ejection occurs. Parameters take effect only
- when SplitExternalLocalOriginErrors is true. Defaults to
- 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of
- consecutive server-side error responses before a consecutive
- 5xx ejection occurs. When the backend host encounters consecutive
- errors greater than or equal to ConsecutiveServerErrors,
- it will be ejected from the load balancing pool. for HTTP
- services, a 5xx counts as an error and for TCP services
- connection failures and connection timeouts count as an
- error. It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the
- default global OutlierDetection policy defined by the Contour
- configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status
- is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that
- can be ejected. But will eject at least one host regardless
- of the value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will
- be ejected for. After this amount of time, a host will be
- returned to normal operation. If not specified, the default
- value (300s) or BaseEjectionTime value is applied, whatever
- is larger. Defaults to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of
- jitter to add to the ejection time, in order to prevent
- a ‘thundering herd’ effect where all proxies try to reconnect
- to host at the same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether
- to split the local origin errors from the external origin
- errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
policy:
@@ -7025,80 +7031,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection
- on a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the
- ejection base duration and the number of times the
- host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines
- the number of consecutive local origin failures
- before a consecutive local origin ejection occurs.
- Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than
- or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services,
- a 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults
- to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a
- host will be ejected for. After this amount of time,
- a host will be returned to normal operation. If
- not specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum
- amount of jitter to add to the ejection time, in
- order to prevent a ‘thundering herd’ effect where
- all proxies try to reconnect to host at the same
- time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -7510,80 +7513,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection on
- a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the ejection
- base duration and the number of times the host has
- been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the
- number of consecutive local origin failures before
- a consecutive local origin ejection occurs. Parameters
- take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than or
- equal to ConsecutiveServerErrors, it will be ejected
- from the load balancing pool. for HTTP services, a
- 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults to
- 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host
- will be ejected for. After this amount of time, a
- host will be returned to normal operation. If not
- specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount
- of jitter to add to the ejection time, in order to
- prevent a ‘thundering herd’ effect where all proxies
- try to reconnect to host at the same time. Defaults
- to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -9312,6 +9312,421 @@ spec:
app: envoy
type: LoadBalancer
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - update
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - update
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: gateway-contour-test
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: gateway-contour-test
+subjects:
+ - kind: ServiceAccount
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: gateway-contour-test-rolebinding
+ namespace: gateway-contour-test
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: gateway-contour-test
+subjects:
+ - kind: ServiceAccount
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: gateway-contour-test
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - endpoints
+ - namespaces
+ - secrets
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - gatewayclasses
+ - gateways
+ - grpcroutes
+ - httproutes
+ - referencegrants
+ - tcproutes
+ - tlsroutes
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - gatewayclasses/status
+ - gateways/status
+ - grpcroutes/status
+ - httproutes/status
+ - tcproutes/status
+ - tlsroutes/status
+ verbs:
+ - update
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses/status
+ verbs:
+ - create
+ - get
+ - update
+ - apiGroups:
+ - projectcontour.io
+ resources:
+ - contourconfigurations
+ - extensionservices
+ - httpproxies
+ - tlscertificatedelegations
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - projectcontour.io
+ resources:
+ - contourconfigurations/status
+ - extensionservices/status
+ - httpproxies/status
+ verbs:
+ - create
+ - get
+ - update
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ app: contour
+ name: contour
+ namespace: gateway-contour-test
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: contour
+ template:
+ metadata:
+ labels:
+ app: contour
+ spec:
+ containers:
+ - args:
+ - serve
+ - --incluster
+ - --xds-address=0.0.0.0
+ - --xds-port=8001
+ - --insecure
+ - --ingress-class-name=gateway-contour-up
+ - --root-namespaces=gateway-contour-test
+ - --config-path=/config/contour.yaml
+ command: ["contour"]
+ image: ghcr.io/projectcontour/contour:main
+ imagePullPolicy: Always
+ name: contour
+ ports:
+ - containerPort: 8001
+ name: xds
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8000
+ readinessProbe:
+ tcpSocket:
+ port: 8001
+ initialDelaySeconds: 15
+ periodSeconds: 10
+ volumeMounts:
+ - name: contour-config
+ mountPath: /config
+ readOnly: true
+ env:
+ - name: CONTOUR_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ dnsPolicy: ClusterFirst
+ serviceAccountName: gateway-contour-test
+ volumes:
+ - name: contour-config
+ configMap:
+ name: contour
+ defaultMode: 0644
+ items:
+ - key: contour.yaml
+ path: contour.yaml
+---
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: contour
+ namespace: gateway-contour-test
+data:
+ contour.yaml: |
+ #
+ # server:
+ # determine which XDS Server implementation to utilize in Contour.
+ # xds-server-type: contour
+ #
+ # Specify the Gateway API configuration.
+ gateway:
+ controllerName: projectcontour.io/gateway-controller-test
+ #
+ # should contour expect to be running inside a k8s cluster
+ # incluster: true
+ #
+ # path to kubeconfig (if not running inside a k8s cluster)
+ # kubeconfig: /path/to/.kube/config
+ #
+ # Disable RFC-compliant behavior to strip "Content-Length" header if
+ # "Tranfer-Encoding: chunked" is also set.
+ # disableAllowChunkedLength: false
+ #
+ # Disable Envoy's non-standard merge_slashes path transformation option
+ # that strips duplicate slashes from request URLs.
+ # disableMergeSlashes: false
+ #
+ # Disable HTTPProxy permitInsecure field
+ disablePermitInsecure: false
+ tls:
+ # minimum TLS version that Contour will negotiate
+ # minimum-protocol-version: "1.2"
+ # TLS ciphers to be supported by Envoy TLS listeners when negotiating
+ # TLS 1.2.
+ # cipher-suites:
+ # - '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]'
+ # - '[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]'
+ # - 'ECDHE-ECDSA-AES256-GCM-SHA384'
+ # - 'ECDHE-RSA-AES256-GCM-SHA384'
+ # Defines the Kubernetes name/namespace matching a secret to use
+ # as the fallback certificate when requests which don't match the
+ # SNI defined for a vhost.
+ fallback-certificate:
+ # name: fallback-secret-name
+ # namespace: projectcontour
+ envoy-client-certificate:
+ # name: envoy-client-cert-secret-name
+ # namespace: projectcontour
+ ####
+ # ExternalName Services are disabled by default due to CVE-2021-XXXXX
+ # You can re-enable them by setting this setting to `true`.
+ # This is not recommended without understanding the security implications.
+ # Please see the advisory at https://github.com/projectcontour/contour/security/advisories/GHSA-5ph6-qq5x-7jwc for the details.
+ # enableExternalNameService: false
+ ##
+ # Address to be placed in status.loadbalancer field of Ingress objects.
+ # May be either a literal IP address or a host name.
+ # The value will be placed directly into the relevant field inside the status.loadBalancer struct.
+ # ingress-status-address: local.projectcontour.io
+ ### Logging options
+ # Default setting
+ accesslog-format: envoy
+ # The default access log format is defined by Envoy but it can be customized by setting following variable.
+ # accesslog-format-string: "...\n"
+ # To enable JSON logging in Envoy
+ # accesslog-format: json
+ # accesslog-level: info
+ # The default fields that will be logged are specified below.
+ # To customise this list, just add or remove entries.
+ # The canonical list is available at
+ # https://godoc.org/github.com/projectcontour/contour/internal/envoy#JSONFields
+ # json-fields:
+ # - "@timestamp"
+ # - "authority"
+ # - "bytes_received"
+ # - "bytes_sent"
+ # - "downstream_local_address"
+ # - "downstream_remote_address"
+ # - "duration"
+ # - "method"
+ # - "path"
+ # - "protocol"
+ # - "request_id"
+ # - "requested_server_name"
+ # - "response_code"
+ # - "response_flags"
+ # - "uber_trace_id"
+ # - "upstream_cluster"
+ # - "upstream_host"
+ # - "upstream_local_address"
+ # - "upstream_service_time"
+ # - "user_agent"
+ # - "x_forwarded_for"
+ # - "grpc_status"
+ # - "grpc_status_number"
+ #
+ # default-http-versions:
+ # - "HTTP/2"
+ # - "HTTP/1.1"
+ #
+ # The following shows the default proxy timeout settings.
+ # timeouts:
+ # request-timeout: infinity
+ # connection-idle-timeout: 60s
+ # stream-idle-timeout: 5m
+ # max-connection-duration: infinity
+ # delayed-close-timeout: 1s
+ # connection-shutdown-grace-period: 5s
+ # connect-timeout: 2s
+ #
+ # Envoy cluster settings.
+ # cluster:
+ # configure the cluster dns lookup family
+ # valid options are: auto (default), v4, v6
+ # dns-lookup-family: auto
+ #
+ # Envoy network settings.
+ # network:
+ # Configure the number of additional ingress proxy hops from the
+ # right side of the x-forwarded-for HTTP header to trust.
+ # num-trusted-hops: 0
+ # Configure the port used to access the Envoy Admin interface.
+ # admin-port: 9001
+ #
+ # Configure an optional global rate limit service.
+ # rateLimitService:
+ # Identifies the extension service defining the rate limit service,
+ # formatted as /.
+ # extensionService: projectcontour/ratelimit
+ # Defines the rate limit domain to pass to the rate limit service.
+ # Acts as a container for a set of rate limit definitions within
+ # the RLS.
+ # domain: contour
+ # Defines whether to allow requests to proceed when the rate limit
+ # service fails to respond with a valid rate limit decision within
+ # the timeout defined on the extension service.
+ # failOpen: false
+ # Defines whether to include the X-RateLimit headers X-RateLimit-Limit,
+ # X-RateLimit-Remaining, and X-RateLimit-Reset (as defined by the IETF
+ # Internet-Draft linked below), on responses to clients when the Rate
+ # Limit Service is consulted for a request.
+ # ref. https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html
+ # enableXRateLimitHeaders: false
+ # Defines whether to translate status code 429 to grpc code RESOURCE_EXHAUSTED
+ # instead of the default UNAVAILABLE
+ # enableResourceExhaustedCode: false
+ #
+ # Global Policy settings.
+ # policy:
+ # # Default headers to set on all requests (unless set/removed on the HTTPProxy object itself)
+ # request-headers:
+ # set:
+ # # example: the hostname of the Envoy instance that proxied the request
+ # X-Envoy-Hostname: %HOSTNAME%
+ # # example: add a l5d-dst-override header to instruct Linkerd what service the request is destined for
+ # l5d-dst-override: %CONTOUR_SERVICE_NAME%.%CONTOUR_NAMESPACE%.svc.cluster.local:%CONTOUR_SERVICE_PORT%
+ # # default headers to set on all responses (unless set/removed on the HTTPProxy object itself)
+ # response-headers:
+ # set:
+ # # example: Envoy flags that provide additional details about the response or connection
+ # X-Envoy-Response-Flags: %RESPONSE_FLAGS%
+ #
+ # metrics:
+ # contour:
+ # address: 0.0.0.0
+ # port: 8000
+ # server-certificate-path: /path/to/server-cert.pem
+ # server-key-path: /path/to/server-private-key.pem
+ # ca-certificate-path: /path/to/root-ca-for-client-validation.pem
+ # envoy:
+ # address: 0.0.0.0
+ # port: 8002
+ # server-certificate-path: /path/to/server-cert.pem
+ # server-key-path: /path/to/server-private-key.pem
+ # ca-certificate-path: /path/to/root-ca-for-client-validation.pem
+ #
+ # listener:
+ # connection-balancer: exact
+ # socket-options:
+ # tos: 64
+ # traffic-class: 64
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: contour
+ namespace: gateway-contour-test
+spec:
+ ports:
+ - port: 8001
+ name: xds
+ protocol: TCP
+ targetPort: 8001
+ selector:
+ app: contour
+ type: ClusterIP
+
---
apiVersion: apps/v1
kind: Deployment
diff --git a/examples/render/contour-gateway-provisioner.yaml b/examples/render/contour-gateway-provisioner.yaml
index eba0e74545b..f8f8d765359 100644
--- a/examples/render/contour-gateway-provisioner.yaml
+++ b/examples/render/contour-gateway-provisioner.yaml
@@ -818,72 +818,76 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration for
- outlier detection on all services. If defined, this will be used
- as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host is
- ejected for. A host will remain ejected for a period of time
- equal to the product of the ejection base duration and the number
- of times the host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive local
- origin ejection occurs. Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of consecutive
- server-side error responses before a consecutive 5xx ejection
- occurs. When the backend host encounters consecutive errors
- greater than or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services, a 5xx
- counts as an error and for TCP services connection failures
- and connection timeouts count as an error. It can be disabled
- by setting the value to 0. Defaults to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the default
- global OutlierDetection policy defined by the Contour configuration.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status is
- evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that can
- be ejected. But will eject at least one host regardless of the
- value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will be
- ejected for. After this amount of time, a host will be returned
- to normal operation. If not specified, the default value (300s)
- or BaseEjectionTime value is applied, whatever is larger. Defaults
- to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of jitter
- to add to the ejection time, in order to prevent a ‘thundering
- herd’ effect where all proxies try to reconnect to host at the
- same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether to
- split the local origin errors from the external origin errors.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
Defaults to false.
type: boolean
type: object
@@ -4569,76 +4573,77 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration
- for outlier detection on all services. If defined, this will
- be used as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host
- is ejected for. A host will remain ejected for a period
- of time equal to the product of the ejection base duration
- and the number of times the host has been ejected. Defaults
- to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive
- local origin ejection occurs. Parameters take effect only
- when SplitExternalLocalOriginErrors is true. Defaults to
- 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of
- consecutive server-side error responses before a consecutive
- 5xx ejection occurs. When the backend host encounters consecutive
- errors greater than or equal to ConsecutiveServerErrors,
- it will be ejected from the load balancing pool. for HTTP
- services, a 5xx counts as an error and for TCP services
- connection failures and connection timeouts count as an
- error. It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the
- default global OutlierDetection policy defined by the Contour
- configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status
- is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that
- can be ejected. But will eject at least one host regardless
- of the value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will
- be ejected for. After this amount of time, a host will be
- returned to normal operation. If not specified, the default
- value (300s) or BaseEjectionTime value is applied, whatever
- is larger. Defaults to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of
- jitter to add to the ejection time, in order to prevent
- a ‘thundering herd’ effect where all proxies try to reconnect
- to host at the same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether
- to split the local origin errors from the external origin
- errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
policy:
@@ -6817,80 +6822,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection
- on a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the
- ejection base duration and the number of times the
- host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines
- the number of consecutive local origin failures
- before a consecutive local origin ejection occurs.
- Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than
- or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services,
- a 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults
- to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a
- host will be ejected for. After this amount of time,
- a host will be returned to normal operation. If
- not specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum
- amount of jitter to add to the ejection time, in
- order to prevent a ‘thundering herd’ effect where
- all proxies try to reconnect to host at the same
- time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -7302,80 +7304,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection on
- a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the ejection
- base duration and the number of times the host has
- been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the
- number of consecutive local origin failures before
- a consecutive local origin ejection occurs. Parameters
- take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than or
- equal to ConsecutiveServerErrors, it will be ejected
- from the load balancing pool. for HTTP services, a
- 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults to
- 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host
- will be ejected for. After this amount of time, a
- host will be returned to normal operation. If not
- specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount
- of jitter to add to the ejection time, in order to
- prevent a ‘thundering herd’ effect where all proxies
- try to reconnect to host at the same time. Defaults
- to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
diff --git a/examples/render/contour-gateway.yaml b/examples/render/contour-gateway.yaml
index c8dd482ee75..ce30a6775ca 100644
--- a/examples/render/contour-gateway.yaml
+++ b/examples/render/contour-gateway.yaml
@@ -10,6 +10,7 @@
# examples/contour/02-role-contour.yaml
# examples/contour/02-service-contour.yaml
# examples/contour/02-service-envoy.yaml
+# examples/contour/03-contour-gateway.yaml
# examples/contour/03-contour.yaml
# examples/contour/03-envoy.yaml
# examples/gateway/00-crds.yaml
@@ -1029,72 +1030,76 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration for
- outlier detection on all services. If defined, this will be used
- as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host is
- ejected for. A host will remain ejected for a period of time
- equal to the product of the ejection base duration and the number
- of times the host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive local
- origin ejection occurs. Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of consecutive
- server-side error responses before a consecutive 5xx ejection
- occurs. When the backend host encounters consecutive errors
- greater than or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services, a 5xx
- counts as an error and for TCP services connection failures
- and connection timeouts count as an error. It can be disabled
- by setting the value to 0. Defaults to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the default
- global OutlierDetection policy defined by the Contour configuration.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status is
- evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that can
- be ejected. But will eject at least one host regardless of the
- value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will be
- ejected for. After this amount of time, a host will be returned
- to normal operation. If not specified, the default value (300s)
- or BaseEjectionTime value is applied, whatever is larger. Defaults
- to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of jitter
- to add to the ejection time, in order to prevent a ‘thundering
- herd’ effect where all proxies try to reconnect to host at the
- same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether to
- split the local origin errors from the external origin errors.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
Defaults to false.
type: boolean
type: object
@@ -4780,76 +4785,77 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration
- for outlier detection on all services. If defined, this will
- be used as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host
- is ejected for. A host will remain ejected for a period
- of time equal to the product of the ejection base duration
- and the number of times the host has been ejected. Defaults
- to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive
- local origin ejection occurs. Parameters take effect only
- when SplitExternalLocalOriginErrors is true. Defaults to
- 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of
- consecutive server-side error responses before a consecutive
- 5xx ejection occurs. When the backend host encounters consecutive
- errors greater than or equal to ConsecutiveServerErrors,
- it will be ejected from the load balancing pool. for HTTP
- services, a 5xx counts as an error and for TCP services
- connection failures and connection timeouts count as an
- error. It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the
- default global OutlierDetection policy defined by the Contour
- configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status
- is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that
- can be ejected. But will eject at least one host regardless
- of the value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will
- be ejected for. After this amount of time, a host will be
- returned to normal operation. If not specified, the default
- value (300s) or BaseEjectionTime value is applied, whatever
- is larger. Defaults to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of
- jitter to add to the ejection time, in order to prevent
- a ‘thundering herd’ effect where all proxies try to reconnect
- to host at the same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether
- to split the local origin errors from the external origin
- errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
policy:
@@ -7028,80 +7034,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection
- on a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the
- ejection base duration and the number of times the
- host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines
- the number of consecutive local origin failures
- before a consecutive local origin ejection occurs.
- Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than
- or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services,
- a 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults
- to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a
- host will be ejected for. After this amount of time,
- a host will be returned to normal operation. If
- not specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum
- amount of jitter to add to the ejection time, in
- order to prevent a ‘thundering herd’ effect where
- all proxies try to reconnect to host at the same
- time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -7513,80 +7516,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection on
- a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the ejection
- base duration and the number of times the host has
- been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the
- number of consecutive local origin failures before
- a consecutive local origin ejection occurs. Parameters
- take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than or
- equal to ConsecutiveServerErrors, it will be ejected
- from the load balancing pool. for HTTP services, a
- 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults to
- 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host
- will be ejected for. After this amount of time, a
- host will be returned to normal operation. If not
- specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount
- of jitter to add to the ejection time, in order to
- prevent a ‘thundering herd’ effect where all proxies
- try to reconnect to host at the same time. Defaults
- to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -9315,6 +9315,421 @@ spec:
app: envoy
type: LoadBalancer
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - update
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - update
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: gateway-contour-test
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: gateway-contour-test
+subjects:
+ - kind: ServiceAccount
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: gateway-contour-test-rolebinding
+ namespace: gateway-contour-test
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: gateway-contour-test
+subjects:
+ - kind: ServiceAccount
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: gateway-contour-test
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - endpoints
+ - namespaces
+ - secrets
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - gatewayclasses
+ - gateways
+ - grpcroutes
+ - httproutes
+ - referencegrants
+ - tcproutes
+ - tlsroutes
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - gatewayclasses/status
+ - gateways/status
+ - grpcroutes/status
+ - httproutes/status
+ - tcproutes/status
+ - tlsroutes/status
+ verbs:
+ - update
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses/status
+ verbs:
+ - create
+ - get
+ - update
+ - apiGroups:
+ - projectcontour.io
+ resources:
+ - contourconfigurations
+ - extensionservices
+ - httpproxies
+ - tlscertificatedelegations
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - projectcontour.io
+ resources:
+ - contourconfigurations/status
+ - extensionservices/status
+ - httpproxies/status
+ verbs:
+ - create
+ - get
+ - update
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ app: contour
+ name: contour
+ namespace: gateway-contour-test
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: contour
+ template:
+ metadata:
+ labels:
+ app: contour
+ spec:
+ containers:
+ - args:
+ - serve
+ - --incluster
+ - --xds-address=0.0.0.0
+ - --xds-port=8001
+ - --insecure
+ - --ingress-class-name=gateway-contour-up
+ - --root-namespaces=gateway-contour-test
+ - --config-path=/config/contour.yaml
+ command: ["contour"]
+ image: ghcr.io/projectcontour/contour:main
+ imagePullPolicy: Always
+ name: contour
+ ports:
+ - containerPort: 8001
+ name: xds
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8000
+ readinessProbe:
+ tcpSocket:
+ port: 8001
+ initialDelaySeconds: 15
+ periodSeconds: 10
+ volumeMounts:
+ - name: contour-config
+ mountPath: /config
+ readOnly: true
+ env:
+ - name: CONTOUR_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ dnsPolicy: ClusterFirst
+ serviceAccountName: gateway-contour-test
+ volumes:
+ - name: contour-config
+ configMap:
+ name: contour
+ defaultMode: 0644
+ items:
+ - key: contour.yaml
+ path: contour.yaml
+---
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: contour
+ namespace: gateway-contour-test
+data:
+ contour.yaml: |
+ #
+ # server:
+ # determine which XDS Server implementation to utilize in Contour.
+ # xds-server-type: contour
+ #
+ # Specify the Gateway API configuration.
+ gateway:
+ controllerName: projectcontour.io/gateway-controller-test
+ #
+ # should contour expect to be running inside a k8s cluster
+ # incluster: true
+ #
+ # path to kubeconfig (if not running inside a k8s cluster)
+ # kubeconfig: /path/to/.kube/config
+ #
+ # Disable RFC-compliant behavior to strip "Content-Length" header if
+ # "Tranfer-Encoding: chunked" is also set.
+ # disableAllowChunkedLength: false
+ #
+ # Disable Envoy's non-standard merge_slashes path transformation option
+ # that strips duplicate slashes from request URLs.
+ # disableMergeSlashes: false
+ #
+ # Disable HTTPProxy permitInsecure field
+ disablePermitInsecure: false
+ tls:
+ # minimum TLS version that Contour will negotiate
+ # minimum-protocol-version: "1.2"
+ # TLS ciphers to be supported by Envoy TLS listeners when negotiating
+ # TLS 1.2.
+ # cipher-suites:
+ # - '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]'
+ # - '[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]'
+ # - 'ECDHE-ECDSA-AES256-GCM-SHA384'
+ # - 'ECDHE-RSA-AES256-GCM-SHA384'
+ # Defines the Kubernetes name/namespace matching a secret to use
+ # as the fallback certificate when requests which don't match the
+ # SNI defined for a vhost.
+ fallback-certificate:
+ # name: fallback-secret-name
+ # namespace: projectcontour
+ envoy-client-certificate:
+ # name: envoy-client-cert-secret-name
+ # namespace: projectcontour
+ ####
+ # ExternalName Services are disabled by default due to CVE-2021-XXXXX
+ # You can re-enable them by setting this setting to `true`.
+ # This is not recommended without understanding the security implications.
+ # Please see the advisory at https://github.com/projectcontour/contour/security/advisories/GHSA-5ph6-qq5x-7jwc for the details.
+ # enableExternalNameService: false
+ ##
+ # Address to be placed in status.loadbalancer field of Ingress objects.
+ # May be either a literal IP address or a host name.
+ # The value will be placed directly into the relevant field inside the status.loadBalancer struct.
+ # ingress-status-address: local.projectcontour.io
+ ### Logging options
+ # Default setting
+ accesslog-format: envoy
+ # The default access log format is defined by Envoy but it can be customized by setting following variable.
+ # accesslog-format-string: "...\n"
+ # To enable JSON logging in Envoy
+ # accesslog-format: json
+ # accesslog-level: info
+ # The default fields that will be logged are specified below.
+ # To customise this list, just add or remove entries.
+ # The canonical list is available at
+ # https://godoc.org/github.com/projectcontour/contour/internal/envoy#JSONFields
+ # json-fields:
+ # - "@timestamp"
+ # - "authority"
+ # - "bytes_received"
+ # - "bytes_sent"
+ # - "downstream_local_address"
+ # - "downstream_remote_address"
+ # - "duration"
+ # - "method"
+ # - "path"
+ # - "protocol"
+ # - "request_id"
+ # - "requested_server_name"
+ # - "response_code"
+ # - "response_flags"
+ # - "uber_trace_id"
+ # - "upstream_cluster"
+ # - "upstream_host"
+ # - "upstream_local_address"
+ # - "upstream_service_time"
+ # - "user_agent"
+ # - "x_forwarded_for"
+ # - "grpc_status"
+ # - "grpc_status_number"
+ #
+ # default-http-versions:
+ # - "HTTP/2"
+ # - "HTTP/1.1"
+ #
+ # The following shows the default proxy timeout settings.
+ # timeouts:
+ # request-timeout: infinity
+ # connection-idle-timeout: 60s
+ # stream-idle-timeout: 5m
+ # max-connection-duration: infinity
+ # delayed-close-timeout: 1s
+ # connection-shutdown-grace-period: 5s
+ # connect-timeout: 2s
+ #
+ # Envoy cluster settings.
+ # cluster:
+ # configure the cluster dns lookup family
+ # valid options are: auto (default), v4, v6
+ # dns-lookup-family: auto
+ #
+ # Envoy network settings.
+ # network:
+ # Configure the number of additional ingress proxy hops from the
+ # right side of the x-forwarded-for HTTP header to trust.
+ # num-trusted-hops: 0
+ # Configure the port used to access the Envoy Admin interface.
+ # admin-port: 9001
+ #
+ # Configure an optional global rate limit service.
+ # rateLimitService:
+ # Identifies the extension service defining the rate limit service,
+ # formatted as /.
+ # extensionService: projectcontour/ratelimit
+ # Defines the rate limit domain to pass to the rate limit service.
+ # Acts as a container for a set of rate limit definitions within
+ # the RLS.
+ # domain: contour
+ # Defines whether to allow requests to proceed when the rate limit
+ # service fails to respond with a valid rate limit decision within
+ # the timeout defined on the extension service.
+ # failOpen: false
+ # Defines whether to include the X-RateLimit headers X-RateLimit-Limit,
+ # X-RateLimit-Remaining, and X-RateLimit-Reset (as defined by the IETF
+ # Internet-Draft linked below), on responses to clients when the Rate
+ # Limit Service is consulted for a request.
+ # ref. https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html
+ # enableXRateLimitHeaders: false
+ # Defines whether to translate status code 429 to grpc code RESOURCE_EXHAUSTED
+ # instead of the default UNAVAILABLE
+ # enableResourceExhaustedCode: false
+ #
+ # Global Policy settings.
+ # policy:
+ # # Default headers to set on all requests (unless set/removed on the HTTPProxy object itself)
+ # request-headers:
+ # set:
+ # # example: the hostname of the Envoy instance that proxied the request
+ # X-Envoy-Hostname: %HOSTNAME%
+ # # example: add a l5d-dst-override header to instruct Linkerd what service the request is destined for
+ # l5d-dst-override: %CONTOUR_SERVICE_NAME%.%CONTOUR_NAMESPACE%.svc.cluster.local:%CONTOUR_SERVICE_PORT%
+ # # default headers to set on all responses (unless set/removed on the HTTPProxy object itself)
+ # response-headers:
+ # set:
+ # # example: Envoy flags that provide additional details about the response or connection
+ # X-Envoy-Response-Flags: %RESPONSE_FLAGS%
+ #
+ # metrics:
+ # contour:
+ # address: 0.0.0.0
+ # port: 8000
+ # server-certificate-path: /path/to/server-cert.pem
+ # server-key-path: /path/to/server-private-key.pem
+ # ca-certificate-path: /path/to/root-ca-for-client-validation.pem
+ # envoy:
+ # address: 0.0.0.0
+ # port: 8002
+ # server-certificate-path: /path/to/server-cert.pem
+ # server-key-path: /path/to/server-private-key.pem
+ # ca-certificate-path: /path/to/root-ca-for-client-validation.pem
+ #
+ # listener:
+ # connection-balancer: exact
+ # socket-options:
+ # tos: 64
+ # traffic-class: 64
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: contour
+ namespace: gateway-contour-test
+spec:
+ ports:
+ - port: 8001
+ name: xds
+ protocol: TCP
+ targetPort: 8001
+ selector:
+ app: contour
+ type: ClusterIP
+
---
apiVersion: apps/v1
kind: Deployment
diff --git a/examples/render/contour.yaml b/examples/render/contour.yaml
index d485ddcce1c..2cc0d5d5489 100644
--- a/examples/render/contour.yaml
+++ b/examples/render/contour.yaml
@@ -10,6 +10,7 @@
# examples/contour/02-role-contour.yaml
# examples/contour/02-service-contour.yaml
# examples/contour/02-service-envoy.yaml
+# examples/contour/03-contour-gateway.yaml
# examples/contour/03-contour.yaml
# examples/contour/03-envoy.yaml
@@ -1026,72 +1027,76 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration for
- outlier detection on all services. If defined, this will be used
- as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host is
- ejected for. A host will remain ejected for a period of time
- equal to the product of the ejection base duration and the number
- of times the host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive local
- origin ejection occurs. Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of consecutive
- server-side error responses before a consecutive 5xx ejection
- occurs. When the backend host encounters consecutive errors
- greater than or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services, a 5xx
- counts as an error and for TCP services connection failures
- and connection timeouts count as an error. It can be disabled
- by setting the value to 0. Defaults to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the default
- global OutlierDetection policy defined by the Contour configuration.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status is
- evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that can
- be ejected. But will eject at least one host regardless of the
- value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will be
- ejected for. After this amount of time, a host will be returned
- to normal operation. If not specified, the default value (300s)
- or BaseEjectionTime value is applied, whatever is larger. Defaults
- to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of jitter
- to add to the ejection time, in order to prevent a ‘thundering
- herd’ effect where all proxies try to reconnect to host at the
- same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether to
- split the local origin errors from the external origin errors.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
Defaults to false.
type: boolean
type: object
@@ -4777,76 +4782,77 @@ spec:
type: object
type: object
outlierDetection:
- description: GlobalOutlierDetection defines the configuration
- for outlier detection on all services. If defined, this will
- be used as the default for all services.
+ description: |-
+ GlobalOutlierDetection defines the configuration for outlier detection on all services.
+ If defined, this will be used as the default for all services.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that a host
- is ejected for. A host will remain ejected for a period
- of time equal to the product of the ejection base duration
- and the number of times the host has been ejected. Defaults
- to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the number
- of consecutive local origin failures before a consecutive
- local origin ejection occurs. Parameters take effect only
- when SplitExternalLocalOriginErrors is true. Defaults to
- 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number of
- consecutive server-side error responses before a consecutive
- 5xx ejection occurs. When the backend host encounters consecutive
- errors greater than or equal to ConsecutiveServerErrors,
- it will be ejected from the load balancing pool. for HTTP
- services, a 5xx counts as an error and for TCP services
- connection failures and connection timeouts count as an
- error. It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not use the
- default global OutlierDetection policy defined by the Contour
- configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host status
- is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage of hosts
- in the load balancing pool for the upstream service that
- can be ejected. But will eject at least one host regardless
- of the value here. Defaults to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host will
- be ejected for. After this amount of time, a host will be
- returned to normal operation. If not specified, the default
- value (300s) or BaseEjectionTime value is applied, whatever
- is larger. Defaults to 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount of
- jitter to add to the ejection time, in order to prevent
- a ‘thundering herd’ effect where all proxies try to reconnect
- to host at the same time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines whether
- to split the local origin errors from the external origin
- errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
policy:
@@ -7025,80 +7031,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection
- on a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the
- ejection base duration and the number of times the
- host has been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines
- the number of consecutive local origin failures
- before a consecutive local origin ejection occurs.
- Parameters take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than
- or equal to ConsecutiveServerErrors, it will be
- ejected from the load balancing pool. for HTTP services,
- a 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults
- to 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a
- host will be ejected for. After this amount of time,
- a host will be returned to normal operation. If
- not specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum
- amount of jitter to add to the ejection time, in
- order to prevent a ‘thundering herd’ effect where
- all proxies try to reconnect to host at the same
- time. Defaults to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -7510,80 +7513,77 @@ spec:
Names defined here will be used to look up corresponding endpoints which contain the ips to route.
type: string
outlierDetection:
- description: The policy for managing outlier detection on
- a service. If not specified, the global OutlierDetection
- policy will be used.
+ description: |-
+ The policy for managing outlier detection on a service.
+ If not specified, the global OutlierDetection policy will be used.
properties:
baseEjectionTime:
- description: BaseEjectionTime is the base time that
- a host is ejected for. A host will remain ejected
- for a period of time equal to the product of the ejection
- base duration and the number of times the host has
- been ejected. Defaults to 30s.
+ description: |-
+ BaseEjectionTime is the base time that a host is ejected for.
+ A host will remain ejected for a period of time equal to the
+ product of the ejection base duration and the number of times the host has been ejected.
+ Defaults to 30s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
consecutiveLocalOriginFailure:
- description: ConsecutiveLocalOriginFailure defines the
- number of consecutive local origin failures before
- a consecutive local origin ejection occurs. Parameters
- take effect only when SplitExternalLocalOriginErrors
- is true. Defaults to 5.
+ description: |-
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+ Parameters take effect only when SplitExternalLocalOriginErrors is true.
+ Defaults to 5.
format: int32
type: integer
consecutiveServerErrors:
- description: ConsecutiveServerErrors defines The number
- of consecutive server-side error responses before
- a consecutive 5xx ejection occurs. When the backend
- host encounters consecutive errors greater than or
- equal to ConsecutiveServerErrors, it will be ejected
- from the load balancing pool. for HTTP services, a
- 5xx counts as an error and for TCP services connection
- failures and connection timeouts count as an error.
- It can be disabled by setting the value to 0. Defaults
- to 5.
+ description: |-
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+ When the backend host encounters consecutive
+ errors greater than or equal to ConsecutiveServerErrors, it will be
+ ejected from the load balancing pool.
+ for HTTP services, a 5xx counts as an error and for TCP services
+ connection failures and connection timeouts count as an error.
+ It can be disabled by setting the value to 0.
+ Defaults to 5.
format: int32
type: integer
disabled:
- description: Disabled configures the Service to not
- use the default global OutlierDetection policy defined
- by the Contour configuration. Defaults to false.
+ description: |-
+ Disabled configures the Service to not use
+ the default global OutlierDetection policy defined by the Contour configuration.
+ Defaults to false.
type: boolean
interval:
- description: Interval is the interval at which host
- status is evaluated. Defaults to 10s.
+ description: |-
+ Interval is the interval at which host status is evaluated.
+ Defaults to 10s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionPercent:
- description: MaxEjectionPercent is the max percentage
- of hosts in the load balancing pool for the upstream
- service that can be ejected. But will eject at least
- one host regardless of the value here. Defaults to
- 10%.
+ description: |-
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+ But will eject at least one host regardless of the value here.
+ Defaults to 10%.
format: int32
maximum: 100
type: integer
maxEjectionTime:
- description: MaxEjectionTime is the maximum time a host
- will be ejected for. After this amount of time, a
- host will be returned to normal operation. If not
- specified, the default value (300s) or BaseEjectionTime
- value is applied, whatever is larger. Defaults to
- 300s.
+ description: |-
+ MaxEjectionTime is the maximum time a host will be ejected for.
+ After this amount of time, a host will be returned to normal operation.
+ If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+ Defaults to 300s.
pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
maxEjectionTimeJitter:
- description: MaxEjectionTimeJitter is The maximum amount
- of jitter to add to the ejection time, in order to
- prevent a ‘thundering herd’ effect where all proxies
- try to reconnect to host at the same time. Defaults
- to 0s.
+ description: |-
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+ in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+ Defaults to 0s.
pattern: ^(((\d*(\.\d*)?s)|(\d*(\.\d*)?ms))+)$
type: string
splitExternalLocalOriginErrors:
default: false
- description: SplitExternalLocalOriginErrors defines
- whether to split the local origin errors from the
- external origin errors. Defaults to false.
+ description: |-
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+ Defaults to false.
type: boolean
type: object
port:
@@ -9312,6 +9312,421 @@ spec:
app: envoy
type: LoadBalancer
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - update
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - update
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: gateway-contour-test
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: gateway-contour-test
+subjects:
+ - kind: ServiceAccount
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: gateway-contour-test-rolebinding
+ namespace: gateway-contour-test
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: gateway-contour-test
+subjects:
+ - kind: ServiceAccount
+ name: gateway-contour-test
+ namespace: gateway-contour-test
+---
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: gateway-contour-test
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - endpoints
+ - namespaces
+ - secrets
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - gatewayclasses
+ - gateways
+ - grpcroutes
+ - httproutes
+ - referencegrants
+ - tcproutes
+ - tlsroutes
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - gatewayclasses/status
+ - gateways/status
+ - grpcroutes/status
+ - httproutes/status
+ - tcproutes/status
+ - tlsroutes/status
+ verbs:
+ - update
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses/status
+ verbs:
+ - create
+ - get
+ - update
+ - apiGroups:
+ - projectcontour.io
+ resources:
+ - contourconfigurations
+ - extensionservices
+ - httpproxies
+ - tlscertificatedelegations
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - projectcontour.io
+ resources:
+ - contourconfigurations/status
+ - extensionservices/status
+ - httpproxies/status
+ verbs:
+ - create
+ - get
+ - update
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ app: contour
+ name: contour
+ namespace: gateway-contour-test
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: contour
+ template:
+ metadata:
+ labels:
+ app: contour
+ spec:
+ containers:
+ - args:
+ - serve
+ - --incluster
+ - --xds-address=0.0.0.0
+ - --xds-port=8001
+ - --insecure
+ - --ingress-class-name=gateway-contour-up
+ - --root-namespaces=gateway-contour-test
+ - --config-path=/config/contour.yaml
+ command: ["contour"]
+ image: ghcr.io/projectcontour/contour:main
+ imagePullPolicy: Always
+ name: contour
+ ports:
+ - containerPort: 8001
+ name: xds
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8000
+ readinessProbe:
+ tcpSocket:
+ port: 8001
+ initialDelaySeconds: 15
+ periodSeconds: 10
+ volumeMounts:
+ - name: contour-config
+ mountPath: /config
+ readOnly: true
+ env:
+ - name: CONTOUR_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ dnsPolicy: ClusterFirst
+ serviceAccountName: gateway-contour-test
+ volumes:
+ - name: contour-config
+ configMap:
+ name: contour
+ defaultMode: 0644
+ items:
+ - key: contour.yaml
+ path: contour.yaml
+---
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: contour
+ namespace: gateway-contour-test
+data:
+ contour.yaml: |
+ #
+ # server:
+ # determine which XDS Server implementation to utilize in Contour.
+ # xds-server-type: contour
+ #
+ # Specify the Gateway API configuration.
+ gateway:
+ controllerName: projectcontour.io/gateway-controller-test
+ #
+ # should contour expect to be running inside a k8s cluster
+ # incluster: true
+ #
+ # path to kubeconfig (if not running inside a k8s cluster)
+ # kubeconfig: /path/to/.kube/config
+ #
+ # Disable RFC-compliant behavior to strip "Content-Length" header if
+ # "Tranfer-Encoding: chunked" is also set.
+ # disableAllowChunkedLength: false
+ #
+ # Disable Envoy's non-standard merge_slashes path transformation option
+ # that strips duplicate slashes from request URLs.
+ # disableMergeSlashes: false
+ #
+ # Disable HTTPProxy permitInsecure field
+ disablePermitInsecure: false
+ tls:
+ # minimum TLS version that Contour will negotiate
+ # minimum-protocol-version: "1.2"
+ # TLS ciphers to be supported by Envoy TLS listeners when negotiating
+ # TLS 1.2.
+ # cipher-suites:
+ # - '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]'
+ # - '[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]'
+ # - 'ECDHE-ECDSA-AES256-GCM-SHA384'
+ # - 'ECDHE-RSA-AES256-GCM-SHA384'
+ # Defines the Kubernetes name/namespace matching a secret to use
+ # as the fallback certificate when requests which don't match the
+ # SNI defined for a vhost.
+ fallback-certificate:
+ # name: fallback-secret-name
+ # namespace: projectcontour
+ envoy-client-certificate:
+ # name: envoy-client-cert-secret-name
+ # namespace: projectcontour
+ ####
+ # ExternalName Services are disabled by default due to CVE-2021-XXXXX
+ # You can re-enable them by setting this setting to `true`.
+ # This is not recommended without understanding the security implications.
+ # Please see the advisory at https://github.com/projectcontour/contour/security/advisories/GHSA-5ph6-qq5x-7jwc for the details.
+ # enableExternalNameService: false
+ ##
+ # Address to be placed in status.loadbalancer field of Ingress objects.
+ # May be either a literal IP address or a host name.
+ # The value will be placed directly into the relevant field inside the status.loadBalancer struct.
+ # ingress-status-address: local.projectcontour.io
+ ### Logging options
+ # Default setting
+ accesslog-format: envoy
+ # The default access log format is defined by Envoy but it can be customized by setting following variable.
+ # accesslog-format-string: "...\n"
+ # To enable JSON logging in Envoy
+ # accesslog-format: json
+ # accesslog-level: info
+ # The default fields that will be logged are specified below.
+ # To customise this list, just add or remove entries.
+ # The canonical list is available at
+ # https://godoc.org/github.com/projectcontour/contour/internal/envoy#JSONFields
+ # json-fields:
+ # - "@timestamp"
+ # - "authority"
+ # - "bytes_received"
+ # - "bytes_sent"
+ # - "downstream_local_address"
+ # - "downstream_remote_address"
+ # - "duration"
+ # - "method"
+ # - "path"
+ # - "protocol"
+ # - "request_id"
+ # - "requested_server_name"
+ # - "response_code"
+ # - "response_flags"
+ # - "uber_trace_id"
+ # - "upstream_cluster"
+ # - "upstream_host"
+ # - "upstream_local_address"
+ # - "upstream_service_time"
+ # - "user_agent"
+ # - "x_forwarded_for"
+ # - "grpc_status"
+ # - "grpc_status_number"
+ #
+ # default-http-versions:
+ # - "HTTP/2"
+ # - "HTTP/1.1"
+ #
+ # The following shows the default proxy timeout settings.
+ # timeouts:
+ # request-timeout: infinity
+ # connection-idle-timeout: 60s
+ # stream-idle-timeout: 5m
+ # max-connection-duration: infinity
+ # delayed-close-timeout: 1s
+ # connection-shutdown-grace-period: 5s
+ # connect-timeout: 2s
+ #
+ # Envoy cluster settings.
+ # cluster:
+ # configure the cluster dns lookup family
+ # valid options are: auto (default), v4, v6
+ # dns-lookup-family: auto
+ #
+ # Envoy network settings.
+ # network:
+ # Configure the number of additional ingress proxy hops from the
+ # right side of the x-forwarded-for HTTP header to trust.
+ # num-trusted-hops: 0
+ # Configure the port used to access the Envoy Admin interface.
+ # admin-port: 9001
+ #
+ # Configure an optional global rate limit service.
+ # rateLimitService:
+ # Identifies the extension service defining the rate limit service,
+ # formatted as /.
+ # extensionService: projectcontour/ratelimit
+ # Defines the rate limit domain to pass to the rate limit service.
+ # Acts as a container for a set of rate limit definitions within
+ # the RLS.
+ # domain: contour
+ # Defines whether to allow requests to proceed when the rate limit
+ # service fails to respond with a valid rate limit decision within
+ # the timeout defined on the extension service.
+ # failOpen: false
+ # Defines whether to include the X-RateLimit headers X-RateLimit-Limit,
+ # X-RateLimit-Remaining, and X-RateLimit-Reset (as defined by the IETF
+ # Internet-Draft linked below), on responses to clients when the Rate
+ # Limit Service is consulted for a request.
+ # ref. https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html
+ # enableXRateLimitHeaders: false
+ # Defines whether to translate status code 429 to grpc code RESOURCE_EXHAUSTED
+ # instead of the default UNAVAILABLE
+ # enableResourceExhaustedCode: false
+ #
+ # Global Policy settings.
+ # policy:
+ # # Default headers to set on all requests (unless set/removed on the HTTPProxy object itself)
+ # request-headers:
+ # set:
+ # # example: the hostname of the Envoy instance that proxied the request
+ # X-Envoy-Hostname: %HOSTNAME%
+ # # example: add a l5d-dst-override header to instruct Linkerd what service the request is destined for
+ # l5d-dst-override: %CONTOUR_SERVICE_NAME%.%CONTOUR_NAMESPACE%.svc.cluster.local:%CONTOUR_SERVICE_PORT%
+ # # default headers to set on all responses (unless set/removed on the HTTPProxy object itself)
+ # response-headers:
+ # set:
+ # # example: Envoy flags that provide additional details about the response or connection
+ # X-Envoy-Response-Flags: %RESPONSE_FLAGS%
+ #
+ # metrics:
+ # contour:
+ # address: 0.0.0.0
+ # port: 8000
+ # server-certificate-path: /path/to/server-cert.pem
+ # server-key-path: /path/to/server-private-key.pem
+ # ca-certificate-path: /path/to/root-ca-for-client-validation.pem
+ # envoy:
+ # address: 0.0.0.0
+ # port: 8002
+ # server-certificate-path: /path/to/server-cert.pem
+ # server-key-path: /path/to/server-private-key.pem
+ # ca-certificate-path: /path/to/root-ca-for-client-validation.pem
+ #
+ # listener:
+ # connection-balancer: exact
+ # socket-options:
+ # tos: 64
+ # traffic-class: 64
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: contour
+ namespace: gateway-contour-test
+spec:
+ ports:
+ - port: 8001
+ name: xds
+ protocol: TCP
+ targetPort: 8001
+ selector:
+ app: contour
+ type: ClusterIP
+
---
apiVersion: apps/v1
kind: Deployment
diff --git a/site/content/docs/main/config/api-reference.html b/site/content/docs/main/config/api-reference.html
index a3c917354a0..70c000105cb 100644
--- a/site/content/docs/main/config/api-reference.html
+++ b/site/content/docs/main/config/api-reference.html
@@ -277,7 +277,7 @@ AuthorizationPolicy
(Appears on:
-AuthorizationServer,
+AuthorizationServer,
Route)
@@ -328,7 +328,7 @@
AuthorizationServer
(Appears on:
-VirtualHost,
+VirtualHost,
ContourConfigurationSpec)
@@ -812,7 +812,7 @@
CookieRewritePolicy
(Appears on:
-Route,
+Route,
Service)
@@ -903,9 +903,9 @@
DetailedCondition
(Appears on:
-HTTPProxyStatus,
-TLSCertificateDelegationStatus,
-ContourConfigurationStatus,
+HTTPProxyStatus,
+TLSCertificateDelegationStatus,
+ContourConfigurationStatus,
ExtensionServiceStatus)
@@ -1226,7 +1226,7 @@
GlobalRateLimitPolicy
(Appears on:
-RateLimitPolicy,
+RateLimitPolicy,
RateLimitServiceConfig)
@@ -1880,7 +1880,7 @@
(Appears on:
-MatchCondition,
+MatchCondition,
RequestHeaderValueMatchDescriptor)
@@ -2048,7 +2048,7 @@
(Appears on:
-HeadersPolicy,
+HeadersPolicy,
LocalRateLimitPolicy)
@@ -2092,7 +2092,7 @@
(Appears on:
-Route,
+Route,
Service)
@@ -2144,7 +2144,7 @@
IPFilterPolicy
(Appears on:
-Route,
+Route,
VirtualHost)
@@ -2440,8 +2440,8 @@
LoadBalancerPolicy
(Appears on:
-Route,
-TCPProxy,
+Route,
+TCPProxy,
ExtensionServiceSpec)
@@ -2588,7 +2588,7 @@
MatchCondition
(Appears on:
-Include,
+Include,
Route)
@@ -2697,6 +2697,166 @@
Namespace
“example.com” - “.” is an invalid character
+OutlierDetection
+
+
+(Appears on:
+Service,
+ContourConfigurationSpec)
+
+
+
OutlierDetection defines the configuration for outlier detection on a service.
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+disabled
+
+
+bool
+
+ |
+
+(Optional)
+ Disabled configures the Service to not use
+the default global OutlierDetection policy defined by the Contour configuration.
+Defaults to false.
+ |
+
+
+
+consecutiveServerErrors
+
+
+uint32
+
+ |
+
+(Optional)
+ ConsecutiveServerErrors defines The number of consecutive server-side error responses before a consecutive 5xx ejection occurs.
+When the backend host encounters consecutive
+errors greater than or equal to ConsecutiveServerErrors, it will be
+ejected from the load balancing pool.
+for HTTP services, a 5xx counts as an error and for TCP services
+connection failures and connection timeouts count as an error.
+It can be disabled by setting the value to 0.
+Defaults to 5.
+ |
+
+
+
+interval
+
+
+string
+
+ |
+
+(Optional)
+ Interval is the interval at which host status is evaluated.
+Defaults to 10s.
+ |
+
+
+
+baseEjectionTime
+
+
+string
+
+ |
+
+(Optional)
+ BaseEjectionTime is the base time that a host is ejected for.
+A host will remain ejected for a period of time equal to the
+product of the ejection base duration and the number of times the host has been ejected.
+Defaults to 30s.
+ |
+
+
+
+maxEjectionTime
+
+
+string
+
+ |
+
+(Optional)
+ MaxEjectionTime is the maximum time a host will be ejected for.
+After this amount of time, a host will be returned to normal operation.
+If not specified, the default value (300s) or BaseEjectionTime value is applied, whatever is larger.
+Defaults to 300s.
+ |
+
+
+
+splitExternalLocalOriginErrors
+
+
+bool
+
+ |
+
+(Optional)
+ SplitExternalLocalOriginErrors defines whether to split the local origin errors from the external origin errors.
+Defaults to false.
+ |
+
+
+
+consecutiveLocalOriginFailure
+
+
+uint32
+
+ |
+
+(Optional)
+ ConsecutiveLocalOriginFailure defines the number of consecutive local origin failures before a consecutive local origin ejection occurs.
+Parameters take effect only when SplitExternalLocalOriginErrors is true.
+Defaults to 5.
+ |
+
+
+
+maxEjectionPercent
+
+
+uint32
+
+ |
+
+(Optional)
+ MaxEjectionPercent is the max percentage of hosts in the load balancing pool for the upstream service that can be ejected.
+But will eject at least one host regardless of the value here.
+Defaults to 10%.
+ |
+
+
+
+maxEjectionTimeJitter
+
+
+string
+
+ |
+
+(Optional)
+ MaxEjectionTimeJitter is The maximum amount of jitter to add to the ejection time,
+in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time.
+Defaults to 0s.
+ |
+
+
+
PathRewritePolicy
@@ -3023,7 +3183,7 @@
RateLimitPolicy
(Appears on:
-Route,
+Route,
VirtualHost)
@@ -3884,7 +4044,7 @@
Service
(Appears on:
-Route,
+Route,
TCPProxy)
@@ -4057,6 +4217,22 @@
Service
Slow start will gradually increase amount of traffic to a newly added endpoint.