external_service.proto

Package : networking.gloo.solo.io

Top

external_service.proto

Table of Contents

ExternalServiceSpec

ExternalService defines a destination for routing which exist outside the mesh. This could for example be a web API or a set of virtual machines that are not running in Kubernetes. When an ExternalService is defined for a given workspace, it can be used as a Destination in Routes, as well as called directly via its specified hostname. Resolution of the IP addresses for external services can be done via DNS or provided statically using the ExternalEndpoint object.

Field Type Label Description
hosts []string repeated The List of hostnames which will resolve to this service. These hosts must be unique among all ExternalServices and VirtualHosts within a workspace. Only FQDNs are supported at this time (wildcard domains are not allowed for ExternalServices). or Originating TLS connections to ExternalServices is only supported for FQDNs (not for wildcard domains).
ports []networking.gloo.solo.io.ExternalServiceSpec.Port repeated The associated ports of the external service.
selector []networking.gloo.solo.io.ExternalServiceSpec.SelectorEntry repeated Selecting ExternalEndpoints will provide the addresses used for routing traffic to on the ExternalService's hosts. An empty selector will not select any endpoints. If no endpoints are selected, requests will be routed to the provided hosts using dns resolution.
subjectAltNames []string repeated A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. Only applicable when using TLS to communicate with the ExternalService.

ExternalServiceSpec.Port

Port establishes a new port that will be exposed on an ExternalService.

Field Type Label Description
number uint32 The port number. Must be a valid, non-negative integer port number.
targetPort common.gloo.solo.io.PortSelector (optional): The port number or name used to match the corresponding port on the ExternalService's backing ExternalEndpoints. All of the backing ExternalEndpoints for this ExternalService must contain this port, matching by name or number. If no backing ExternalEndpoints are provided, a name selector is invalid, and requests will be routed to the provided hosts on the port number specified. If unspecified, will default to the value of the port number field above.
name string A label for the port, eg “http”.
protocol string The protocol used in communication with this destination MUST be one of the following: HTTP, HTTPS, GRPC, HTTP2, MONGO, TCP, TLS.
clientsideTls networking.gloo.solo.io.ExternalServiceSpec.Port.TlsConfig The tls config for the given port. If the protocol is HTTPS or TLS, the ExternalService will be configured to use TLS automatically.

ExternalServiceSpec.Port.TlsConfig

Field Type Label Description
sni string SNI string to present to the server during TLS handshake. If there is a single host in the hosts list, this will be used as the SNI string.

ExternalServiceSpec.SelectorEntry

Field Type Label Description
key string
value string

ExternalServiceStatus

reflects the status of the ExternalService

Field Type Label Description
global common.gloo.solo.io.GenericGlobalStatus
workspaces []networking.gloo.solo.io.ExternalServiceStatus.WorkspacesEntry repeated The status of the resource in each workspace that it exists in.
appliedDestinationPolicies []networking.gloo.solo.io.ExternalServiceStatus.AppliedDestinationPoliciesEntry repeated Map of policy GVK to policy references for all policies applied on this resource.
selectedExternalEndpoints []common.gloo.solo.io.ObjectReference repeated The list of endpoints that this ExternalService is currently using.
ownerWorkspace common.gloo.solo.io.OwnerWorkspace Name of Workspace that owns ExternalService

ExternalServiceStatus.AppliedDestinationPoliciesEntry

Field Type Label Description
key string
value common.gloo.solo.io.AppliedDestinationPortPolicies

ExternalServiceStatus.WorkspacesEntry

Field Type Label Description
key string
value common.gloo.solo.io.WorkspaceStatus