v1

package
v0.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2018 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1 is a generated protocol buffer package.

It is generated from these files:

attribute.proto
config.proto
metadata.proto
role.proto
status.proto
upstream.proto
virtualservice.proto

It has these top-level messages:

Attribute
ListenerAttribute
Config
Metadata
Role
Listener
Status
Upstream
ServiceInfo
Function
VirtualService
Route
RequestMatcher
EventMatcher
WeightedDestination
Destination
FunctionDestination
UpstreamDestination
SSLConfig
SSLFiles

Index

Constants

This section is empty.

Variables

View Source
var Status_State_name = map[int32]string{
	0: "Pending",
	1: "Accepted",
	2: "Rejected",
}
View Source
var Status_State_value = map[string]int32{
	"Pending":  0,
	"Accepted": 1,
	"Rejected": 2,
}

Functions

This section is empty.

Types

type Attribute

type Attribute struct {
	// Name of the attribute.
	//
	// Attribute 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.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Attributes can apply only to one kind of resource
	// Currently available are:
	// * Listeners
	//
	// Types that are valid to be assigned to AttributeType:
	//	*Attribute_ListenerAttribute
	AttributeType isAttribute_AttributeType `protobuf_oneof:"attribute_type"`
	// Status indicates the validation status of the attribute resource.
	// Status is read-only by clients, and set by gloo during validation
	Status *Status `protobuf:"bytes,6,opt,name=status" json:"status,omitempty" testdiff:"ignore"`
	// Metadata contains the resource metadata for the attribute
	Metadata *Metadata `protobuf:"bytes,7,opt,name=metadata" json:"metadata,omitempty"`
}

* An attribute is a container for configuration that is intended to be applied across a set of labeled resources inside of Gloo. Attributes specify a set of selectors which are compared with labels by Gloo at runtime In the current implementation, only Listeners have be selected, and therefore configured by Attributes. Labels and Selectors follow the same logical patterns implemented by Kubernetes. Read about the Kubernetes concepts here: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ Attributes are useful when applying shared configuration to a large number of objects, such as the sharing of route configuration between roles.

func (*Attribute) Descriptor

func (*Attribute) Descriptor() ([]byte, []int)

func (*Attribute) Equal

func (this *Attribute) Equal(that interface{}) bool

func (*Attribute) GetAttributeType

func (m *Attribute) GetAttributeType() isAttribute_AttributeType

func (*Attribute) GetListenerAttribute

func (m *Attribute) GetListenerAttribute() *ListenerAttribute

func (*Attribute) GetMetadata

func (m *Attribute) GetMetadata() *Metadata

func (*Attribute) GetName

func (m *Attribute) GetName() string

func (*Attribute) GetStatus

func (m *Attribute) GetStatus() *Status

func (*Attribute) ProtoMessage

func (*Attribute) ProtoMessage()

func (*Attribute) Reset

func (m *Attribute) Reset()

func (*Attribute) SetMetadata

func (item *Attribute) SetMetadata(meta *Metadata)

func (*Attribute) SetName

func (item *Attribute) SetName(name string)

func (*Attribute) SetStatus

func (item *Attribute) SetStatus(status *Status)

func (*Attribute) String

func (m *Attribute) String() string

func (*Attribute) XXX_OneofFuncs

func (*Attribute) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type Attribute_ListenerAttribute

type Attribute_ListenerAttribute struct {
	ListenerAttribute *ListenerAttribute `protobuf:"bytes,2,opt,name=listener_attribute,json=listenerAttribute,oneof"`
}

func (*Attribute_ListenerAttribute) Equal

func (this *Attribute_ListenerAttribute) Equal(that interface{}) bool

type Config

type Config struct {
	Upstreams       []*Upstream       `protobuf:"bytes,1,rep,name=upstreams" json:"upstreams,omitempty"`
	VirtualServices []*VirtualService `protobuf:"bytes,2,rep,name=virtual_services,json=virtualServices" json:"virtual_services,omitempty"`
	Roles           []*Role           `protobuf:"bytes,3,rep,name=roles" json:"roles,omitempty"`
	Attributes      []*Attribute      `protobuf:"bytes,4,rep,name=attributes" json:"attributes,omitempty"`
}

* Config is a top-level config object. It is used internally by gloo as a container for the entire set of config objects.

func (*Config) Descriptor

func (*Config) Descriptor() ([]byte, []int)

func (*Config) Equal

func (this *Config) Equal(that interface{}) bool

func (*Config) GetAttributes

func (m *Config) GetAttributes() []*Attribute

func (*Config) GetRoles

func (m *Config) GetRoles() []*Role

func (*Config) GetUpstreams

func (m *Config) GetUpstreams() []*Upstream

func (*Config) GetVirtualServices

func (m *Config) GetVirtualServices() []*VirtualService

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

type ConfigObject

type ConfigObject interface {
	proto.Message
	GetName() string
	GetStatus() *Status
	GetMetadata() *Metadata
	SetName(name string)
	SetStatus(status *Status)
	SetMetadata(meta *Metadata)
}

