upstream.proto
Package: gloo.solo.io
Types:
- Upstream Top-Level Resource
- DiscoveryMetadata
Source File: github.com/solo-io/gloo/projects/gloo/api/v1/upstream.proto
Upstream
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)
"status": .core.solo.io.Status
"metadata": .core.solo.io.Metadata
"discoveryMetadata": .gloo.solo.io.DiscoveryMetadata
"sslConfig": .gloo.solo.io.UpstreamSslConfig
"circuitBreakers": .gloo.solo.io.CircuitBreakerConfig
"loadBalancerConfig": .gloo.solo.io.LoadBalancerConfig
"connectionConfig": .gloo.solo.io.ConnectionConfig
"healthChecks": []solo.io.envoy.api.v2.core.HealthCheck
"outlierDetection": .solo.io.envoy.api.v2.cluster.OutlierDetection
"useHttp2": .google.protobuf.BoolValue
"kube": .kubernetes.options.gloo.solo.io.UpstreamSpec
"static": .static.options.gloo.solo.io.UpstreamSpec
"pipe": .pipe.options.gloo.solo.io.UpstreamSpec
"aws": .aws.options.gloo.solo.io.UpstreamSpec
"azure": .azure.options.gloo.solo.io.UpstreamSpec
"consul": .consul.options.gloo.solo.io.UpstreamSpec
"awsEc2": .aws_ec2.options.gloo.solo.io.UpstreamSpec
"failover": .gloo.solo.io.Failover
"initialStreamWindowSize": .google.protobuf.UInt32Value
"initialConnectionWindowSize": .google.protobuf.UInt32Value
"httpProxyHostname": .google.protobuf.StringValue
Field | Type | Description |
---|---|---|
status |
.core.solo.io.Status | Status indicates the validation status of the resource. Status is read-only by clients, and set by gloo during validation. |
metadata |
.core.solo.io.Metadata | Metadata contains the object metadata for this resource. |
discoveryMetadata |
.gloo.solo.io.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. |
sslConfig |
.gloo.solo.io.UpstreamSslConfig | SslConfig contains the options necessary to configure an upstream to use TLS origination. |
circuitBreakers |
.gloo.solo.io.CircuitBreakerConfig | 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. |
loadBalancerConfig |
.gloo.solo.io.LoadBalancerConfig | |
connectionConfig |
.gloo.solo.io.ConnectionConfig | |
healthChecks |
[]solo.io.envoy.api.v2.core.HealthCheck | |
outlierDetection |
.solo.io.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 |
.kubernetes.options.gloo.solo.io.UpstreamSpec | Only one of kube , static , pipe , aws , azure , or awsEc2 can be set. |
static |
.static.options.gloo.solo.io.UpstreamSpec | Only one of static , kube , pipe , aws , azure , or awsEc2 can be set. |
pipe |
.pipe.options.gloo.solo.io.UpstreamSpec | Only one of pipe , kube , static , aws , azure , or awsEc2 can be set. |
aws |
.aws.options.gloo.solo.io.UpstreamSpec | Only one of aws , kube , static , pipe , azure , or awsEc2 can be set. |
azure |
.azure.options.gloo.solo.io.UpstreamSpec | Only one of azure , kube , static , pipe , aws , or awsEc2 can be set. |
consul |
.consul.options.gloo.solo.io.UpstreamSpec | Only one of consul , kube , static , pipe , aws , or awsEc2 can be set. |
awsEc2 |
.aws_ec2.options.gloo.solo.io.UpstreamSpec | Only one of awsEc2 , kube , static , pipe , aws , or consul can be set. |
failover |
.gloo.solo.io.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. |
httpProxyHostname |
.google.protobuf.StringValue | Tells envoy that the upstream is an HTTP proxy (e.g., another proxy in a DMZ) that supports HTTP Connect. This configuration sets the hostname used as part of the HTTP Connect request. For example, setting to: host.com:443 and making a request routed to the upstream such as curl <envoy>:<port>/v1 would result in the following request: CONNECT host.com:443 HTTP/1.1 host: host.com:443 GET /v1 HTTP/1.1 host: host_rewrite on the route. |
DiscoveryMetadata
created by discovery services
"labels": map<string, string>
Field | Type | Description |
---|---|---|
labels |
map<string, string> |
Labels inherited from the original upstream (e.g. Kubernetes labels). |