diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go index 3fe06579b1..5d997df169 100644 --- a/api/v1alpha1/loadbalancer_types.go +++ b/api/v1alpha1/loadbalancer_types.go @@ -229,6 +229,44 @@ type BackendUtilization struct { // +optional // +kubebuilder:default=false KeepResponseHeaders *bool `json:"keepResponseHeaders,omitempty"` + + // OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + // server-streaming gRPC connection to each endpoint's + // xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + // reports periodically, instead of relying on in-band ORCA metrics + // carried in response headers/trailers. + // + // The backend must implement OpenRcaService for this to take effect. + // +optional + // +notImplementedHide + OutOfBand *OutOfBandReporting `json:"outOfBand,omitempty"` +} + +// OutOfBandReporting configures out-of-band ORCA load reporting for the +// BackendUtilization load balancer. +// +// +notImplementedHide +type OutOfBandReporting struct { + // ReportingPeriod is how often Envoy requests load reports from the server. + // If omitted, uses Envoy's default of 10s. + // +optional + // +notImplementedHide + ReportingPeriod *gwapiv1.Duration `json:"reportingPeriod,omitempty"` + + // Port overrides the port used for the OutOfBand reporting connection, e.g. to + // reach a separate reporting sidecar. Defaults to the endpoint's port. + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=65535 + // +optional + // +notImplementedHide + Port *int32 `json:"port,omitempty"` + + // Authority overrides the :authority header on the OutOfBand gRPC stream. + // + // +kubebuilder:validation:Pattern=`^[^\x00\n\r]*$` + // +optional + // +notImplementedHide + Authority *string `json:"authority,omitempty"` } // DynamicModuleLBPolicy configures a custom load balancing algorithm diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 9c32ace0fa..6d7268f027 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -941,6 +941,11 @@ func (in *BackendUtilization) DeepCopyInto(out *BackendUtilization) { *out = new(bool) **out = **in } + if in.OutOfBand != nil { + in, out := &in.OutOfBand, &out.OutOfBand + *out = new(OutOfBandReporting) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendUtilization. @@ -6390,6 +6395,36 @@ func (in *OtherSANMatch) DeepCopy() *OtherSANMatch { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OutOfBandReporting) DeepCopyInto(out *OutOfBandReporting) { + *out = *in + if in.ReportingPeriod != nil { + in, out := &in.ReportingPeriod, &out.ReportingPeriod + *out = new(v1.Duration) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(int32) + **out = **in + } + if in.Authority != nil { + in, out := &in.Authority, &out.Authority + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutOfBandReporting. +func (in *OutOfBandReporting) DeepCopy() *OutOfBandReporting { + if in == nil { + return nil + } + out := new(OutOfBandReporting) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PassiveHealthCheck) DeepCopyInto(out *PassiveHealthCheck) { *out = *in diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml index f18e9f8334..b99aad6a04 100644 --- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml +++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml @@ -1102,6 +1102,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority header + on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported weight. Defaults to diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml index ced0356581..7d4228678b 100644 --- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml +++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml @@ -977,6 +977,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml index d8a048a90b..c6ad2cbf8a 100644 --- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml +++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml @@ -12316,6 +12316,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -13895,6 +13926,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -15640,6 +15702,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this @@ -17333,6 +17426,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml index 70bbc2523a..7f33b38a97 100644 --- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml +++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml @@ -1683,6 +1683,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -3128,6 +3158,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -4881,6 +4941,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the + :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop @@ -6653,6 +6744,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported diff --git a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml index 395dfccd57..f5deefbc24 100644 --- a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml +++ b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml @@ -1101,6 +1101,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority header + on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported weight. Defaults to diff --git a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml index af2b874a7b..074214d914 100644 --- a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml +++ b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml @@ -976,6 +976,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported diff --git a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml index 5736db43cd..9a26adb2f4 100644 --- a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml +++ b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml @@ -12315,6 +12315,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -13894,6 +13925,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -15639,6 +15701,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this @@ -17332,6 +17425,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the diff --git a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml index 1fa6777cae..964b149323 100644 --- a/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml +++ b/charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml @@ -1682,6 +1682,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -3127,6 +3157,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -4880,6 +4940,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the + :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop @@ -6652,6 +6743,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md index ad331bbbdc..4138a7b993 100644 --- a/site/content/en/latest/api/extension_types.md +++ b/site/content/en/latest/api/extension_types.md @@ -4504,6 +4504,20 @@ _Appears in:_ | `value` | _string_ | true | | Value specifies the string value that the match must have. | +#### OutOfBandReporting + + + +OutOfBandReporting configures out-of-band ORCA load reporting for the +BackendUtilization load balancer. + +_Appears in:_ +- [BackendUtilization](#backendutilization) + +| Field | Type | Required | Default | Description | +| --- | --- | --- | --- | --- | + + #### PassiveHealthCheck diff --git a/test/cel-validation/backendtrafficpolicy_test.go b/test/cel-validation/backendtrafficpolicy_test.go index 58a319a840..4fd5102b55 100644 --- a/test/cel-validation/backendtrafficpolicy_test.go +++ b/test/cel-validation/backendtrafficpolicy_test.go @@ -840,6 +840,110 @@ func TestBackendTrafficPolicyTarget(t *testing.T) { }, wantErrors: []string{}, }, + { + desc: "backendUtilization with OutOfBand fields is valid", + mutate: func(btp *egv1a1.BackendTrafficPolicy) { + btp.Spec = egv1a1.BackendTrafficPolicySpec{ + PolicyTargetReferences: egv1a1.PolicyTargetReferences{ + TargetRef: &gwapiv1.LocalPolicyTargetReferenceWithSectionName{ + LocalPolicyTargetReference: gwapiv1.LocalPolicyTargetReference{ + Group: gwapiv1.Group("gateway.networking.k8s.io"), + Kind: gwapiv1.Kind("Gateway"), + Name: gwapiv1.ObjectName("eg"), + }, + }, + }, + ClusterSettings: egv1a1.ClusterSettings{ + LoadBalancer: &egv1a1.LoadBalancer{ + Type: egv1a1.BackendUtilizationLoadBalancerType, + BackendUtilization: &egv1a1.BackendUtilization{ + OutOfBand: &egv1a1.OutOfBandReporting{ + ReportingPeriod: new(gwapiv1.Duration("5s")), + Port: new(int32(9001)), + Authority: new("orca.local"), + }, + }, + }, + }, + } + }, + wantErrors: []string{}, + }, + { + desc: "backendUtilization OutOfBand port zero is rejected", + mutate: func(btp *egv1a1.BackendTrafficPolicy) { + btp.Spec = egv1a1.BackendTrafficPolicySpec{ + PolicyTargetReferences: egv1a1.PolicyTargetReferences{ + TargetRef: &gwapiv1.LocalPolicyTargetReferenceWithSectionName{ + LocalPolicyTargetReference: gwapiv1.LocalPolicyTargetReference{ + Group: gwapiv1.Group("gateway.networking.k8s.io"), + Kind: gwapiv1.Kind("Gateway"), + Name: gwapiv1.ObjectName("eg"), + }, + }, + }, + ClusterSettings: egv1a1.ClusterSettings{ + LoadBalancer: &egv1a1.LoadBalancer{ + Type: egv1a1.BackendUtilizationLoadBalancerType, + BackendUtilization: &egv1a1.BackendUtilization{ + OutOfBand: &egv1a1.OutOfBandReporting{Port: new(int32(0))}, + }, + }, + }, + } + }, + wantErrors: []string{"spec.loadBalancer.backendUtilization.outOfBand.port"}, + }, + { + desc: "backendUtilization OutOfBand port above max is rejected", + mutate: func(btp *egv1a1.BackendTrafficPolicy) { + btp.Spec = egv1a1.BackendTrafficPolicySpec{ + PolicyTargetReferences: egv1a1.PolicyTargetReferences{ + TargetRef: &gwapiv1.LocalPolicyTargetReferenceWithSectionName{ + LocalPolicyTargetReference: gwapiv1.LocalPolicyTargetReference{ + Group: gwapiv1.Group("gateway.networking.k8s.io"), + Kind: gwapiv1.Kind("Gateway"), + Name: gwapiv1.ObjectName("eg"), + }, + }, + }, + ClusterSettings: egv1a1.ClusterSettings{ + LoadBalancer: &egv1a1.LoadBalancer{ + Type: egv1a1.BackendUtilizationLoadBalancerType, + BackendUtilization: &egv1a1.BackendUtilization{ + OutOfBand: &egv1a1.OutOfBandReporting{Port: new(int32(70000))}, + }, + }, + }, + } + }, + wantErrors: []string{"spec.loadBalancer.backendUtilization.outOfBand.port"}, + }, + { + desc: "backendUtilization OutOfBand authority with newline is rejected", + mutate: func(btp *egv1a1.BackendTrafficPolicy) { + btp.Spec = egv1a1.BackendTrafficPolicySpec{ + PolicyTargetReferences: egv1a1.PolicyTargetReferences{ + TargetRef: &gwapiv1.LocalPolicyTargetReferenceWithSectionName{ + LocalPolicyTargetReference: gwapiv1.LocalPolicyTargetReference{ + Group: gwapiv1.Group("gateway.networking.k8s.io"), + Kind: gwapiv1.Kind("Gateway"), + Name: gwapiv1.ObjectName("eg"), + }, + }, + }, + ClusterSettings: egv1a1.ClusterSettings{ + LoadBalancer: &egv1a1.LoadBalancer{ + Type: egv1a1.BackendUtilizationLoadBalancerType, + BackendUtilization: &egv1a1.BackendUtilization{ + OutOfBand: &egv1a1.OutOfBandReporting{Authority: new("foo\nbar")}, + }, + }, + }, + } + }, + wantErrors: []string{"spec.loadBalancer.backendUtilization.outOfBand.authority"}, + }, { desc: "backendUtilization field nil when type is BackendUtilization", mutate: func(btp *egv1a1.BackendTrafficPolicy) { diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml index 598219a0d0..fd725ed35d 100644 --- a/test/helm/gateway-crds-helm/all.out.yaml +++ b/test/helm/gateway-crds-helm/all.out.yaml @@ -25719,6 +25719,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority header + on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported weight. Defaults to @@ -31559,6 +31589,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -46073,6 +46133,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -47652,6 +47743,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -49397,6 +49519,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this @@ -51090,6 +51243,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the @@ -54276,6 +54459,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -55721,6 +55934,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -57474,6 +57717,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the + :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop @@ -59246,6 +59520,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported diff --git a/test/helm/gateway-crds-helm/e2e.out.yaml b/test/helm/gateway-crds-helm/e2e.out.yaml index e02760641e..4e89afbbeb 100644 --- a/test/helm/gateway-crds-helm/e2e.out.yaml +++ b/test/helm/gateway-crds-helm/e2e.out.yaml @@ -1657,6 +1657,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority header + on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported weight. Defaults to @@ -7497,6 +7527,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -22011,6 +22071,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -23590,6 +23681,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -25335,6 +25457,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this @@ -27028,6 +27181,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the @@ -30214,6 +30397,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -31659,6 +31872,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -33412,6 +33655,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the + :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop @@ -35184,6 +35458,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml index 4d7abb77c4..1507eb6185 100644 --- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml +++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml @@ -1657,6 +1657,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority header + on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported weight. Defaults to @@ -7497,6 +7527,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -22011,6 +22071,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -23590,6 +23681,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on + the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics @@ -25335,6 +25457,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides + the :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this @@ -27028,6 +27181,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the @@ -30214,6 +30397,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -31659,6 +31872,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported @@ -33412,6 +33655,37 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the + :authority header on the OutOfBand + gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop @@ -35184,6 +35458,36 @@ spec: items: type: string type: array + outOfBand: + description: |- + OutOfBand enables out-of-band ORCA load reporting. When set, Envoy opens a + server-streaming gRPC connection to each endpoint's + xds.service.orca.v3.OpenRcaService/StreamCoreMetrics and pulls load + reports periodically, instead of relying on in-band ORCA metrics + carried in response headers/trailers. + + The backend must implement OpenRcaService for this to take effect. + properties: + authority: + description: Authority overrides the :authority + header on the OutOfBand gRPC stream. + pattern: ^[^\x00\n\r]*$ + type: string + port: + description: |- + Port overrides the port used for the OutOfBand reporting connection, e.g. to + reach a separate reporting sidecar. Defaults to the endpoint's port. + format: int32 + maximum: 65535 + minimum: 1 + type: integer + reportingPeriod: + description: |- + ReportingPeriod is how often Envoy requests load reports from the server. + If omitted, uses Envoy's default of 10s. + pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$ + type: string + type: object weightExpirationPeriod: description: If a given endpoint has not reported load metrics in this long, stop using the reported