type Destination

type Destination struct {
	// Types that are valid to be assigned to DestinationType:
	//	*Destination_Function
	//	*Destination_Upstream
	DestinationType isDestination_DestinationType `protobuf_oneof:"destination_type"`
}

Destination is a destination that requests can be routed to.

func (*Destination) Descriptor

func (*Destination) Descriptor() ([]byte, []int)

func (*Destination) Equal

func (this *Destination) Equal(that interface{}) bool

func (*Destination) GetDestinationType

func (m *Destination) GetDestinationType() isDestination_DestinationType

func (*Destination) GetFunction

func (m *Destination) GetFunction() *FunctionDestination

func (*Destination) GetUpstream

func (m *Destination) GetUpstream() *UpstreamDestination

func (*Destination) ProtoMessage

func (*Destination) ProtoMessage()

func (*Destination) Reset

func (m *Destination) Reset()

func (*Destination) String

func (m *Destination) String() string

func (*Destination) XXX_OneofFuncs

func (*Destination) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type Destination_Function

type Destination_Function struct {
	Function *FunctionDestination `protobuf:"bytes,1,opt,name=function,oneof"`
}

func (*Destination_Function) Equal

func (this *Destination_Function) Equal(that interface{}) bool

type Destination_Upstream

type Destination_Upstream struct {
	Upstream *UpstreamDestination `protobuf:"bytes,2,opt,name=upstream,oneof"`
}

func (*Destination_Upstream) Equal

func (this *Destination_Upstream) Equal(that interface{}) bool

type EventMatcher

type EventMatcher struct {
	// Event Type indicates the event type or topic to match
	EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
}

Event matcher is a special kind of matcher for CloudEvents The CloudEvents API is described here: https://github.com/cloudevents/spec/blob/master/spec.md

func (*EventMatcher) Descriptor

func (*EventMatcher) Descriptor() ([]byte, []int)

func (*EventMatcher) Equal

func (this *EventMatcher) Equal(that interface{}) bool

func (*EventMatcher) GetEventType

func (m *EventMatcher) GetEventType() string

func (*EventMatcher) ProtoMessage

func (*EventMatcher) ProtoMessage()

func (*EventMatcher) Reset

func (m *EventMatcher) Reset()

func (*EventMatcher) String

func (m *EventMatcher) String() string

type Function

type Function struct {
	// Name of the function. Functions are referenced by name from routes and therefore must be unique within an upstream
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Spec for the function. Like [upstream specs](TODO), the content of function specs is specified by the [upstream plugin](TODO) for the upstream's type.
	Spec *google_protobuf.Struct `protobuf:"bytes,4,opt,name=spec" json:"spec,omitempty"`
}

func (*Function) Descriptor

func (*Function) Descriptor() ([]byte, []int)

func (*Function) Equal

func (this *Function) Equal(that interface{}) bool

func (*Function) GetName

func (m *Function) GetName() string

func (*Function) GetSpec

func (m *Function) GetSpec() *google_protobuf.Struct

func (*Function) ProtoMessage

func (*Function) ProtoMessage()

func (*Function) Reset

func (m *Function) Reset()

func (*Function) String

func (m *Function) String() string

type FunctionDestination

