Source File:


Upstreams represent destination for routing HTTP requests. Upstreams can be compared to clusters in Envoy terminology. Each upstream in Gloo has a type. Supported types include static, kubernetes, aws, consul, and more. Each upstream type is handled by a corresponding Gloo plugin. (plugins currently need to be compiled into Gloo)

"healthChecks": []envoy.api.v2.core.HealthCheck
"outlierDetection": .envoy.api.v2.cluster.OutlierDetection
"useHttp2": .google.protobuf.BoolValue
"initialStreamWindowSize": .google.protobuf.UInt32Value
"initialConnectionWindowSize": .google.protobuf.UInt32Value

Field Type Description Default
status Status indicates the validation status of the resource. Status is read-only by clients, and set by gloo during validation.
metadata Metadata contains the object metadata for this resource.
discoveryMetadata Upstreams and their configuration can be automatically by Gloo Discovery if this upstream is created or modified by Discovery, metadata about the operation will be placed here.
circuitBreakers Circuit breakers for this upstream. if not set, the defaults ones from the Gloo settings will be used. if those are not set, envoy’s defaults will be used.
healthChecks []envoy.api.v2.core.HealthCheck
outlierDetection .envoy.api.v2.cluster.OutlierDetection
useHttp2 .google.protobuf.BoolValue Use http2 when communicating with this upstream this field is evaluated true for upstreams with a grpc service spec. otherwise defaults to false.
kube Only one of kube, static, pipe, aws, azure, or awsEc2 can be set.
static Only one of static, kube, pipe, aws, azure, or awsEc2 can be set.
pipe Only one of pipe, kube, static, aws, azure, or awsEc2 can be set.
aws Only one of aws, kube, static, pipe, azure, or awsEc2 can be set.
azure Only one of azure, kube, static, pipe, aws, or awsEc2 can be set.
consul Only one of consul, kube, static, pipe, aws, or awsEc2 can be set.
awsEc2 Only one of awsEc2, kube, static, pipe, aws, or consul can be set.
failover Failover endpoints for this upstream. If omitted (the default) no failovers will be applied.
initialStreamWindowSize .google.protobuf.UInt32Value (UInt32Value) Initial stream-level flow-control window size. Valid values range from 65535 (2^16 - 1, HTTP/2 default) to 2147483647 (2^31 - 1, HTTP/2 maximum) and defaults to 268435456 (256 * 1024 * 1024). NOTE: 65535 is the initial window size from HTTP/2 spec. We only support increasing the default window size now, so it’s also the minimum. This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the HTTP/2 codec buffers. Once the buffer reaches this pointer, watermark callbacks will fire to stop the flow of data to the codec buffers. Requires UseHttp2 to be true to be acknowledged.
initialConnectionWindowSize .google.protobuf.UInt32Value (UInt32Value) Similar to initial_stream_window_size, but for connection-level flow-control window. Currently, this has the same minimum/maximum/default as initial_stream_window_size. Requires UseHttp2 to be true to be acknowledged.


created by discovery services

"labels": map<string, string>

Field Type Description Default
labels map<string, string> Labels inherited from the original upstream (e.g. Kubernetes labels).