Upstream represents a destination for routing. Upstreams can be compared to clusters in Envoy terminology. Upstreams can take a variety of types<!--(TODO)--> in gloo. Language extensions known as plugins<!--(TODO)--> allow the addition of new types of upstreams. <!--See upstream types for a detailed description of available upstream types.-->

name: string
type: string
connection_timeout: {google.protobuf.Duration}
spec: {google.protobuf.Struct}
functions: [{Function}]
service_info: {ServiceInfo}
status: (read only)
metadata: {Metadata}

Field Type Label Description
name string Name of the upstream. Names must be unique and follow the following syntax rules: One or more lowercase rfc1035/rfc1123 labels separated by '.' with a maximum length of 253 characters.
type string Type indicates the type of the upstream. Examples include service<!--(TODO)-->, kubernetes<!--(TODO)-->, and aws Types are defined by the plugin<!--(TODO)--> associated with them.
connection_timeout google.protobuf.Duration Connection Timeout tells gloo to set a timeout for unresponsive connections created to this upstream. If not provided by the user, it will set to a default value
spec google.protobuf.Struct Spec contains properties that are specific to the upstream type. The spec is always required, but the expected content is specified by the [upstream plugin] for the given upstream type. Most often the upstream spec will be a map<string, string>
functions Function repeated Certain upstream types support (and may require) functions. Functions allow function-level routing to be done. For example, the AWS lambda upstream type Permits routing to AWS lambda function]. routes on virtualservices can specify function destinations to route to specific functions.
service_info ServiceInfo Service Info contains information about the service running on the upstream Service Info is optional, but is used by certain plugins (such as the gRPC plugin) as well as discovery services to provide sophistocated routing features for well-known types of services
status Status Status indicates the validation status of the upstream resource. Status is read-only by clients, and set by gloo during validation
metadata Metadata Metadata contains the resource metadata for the upstream


type: string
properties: {google.protobuf.Struct}

Field Type Label Description
type string Type indicates the type of service running on the upstream. Current options include REST, gRPC, and NATS
properties google.protobuf.Struct Properties contains properties that describe the service. The spec may be required by the Upstream Plugin that handles the given Service Type Most often the service properties will be a map<string, string>


name: string
spec: {google.protobuf.Struct}

Field Type Label Description
name string Name of the function. Functions are referenced by name from routes and therefore must be unique within an upstream
spec google.protobuf.Struct Spec for the function. Like upstream specs, the content of function specs is specified by the upstream plugin for the upstream's type.