type FunctionDestination struct {
	// Upstream Name is the name of the upstream the function belongs to
	UpstreamName string `protobuf:"bytes,1,opt,name=upstream_name,json=upstreamName,proto3" json:"upstream_name,omitempty"`
	// Function Name is the name of the function as defined on the upstream
	FunctionName string `protobuf:"bytes,2,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
}

FunctionDestination will route a request to a specific function defined for an upstream

func (*FunctionDestination) Descriptor

func (*FunctionDestination) Descriptor() ([]byte, []int)

func (*FunctionDestination) Equal

func (this *FunctionDestination) Equal(that interface{}) bool

func (*FunctionDestination) GetFunctionName

func (m *FunctionDestination) GetFunctionName() string

func (*FunctionDestination) GetUpstreamName

func (m *FunctionDestination) GetUpstreamName() string

func (*FunctionDestination) ProtoMessage

func (*FunctionDestination) ProtoMessage()

func (*FunctionDestination) Reset

func (m *FunctionDestination) Reset()

func (*FunctionDestination) String

func (m *FunctionDestination) String() string

type FunctionSpec

type FunctionSpec *types.Struct

type Listener

type Listener struct {
	// the name of the listener. names must be unique for listeners within a role
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// the bind address for the listener.
	// both ipv4 and ipv6 formats are supported
	BindAddress string `protobuf:"bytes,2,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"`
	// the port to bind on
	// ports numbers must be unique for listeners within a role
	BindPort uint32 `protobuf:"varint,3,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"`
	// defines the set of virtual services that will be accessible by clients connecting to this listener.
	// at least one virtual service must be specifiedfor HTTP-level features to be applied at the listener level
	VirtualServices []string `protobuf:"bytes,4,rep,name=virtual_services,json=virtualServices" json:"virtual_services,omitempty"`
	// Config contains top-level config to be applied to a listener
	// Listener config is applied to all TCP/HTTP traffic that
	// initiates via this listener.
	// Configuration such as gzip compression and TLS authentication is specified here
	Config *google_protobuf.Struct `protobuf:"bytes,5,opt,name=config" json:"config,omitempty"`
	// Apply Listener Attributes to listeners with selectors matching these label keys and values
	// If empty or not present, the Listener will inherit no configuration from Attributes.
	Labels map[string]string `` /* 146-byte string literal not displayed */
	// SSL Config is optional for the role. If provided, the listener will serve TLS for connections on this port
	// this is useful when there are no virtual services assigned to this listener, e.g. for the purpose of
	// securing a Listener functioning as a TCP Proxy
	// if no virtual services are defined and ssl_config is nil, the proxy will serve tcp connections insecurely on this port
	SslConfig *SSLConfig `protobuf:"bytes,6,opt,name=ssl_config,json=sslConfig" json:"ssl_config,omitempty"`
}

Listeners define the address:port where the proxy will listen for incoming connections Each listener defines a unique set of TCP and HTTP behaviors

func (*Listener) Descriptor

func (*Listener) Descriptor() ([]byte, []int)

func (*Listener) Equal

func (this *Listener) Equal(that interface{}) bool

func (*Listener) GetBindAddress

func (m *Listener) GetBindAddress() string

func (*Listener) GetBindPort

func (m *Listener) GetBindPort() uint32

func (*Listener) GetConfig

func (m *Listener) GetConfig() *google_protobuf.Struct

func (*Listener) GetLabels

func (m *Listener) GetLabels() map[string]string

func (*Listener) GetName

func (m *Listener) GetName() string

func (*Listener) GetSslConfig

func (m *Listener) GetSslConfig() *SSLConfig

func (*Listener) GetVirtualServices

func (m *Listener) GetVirtualServices() []string

func (*Listener) ProtoMessage

func (*Listener) ProtoMessage()

func (*Listener) Reset

func (m *Listener) Reset()

func (*Listener) String

func (m *Listener) String() string

type ListenerAttribute

type ListenerAttribute struct {
	// Apply this attribute to listeners with label keys and values matching this
	// selector. If empty or not present, the attribute will not be applied to any listeners.
	Selector map[string]string `` /* 150-byte string literal not displayed */
	// Listeners can serve HTTP or raw TCP, but not both. If at least one Virtual Service is specified here,
	// the listener will become an HTTP listener serving routes defined in these virtual services.
	// Some Listener plugins may impose restrictions on the Virtual Services that can be applied to a listener.
	// For example, some plugins may require all applied virtual services only route to a specific upstream,
	// a common requirement for Service Meshes
	VirtualServices []string `protobuf:"bytes,4,rep,name=virtual_services,json=virtualServices" json:"virtual_services,omitempty"`
	// Config contains top-level config to be applied to a listener
	// Listener config is applied to all TCP/HTTP traffic that
	// initiates via this listener.
	// Configuration such as gzip compression and TLS authentication is specified here
	// This config struct will be merged with Role-specific Listener Conig. If two fields overlap between the
	// Listener config on the role and the config on the attribute, the config on the Role will supersede this one
	Config *google_protobuf.Struct `protobuf:"bytes,5,opt,name=config" json:"config,omitempty"`
}

Listeners define the address:port where the proxy will listen for incoming connections Each listener defines a unique set of TCP and HTTP behaviors

func (*ListenerAttribute) Descriptor

func (*ListenerAttribute) Descriptor() ([]byte, []int)

func (*ListenerAttribute) Equal

func (this *ListenerAttribute) Equal(that interface{}) bool

func (*ListenerAttribute) GetConfig

func (m *ListenerAttribute) GetConfig() *google_protobuf.Struct

func (*ListenerAttribute) GetSelector

func (m *ListenerAttribute) GetSelector() map[string]string

func (*ListenerAttribute) GetVirtualServices

func (m *ListenerAttribute) GetVirtualServices() []string

func (*ListenerAttribute) ProtoMessage

func (*ListenerAttribute) ProtoMessage()

func (*ListenerAttribute) Reset

func (m *ListenerAttribute) Reset()

func (*ListenerAttribute) String

func (m *ListenerAttribute) String() string

type Metadata

type Metadata struct {
	// ResourceVersion keeps track of the resource version of a config resource. This mechanism is used by [gloo-storage](https://github.com/solo-io/gloo/pkg/storage) to ensure safety with concurrent writes/updates to a resource in storage.
	ResourceVersion string `protobuf:"bytes,1,opt,name=resource_version,json=resourceVersion,proto3" json:"resource_version,omitempty" testdiff:"ignore"`
	// Namespace is used for the namespacing of resources. Currently unused by gloo internally.
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Annotations allow clients to tag resources for special use cases. gloo ignores annotations but preserved them on read/write from/to storage.
	Annotations map[string]string `` /* 156-byte string literal not displayed */
}

* Metadata contains general properties of config resources useful to clients and the gloo control plane for purposes of versioning, annotating, and namespacing resources.

func (*Metadata) Descriptor

func (*Metadata) Descriptor() ([]byte, []int)

func (*Metadata) Equal

func (this *Metadata) Equal(that interface{}) bool

func (*Metadata) GetAnnotations

func (m *Metadata) GetAnnotations() map[string]string

func (*Metadata) GetNamespace

func (m *Metadata) GetNamespace() string

func (*Metadata) GetResourceVersion

func (m *Metadata) GetResourceVersion() string

func (*Metadata) ProtoMessage

func (*Metadata) ProtoMessage()

func (*Metadata) Reset

func (m *Metadata) Reset()

func (*Metadata) String

func (m *Metadata) String() string

type RequestMatcher

type RequestMatcher struct {
	// Path specifies the :path header in HTTP2, or the request URL path in HTTP 1
	//
	// Types that are valid to be assigned to Path:
	//	*RequestMatcher_PathPrefix
	//	*RequestMatcher_PathRegex
	//	*RequestMatcher_PathExact
	Path isRequestMatcher_Path `protobuf_oneof:"path"`
	// Headers specify a list of request headers and their values the request must contain to match this route
	// If a value is not specified (empty string) for a header, all values will match so long as the header is present on the request
	Headers map[string]string `` /* 148-byte string literal not displayed */
	// Query params work the same way as headers, but for query string parameters
	QueryParams map[string]string `` /* 175-byte string literal not displayed */
	// HTTP Verb(s) to match on. If none specified, the matcher will match all verbs
	Verbs []string `protobuf:"bytes,6,rep,name=verbs" json:"verbs,omitempty"`
}

Request Matcher is a route matcher for traditional http requests Request Matchers stand in juxtoposition to Event Matchers, which match "events" rather than HTTP Requests

func (*RequestMatcher) Descriptor

func (*RequestMatcher) Descriptor() ([]byte, []int)

func (*RequestMatcher) Equal

func (this *RequestMatcher) Equal(that interface{}) bool

func (*RequestMatcher) GetHeaders

func (m *RequestMatcher) GetHeaders() map[string]string

func (*RequestMatcher) GetPath

func (m *RequestMatcher) GetPath() isRequestMatcher_Path

func (*RequestMatcher) GetPathExact

func (m *RequestMatcher) GetPathExact() string

func (*RequestMatcher) GetPathPrefix

func (m *RequestMatcher) GetPathPrefix() string

func (*RequestMatcher) GetPathRegex

func (m *RequestMatcher) GetPathRegex() string

func (*RequestMatcher) GetQueryParams

func (m *RequestMatcher) GetQueryParams() map[string]string

func (*RequestMatcher) GetVerbs

func (m *RequestMatcher) GetVerbs() []string

func (*RequestMatcher) ProtoMessage

func (*RequestMatcher) ProtoMessage()

func (*RequestMatcher) Reset

func (m *RequestMatcher) Reset()

func (*RequestMatcher) String

func (m *RequestMatcher) String() string

func (*RequestMatcher) XXX_OneofFuncs

func (*RequestMatcher) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type RequestMatcher_PathExact

type RequestMatcher_PathExact struct {
	PathExact string `protobuf:"bytes,3,opt,name=path_exact,json=pathExact,proto3,oneof"`
}

func (*RequestMatcher_PathExact) Equal

func (this *RequestMatcher_PathExact) Equal(that interface{}) bool

type RequestMatcher_PathPrefix

type RequestMatcher_PathPrefix struct {
	PathPrefix string `protobuf:"bytes,1,opt,name=path_prefix,json=pathPrefix,proto3,oneof"`
}

func (*RequestMatcher_PathPrefix) Equal

func (this *RequestMatcher_PathPrefix) Equal(that interface{}) bool

type RequestMatcher_PathRegex

type RequestMatcher_PathRegex struct {
	PathRegex string `protobuf:"bytes,2,opt,name=path_regex,json=pathRegex,proto3,oneof"`
}

func (*RequestMatcher_PathRegex) Equal

func (this *RequestMatcher_PathRegex) Equal(that interface{}) bool

type Role

type Role struct {
	// Name of the role. Envoy nodes will be assigned a config matching the role they report to Gloo when registering
	// Envoy instances must specify their role in the prefix for their Node ID when they register to Gloo.
	//
	// Currently this is done in the format <Role>~<this portion is ignored>
	// which can be specified with the `--service-node` flag, or in the Envoy instance's bootstrap config.
	//
	// Role 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.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// define each listener the proxy will create
	// listeners define a set of behaviors for a single address:port
	// where the proxy will listen
	// if no listeners are specified, the role will behave as a gateway
	// see (pkg/api/defaults/v1)[https://github.com/solo-io/gloo/tree/master/pkg/api/defaults/v1]
	// to see the default listeners that will be created for Gateway proxies
	// binding to the default HTTP (8080) and HTTPS (8443) ports on 0.0.0.0 (all interfaces)
	Listeners []*Listener `protobuf:"bytes,2,rep,name=listeners" json:"listeners,omitempty"`
	// Status indicates the validation status of the role resource.
	// Status is read-only by clients, and set by gloo during validation
	Status *Status `protobuf:"bytes,6,opt,name=status" json:"status,omitempty" testdiff:"ignore"`
	// Metadata contains the resource metadata for the role
	Metadata *Metadata `protobuf:"bytes,7,opt,name=metadata" json:"metadata,omitempty"`
}

* A Role is a container for a set of Virtual Services that will be used to generate a single proxy config to be applied to one or more Envoy nodes. The Role is best understood as an in-mesh application's localized view of the rest of the mesh. Each domain for each Virtual Service contained in a Role cannot appear more than once, or the Role will be invalid. Roles contain a config field which can be written to for the purpose of applying configuration and policy to groupings of Virtual Services.

func (*Role) Descriptor

func (*Role) Descriptor() ([]byte, []int)

func (*Role) Equal

func (this *Role) Equal(that interface{}) bool

func (*Role) GetListeners

func (m *Role) GetListeners() []*Listener

func (*Role) GetMetadata

func (m *Role) GetMetadata() *Metadata

func (*Role) GetName

func (m *Role) GetName() string

func (*Role) GetStatus

func (m *Role) GetStatus() *Status

func (*Role) ProtoMessage

func (*Role) ProtoMessage()

func (*Role) Reset

func (m *Role) Reset()

func (*Role) SetMetadata

func (item *Role) SetMetadata(meta *Metadata)

func (*Role) SetName

func (item *Role) SetName(name string)

func (*Role) SetStatus

func (item *Role) SetStatus(status *Status)

func (*Role) String

func (m *Role) String() string

type Route

type Route struct {
	// Matcher defines what properties of a request to match on.
	// Routes will route all requests they match.
	// If a request matches more than one route, the first route on the virtual service's route list will be selected.
	//
	// Types that are valid to be assigned to Matcher:
	//	*Route_RequestMatcher
	//	*Route_EventMatcher
	Matcher isRoute_Matcher `protobuf_oneof:"matcher"`
	// A route is only allowed to specify one of multiple_destinations or single_destination. Setting both will result in an error
	// Multiple Destinations is used when a user wants a route to balance requests between multiple destinations
	// Balancing is done by probability, where weights are specified for each destination
	MultipleDestinations []*WeightedDestination `protobuf:"bytes,3,rep,name=multiple_destinations,json=multipleDestinations" json:"multiple_destinations,omitempty"`
	// A single destination is specified when a route only routes to a single destination.
	SingleDestination *Destination `protobuf:"bytes,4,opt,name=single_destination,json=singleDestination" json:"single_destination,omitempty"`
	// PrefixRewrite can be specified to rewrite the matched path of the request path to a new prefix
	PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3" json:"prefix_rewrite,omitempty"`
	// Extensions provides a way to extend the behavior of a route. In addition to the core route extensions<!--(TODO)-->,
	// gloo provides the means for route plugins<!--(TODO)--> to be added to gloo which add new types of route extensions.
	// <!--See the route extensions section for a more detailed explanation-->
	Extensions *google_protobuf.Struct `protobuf:"bytes,6,opt,name=extensions" json:"extensions,omitempty"`
}

