This file contains the basic definition for the Upstream proto object.
Upstreams are a top-level resource in Gloo.
Upstreams contain data used for routing requests. They reflect real services, actively running e.g. inside kubernetes, hosted by a cloud provider, running at a static IP, etc.
The specific type of upstream is determined by the type of
upstream_spec on the upstream object.
Some upstreams are auto-discovered by Gloo via service discovery backends like kubernetes and consul. These upstreams contain the information pulled from the service discovery backend, such as the service's listening ports and registry identifier.
Static IP addresses (or sets of them) can be defined with their own upstream type, the
Static upstream. Static upstreams
can be created using Gloo's yaml-based CRD interface in Kubernetes, as well as using the command-line
Some upstreams reference credentials for an account with a public Cloud Provider such as AWS or Azure. Credentials are stored in Kubernetes secrets (with experimental support for Vault), and the Upstream object is required to provide a reference to the secret. Cloud Proivder upstreams must also be added manually, although their contents (e.g. available Lambda functions for an AWS region) can be discovered automatically by Gloo.
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
consul, and more.
Each upstream type is handled by a corresponding Gloo plugin.
"upstream_spec": .gloo.solo.io.UpstreamSpec "status": .core.solo.io.Status "metadata": .core.solo.io.Metadata "discovery_metadata": .gloo.solo.io.DiscoveryMetadata
||.gloo.solo.io.UpstreamSpec||Type-specific configuration. Examples include static, kubernetes, and aws. The type-specific config for the upstream is called a spec.|
||.core.solo.io.Status||Status indicates the validation status of the resource. Status is read-only by clients, and set by gloo during validation|
||.core.solo.io.Metadata||Metadata contains the object metadata for this resource|
||.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.|
created by discovery services