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 ¶
- Variables
- type Attribute
- func (*Attribute) Descriptor() ([]byte, []int)
- func (this *Attribute) Equal(that interface{}) bool
- func (m *Attribute) GetAttributeType() isAttribute_AttributeType
- func (m *Attribute) GetListenerAttribute() *ListenerAttribute
- func (m *Attribute) GetMetadata() *Metadata
- func (m *Attribute) GetName() string
- func (m *Attribute) GetStatus() *Status
- func (*Attribute) ProtoMessage()
- func (m *Attribute) Reset()
- func (item *Attribute) SetMetadata(meta *Metadata)
- func (item *Attribute) SetName(name string)
- func (item *Attribute) SetStatus(status *Status)
- func (m *Attribute) String() string
- func (*Attribute) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type Attribute_ListenerAttribute
- type Config
- func (*Config) Descriptor() ([]byte, []int)
- func (this *Config) Equal(that interface{}) bool
- func (m *Config) GetAttributes() []*Attribute
- func (m *Config) GetRoles() []*Role
- func (m *Config) GetUpstreams() []*Upstream
- func (m *Config) GetVirtualServices() []*VirtualService
- func (*Config) ProtoMessage()
- func (m *Config) Reset()
- func (m *Config) String() string
- type ConfigObject
- type Destination
- func (*Destination) Descriptor() ([]byte, []int)
- func (this *Destination) Equal(that interface{}) bool
- func (m *Destination) GetDestinationType() isDestination_DestinationType
- func (m *Destination) GetFunction() *FunctionDestination
- func (m *Destination) GetUpstream() *UpstreamDestination
- func (*Destination) ProtoMessage()
- func (m *Destination) Reset()
- func (m *Destination) String() string
- func (*Destination) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type Destination_Function
- type Destination_Upstream
- type EventMatcher
- type Function
- type FunctionDestination
- func (*FunctionDestination) Descriptor() ([]byte, []int)
- func (this *FunctionDestination) Equal(that interface{}) bool
- func (m *FunctionDestination) GetFunctionName() string
- func (m *FunctionDestination) GetUpstreamName() string
- func (*FunctionDestination) ProtoMessage()
- func (m *FunctionDestination) Reset()
- func (m *FunctionDestination) String() string
- type FunctionSpec
- type Listener
- func (*Listener) Descriptor() ([]byte, []int)
- func (this *Listener) Equal(that interface{}) bool
- func (m *Listener) GetBindAddress() string
- func (m *Listener) GetBindPort() uint32
- func (m *Listener) GetConfig() *google_protobuf.Struct
- func (m *Listener) GetLabels() map[string]string
- func (m *Listener) GetName() string
- func (m *Listener) GetSslConfig() *SSLConfig
- func (m *Listener) GetVirtualServices() []string
- func (*Listener) ProtoMessage()
- func (m *Listener) Reset()
- func (m *Listener) String() string
- type ListenerAttribute
- func (*ListenerAttribute) Descriptor() ([]byte, []int)
- func (this *ListenerAttribute) Equal(that interface{}) bool
- func (m *ListenerAttribute) GetConfig() *google_protobuf.Struct
- func (m *ListenerAttribute) GetSelector() map[string]string
- func (m *ListenerAttribute) GetVirtualServices() []string
- func (*ListenerAttribute) ProtoMessage()
- func (m *ListenerAttribute) Reset()
- func (m *ListenerAttribute) String() string
- type Metadata
- func (*Metadata) Descriptor() ([]byte, []int)
- func (this *Metadata) Equal(that interface{}) bool
- func (m *Metadata) GetAnnotations() map[string]string
- func (m *Metadata) GetNamespace() string
- func (m *Metadata) GetResourceVersion() string
- func (*Metadata) ProtoMessage()
- func (m *Metadata) Reset()
- func (m *Metadata) String() string
- type RequestMatcher
- func (*RequestMatcher) Descriptor() ([]byte, []int)
- func (this *RequestMatcher) Equal(that interface{}) bool
- func (m *RequestMatcher) GetHeaders() map[string]string
- func (m *RequestMatcher) GetPath() isRequestMatcher_Path
- func (m *RequestMatcher) GetPathExact() string
- func (m *RequestMatcher) GetPathPrefix() string
- func (m *RequestMatcher) GetPathRegex() string
- func (m *RequestMatcher) GetQueryParams() map[string]string
- func (m *RequestMatcher) GetVerbs() []string
- func (*RequestMatcher) ProtoMessage()
- func (m *RequestMatcher) Reset()
- func (m *RequestMatcher) String() string
- func (*RequestMatcher) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type RequestMatcher_PathExact
- type RequestMatcher_PathPrefix
- type RequestMatcher_PathRegex
- type Role
- func (*Role) Descriptor() ([]byte, []int)
- func (this *Role) Equal(that interface{}) bool
- func (m *Role) GetListeners() []*Listener
- func (m *Role) GetMetadata() *Metadata
- func (m *Role) GetName() string
- func (m *Role) GetStatus() *Status
- func (*Role) ProtoMessage()
- func (m *Role) Reset()
- func (item *Role) SetMetadata(meta *Metadata)
- func (item *Role) SetName(name string)
- func (item *Role) SetStatus(status *Status)
- func (m *Role) String() string
- type Route
- func (*Route) Descriptor() ([]byte, []int)
- func (this *Route) Equal(that interface{}) bool
- func (m *Route) GetEventMatcher() *EventMatcher
- func (m *Route) GetExtensions() *google_protobuf.Struct
- func (m *Route) GetMatcher() isRoute_Matcher
- func (m *Route) GetMultipleDestinations() []*WeightedDestination
- func (m *Route) GetPrefixRewrite() string
- func (m *Route) GetRequestMatcher() *RequestMatcher
- func (m *Route) GetSingleDestination() *Destination
- func (*Route) ProtoMessage()
- func (m *Route) Reset()
- func (m *Route) String() string
- func (*Route) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type Route_EventMatcher
- type Route_RequestMatcher
- type SSLConfig
- func (*SSLConfig) Descriptor() ([]byte, []int)
- func (this *SSLConfig) Equal(that interface{}) bool
- func (m *SSLConfig) GetSecretRef() string
- func (m *SSLConfig) GetSniDomains() []string
- func (m *SSLConfig) GetSslFiles() *SSLFiles
- func (m *SSLConfig) GetSslSecrets() isSSLConfig_SslSecrets
- func (*SSLConfig) ProtoMessage()
- func (m *SSLConfig) Reset()
- func (m *SSLConfig) String() string
- func (*SSLConfig) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type SSLConfig_SecretRef
- type SSLConfig_SslFiles
- type SSLFiles
- func (*SSLFiles) Descriptor() ([]byte, []int)
- func (this *SSLFiles) Equal(that interface{}) bool
- func (m *SSLFiles) GetRootCa() string
- func (m *SSLFiles) GetTlsCert() string
- func (m *SSLFiles) GetTlsKey() string
- func (*SSLFiles) ProtoMessage()
- func (m *SSLFiles) Reset()
- func (m *SSLFiles) String() string
- type ServiceInfo
- func (*ServiceInfo) Descriptor() ([]byte, []int)
- func (this *ServiceInfo) Equal(that interface{}) bool
- func (m *ServiceInfo) GetProperties() *google_protobuf.Struct
- func (m *ServiceInfo) GetType() string
- func (*ServiceInfo) ProtoMessage()
- func (m *ServiceInfo) Reset()
- func (m *ServiceInfo) String() string
- type Status
- type Status_State
- type Upstream
- func (*Upstream) Descriptor() ([]byte, []int)
- func (this *Upstream) Equal(that interface{}) bool
- func (m *Upstream) GetConnectionTimeout() time.Duration
- func (m *Upstream) GetFunctions() []*Function
- func (m *Upstream) GetMetadata() *Metadata
- func (m *Upstream) GetName() string
- func (m *Upstream) GetServiceInfo() *ServiceInfo
- func (m *Upstream) GetSpec() *google_protobuf.Struct
- func (m *Upstream) GetStatus() *Status
- func (m *Upstream) GetType() string
- func (*Upstream) ProtoMessage()
- func (m *Upstream) Reset()
- func (item *Upstream) SetMetadata(meta *Metadata)
- func (item *Upstream) SetName(name string)
- func (item *Upstream) SetStatus(status *Status)
- func (m *Upstream) String() string
- type UpstreamDestination
- type UpstreamSpec
- type VirtualService
- func (*VirtualService) Descriptor() ([]byte, []int)
- func (this *VirtualService) Equal(that interface{}) bool
- func (m *VirtualService) GetDisableForGateways() bool
- func (m *VirtualService) GetDomains() []string
- func (m *VirtualService) GetMetadata() *Metadata
- func (m *VirtualService) GetName() string
- func (m *VirtualService) GetRoutes() []*Route
- func (m *VirtualService) GetSslConfig() *SSLConfig
- func (m *VirtualService) GetStatus() *Status
- func (*VirtualService) ProtoMessage()
- func (m *VirtualService) Reset()
- func (item *VirtualService) SetMetadata(meta *Metadata)
- func (item *VirtualService) SetName(name string)
- func (item *VirtualService) SetStatus(status *Status)
- func (m *VirtualService) String() string
- type WeightedDestination
Constants ¶
This section is empty.
Variables ¶
var Status_State_name = map[int32]string{
0: "Pending",
1: "Accepted",
2: "Rejected",
}
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) 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) ProtoMessage ¶
func (*Attribute) ProtoMessage()
func (*Attribute) SetMetadata ¶
func (item *Attribute) SetMetadata(meta *Metadata)
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"`
}
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) GetAttributes ¶
func (m *Config) GetAttributes() []*Attribute
func (*Config) GetUpstreams ¶
func (m *Config) GetUpstreams() []*Upstream
func (*Config) GetVirtualServices ¶
func (m *Config) GetVirtualServices() []*VirtualService
func (*Config) ProtoMessage ¶
func (*Config) ProtoMessage()
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) 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) 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"`
}
type Destination_Upstream ¶
type Destination_Upstream struct {
Upstream *UpstreamDestination `protobuf:"bytes,2,opt,name=upstream,oneof"`
}
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) GetEventType ¶
func (m *EventMatcher) GetEventType() string
func (*EventMatcher) ProtoMessage ¶
func (*EventMatcher) ProtoMessage()
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) ProtoMessage ¶
func (*Function) ProtoMessage()
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) GetFunctionName ¶
func (m *FunctionDestination) GetFunctionName() string
func (*FunctionDestination) GetUpstreamName ¶
func (m *FunctionDestination) GetUpstreamName() string
func (*FunctionDestination) ProtoMessage ¶
func (*FunctionDestination) ProtoMessage()
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) GetBindAddress ¶
func (m *Listener) GetBindAddress() string
func (*Listener) GetBindPort ¶
func (m *Listener) GetBindPort() uint32
func (*Listener) GetSslConfig ¶
func (m *Listener) GetSslConfig() *SSLConfig
func (*Listener) GetVirtualServices ¶
func (m *Listener) GetVirtualServices() []string
func (*Listener) ProtoMessage ¶
func (*Listener) ProtoMessage()
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) 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()
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) 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()
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) GetHeaders ¶
func (m *RequestMatcher) GetHeaders() map[string]string
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) ProtoMessage ¶
func (*RequestMatcher) ProtoMessage()
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"`
}
type RequestMatcher_PathPrefix ¶
type RequestMatcher_PathPrefix struct {
PathPrefix string `protobuf:"bytes,1,opt,name=path_prefix,json=pathPrefix,proto3,oneof"`
}
type RequestMatcher_PathRegex ¶
type RequestMatcher_PathRegex struct {
PathRegex string `protobuf:"bytes,2,opt,name=path_regex,json=pathRegex,proto3,oneof"`
}
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) GetListeners ¶
func (m *Role) GetListeners() []*Listener
func (*Role) GetMetadata ¶
func (m *Role) GetMetadata() *Metadata
func (*Role) ProtoMessage ¶
func (*Role) ProtoMessage()
func (*Role) SetMetadata ¶
func (item *Role) SetMetadata(meta *Metadata)
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) 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) 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"`
}
type Route_RequestMatcher ¶
type Route_RequestMatcher struct {
RequestMatcher *RequestMatcher `protobuf:"bytes,1,opt,name=request_matcher,json=requestMatcher,oneof"`
}
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) 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) 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"`
}
type SSLConfig_SslFiles ¶
type SSLConfig_SslFiles struct {
SslFiles *SSLFiles `protobuf:"bytes,2,opt,name=ssl_files,json=sslFiles,oneof"`
}
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) GetTlsCert ¶
func (m *SSLFiles) GetTlsCert() string
func (*SSLFiles) ProtoMessage ¶
func (*SSLFiles) ProtoMessage()
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) GetProperties ¶
func (m *ServiceInfo) GetProperties() *google_protobuf.Struct
func (*ServiceInfo) ProtoMessage ¶
func (*ServiceInfo) ProtoMessage()
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) ProtoMessage ¶
func (*Status) ProtoMessage()
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)
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) 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) GetServiceInfo ¶
func (m *Upstream) GetServiceInfo() *ServiceInfo
func (*Upstream) ProtoMessage ¶
func (*Upstream) ProtoMessage()
func (*Upstream) SetMetadata ¶
func (item *Upstream) SetMetadata(meta *Metadata)
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) ProtoMessage ¶
func (*UpstreamDestination) ProtoMessage()
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) GetDisableForGateways ¶
func (m *VirtualService) GetDisableForGateways() bool
func (*VirtualService) GetDomains ¶
func (m *VirtualService) GetDomains() []string
func (*VirtualService) GetMetadata ¶
func (m *VirtualService) GetMetadata() *Metadata
func (*VirtualService) GetSslConfig ¶
func (m *VirtualService) GetSslConfig() *SSLConfig
func (*VirtualService) ProtoMessage ¶
func (*VirtualService) ProtoMessage()
func (*VirtualService) SetMetadata ¶
func (item *VirtualService) SetMetadata(meta *Metadata)
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) ProtoMessage ¶
func (*WeightedDestination) ProtoMessage()