* Routes declare the entrypoints on virtual services and the upstreams or functions they route requests to

func (*Route) Descriptor

func (*Route) Descriptor() ([]byte, []int)

func (*Route) Equal

func (this *Route) Equal(that interface{}) bool

func (*Route) GetEventMatcher

func (m *Route) GetEventMatcher() *EventMatcher

func (*Route) GetExtensions

func (m *Route) GetExtensions() *google_protobuf.Struct

func (*Route) GetMatcher

func (m *Route) GetMatcher() isRoute_Matcher

func (*Route) GetMultipleDestinations

func (m *Route) GetMultipleDestinations() []*WeightedDestination

func (*Route) GetPrefixRewrite

func (m *Route) GetPrefixRewrite() string

func (*Route) GetRequestMatcher

func (m *Route) GetRequestMatcher() *RequestMatcher

func (*Route) GetSingleDestination

func (m *Route) GetSingleDestination() *Destination

func (*Route) ProtoMessage

func (*Route) ProtoMessage()

func (*Route) Reset

func (m *Route) Reset()

func (*Route) String

func (m *Route) String() string

func (*Route) XXX_OneofFuncs

func (*Route) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type Route_EventMatcher

type Route_EventMatcher struct {
	EventMatcher *EventMatcher `protobuf:"bytes,2,opt,name=event_matcher,json=eventMatcher,oneof"`
}

