destination.proto

Package : discovery.mesh.gloo.solo.io

Top

destination.proto

Table of Contents

DestinationSpec

The Destination is an abstraction for any entity capable of receiving networking requests.

Field Type Label Description
kubeService discovery.mesh.gloo.solo.io.DestinationSpec.KubeService KubeService is a kube-native Destination representing a kubernetes service running inside of a kubernetes cluster.
externalService discovery.mesh.gloo.solo.io.DestinationSpec.ExternalService ExternalService is a Destination representing a service external to the Mesh. It can be used to expose a given hostname or IP address to all clusters in the Virtual Mesh.
mesh core.skv2.solo.io.ObjectRef The mesh that controls this Destination. Can be omitted if the Destination isn't associated with any particular mesh, eg for External Services.

DestinationSpec.ExternalService

Describes a service external to the mesh

Field Type Label Description
name string The name of the service
hosts []string repeated The list of hosts which will resolve to this Destination for services within the Virtual Mesh.
addresses []string repeated The List of addresses which will resolve to this service for services within the Virtual Mesh.
ports []discovery.mesh.gloo.solo.io.DestinationSpec.ExternalService.ServicePort repeated The associated ports of the external service
endpoints []discovery.mesh.gloo.solo.io.DestinationSpec.ExternalService.ExternalEndpoint repeated List of endpoints, to which any requests to this Destionation will be load balanced across.

DestinationSpec.ExternalService.ExternalEndpoint

ExternalEndpoint represents the address/port(s) of the external service which will receive requests sent to this Destination.

Field Type Label Description
address string The address of the external service. Can be a domain or an IP.
ports []discovery.mesh.gloo.solo.io.DestinationSpec.ExternalService.ExternalEndpoint.PortsEntry repeated The port(s) of the external endpoint. Eg: https: 443

DestinationSpec.ExternalService.ExternalEndpoint.PortsEntry

Field Type Label Description
key string
value uint32

DestinationSpec.ExternalService.ServicePort

ServicePort describes a port accessible on this Destination

Field Type Label Description
number uint32 The port number. Must be a valid, non-negative integer port number.
name string A label for the port, eg “http”
protocol string The protocol used in communications with this Destination MUST BE one of HTTP

DestinationSpec.KubeService

Describes a Kubernetes service.

Field Type Label Description
ref core.skv2.solo.io.ClusterObjectRef Reference to the Kubernetes service object.
workloadSelectorLabels []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.WorkloadSelectorLabelsEntry repeated Selectors for the set of pods targeted by the Kubernetes service.
labels []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.LabelsEntry repeated Labels on the Kubernetes service.
ports []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.KubeServicePort repeated The ports exposed by the underlying service.
subsets []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.SubsetsEntry repeated Subsets for routing, based on labels.
region string The region the service resides in, typically representing a large geographic area.
endpointSubsets []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.EndpointsSubset repeated Each endpoints subset is a group of endpoints arranged in terms of IP/port pairs. This API mirrors the Kubernetes Endpoints API.

DestinationSpec.KubeService.EndpointsSubset

A series of IP addresses and their associated ports. The list of IP and port pairs is the cartesian product of the endpoint and port lists.

Field Type Label Description
endpoints []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.EndpointsSubset.Endpoint repeated
ports []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.KubeServicePort repeated

DestinationSpec.KubeService.EndpointsSubset.Endpoint

An endpoint exposed by this service.

Field Type Label Description
ipAddress string
labels []discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.EndpointsSubset.Endpoint.LabelsEntry repeated Labels which belong to this IP. These are taken from the backing workload instance.
subLocality discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.EndpointsSubset.Endpoint.SubLocality The zone and sub-zone (if controlled by Istio) of the endpoint.

DestinationSpec.KubeService.EndpointsSubset.Endpoint.LabelsEntry

Field Type Label Description
key string
value string

DestinationSpec.KubeService.EndpointsSubset.Endpoint.SubLocality

A subdivision of a region representing a set of physically colocated compute resources.

Field Type Label Description
zone string A subdivision of a geographical region, see here for more information.
subZone string A subdivision of zone. Only applies to Istio-controlled Destinations, see here for more information.

DestinationSpec.KubeService.KubeServicePort

Describes the service's ports. See here for more information.

Field Type Label Description
port uint32 External-facing port for this Kubernetes service (not the service's target port on the targeted pods).
name string
protocol string
appProtocol string Available in Kubernetes 1.18+, describes the application protocol.

DestinationSpec.KubeService.LabelsEntry

Field Type Label Description
key string
value string

DestinationSpec.KubeService.Subset

Subsets for routing, based on labels.

Field Type Label Description
values []string repeated

DestinationSpec.KubeService.SubsetsEntry

Field Type Label Description
key string
value discovery.mesh.gloo.solo.io.DestinationSpec.KubeService.Subset

DestinationSpec.KubeService.WorkloadSelectorLabelsEntry

Field Type Label Description
key string
value string

DestinationStatus

Field Type Label Description
observedGeneration int64 The most recent generation observed in the the TrafficPolicy metadata. If the observedGeneration does not match metadata.generation, Gloo Mesh has not processed the most recent version of this resource.
appliedTrafficPolicies []discovery.mesh.gloo.solo.io.DestinationStatus.AppliedTrafficPolicy repeated The set of TrafficPolicies that have been applied to this Destination.
appliedAccessPolicies []discovery.mesh.gloo.solo.io.DestinationStatus.AppliedAccessPolicy repeated The set of AccessPolicies that have been applied to this Destination.
localFqdn string The fully qualified domain name for requests originating from a source coloated with this Destination. For Kubernetes services, “colocated” means within the same Kubernetes cluster.
appliedFederation discovery.mesh.gloo.solo.io.DestinationStatus.AppliedFederation Federation metadata. Only populated if this Destination is federated through a VirtualMesh.

DestinationStatus.AppliedAccessPolicy

Describes an AccessPolicy that applies to this Destination. If an existing AccessPolicy becomes invalid, the last valid applied policy will be used.

Field Type Label Description
ref core.skv2.solo.io.ObjectRef Reference to the AccessPolicy object.
observedGeneration int64 The observed generation of the accepted AccessPolicy.
spec networking.mesh.gloo.solo.io.AccessPolicySpec The spec of the last known valid AccessPolicy.

DestinationStatus.AppliedFederation

Describes the federation configuration applied to this Destination through a VirtualMesh. Federation allows access to the Destination from other meshes/clusters.

Field Type Label Description
federatedHostname string For any Workload that this Destination has been federated to (i.e., any Workload controlled by a Mesh whose reference appears in federated_to_meshes), that Workload will be able to reach this Destination using this DNS name. For Kubernetes Destinations this includes Workloads on clusters other than the one hosting this Destination.
federatedToMeshes []core.skv2.solo.io.ObjectRef repeated The list of Meshes which are able to resolve this Destination's multicluster_dns_name.
flatNetwork bool Whether or not the Destination has been federated to the given meshes using a VirtualMesh where Federation.FlatNetwork is true.

DestinationStatus.AppliedTrafficPolicy

Describes a TrafficPolicy that applies to the Destination. If an existing TrafficPolicy becomes invalid, the last valid applied TrafficPolicy will be used.

Field Type Label Description
ref core.skv2.solo.io.ObjectRef Reference to the TrafficPolicy object.
observedGeneration int64 The observed generation of the accepted TrafficPolicy.
spec networking.mesh.gloo.solo.io.TrafficPolicySpec The spec of the last known valid TrafficPolicy.