Documentation
¶
Index ¶
- Variables
- func NewApiEventLoop(emitter ApiSnapshotEmitter, syncer ApiSyncer) eventloop.EventLoop
- func NewApiSimpleEventLoop(emitter ApiSimpleEmitter, syncers ...ApiSyncer) eventloop.SimpleEventLoop
- type ApiEmitter
- type ApiSimpleEmitter
- type ApiSnapshot
- type ApiSnapshotEmitter
- type ApiSnapshotStringer
- type ApiSyncDeciderdeprecated
- type ApiSyncDeciderWithContext
- type ApiSyncer
- type ApiSyncers
- type Gateway
- func (o *Gateway) DeepCopyInto(out *Gateway)
- func (o *Gateway) DeepCopyObject() runtime.Object
- func (*Gateway) Descriptor() ([]byte, []int)
- func (this *Gateway) Equal(that interface{}) bool
- func (m *Gateway) GetBindAddress() string
- func (m *Gateway) GetBindPort() uint32
- func (m *Gateway) GetGatewayProxyName() stringdeprecated
- func (m *Gateway) GetGatewayType() isGateway_GatewayType
- func (m *Gateway) GetHttpGateway() *HttpGateway
- func (m *Gateway) GetMetadata() core.Metadata
- func (o *Gateway) GetObjectKind() schema.ObjectKind
- func (m *Gateway) GetPlugins() *v1.ListenerPlugins
- func (m *Gateway) GetProxyNames() []string
- func (m *Gateway) GetSsl() bool
- func (m *Gateway) GetStatus() core.Status
- func (m *Gateway) GetTcpGateway() *TcpGateway
- func (m *Gateway) GetUseProxyProto() *types.BoolValue
- func (r *Gateway) GroupVersionKind() schema.GroupVersionKind
- func (r *Gateway) Hash() uint64
- func (*Gateway) ProtoMessage()
- func (m *Gateway) Reset()
- func (r *Gateway) SetMetadata(meta core.Metadata)
- func (r *Gateway) SetStatus(status core.Status)
- func (m *Gateway) String() string
- func (m *Gateway) XXX_DiscardUnknown()
- func (m *Gateway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Gateway) XXX_Merge(src proto.Message)
- func (*Gateway) XXX_OneofWrappers() []interface{}
- func (m *Gateway) XXX_Size() int
- func (m *Gateway) XXX_Unmarshal(b []byte) error
- type GatewayClient
- type GatewayList
- func (list GatewayList) AsInputResources() resources.InputResourceList
- func (list GatewayList) AsInterfaces() []interface{}
- func (list GatewayList) AsResources() resources.ResourceList
- func (list GatewayList) Clone() GatewayList
- func (list GatewayList) Each(f func(element *Gateway))
- func (list GatewayList) EachResource(f func(element resources.Resource))
- func (list GatewayList) Find(namespace, name string) (*Gateway, error)
- func (list GatewayList) Names() []string
- func (list GatewayList) NamespacesDotNames() []string
- func (list GatewayList) Sort() GatewayList
- type GatewayReconciler
- type GatewayWatcher
- type Gateway_HttpGateway
- type Gateway_TcpGateway
- type HttpGateway
- func (*HttpGateway) Descriptor() ([]byte, []int)
- func (this *HttpGateway) Equal(that interface{}) bool
- func (m *HttpGateway) GetPlugins() *v1.HttpListenerPlugins
- func (m *HttpGateway) GetVirtualServiceSelector() map[string]string
- func (m *HttpGateway) GetVirtualServices() []core.ResourceRef
- func (*HttpGateway) ProtoMessage()
- func (m *HttpGateway) Reset()
- func (m *HttpGateway) String() string
- func (m *HttpGateway) XXX_DiscardUnknown()
- func (m *HttpGateway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *HttpGateway) XXX_Merge(src proto.Message)
- func (m *HttpGateway) XXX_Size() int
- func (m *HttpGateway) XXX_Unmarshal(b []byte) error
- type TcpGateway
- func (*TcpGateway) Descriptor() ([]byte, []int)
- func (this *TcpGateway) Equal(that interface{}) bool
- func (m *TcpGateway) GetDestinations() []*v1.TcpHost
- func (m *TcpGateway) GetPlugins() *v1.TcpListenerPlugins
- func (*TcpGateway) ProtoMessage()
- func (m *TcpGateway) Reset()
- func (m *TcpGateway) String() string
- func (m *TcpGateway) XXX_DiscardUnknown()
- func (m *TcpGateway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *TcpGateway) XXX_Merge(src proto.Message)
- func (m *TcpGateway) XXX_Size() int
- func (m *TcpGateway) XXX_Unmarshal(b []byte) error
- type TransitionGatewayFunc
Constants ¶
This section is empty.
Variables ¶
View Source
var ( GatewayCrd = crd.NewCrd( "gateways", GatewayGVK.Group, GatewayGVK.Version, GatewayGVK.Kind, "gw", false, &Gateway{}) )
View Source
var (
GatewayGVK = schema.GroupVersionKind{
Version: "v2",
Group: "gateway.solo.io.v2",
Kind: "Gateway",
}
)
Functions ¶
func NewApiEventLoop ¶
func NewApiEventLoop(emitter ApiSnapshotEmitter, syncer ApiSyncer) eventloop.EventLoop
func NewApiSimpleEventLoop ¶
func NewApiSimpleEventLoop(emitter ApiSimpleEmitter, syncers ...ApiSyncer) eventloop.SimpleEventLoop
Types ¶
type ApiEmitter ¶
type ApiEmitter interface { ApiSnapshotEmitter Register() error VirtualService() gateway_solo_io.VirtualServiceClient RouteTable() gateway_solo_io.RouteTableClient Gateway() GatewayClient }
func NewApiEmitter ¶
func NewApiEmitter(virtualServiceClient gateway_solo_io.VirtualServiceClient, routeTableClient gateway_solo_io.RouteTableClient, gatewayClient GatewayClient) ApiEmitter
func NewApiEmitterWithEmit ¶
func NewApiEmitterWithEmit(virtualServiceClient gateway_solo_io.VirtualServiceClient, routeTableClient gateway_solo_io.RouteTableClient, gatewayClient GatewayClient, emit <-chan struct{}) ApiEmitter
type ApiSimpleEmitter ¶
type ApiSimpleEmitter interface {
Snapshots(ctx context.Context) (<-chan *ApiSnapshot, <-chan error, error)
}
func NewApiSimpleEmitter ¶
func NewApiSimpleEmitter(aggregatedWatch clients.ResourceWatch) ApiSimpleEmitter
func NewApiSimpleEmitterWithEmit ¶
func NewApiSimpleEmitterWithEmit(aggregatedWatch clients.ResourceWatch, emit <-chan struct{}) ApiSimpleEmitter
type ApiSnapshot ¶
type ApiSnapshot struct { VirtualServices gateway_solo_io.VirtualServiceList RouteTables gateway_solo_io.RouteTableList Gateways GatewayList }
func (ApiSnapshot) Clone ¶
func (s ApiSnapshot) Clone() ApiSnapshot
func (ApiSnapshot) Hash ¶
func (s ApiSnapshot) Hash() uint64
func (ApiSnapshot) HashFields ¶
func (s ApiSnapshot) HashFields() []zap.Field
func (ApiSnapshot) Stringer ¶
func (s ApiSnapshot) Stringer() ApiSnapshotStringer
type ApiSnapshotEmitter ¶
type ApiSnapshotStringer ¶
type ApiSnapshotStringer struct { Version uint64 VirtualServices []string RouteTables []string Gateways []string }
func (ApiSnapshotStringer) String ¶
func (ss ApiSnapshotStringer) String() string
type ApiSyncDecider
deprecated
type ApiSyncDecider interface { ApiSyncer ShouldSync(old, new *ApiSnapshot) bool }
Deprecated: use ApiSyncDeciderWithContext
type ApiSyncDeciderWithContext ¶
type ApiSyncDeciderWithContext interface { ApiSyncer ShouldSync(ctx context.Context, old, new *ApiSnapshot) bool }
type ApiSyncers ¶
type ApiSyncers []ApiSyncer
func (ApiSyncers) Sync ¶
func (s ApiSyncers) Sync(ctx context.Context, snapshot *ApiSnapshot) error
type Gateway ¶
type Gateway struct { // if set to false, only use virtual services without ssl configured. // if set to true, only use virtual services with ssl configured. Ssl bool `protobuf:"varint,1,opt,name=ssl,proto3" json:"ssl,omitempty"` // the bind address the gateway should serve traffic on BindAddress string `protobuf:"bytes,3,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` // bind ports must not conflict across gateways for a single proxy BindPort uint32 `protobuf:"varint,4,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` // top level plugin configuration for all routes on the gateway Plugins *v1.ListenerPlugins `protobuf:"bytes,5,opt,name=plugins,proto3" json:"plugins,omitempty"` // Status indicates the validation status of this resource. // Status is read-only by clients, and set by gloo during validation Status core.Status `protobuf:"bytes,6,opt,name=status,proto3" json:"status" testdiff:"ignore"` // Metadata contains the object metadata for this resource Metadata core.Metadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata"` // Enable ProxyProtocol support for this listener UseProxyProto *types.BoolValue `protobuf:"bytes,8,opt,name=use_proxy_proto,json=useProxyProto,proto3" json:"use_proxy_proto,omitempty"` // The type of gateway being created // HttpGateway creates a listener with an http_connection_manager // TcpGateway creates a listener with a tcp proxy filter // // Types that are valid to be assigned to GatewayType: // *Gateway_HttpGateway // *Gateway_TcpGateway GatewayType isGateway_GatewayType `protobuf_oneof:"GatewayType"` // deprecated: use proxyNames GatewayProxyName string `protobuf:"bytes,11,opt,name=gateway_proxy_name,json=gatewayProxyName,proto3" json:"gateway_proxy_name,omitempty"` // Deprecated: Do not use. // // Names of the [`Proxy`](https://gloo.solo.io/api/github.com/solo-io/gloo/projects/gloo/api/v1/proxy.proto.sk/) // resources to generate from this gateway. If other gateways exist which point to the same proxy, // Gloo will join them together. // // Proxies have a one-to-many relationship with Envoy bootstrap configuration. // In order to connect to Gloo, the Envoy bootstrap configuration sets a `role` in // the [node metadata](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/base.proto#envoy-api-msg-core-node) // Envoy instances announce their `role` to Gloo, which maps to the `{{ .Namespace }}~{{ .Name }}` // of the Proxy resource. // // The template for this value can be seen in the [Gloo Helm chart](https://github.com/solo-io/gloo/blob/master/install/helm/gloo/templates/9-gateway-proxy-configmap.yaml#L22) // // Note: this field also accepts fields written in camel-case. They will be converted // to kebab-case in the Proxy name. This allows use of the [Gateway Name Helm value](https://github.com/solo-io/gloo/blob/master/install/helm/gloo/values-gateway-template.yaml#L47) // for this field // // Defaults to `["gateway-proxy-v2"]` ProxyNames []string `protobuf:"bytes,12,rep,name=proxy_names,json=proxyNames,proto3" json:"proxy_names,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A Gateway describes a single Listener (bind address:port) and the routing configuration to upstreams that are reachable via a specific port on the Gateway Proxy itself.
func NewGateway ¶
func (*Gateway) DeepCopyInto ¶
func (*Gateway) DeepCopyObject ¶
func (*Gateway) Descriptor ¶
func (*Gateway) GetBindAddress ¶
func (*Gateway) GetBindPort ¶
func (*Gateway) GetGatewayProxyName
deprecated
func (*Gateway) GetGatewayType ¶
func (m *Gateway) GetGatewayType() isGateway_GatewayType
func (*Gateway) GetHttpGateway ¶
func (m *Gateway) GetHttpGateway() *HttpGateway
func (*Gateway) GetMetadata ¶
func (*Gateway) GetObjectKind ¶
func (o *Gateway) GetObjectKind() schema.ObjectKind
func (*Gateway) GetPlugins ¶
func (m *Gateway) GetPlugins() *v1.ListenerPlugins
func (*Gateway) GetProxyNames ¶
func (*Gateway) GetTcpGateway ¶
func (m *Gateway) GetTcpGateway() *TcpGateway
func (*Gateway) GetUseProxyProto ¶
func (*Gateway) GroupVersionKind ¶
func (r *Gateway) GroupVersionKind() schema.GroupVersionKind
func (*Gateway) ProtoMessage ¶
func (*Gateway) ProtoMessage()
func (*Gateway) SetMetadata ¶
func (*Gateway) XXX_DiscardUnknown ¶
func (m *Gateway) XXX_DiscardUnknown()
func (*Gateway) XXX_Marshal ¶
func (*Gateway) XXX_OneofWrappers ¶
func (*Gateway) XXX_OneofWrappers() []interface{}
XXX_OneofWrappers is for the internal use of the proto package.
func (*Gateway) XXX_Unmarshal ¶
type GatewayClient ¶
type GatewayClient interface { BaseClient() clients.ResourceClient Register() error Read(namespace, name string, opts clients.ReadOpts) (*Gateway, error) Write(resource *Gateway, opts clients.WriteOpts) (*Gateway, error) Delete(namespace, name string, opts clients.DeleteOpts) error List(namespace string, opts clients.ListOpts) (GatewayList, error) GatewayWatcher }
func NewGatewayClient ¶
func NewGatewayClient(rcFactory factory.ResourceClientFactory) (GatewayClient, error)
func NewGatewayClientWithBase ¶
func NewGatewayClientWithBase(rc clients.ResourceClient) GatewayClient
func NewGatewayClientWithToken ¶
func NewGatewayClientWithToken(rcFactory factory.ResourceClientFactory, token string) (GatewayClient, error)
type GatewayList ¶
type GatewayList []*Gateway
func (GatewayList) AsInputResources ¶
func (list GatewayList) AsInputResources() resources.InputResourceList
func (GatewayList) AsInterfaces ¶
func (list GatewayList) AsInterfaces() []interface{}
func (GatewayList) AsResources ¶
func (list GatewayList) AsResources() resources.ResourceList
func (GatewayList) Clone ¶
func (list GatewayList) Clone() GatewayList
func (GatewayList) Each ¶
func (list GatewayList) Each(f func(element *Gateway))
func (GatewayList) EachResource ¶
func (list GatewayList) EachResource(f func(element resources.Resource))
func (GatewayList) Find ¶
func (list GatewayList) Find(namespace, name string) (*Gateway, error)
namespace is optional, if left empty, names can collide if the list contains more than one with the same name
func (GatewayList) Names ¶
func (list GatewayList) Names() []string
func (GatewayList) NamespacesDotNames ¶
func (list GatewayList) NamespacesDotNames() []string
func (GatewayList) Sort ¶
func (list GatewayList) Sort() GatewayList
type GatewayReconciler ¶
type GatewayReconciler interface {
Reconcile(namespace string, desiredResources GatewayList, transition TransitionGatewayFunc, opts clients.ListOpts) error
}
func NewGatewayReconciler ¶
func NewGatewayReconciler(client GatewayClient) GatewayReconciler
type GatewayWatcher ¶
type Gateway_HttpGateway ¶
type Gateway_HttpGateway struct {
HttpGateway *HttpGateway `protobuf:"bytes,9,opt,name=http_gateway,json=httpGateway,proto3,oneof" json:"http_gateway,omitempty"`
}
func (*Gateway_HttpGateway) Equal ¶
func (this *Gateway_HttpGateway) Equal(that interface{}) bool
type Gateway_TcpGateway ¶
type Gateway_TcpGateway struct {
TcpGateway *TcpGateway `protobuf:"bytes,10,opt,name=tcp_gateway,json=tcpGateway,proto3,oneof" json:"tcp_gateway,omitempty"`
}
func (*Gateway_TcpGateway) Equal ¶
func (this *Gateway_TcpGateway) Equal(that interface{}) bool
type HttpGateway ¶
type HttpGateway struct { // names of the the virtual services, which contain the actual routes for the gateway // if the list is empty, all virtual services will apply to this gateway (with accordance to tls flag above). VirtualServices []core.ResourceRef `protobuf:"bytes,1,rep,name=virtual_services,json=virtualServices,proto3" json:"virtual_services"` // Select virtual services by their label. This will apply only to virtual services // in the same namespace as the gateway resource. // only one of `virtualServices` or `virtualServiceSelector` should be provided VirtualServiceSelector map[string]string `` /* 217-byte string literal not displayed */ // http gateway configuration Plugins *v1.HttpListenerPlugins `protobuf:"bytes,8,opt,name=plugins,proto3" json:"plugins,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*HttpGateway) Descriptor ¶
func (*HttpGateway) Descriptor() ([]byte, []int)
func (*HttpGateway) Equal ¶
func (this *HttpGateway) Equal(that interface{}) bool
func (*HttpGateway) GetPlugins ¶
func (m *HttpGateway) GetPlugins() *v1.HttpListenerPlugins
func (*HttpGateway) GetVirtualServiceSelector ¶
func (m *HttpGateway) GetVirtualServiceSelector() map[string]string
func (*HttpGateway) GetVirtualServices ¶
func (m *HttpGateway) GetVirtualServices() []core.ResourceRef
func (*HttpGateway) ProtoMessage ¶
func (*HttpGateway) ProtoMessage()
func (*HttpGateway) Reset ¶
func (m *HttpGateway) Reset()
func (*HttpGateway) String ¶
func (m *HttpGateway) String() string
func (*HttpGateway) XXX_DiscardUnknown ¶
func (m *HttpGateway) XXX_DiscardUnknown()
func (*HttpGateway) XXX_Marshal ¶
func (m *HttpGateway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*HttpGateway) XXX_Merge ¶
func (m *HttpGateway) XXX_Merge(src proto.Message)
func (*HttpGateway) XXX_Size ¶
func (m *HttpGateway) XXX_Size() int
func (*HttpGateway) XXX_Unmarshal ¶
func (m *HttpGateway) XXX_Unmarshal(b []byte) error
type TcpGateway ¶
type TcpGateway struct { // Name of the destinations the gateway can route to Destinations []*v1.TcpHost `protobuf:"bytes,1,rep,name=destinations,proto3" json:"destinations,omitempty"` // tcp gateway configuration Plugins *v1.TcpListenerPlugins `protobuf:"bytes,8,opt,name=plugins,proto3" json:"plugins,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*TcpGateway) Descriptor ¶
func (*TcpGateway) Descriptor() ([]byte, []int)
func (*TcpGateway) Equal ¶
func (this *TcpGateway) Equal(that interface{}) bool
func (*TcpGateway) GetDestinations ¶
func (m *TcpGateway) GetDestinations() []*v1.TcpHost
func (*TcpGateway) GetPlugins ¶
func (m *TcpGateway) GetPlugins() *v1.TcpListenerPlugins
func (*TcpGateway) ProtoMessage ¶
func (*TcpGateway) ProtoMessage()
func (*TcpGateway) Reset ¶
func (m *TcpGateway) Reset()
func (*TcpGateway) String ¶
func (m *TcpGateway) String() string
func (*TcpGateway) XXX_DiscardUnknown ¶
func (m *TcpGateway) XXX_DiscardUnknown()
func (*TcpGateway) XXX_Marshal ¶
func (m *TcpGateway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*TcpGateway) XXX_Merge ¶
func (m *TcpGateway) XXX_Merge(src proto.Message)
func (*TcpGateway) XXX_Size ¶
func (m *TcpGateway) XXX_Size() int
func (*TcpGateway) XXX_Unmarshal ¶
func (m *TcpGateway) XXX_Unmarshal(b []byte) error
type TransitionGatewayFunc ¶
Option to copy anything from the original to the desired before writing. Return value of false means don't update
Click to show internal directories.
Click to hide internal directories.