func (*Route_EventMatcher) Equal

func (this *Route_EventMatcher) Equal(that interface{}) bool

type Route_RequestMatcher

type Route_RequestMatcher struct {
	RequestMatcher *RequestMatcher `protobuf:"bytes,1,opt,name=request_matcher,json=requestMatcher,oneof"`
}

func (*Route_RequestMatcher) Equal

func (this *Route_RequestMatcher) Equal(that interface{}) bool

type SSLConfig

type SSLConfig struct {
	// Types that are valid to be assigned to SslSecrets:
	//	*SSLConfig_SecretRef
	//	*SSLConfig_SslFiles
	SslSecrets isSSLConfig_SslSecrets `protobuf_oneof:"ssl_secrets"`
	// optional. the SNI domains that should be considered for TLS connections
	SniDomains []string `protobuf:"bytes,3,rep,name=sni_domains,json=sniDomains" json:"sni_domains,omitempty"`
}

SSLConfig contains the options necessary to configure a virtualservice or listener to use TLS

func (*SSLConfig) Descriptor

func (*SSLConfig) Descriptor() ([]byte, []int)

func (*SSLConfig) Equal

func (this *SSLConfig) Equal(that interface{}) bool

func (*SSLConfig) GetSecretRef

func (m *SSLConfig) GetSecretRef() string

func (*SSLConfig) GetSniDomains

func (m *SSLConfig) GetSniDomains() []string

func (*SSLConfig) GetSslFiles

func (m *SSLConfig) GetSslFiles() *SSLFiles

func (*SSLConfig) GetSslSecrets

func (m *SSLConfig) GetSslSecrets() isSSLConfig_SslSecrets

func (*SSLConfig) ProtoMessage

func (*SSLConfig) ProtoMessage()

func (*SSLConfig) Reset

func (m *SSLConfig) Reset()

func (*SSLConfig) String

func (m *SSLConfig) String() string

func (*SSLConfig) XXX_OneofFuncs

func (*SSLConfig) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type SSLConfig_SecretRef

type SSLConfig_SecretRef struct {
	SecretRef string `protobuf:"bytes,1,opt,name=secret_ref,json=secretRef,proto3,oneof"`
}

func (*SSLConfig_SecretRef) Equal

func (this *SSLConfig_SecretRef) Equal(that interface{}) bool

type SSLConfig_SslFiles

type SSLConfig_SslFiles struct {
	SslFiles *SSLFiles `protobuf:"bytes,2,opt,name=ssl_files,json=sslFiles,oneof"`
}

func (*SSLConfig_SslFiles) Equal

func (this *SSLConfig_SslFiles) Equal(that interface{}) bool

type SSLFiles

type SSLFiles struct {
	TlsCert string `protobuf:"bytes,1,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"`
	TlsKey  string `protobuf:"bytes,2,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"`
	// for client cert validation. optional
	RootCa string `protobuf:"bytes,3,opt,name=root_ca,json=rootCa,proto3" json:"root_ca,omitempty"`
}

SSLFiles reference paths to certificates which can be read by the proxy off of its local filesystem

func (*SSLFiles) Descriptor

func (*SSLFiles) Descriptor() ([]byte, []int)

func (*SSLFiles) Equal

func (this *SSLFiles) Equal(that interface{}) bool

func (*SSLFiles) GetRootCa

func (m *SSLFiles) GetRootCa() string

func (*SSLFiles) GetTlsCert

func (m *SSLFiles) GetTlsCert() string

func (*SSLFiles) GetTlsKey

func (m *SSLFiles) GetTlsKey() string

func (*SSLFiles) ProtoMessage

func (*SSLFiles) ProtoMessage()

func (*SSLFiles) Reset

func (m *SSLFiles) Reset()

func (*SSLFiles) String

func (m *SSLFiles) String() string

type ServiceInfo

type ServiceInfo struct {
	// Type indicates the type of service running on the upstream.
	// Current options include `REST`, `gRPC`, and `NATS`
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// 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>
	Properties *google_protobuf.Struct `protobuf:"bytes,2,opt,name=properties" json:"properties,omitempty"`
}

func (*ServiceInfo) Descriptor

func (*ServiceInfo) Descriptor() ([]byte, []int)

func (*ServiceInfo) Equal

func (this *ServiceInfo) Equal(that interface{}) bool

func (*ServiceInfo) GetProperties

func (m *ServiceInfo) GetProperties() *google_protobuf.Struct

func (*ServiceInfo) GetType

func (m *ServiceInfo) GetType() string

func (*ServiceInfo) ProtoMessage

func (*ServiceInfo) ProtoMessage()

func (*ServiceInfo) Reset

func (m *ServiceInfo) Reset()

func (*ServiceInfo) String

func (m *ServiceInfo) String() string

type Status

type Status struct {
	// State is the enum indicating the state of the resource
	State Status_State `protobuf:"varint,1,opt,name=state,proto3,enum=gloo.api.v1.Status_State" json:"state,omitempty"`
	// Reason is a description of the error for Rejected resources. If the resource is pending or accepted, this field will be empty
	Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
}

