Skip to content
38 changes: 38 additions & 0 deletions api/v1alpha1/loadbalancer_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Comment thread
jukie marked this conversation as resolved.
}

// 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
Comment thread
jukie marked this conversation as resolved.
// +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
Expand Down
35 changes: 35 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading