upstream.proto

Package: gloo.solo.io

Types:

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)

"namespacedStatuses": .core.solo.io.NamespacedStatuses
"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
"ignoreHealthOnHostRemoval": .google.protobuf.BoolValue

Field Type Description
namespacedStatuses .core.solo.io.NamespacedStatuses NamespacedStatuses indicates the validation status of this resource. NamespacedStatuses 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, consul, or awsEc2 can be set.
static .static.options.gloo.solo.io.UpstreamSpec Only one of static, kube, pipe, aws, azure, consul, or awsEc2 can be set.
pipe .pipe.options.gloo.solo.io.UpstreamSpec Only one of pipe, kube, static, aws, azure, consul, or awsEc2 can be set.
aws .aws.options.gloo.solo.io.UpstreamSpec Only one of aws, kube, static, pipe, azure, consul, or awsEc2 can be set.
azure .azure.options.gloo.solo.io.UpstreamSpec Only one of azure, kube, static, pipe, aws, consul, or awsEc2 can be set.
consul .consul.options.gloo.solo.io.UpstreamSpec Only one of consul, kube, static, pipe, aws, azure, or awsEc2 can be set.
awsEc2 .aws_ec2.options.gloo.solo.io.UpstreamSpec Only one of awsEc2, kube, static, pipe, aws, azure, 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: : user-agent: curl/7.64.1 accept: / Note: if setting this field to a hostname rather than IP:PORT, you may want to also set host_rewrite on the route.
ignoreHealthOnHostRemoval .google.protobuf.BoolValue (bool) If set to true, Envoy will ignore the health value of a host when processing its removal from service discovery. This means that if active health checking is used, Envoy will not wait for the endpoint to go unhealthy before removing it.

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).