* Status indicates whether a config resource (currently only [virtualservices](../introduction/concepts.md) and [upstreams](../introduction/concepts.md)) has been (in)validated by gloo

func (*Status) Descriptor

func (*Status) Descriptor() ([]byte, []int)

func (*Status) Equal

func (this *Status) Equal(that interface{}) bool

func (*Status) GetReason

func (m *Status) GetReason() string

func (*Status) GetState

func (m *Status) GetState() Status_State

func (*Status) ProtoMessage

func (*Status) ProtoMessage()

func (*Status) Reset

func (m *Status) Reset()

func (*Status) String

func (m *Status) String() string

type Status_State

type Status_State int32
const (
	// Pending status indicates the resource has not yet been validated
	Status_Pending Status_State = 0
	// Accepted indicates the resource has been validated
	Status_Accepted Status_State = 1
	// Rejected indicates an invalid configuration by the user
	// Rejected resources may be propagated to the xDS server depending on their severity
	Status_Rejected Status_State = 2
)

func (Status_State) EnumDescriptor

func (Status_State) EnumDescriptor() ([]byte, []int)

func (Status_State) String

func (x Status_State) String() string

type Upstream

type Upstream struct {
	// 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.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Type indicates the type of the upstream. Examples include static<!--(TODO)-->, kubernetes<!--(TODO)-->, and [aws](../plugins/aws.md)
	// Types are defined by the plugin<!--(TODO)--> associated with them.
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// 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
	ConnectionTimeout time.Duration `protobuf:"bytes,3,opt,name=connection_timeout,json=connectionTimeout,stdduration" json:"connection_timeout"`
	// 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>
	Spec *google_protobuf.Struct `protobuf:"bytes,4,opt,name=spec" json:"spec,omitempty"`
	// Certain upstream types support (and may require) [functions](../introduction/concepts.md#Functions).
	// Functions allow function-level routing to be done. For example, the [AWS lambda](../plugins/aws.md) upstream type
	// Permits routing to AWS lambda function].
	// [routes](virtualservice.md#Route) on virtualservices can specify function destinations to route to specific functions.
	Functions []*Function `protobuf:"bytes,5,rep,name=functions" json:"functions,omitempty"`
	// 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
	ServiceInfo *ServiceInfo `protobuf:"bytes,8,opt,name=service_info,json=serviceInfo" json:"service_info,omitempty"`
	// Status indicates the validation status of the upstream resource. Status is read-only by clients, and set by gloo during validation
	Status *Status `protobuf:"bytes,6,opt,name=status" json:"status,omitempty" testdiff:"ignore"`
	// Metadata contains the resource metadata for the upstream
	Metadata *Metadata `protobuf:"bytes,7,opt,name=metadata" json:"metadata,omitempty"`
}

* Upstream represents a destination for routing. Upstreams can be compared to [clusters](https://www.envoyproxy.io/docs/envoy/latest/api-v1/cluster_manager/cluster.html?highlight=cluster) 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](TODO) for a detailed description of available upstream types.-->

func (*Upstream) Descriptor

func (*Upstream) Descriptor() ([]byte, []int)

func (*Upstream) Equal

func (this *Upstream) Equal(that interface{}) bool

func (*Upstream) GetConnectionTimeout

func (m *Upstream) GetConnectionTimeout() time.Duration

func (*Upstream) GetFunctions

func (m *Upstream) GetFunctions() []*Function

func (*Upstream) GetMetadata

func (m *Upstream) GetMetadata() *Metadata

func (*Upstream) GetName

func (m *Upstream) GetName() string

func (*Upstream) GetServiceInfo

func (m *Upstream) GetServiceInfo() *ServiceInfo

func (*Upstream) GetSpec

func (m *Upstream) GetSpec() *google_protobuf.Struct

func (*Upstream) GetStatus

func (m *Upstream) GetStatus() *Status

func (*Upstream) GetType

func (m *Upstream) GetType() string

func (*Upstream) ProtoMessage

func (*Upstream) ProtoMessage()

func (*Upstream) Reset

func (m *Upstream) Reset()

func (*Upstream) SetMetadata

func (item *Upstream) SetMetadata(meta *Metadata)

func (*Upstream) SetName

func (item *Upstream) SetName(name string)

func (*Upstream) SetStatus

func (item *Upstream) SetStatus(status *Status)

func (*Upstream) String

func (m *Upstream) String() string

type UpstreamDestination

type UpstreamDestination struct {
	// Name of the upstream
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

Upstream Destination routes a request to an upstream

func (*UpstreamDestination) Descriptor

func (*UpstreamDestination) Descriptor() ([]byte, []int)

func (*UpstreamDestination) Equal

func (this *UpstreamDestination) Equal(that interface{}) bool

func (*UpstreamDestination) GetName

func (m *UpstreamDestination) GetName() string

func (*UpstreamDestination) ProtoMessage

func (*UpstreamDestination) ProtoMessage()

func (*UpstreamDestination) Reset

func (m *UpstreamDestination) Reset()

func (*UpstreamDestination) String

func (m *UpstreamDestination) String() string

type UpstreamSpec

type UpstreamSpec *types.Struct

type VirtualService

type VirtualService struct {
	// Name of the virtual service. 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.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Domains represent the list of domains (host/authority header) that will match for all routes on this virtual service.
	// As in Envoy: wildcard hosts are supported in the form of “*.foo.com” or “*-bar.foo.com”.
	// If domains is empty, gloo will set the domain to "*", making that virtual service the "default" virtualservice.
	// The default virtualservice will be the fallback virtual service for all requests that do not match a domain on an existing virtual service.
	// Only one default virtual service can be defined (either with an empty domain list, or a domain list that includes "*")
	Domains []string `protobuf:"bytes,2,rep,name=domains" json:"domains,omitempty"`
	// Routes define the list of [routes](../) that live on this virtual service.
	Routes []*Route `protobuf:"bytes,3,rep,name=routes" json:"routes,omitempty"`
	// SSL Config is optional for the virtual service. If provided, the virtual service will listen on the envoy HTTPS listener port (default :8443)
	// If left empty, the virtual service will listen on the HTTP listener port (default :8080)
	SslConfig *SSLConfig `protobuf:"bytes,4,opt,name=ssl_config,json=sslConfig" json:"ssl_config,omitempty"`
	// indicates whether or not this virtual service should be assigned to gateway roles automatically
	// TODO: eventually this flag will be deprecated; gateway roles will have to explicitly state the virtual services
	// they have access to.
	DisableForGateways bool `protobuf:"varint,7,opt,name=disable_for_gateways,json=disableForGateways,proto3" json:"disable_for_gateways,omitempty"`
	// Status indicates the validation status of the virtual service resource. Status is read-only by clients, and set by gloo during validation
	Status *Status `protobuf:"bytes,5,opt,name=status" json:"status,omitempty" testdiff:"ignore"`
	// Metadata contains the resource metadata for the virtual service
	Metadata *Metadata `protobuf:"bytes,6,opt,name=metadata" json:"metadata,omitempty"`
}

* Virtual Services represent a collection of routes for a set of domains. Gloo's Virtual Services can be compared to [virtual hosts](https://www.envoyproxy.io/docs/envoy/latest/api-v1/route_config/vService.html?highlight=virtual%20host) in Envoy terminology. A virtual service can be used to define "apps"; a collection of APIs that belong to a particular domain. The Virtual Service concept allows configuration of per-virtualservice SSL certificates

func (*VirtualService) Descriptor

func (*VirtualService) Descriptor() ([]byte, []int)

func (*VirtualService) Equal

func (this *VirtualService) Equal(that interface{}) bool

func (*VirtualService) GetDisableForGateways

func (m *VirtualService) GetDisableForGateways() bool

func (*VirtualService) GetDomains

func (m *VirtualService) GetDomains() []string

func (*VirtualService) GetMetadata

func (m *VirtualService) GetMetadata() *Metadata

func (*VirtualService) GetName

func (m *VirtualService) GetName() string

func (*VirtualService) GetRoutes

func (m *VirtualService) GetRoutes() []*Route

func (*VirtualService) GetSslConfig

func (m *VirtualService) GetSslConfig() *SSLConfig

func (*VirtualService) GetStatus

func (m *VirtualService) GetStatus() *Status

func (*VirtualService) ProtoMessage

func (*VirtualService) ProtoMessage()

func (*VirtualService) Reset

func (m *VirtualService) Reset()

func (*VirtualService) SetMetadata

func (item *VirtualService) SetMetadata(meta *Metadata)

func (*VirtualService) SetName

func (item *VirtualService) SetName(name string)

func (*VirtualService) SetStatus

func (item *VirtualService) SetStatus(status *Status)

func (*VirtualService) String

func (m *VirtualService) String() string

type WeightedDestination

type WeightedDestination struct {
	*Destination `protobuf:"bytes,1,opt,name=destination,embedded=destination" json:"destination,omitempty"`
	// Weight must be greater than zero
	// Routing to each destination will be balanced by the ratio of the destination's weight to the total weight on a route
	Weight uint32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
}

WeightedDestination attaches a weight to a destination For use in routes with multiple destinations

func (*WeightedDestination) Descriptor

func (*WeightedDestination) Descriptor() ([]byte, []int)

func (*WeightedDestination) Equal

func (this *WeightedDestination) Equal(that interface{}) bool

func (*WeightedDestination) GetWeight

func (m *WeightedDestination) GetWeight() uint32

func (*WeightedDestination) ProtoMessage

func (*WeightedDestination) ProtoMessage()

func (*WeightedDestination) Reset

func (m *WeightedDestination) Reset()

func (*WeightedDestination) String

func (m *WeightedDestination) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL