v1

package
v0.10.2 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2019 License: Apache-2.0 Imports: 39 Imported by: 162

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ArtifactCrd = crd.NewCrd("gloo.solo.io",
	"artifacts",
	"gloo.solo.io",
	"v1",
	"Artifact",
	"art",
	false,
	&Artifact{})
View Source
var EndpointCrd = crd.NewCrd("gloo.solo.io",
	"endpoints",
	"gloo.solo.io",
	"v1",
	"Endpoint",
	"ep",
	false,
	&Endpoint{})
View Source
var ProxyCrd = crd.NewCrd("gloo.solo.io",
	"proxies",
	"gloo.solo.io",
	"v1",
	"Proxy",
	"px",
	false,
	&Proxy{})
View Source
var RedirectAction_RedirectResponseCode_name = map[int32]string{
	0: "MOVED_PERMANENTLY",
	1: "FOUND",
	2: "SEE_OTHER",
	3: "TEMPORARY_REDIRECT",
	4: "PERMANENT_REDIRECT",
}
View Source
var RedirectAction_RedirectResponseCode_value = map[string]int32{
	"MOVED_PERMANENTLY":  0,
	"FOUND":              1,
	"SEE_OTHER":          2,
	"TEMPORARY_REDIRECT": 3,
	"PERMANENT_REDIRECT": 4,
}
View Source
var SecretCrd = crd.NewCrd("gloo.solo.io",
	"secrets",
	"gloo.solo.io",
	"v1",
	"Secret",
	"sec",
	false,
	&Secret{})
View Source
var SettingsCrd = crd.NewCrd("gloo.solo.io",
	"settings",
	"gloo.solo.io",
	"v1",
	"Settings",
	"st",
	false,
	&Settings{})
View Source
var UpstreamCrd = crd.NewCrd("gloo.solo.io",
	"upstreams",
	"gloo.solo.io",
	"v1",
	"Upstream",
	"us",
	false,
	&Upstream{})

Functions

This section is empty.

Types

type ApiEmitter

type ApiEmitter interface {
	Register() error
	Artifact() ArtifactClient
	Endpoint() EndpointClient
	Proxy() ProxyClient
	Secret() SecretClient
	Upstream() UpstreamClient
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *ApiSnapshot, <-chan error, error)
}

func NewApiEmitter

func NewApiEmitter(artifactClient ArtifactClient, endpointClient EndpointClient, proxyClient ProxyClient, secretClient SecretClient, upstreamClient UpstreamClient) ApiEmitter

func NewApiEmitterWithEmit

func NewApiEmitterWithEmit(artifactClient ArtifactClient, endpointClient EndpointClient, proxyClient ProxyClient, secretClient SecretClient, upstreamClient UpstreamClient, emit <-chan struct{}) ApiEmitter

type ApiEventLoop

type ApiEventLoop interface {
	Run(namespaces []string, opts clients.WatchOpts) (<-chan error, error)
}

func NewApiEventLoop

func NewApiEventLoop(emitter ApiEmitter, syncer ApiSyncer) ApiEventLoop

type ApiSnapshot

type ApiSnapshot struct {
	Artifacts ArtifactsByNamespace
	Endpoints EndpointsByNamespace
	Proxies   ProxiesByNamespace
	Secrets   SecretsByNamespace
	Upstreams UpstreamsByNamespace
}

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 ApiSnapshotStringer

type ApiSnapshotStringer struct {
	Version   uint64
	Artifacts []string
	Endpoints []string
	Proxies   []string
	Secrets   []string
	Upstreams []string
}

func (ApiSnapshotStringer) String

func (ss ApiSnapshotStringer) String() string

type ApiSyncer

type ApiSyncer interface {
	Sync(context.Context, *ApiSnapshot) error
}

type ApiSyncers

type ApiSyncers []ApiSyncer

func (ApiSyncers) Sync

func (s ApiSyncers) Sync(ctx context.Context, snapshot *ApiSnapshot) error

type Artifact

type Artifact struct {
	// Raw data data being stored
	Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	// Metadata contains the object metadata for this resource
	Metadata             core.Metadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

@solo-kit:resource.short_name=art @solo-kit:resource.plural_name=artifacts @solo-kit:resource.resource_groups=api.gloo.solo.io

Gloo Artifacts are used by Gloo to store small bits of binary or file data.

Certain plugins such as the gRPC plugin read and write artifacts to one of Gloo's configured storage layer.

Artifacts can be backed by files on disk, Kubernetes ConfigMaps, and Consul Key/Value pairs.

Supported artifact backends can be selected in Gloo's boostrap options.

func NewArtifact

func NewArtifact(namespace, name string) *Artifact

TODO: modify as needed to populate additional fields

func (*Artifact) DeepCopyObject

func (o *Artifact) DeepCopyObject() runtime.Object

func (*Artifact) Descriptor

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

func (*Artifact) Equal

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

func (*Artifact) GetData

func (m *Artifact) GetData() string

func (*Artifact) GetMetadata

func (m *Artifact) GetMetadata() core.Metadata

func (*Artifact) GetObjectKind

func (o *Artifact) GetObjectKind() schema.ObjectKind

func (*Artifact) Hash

func (r *Artifact) Hash() uint64

func (*Artifact) ProtoMessage

func (*Artifact) ProtoMessage()

func (*Artifact) Reset

func (m *Artifact) Reset()

func (*Artifact) SetMetadata

func (r *Artifact) SetMetadata(meta core.Metadata)

func (*Artifact) String

func (m *Artifact) String() string

func (*Artifact) XXX_DiscardUnknown

func (m *Artifact) XXX_DiscardUnknown()

func (*Artifact) XXX_Marshal

func (m *Artifact) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Artifact) XXX_Merge

func (m *Artifact) XXX_Merge(src proto.Message)

func (*Artifact) XXX_Size

func (m *Artifact) XXX_Size() int

func (*Artifact) XXX_Unmarshal

func (m *Artifact) XXX_Unmarshal(b []byte) error

type ArtifactClient

type ArtifactClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Artifact, error)
	Write(resource *Artifact, opts clients.WriteOpts) (*Artifact, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (ArtifactList, error)
	Watch(namespace string, opts clients.WatchOpts) (<-chan ArtifactList, <-chan error, error)
}

func NewArtifactClient

func NewArtifactClient(rcFactory factory.ResourceClientFactory) (ArtifactClient, error)

func NewArtifactClientWithBase

func NewArtifactClientWithBase(rc clients.ResourceClient) ArtifactClient

func NewArtifactClientWithToken

func NewArtifactClientWithToken(rcFactory factory.ResourceClientFactory, token string) (ArtifactClient, error)

type ArtifactList

type ArtifactList []*Artifact

func (ArtifactList) AsInterfaces

func (list ArtifactList) AsInterfaces() []interface{}

func (ArtifactList) AsResources

func (list ArtifactList) AsResources() resources.ResourceList

func (ArtifactList) Clone

func (list ArtifactList) Clone() ArtifactList

func (ArtifactList) Each

func (list ArtifactList) Each(f func(element *Artifact))

func (ArtifactList) Find

func (list ArtifactList) Find(namespace, name string) (*Artifact, error)

namespace is optional, if left empty, names can collide if the list contains more than one with the same name

func (ArtifactList) Names

func (list ArtifactList) Names() []string

func (ArtifactList) NamespacesDotNames

func (list ArtifactList) NamespacesDotNames() []string

func (ArtifactList) Sort

func (list ArtifactList) Sort() ArtifactList

type ArtifactReconciler

type ArtifactReconciler interface {
	Reconcile(namespace string, desiredResources ArtifactList, transition TransitionArtifactFunc, opts clients.ListOpts) error
}

func NewArtifactReconciler

func NewArtifactReconciler(client ArtifactClient) ArtifactReconciler

type ArtifactsByNamespace

type ArtifactsByNamespace map[string]ArtifactList

func (ArtifactsByNamespace) Add

func (byNamespace ArtifactsByNamespace) Add(artifact ...*Artifact)

func (ArtifactsByNamespace) Clear

func (byNamespace ArtifactsByNamespace) Clear(namespace string)

func (ArtifactsByNamespace) Clone

func (byNamespace ArtifactsByNamespace) Clone() ArtifactsByNamespace

func (ArtifactsByNamespace) List

func (byNamespace ArtifactsByNamespace) List() ArtifactList

type AwsSecret

type AwsSecret struct {
	AccessKey            string   `protobuf:"bytes,1,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"`
	SecretKey            string   `protobuf:"bytes,2,opt,name=secret_key,json=secretKey,proto3" json:"secret_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*AwsSecret) Descriptor

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

func (*AwsSecret) Equal

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

func (*AwsSecret) GetAccessKey

func (m *AwsSecret) GetAccessKey() string

func (*AwsSecret) GetSecretKey

func (m *AwsSecret) GetSecretKey() string

func (*AwsSecret) ProtoMessage

func (*AwsSecret) ProtoMessage()

func (*AwsSecret) Reset

func (m *AwsSecret) Reset()

func (*AwsSecret) String

func (m *AwsSecret) String() string

func (*AwsSecret) XXX_DiscardUnknown

func (m *AwsSecret) XXX_DiscardUnknown()

func (*AwsSecret) XXX_Marshal

func (m *AwsSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*AwsSecret) XXX_Merge

func (m *AwsSecret) XXX_Merge(src proto.Message)

func (*AwsSecret) XXX_Size

func (m *AwsSecret) XXX_Size() int

func (*AwsSecret) XXX_Unmarshal

func (m *AwsSecret) XXX_Unmarshal(b []byte) error

type AzureSecret

type AzureSecret struct {
	ApiKeys              map[string]string `` /* 170-byte string literal not displayed */
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (*AzureSecret) Descriptor

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

func (*AzureSecret) Equal

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

func (*AzureSecret) GetApiKeys

func (m *AzureSecret) GetApiKeys() map[string]string

func (*AzureSecret) ProtoMessage

func (*AzureSecret) ProtoMessage()

func (*AzureSecret) Reset

func (m *AzureSecret) Reset()

func (*AzureSecret) String

func (m *AzureSecret) String() string

func (*AzureSecret) XXX_DiscardUnknown

func (m *AzureSecret) XXX_DiscardUnknown()

func (*AzureSecret) XXX_Marshal

func (m *AzureSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*AzureSecret) XXX_Merge

func (m *AzureSecret) XXX_Merge(src proto.Message)

func (*AzureSecret) XXX_Size

func (m *AzureSecret) XXX_Size() int

func (*AzureSecret) XXX_Unmarshal

func (m *AzureSecret) XXX_Unmarshal(b []byte) error

type Destination

type Destination struct {
	// The upstream to route requests to
	Upstream core.ResourceRef `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream"`
	// Some upstreams utilize plugins which require or permit additional configuration on routes targeting them.
	// gRPC upstreams, for example, allow specifying REST-style parameters for JSON-to-gRPC transcoding in the
	// destination config. If the destination config is required for the upstream and not provided by the user,
	// Gloo will invalidate the destination and its parent resources.
	DestinationSpec      *DestinationSpec `protobuf:"bytes,2,opt,name=destination_spec,json=destinationSpec,proto3" json:"destination_spec,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

Destinations define routable destinations for proxied requests

func (*Destination) Descriptor

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

func (*Destination) Equal

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

func (*Destination) GetDestinationSpec

func (m *Destination) GetDestinationSpec() *DestinationSpec

func (*Destination) GetUpstream

func (m *Destination) GetUpstream() core.ResourceRef

func (*Destination) ProtoMessage

func (*Destination) ProtoMessage()

func (*Destination) Reset

func (m *Destination) Reset()

func (*Destination) String

func (m *Destination) String() string

func (*Destination) XXX_DiscardUnknown

func (m *Destination) XXX_DiscardUnknown()

func (*Destination) XXX_Marshal

func (m *Destination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Destination) XXX_Merge

func (m *Destination) XXX_Merge(src proto.Message)

func (*Destination) XXX_Size

func (m *Destination) XXX_Size() int

func (*Destination) XXX_Unmarshal

func (m *Destination) XXX_Unmarshal(b []byte) error

type DestinationSpec

type DestinationSpec struct {
	// Note to developers: new DestinationSpecs must be added to this oneof field
	// to be usable by Gloo.
	//
	// Types that are valid to be assigned to DestinationType:
	//	*DestinationSpec_Aws
	//	*DestinationSpec_Azure
	//	*DestinationSpec_Rest
	//	*DestinationSpec_Grpc
	DestinationType      isDestinationSpec_DestinationType `protobuf_oneof:"destination_type"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

Configuration for Destinations that are tied to the UpstreamSpec or ServiceSpec on that destination

func (*DestinationSpec) Descriptor

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

func (*DestinationSpec) Equal

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

func (*DestinationSpec) GetAws

func (m *DestinationSpec) GetAws() *aws.DestinationSpec

func (*DestinationSpec) GetAzure

func (m *DestinationSpec) GetAzure() *azure.DestinationSpec

func (*DestinationSpec) GetDestinationType

func (m *DestinationSpec) GetDestinationType() isDestinationSpec_DestinationType

func (*DestinationSpec) GetGrpc

func (m *DestinationSpec) GetGrpc() *grpc.DestinationSpec

func (*DestinationSpec) GetRest

func (m *DestinationSpec) GetRest() *rest.DestinationSpec

func (*DestinationSpec) ProtoMessage

func (*DestinationSpec) ProtoMessage()

func (*DestinationSpec) Reset

func (m *DestinationSpec) Reset()

func (*DestinationSpec) String

func (m *DestinationSpec) String() string

func (*DestinationSpec) XXX_DiscardUnknown

func (m *DestinationSpec) XXX_DiscardUnknown()

func (*DestinationSpec) XXX_Marshal

func (m *DestinationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DestinationSpec) XXX_Merge

func (m *DestinationSpec) XXX_Merge(src proto.Message)

func (*DestinationSpec) XXX_OneofFuncs

func (*DestinationSpec) 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.

func (*DestinationSpec) XXX_Size

func (m *DestinationSpec) XXX_Size() int

func (*DestinationSpec) XXX_Unmarshal

func (m *DestinationSpec) XXX_Unmarshal(b []byte) error

type DestinationSpec_Aws

type DestinationSpec_Aws struct {
	Aws *aws.DestinationSpec `protobuf:"bytes,1,opt,name=aws,proto3,oneof"`
}

func (*DestinationSpec_Aws) Equal

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

type DestinationSpec_Azure

type DestinationSpec_Azure struct {
	Azure *azure.DestinationSpec `protobuf:"bytes,2,opt,name=azure,proto3,oneof"`
}

func (*DestinationSpec_Azure) Equal

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

type DestinationSpec_Grpc

type DestinationSpec_Grpc struct {
	Grpc *grpc.DestinationSpec `protobuf:"bytes,4,opt,name=grpc,proto3,oneof"`
}

func (*DestinationSpec_Grpc) Equal

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

type DestinationSpec_Rest

type DestinationSpec_Rest struct {
	Rest *rest.DestinationSpec `protobuf:"bytes,3,opt,name=rest,proto3,oneof"`
}

func (*DestinationSpec_Rest) Equal

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

type DirectResponseAction

type DirectResponseAction struct {
	// Specifies the HTTP response status to be returned.
	Status uint32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	// Specifies the content of the response body. If this setting is omitted,
	// no body is included in the generated response.
	//
	//   Note: Headers can be specified using the Header Modification plugin in the enclosing
	//   Route, Virtual Host, or Listener.
	Body                 string   `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

TODO(ilackarms): evaluate how much to differentiate (or if even to include) DirectResponseAction DirectResponseAction is copied directly from https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/route/route.proto

func (*DirectResponseAction) Descriptor

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

func (*DirectResponseAction) Equal

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

func (*DirectResponseAction) GetBody

func (m *DirectResponseAction) GetBody() string

func (*DirectResponseAction) GetStatus

func (m *DirectResponseAction) GetStatus() uint32

func (*DirectResponseAction) ProtoMessage

func (*DirectResponseAction) ProtoMessage()

func (*DirectResponseAction) Reset

func (m *DirectResponseAction) Reset()

func (*DirectResponseAction) String

func (m *DirectResponseAction) String() string

func (*DirectResponseAction) XXX_DiscardUnknown

func (m *DirectResponseAction) XXX_DiscardUnknown()

func (*DirectResponseAction) XXX_Marshal

func (m *DirectResponseAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DirectResponseAction) XXX_Merge

func (m *DirectResponseAction) XXX_Merge(src proto.Message)

func (*DirectResponseAction) XXX_Size

func (m *DirectResponseAction) XXX_Size() int

func (*DirectResponseAction) XXX_Unmarshal

func (m *DirectResponseAction) XXX_Unmarshal(b []byte) error

type DiscoveryEmitter

type DiscoveryEmitter interface {
	Register() error
	Secret() SecretClient
	Upstream() UpstreamClient
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *DiscoverySnapshot, <-chan error, error)
}

func NewDiscoveryEmitter

func NewDiscoveryEmitter(secretClient SecretClient, upstreamClient UpstreamClient) DiscoveryEmitter

func NewDiscoveryEmitterWithEmit

func NewDiscoveryEmitterWithEmit(secretClient SecretClient, upstreamClient UpstreamClient, emit <-chan struct{}) DiscoveryEmitter

type DiscoveryEventLoop

type DiscoveryEventLoop interface {
	Run(namespaces []string, opts clients.WatchOpts) (<-chan error, error)
}

func NewDiscoveryEventLoop

func NewDiscoveryEventLoop(emitter DiscoveryEmitter, syncer DiscoverySyncer) DiscoveryEventLoop

type DiscoveryMetadata

type DiscoveryMetadata struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

created by discovery services

func (*DiscoveryMetadata) Descriptor

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

func (*DiscoveryMetadata) Equal

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

func (*DiscoveryMetadata) ProtoMessage

func (*DiscoveryMetadata) ProtoMessage()

func (*DiscoveryMetadata) Reset

func (m *DiscoveryMetadata) Reset()

func (*DiscoveryMetadata) String

func (m *DiscoveryMetadata) String() string

func (*DiscoveryMetadata) XXX_DiscardUnknown

func (m *DiscoveryMetadata) XXX_DiscardUnknown()

func (*DiscoveryMetadata) XXX_Marshal

func (m *DiscoveryMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DiscoveryMetadata) XXX_Merge

func (m *DiscoveryMetadata) XXX_Merge(src proto.Message)

func (*DiscoveryMetadata) XXX_Size

func (m *DiscoveryMetadata) XXX_Size() int

func (*DiscoveryMetadata) XXX_Unmarshal

func (m *DiscoveryMetadata) XXX_Unmarshal(b []byte) error

type DiscoverySnapshot

type DiscoverySnapshot struct {
	Secrets   SecretsByNamespace
	Upstreams UpstreamsByNamespace
}

func (DiscoverySnapshot) Clone

func (DiscoverySnapshot) Hash

func (s DiscoverySnapshot) Hash() uint64

func (DiscoverySnapshot) HashFields

func (s DiscoverySnapshot) HashFields() []zap.Field

func (DiscoverySnapshot) Stringer

type DiscoverySnapshotStringer

type DiscoverySnapshotStringer struct {
	Version   uint64
	Secrets   []string
	Upstreams []string
}

func (DiscoverySnapshotStringer) String

func (ss DiscoverySnapshotStringer) String() string

type DiscoverySyncer

type DiscoverySyncer interface {
	Sync(context.Context, *DiscoverySnapshot) error
}

type DiscoverySyncers

type DiscoverySyncers []DiscoverySyncer

func (DiscoverySyncers) Sync

func (s DiscoverySyncers) Sync(ctx context.Context, snapshot *DiscoverySnapshot) error

type Endpoint

type Endpoint struct {
	// List of the upstreams the endpoint belongs to
	Upstreams []*core.ResourceRef `protobuf:"bytes,1,rep,name=upstreams,proto3" json:"upstreams,omitempty"`
	// Address of the endpoint (ip or hostname)
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// listening port for the endpoint
	Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	// Metadata contains the object metadata for this resource
	Metadata             core.Metadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

@solo-kit:resource.short_name=ep @solo-kit:resource.plural_name=endpoints @solo-kit:resource.resource_groups=api.gloo.solo.io

Endpoints represent dynamically discovered address/ports where an upstream service is listening

func NewEndpoint

func NewEndpoint(namespace, name string) *Endpoint

TODO: modify as needed to populate additional fields

func (*Endpoint) DeepCopyObject

func (o *Endpoint) DeepCopyObject() runtime.Object

func (*Endpoint) Descriptor

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

func (*Endpoint) Equal

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

func (*Endpoint) GetAddress

func (m *Endpoint) GetAddress() string

func (*Endpoint) GetMetadata

func (m *Endpoint) GetMetadata() core.Metadata

func (*Endpoint) GetObjectKind

func (o *Endpoint) GetObjectKind() schema.ObjectKind

func (*Endpoint) GetPort

func (m *Endpoint) GetPort() uint32

func (*Endpoint) GetUpstreams

func (m *Endpoint) GetUpstreams() []*core.ResourceRef

func (*Endpoint) Hash

func (r *Endpoint) Hash() uint64

func (*Endpoint) ProtoMessage

func (*Endpoint) ProtoMessage()

func (*Endpoint) Reset

func (m *Endpoint) Reset()

func (*Endpoint) SetMetadata

func (r *Endpoint) SetMetadata(meta core.Metadata)

func (*Endpoint) String

func (m *Endpoint) String() string

func (*Endpoint) XXX_DiscardUnknown

func (m *Endpoint) XXX_DiscardUnknown()

func (*Endpoint) XXX_Marshal

func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Endpoint) XXX_Merge

func (m *Endpoint) XXX_Merge(src proto.Message)

func (*Endpoint) XXX_Size

func (m *Endpoint) XXX_Size() int

func (*Endpoint) XXX_Unmarshal

func (m *Endpoint) XXX_Unmarshal(b []byte) error

type EndpointClient

type EndpointClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Endpoint, error)
	Write(resource *Endpoint, opts clients.WriteOpts) (*Endpoint, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (EndpointList, error)
	Watch(namespace string, opts clients.WatchOpts) (<-chan EndpointList, <-chan error, error)
}

func NewEndpointClient

func NewEndpointClient(rcFactory factory.ResourceClientFactory) (EndpointClient, error)

func NewEndpointClientWithBase

func NewEndpointClientWithBase(rc clients.ResourceClient) EndpointClient

func NewEndpointClientWithToken

func NewEndpointClientWithToken(rcFactory factory.ResourceClientFactory, token string) (EndpointClient, error)

type EndpointList

type EndpointList []*Endpoint

func (EndpointList) AsInterfaces

func (list EndpointList) AsInterfaces() []interface{}

func (EndpointList) AsResources

func (list EndpointList) AsResources() resources.ResourceList

func (EndpointList) Clone

func (list EndpointList) Clone() EndpointList

func (EndpointList) Each

func (list EndpointList) Each(f func(element *Endpoint))

func (EndpointList) Find

func (list EndpointList) Find(namespace, name string) (*Endpoint, error)

namespace is optional, if left empty, names can collide if the list contains more than one with the same name

func (EndpointList) Names

func (list EndpointList) Names() []string

func (EndpointList) NamespacesDotNames

func (list EndpointList) NamespacesDotNames() []string

func (EndpointList) Sort

func (list EndpointList) Sort() EndpointList

type EndpointReconciler

type EndpointReconciler interface {
	Reconcile(namespace string, desiredResources EndpointList, transition TransitionEndpointFunc, opts clients.ListOpts) error
}

func NewEndpointReconciler

func NewEndpointReconciler(client EndpointClient) EndpointReconciler

type EndpointsByNamespace

type EndpointsByNamespace map[string]EndpointList

func (EndpointsByNamespace) Add

func (byNamespace EndpointsByNamespace) Add(endpoint ...*Endpoint)

func (EndpointsByNamespace) Clear

func (byNamespace EndpointsByNamespace) Clear(namespace string)

func (EndpointsByNamespace) Clone

func (byNamespace EndpointsByNamespace) Clone() EndpointsByNamespace

func (EndpointsByNamespace) List

func (byNamespace EndpointsByNamespace) List() EndpointList

type Extension

type Extension struct {
	Config               *types.Struct `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (*Extension) Descriptor

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

func (*Extension) Equal

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

func (*Extension) GetConfig

func (m *Extension) GetConfig() *types.Struct

func (*Extension) ProtoMessage

func (*Extension) ProtoMessage()

func (*Extension) Reset

func (m *Extension) Reset()

func (*Extension) String

func (m *Extension) String() string

func (*Extension) XXX_DiscardUnknown

func (m *Extension) XXX_DiscardUnknown()

func (*Extension) XXX_Marshal

func (m *Extension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Extension) XXX_Merge

func (m *Extension) XXX_Merge(src proto.Message)

func (*Extension) XXX_Size

func (m *Extension) XXX_Size() int

func (*Extension) XXX_Unmarshal

func (m *Extension) XXX_Unmarshal(b []byte) error

type Extensions

type Extensions struct {
	Configs              map[string]*types.Struct `` /* 155-byte string literal not displayed */
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (*Extensions) Descriptor

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

func (*Extensions) Equal

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

func (*Extensions) GetConfigs

func (m *Extensions) GetConfigs() map[string]*types.Struct

func (*Extensions) ProtoMessage

func (*Extensions) ProtoMessage()

func (*Extensions) Reset

func (m *Extensions) Reset()

func (*Extensions) String

func (m *Extensions) String() string

func (*Extensions) XXX_DiscardUnknown

func (m *Extensions) XXX_DiscardUnknown()

func (*Extensions) XXX_Marshal

func (m *Extensions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Extensions) XXX_Merge

func (m *Extensions) XXX_Merge(src proto.Message)

func (*Extensions) XXX_Size

func (m *Extensions) XXX_Size() int

func (*Extensions) XXX_Unmarshal

func (m *Extensions) XXX_Unmarshal(b []byte) error

type HeaderMatcher

type HeaderMatcher struct {
	// Specifies the name of the header in the request.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Specifies the value of the header. If the value is absent a request that
	// has the name header will match, regardless of the header’s value.
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// Specifies whether the header value should be treated as regex or not.
	Regex                bool     `protobuf:"varint,3,opt,name=regex,proto3" json:"regex,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Internally, Gloo always uses the HTTP/2 *:authority* header to represent the HTTP/1 *Host* header. Thus, if attempting to match on *Host*, match on *:authority* instead.

In the absence of any header match specifier, match will default to `present_match` i.e, a request that has the `name` header will match, regardless of the header's value.

func (*HeaderMatcher) Descriptor

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

func (*HeaderMatcher) Equal

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

func (*HeaderMatcher) GetName

func (m *HeaderMatcher) GetName() string

func (*HeaderMatcher) GetRegex

func (m *HeaderMatcher) GetRegex() bool

func (*HeaderMatcher) GetValue

func (m *HeaderMatcher) GetValue() string

func (*HeaderMatcher) ProtoMessage

func (*HeaderMatcher) ProtoMessage()

func (*HeaderMatcher) Reset

func (m *HeaderMatcher) Reset()

func (*HeaderMatcher) String

func (m *HeaderMatcher) String() string

func (*HeaderMatcher) XXX_DiscardUnknown

func (m *HeaderMatcher) XXX_DiscardUnknown()

func (*HeaderMatcher) XXX_Marshal

func (m *HeaderMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HeaderMatcher) XXX_Merge

func (m *HeaderMatcher) XXX_Merge(src proto.Message)

func (*HeaderMatcher) XXX_Size

func (m *HeaderMatcher) XXX_Size() int

func (*HeaderMatcher) XXX_Unmarshal

func (m *HeaderMatcher) XXX_Unmarshal(b []byte) error

type HttpListener

type HttpListener struct {
	// the set of virtual hosts that will be accessible by clients connecting to this listener.
	// at least one virtual host must be specified for this listener to be active (else connections will be refused)
	// the set of domains for each virtual host must be unique, or the config will be considered invalid
	VirtualHosts []*VirtualHost `protobuf:"bytes,1,rep,name=virtual_hosts,json=virtualHosts,proto3" json:"virtual_hosts,omitempty"`
	// Plugins contains top-level plugin configuration to be applied to a listener
	// Listener config is applied to all HTTP traffic that
	// connects to this listener. Some configuration here can be overridden in
	// Virtual Host Plugin configuration or Route Plugin configuration
	//
	// Plugins should be specified here in the form of
	//   `"plugin_name": {..//plugin_config...}`
	// to allow specifying multiple plugins.
	ListenerPlugins      *ListenerPlugins `protobuf:"bytes,2,opt,name=listener_plugins,json=listenerPlugins,proto3" json:"listener_plugins,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

Use this listener to configure proxy behavior for any HTTP-level features including defining routes (via virtualservices). HttpListeners also contain plugin configuration that applies globally across all virtaul hosts on the listener. Some plugins can be configured to work both on the listener and virtual host level (such as the rate limit plugin)

func (*HttpListener) Descriptor

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

func (*HttpListener) Equal

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

func (*HttpListener) GetListenerPlugins

func (m *HttpListener) GetListenerPlugins() *ListenerPlugins

func (*HttpListener) GetVirtualHosts

func (m *HttpListener) GetVirtualHosts() []*VirtualHost

func (*HttpListener) ProtoMessage

func (*HttpListener) ProtoMessage()

func (*HttpListener) Reset

func (m *HttpListener) Reset()

func (*HttpListener) String

func (m *HttpListener) String() string

func (*HttpListener) XXX_DiscardUnknown

func (m *HttpListener) XXX_DiscardUnknown()

func (*HttpListener) XXX_Marshal

func (m *HttpListener) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HttpListener) XXX_Merge

func (m *HttpListener) XXX_Merge(src proto.Message)

func (*HttpListener) XXX_Size

func (m *HttpListener) XXX_Size() int

func (*HttpListener) XXX_Unmarshal

func (m *HttpListener) XXX_Unmarshal(b []byte) error

type Listener

type Listener struct {
	// the name of the listener. names must be unique for each listener within a proxy
	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 proxy
	BindPort uint32 `protobuf:"varint,3,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"`
	// Listeners can listen for HTTP, TCP (unsupported), and UDP (unsupported) connections
	//
	// Types that are valid to be assigned to ListenerType:
	//	*Listener_HttpListener
	ListenerType isListener_ListenerType `protobuf_oneof:"ListenerType"`
	// SSL Config is optional for the listener. If provided, the listener will serve TLS for connections on this port
	// Multiple SslConfigs are supported for the pupose of SNI. Be aware that the SNI domain provided in the SSL Config
	// must match a domain in virtual host
	// TODO(ilackarms): ensure that ssl configs without a matching virtual host are errored
	SslConfiguations     []*SslConfig `protobuf:"bytes,5,rep,name=ssl_configuations,json=sslConfiguations,proto3" json:"ssl_configuations,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

Listeners define the address:port where the proxy will listen for incoming connections A Listener accepts connections (currently only HTTP is supported) and apply user-defined behavior for those connections, e.g. performing SSL termination, HTTP retries, and rate limiting.

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) GetHttpListener

func (m *Listener) GetHttpListener() *HttpListener

func (*Listener) GetListenerType

func (m *Listener) GetListenerType() isListener_ListenerType

func (*Listener) GetName

func (m *Listener) GetName() string

func (*Listener) GetSslConfiguations

func (m *Listener) GetSslConfiguations() []*SslConfig

func (*Listener) ProtoMessage

func (*Listener) ProtoMessage()

func (*Listener) Reset

func (m *Listener) Reset()

func (*Listener) String

func (m *Listener) String() string

func (*Listener) XXX_DiscardUnknown

func (m *Listener) XXX_DiscardUnknown()

func (*Listener) XXX_Marshal

func (m *Listener) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Listener) XXX_Merge

func (m *Listener) XXX_Merge(src proto.Message)

func (*Listener) XXX_OneofFuncs

func (*Listener) 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.

func (*Listener) XXX_Size

func (m *Listener) XXX_Size() int

func (*Listener) XXX_Unmarshal

func (m *Listener) XXX_Unmarshal(b []byte) error

type ListenerPlugins

type ListenerPlugins struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Plugin-specific configuration that lives on listeners Each ListenerPlugin object contains configuration for a specific plugin Note to developers: new Listener Plugins must be added to this struct to be usable by Gloo.

func (*ListenerPlugins) Descriptor

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

func (*ListenerPlugins) Equal

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

func (*ListenerPlugins) ProtoMessage

func (*ListenerPlugins) ProtoMessage()

func (*ListenerPlugins) Reset

func (m *ListenerPlugins) Reset()

func (*ListenerPlugins) String

func (m *ListenerPlugins) String() string

func (*ListenerPlugins) XXX_DiscardUnknown

func (m *ListenerPlugins) XXX_DiscardUnknown()

func (*ListenerPlugins) XXX_Marshal

func (m *ListenerPlugins) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListenerPlugins) XXX_Merge

func (m *ListenerPlugins) XXX_Merge(src proto.Message)

func (*ListenerPlugins) XXX_Size

func (m *ListenerPlugins) XXX_Size() int

func (*ListenerPlugins) XXX_Unmarshal

func (m *ListenerPlugins) XXX_Unmarshal(b []byte) error

type Listener_HttpListener

type Listener_HttpListener struct {
	HttpListener *HttpListener `protobuf:"bytes,4,opt,name=http_listener,json=httpListener,proto3,oneof"`
}

func (*Listener_HttpListener) Equal

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

type Matcher

type Matcher struct {
	// Types that are valid to be assigned to PathSpecifier:
	//	*Matcher_Prefix
	//	*Matcher_Exact
	//	*Matcher_Regex
	PathSpecifier isMatcher_PathSpecifier `protobuf_oneof:"path_specifier"`
	// Specifies a set of headers that the route should match on. The router will
	// check the request’s headers against all the specified headers in the route
	// config. A match will happen if all the headers in the route are present in
	// the request with the same values (or based on presence if the value field
	// is not in the config).
	Headers []*HeaderMatcher `protobuf:"bytes,6,rep,name=headers,proto3" json:"headers,omitempty"`
	// Specifies a set of URL query parameters on which the route should
	// match. The router will check the query string from the *path* header
	// against all the specified query parameters. If the number of specified
	// query parameters is nonzero, they all must match the *path* header's
	// query string for a match to occur.
	QueryParameters []*QueryParameterMatcher `protobuf:"bytes,7,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"`
	// HTTP Method/Verb(s) to match on. If none specified, the matcher will ignore the HTTP Method
	Methods              []string `protobuf:"bytes,8,rep,name=methods,proto3" json:"methods,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Parameters for matching routes to requests received by a Gloo-managed proxy

func (*Matcher) Descriptor

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

func (*Matcher) Equal

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

func (*Matcher) GetExact

func (m *Matcher) GetExact() string

func (*Matcher) GetHeaders

func (m *Matcher) GetHeaders() []*HeaderMatcher

func (*Matcher) GetMethods

func (m *Matcher) GetMethods() []string

func (*Matcher) GetPathSpecifier

func (m *Matcher) GetPathSpecifier() isMatcher_PathSpecifier

func (*Matcher) GetPrefix

func (m *Matcher) GetPrefix() string

func (*Matcher) GetQueryParameters

func (m *Matcher) GetQueryParameters() []*QueryParameterMatcher

func (*Matcher) GetRegex

func (m *Matcher) GetRegex() string

func (*Matcher) ProtoMessage

func (*Matcher) ProtoMessage()

func (*Matcher) Reset

func (m *Matcher) Reset()

func (*Matcher) String

func (m *Matcher) String() string

func (*Matcher) XXX_DiscardUnknown

func (m *Matcher) XXX_DiscardUnknown()

func (*Matcher) XXX_Marshal

func (m *Matcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Matcher) XXX_Merge

func (m *Matcher) XXX_Merge(src proto.Message)

func (*Matcher) XXX_OneofFuncs

func (*Matcher) 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.

func (*Matcher) XXX_Size

func (m *Matcher) XXX_Size() int

func (*Matcher) XXX_Unmarshal

func (m *Matcher) XXX_Unmarshal(b []byte) error

type Matcher_Exact

type Matcher_Exact struct {
	Exact string `protobuf:"bytes,2,opt,name=exact,proto3,oneof"`
}

func (*Matcher_Exact) Equal

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

type Matcher_Prefix

type Matcher_Prefix struct {
	Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof"`
}

func (*Matcher_Prefix) Equal

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

type Matcher_Regex

type Matcher_Regex struct {
	Regex string `protobuf:"bytes,3,opt,name=regex,proto3,oneof"`
}

func (*Matcher_Regex) Equal

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

type MultiDestination

type MultiDestination struct {
	// This list must contain at least one destination or the listener housing this route will be invalid,
	// causing Gloo to error the parent proxy resource.
	Destinations         []*WeightedDestination `protobuf:"bytes,1,rep,name=destinations,proto3" json:"destinations,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

MultiDestination is a container for a set of weighted destinations. Gloo will load balance traffic for a single route across multiple destinations according to their specified weights.

func (*MultiDestination) Descriptor

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

func (*MultiDestination) Equal

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

func (*MultiDestination) GetDestinations

func (m *MultiDestination) GetDestinations() []*WeightedDestination

func (*MultiDestination) ProtoMessage

func (*MultiDestination) ProtoMessage()

func (*MultiDestination) Reset

func (m *MultiDestination) Reset()

func (*MultiDestination) String

func (m *MultiDestination) String() string

func (*MultiDestination) XXX_DiscardUnknown

func (m *MultiDestination) XXX_DiscardUnknown()

func (*MultiDestination) XXX_Marshal

func (m *MultiDestination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MultiDestination) XXX_Merge

func (m *MultiDestination) XXX_Merge(src proto.Message)

func (*MultiDestination) XXX_Size

func (m *MultiDestination) XXX_Size() int

func (*MultiDestination) XXX_Unmarshal

func (m *MultiDestination) XXX_Unmarshal(b []byte) error

type ProxiesByNamespace

type ProxiesByNamespace map[string]ProxyList

func (ProxiesByNamespace) Add

func (byNamespace ProxiesByNamespace) Add(proxy ...*Proxy)

func (ProxiesByNamespace) Clear

func (byNamespace ProxiesByNamespace) Clear(namespace string)

func (ProxiesByNamespace) Clone

func (byNamespace ProxiesByNamespace) Clone() ProxiesByNamespace

func (ProxiesByNamespace) List

func (byNamespace ProxiesByNamespace) List() ProxyList

type Proxy

type Proxy struct {
	// Define here each listener the proxy should create.
	// Listeners define the a set of behaviors for a single bind address/port where the proxy will listen
	// If no listeners are specified, the instances configured with the proxy resource will not accept connections.
	Listeners []*Listener `protobuf:"bytes,2,rep,name=listeners,proto3" json:"listeners,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"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

@solo-kit:resource.short_name=px @solo-kit:resource.plural_name=proxies @solo-kit:resource.resource_groups=api.gloo.solo.io

A Proxy is a container for the entire set of configuration that will to be applied to one or more Proxy instances. Proxies can be understood as a set of listeners, represents a different bind address/port where the proxy will listen for connections. Each listener has its own set of configuration.

If any of the sub-resources within a listener is declared invalid (e.g. due to invalid user configuration), the proxy will be marked invalid by Gloo.

Proxy instances that register with Gloo are assigned the proxy configuration corresponding with a proxy-specific identifier. In the case of Envoy, proxy instances are identified by their Node ID. Node IDs must match a existing Proxy Node ID can be specified in Envoy with the `--service-node` flag, or in the Envoy instance's bootstrap config.

func NewProxy

func NewProxy(namespace, name string) *Proxy

TODO: modify as needed to populate additional fields

func (*Proxy) DeepCopyObject

func (o *Proxy) DeepCopyObject() runtime.Object

func (*Proxy) Descriptor

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

func (*Proxy) Equal

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

func (*Proxy) GetListeners

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

func (*Proxy) GetMetadata

func (m *Proxy) GetMetadata() core.Metadata

func (*Proxy) GetObjectKind

func (o *Proxy) GetObjectKind() schema.ObjectKind

func (*Proxy) GetStatus

func (m *Proxy) GetStatus() core.Status

func (*Proxy) Hash

func (r *Proxy) Hash() uint64

func (*Proxy) ProtoMessage

func (*Proxy) ProtoMessage()

func (*Proxy) Reset

func (m *Proxy) Reset()

func (*Proxy) SetMetadata

func (r *Proxy) SetMetadata(meta core.Metadata)

func (*Proxy) SetStatus

func (r *Proxy) SetStatus(status core.Status)

func (*Proxy) String

func (m *Proxy) String() string

func (*Proxy) XXX_DiscardUnknown

func (m *Proxy) XXX_DiscardUnknown()

func (*Proxy) XXX_Marshal

func (m *Proxy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Proxy) XXX_Merge

func (m *Proxy) XXX_Merge(src proto.Message)

func (*Proxy) XXX_Size

func (m *Proxy) XXX_Size() int

func (*Proxy) XXX_Unmarshal

func (m *Proxy) XXX_Unmarshal(b []byte) error

type ProxyClient

type ProxyClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Proxy, error)
	Write(resource *Proxy, opts clients.WriteOpts) (*Proxy, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (ProxyList, error)
	Watch(namespace string, opts clients.WatchOpts) (<-chan ProxyList, <-chan error, error)
}

func NewProxyClient

func NewProxyClient(rcFactory factory.ResourceClientFactory) (ProxyClient, error)

func NewProxyClientWithBase

func NewProxyClientWithBase(rc clients.ResourceClient) ProxyClient

func NewProxyClientWithToken

func NewProxyClientWithToken(rcFactory factory.ResourceClientFactory, token string) (ProxyClient, error)

type ProxyList

type ProxyList []*Proxy

func (ProxyList) AsInputResources

func (list ProxyList) AsInputResources() resources.InputResourceList

func (ProxyList) AsInterfaces

func (list ProxyList) AsInterfaces() []interface{}

func (ProxyList) AsResources

func (list ProxyList) AsResources() resources.ResourceList

func (ProxyList) Clone

func (list ProxyList) Clone() ProxyList

func (ProxyList) Each

func (list ProxyList) Each(f func(element *Proxy))

func (ProxyList) Find

func (list ProxyList) Find(namespace, name string) (*Proxy, error)

namespace is optional, if left empty, names can collide if the list contains more than one with the same name

func (ProxyList) Names

func (list ProxyList) Names() []string

func (ProxyList) NamespacesDotNames

func (list ProxyList) NamespacesDotNames() []string

func (ProxyList) Sort

func (list ProxyList) Sort() ProxyList

type ProxyReconciler

type ProxyReconciler interface {
	Reconcile(namespace string, desiredResources ProxyList, transition TransitionProxyFunc, opts clients.ListOpts) error
}

func NewProxyReconciler

func NewProxyReconciler(client ProxyClient) ProxyReconciler

type QueryParameterMatcher

type QueryParameterMatcher struct {
	// Specifies the name of a key that must be present in the requested
	// *path*'s query string.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Specifies the value of the key. If the value is absent, a request
	// that contains the key in its query string will match, whether the
	// key appears with a value (e.g., "?debug=true") or not (e.g., "?debug")
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// Specifies whether the query parameter value is a regular expression.
	// Defaults to false. The entire query parameter value (i.e., the part to
	// the right of the equals sign in "key=value") must match the regex.
	// E.g., the regex "\d+$" will match "123" but not "a123" or "123a".
	Regex                bool     `protobuf:"varint,3,opt,name=regex,proto3" json:"regex,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Query parameter matching treats the query string of a request's :path header as an ampersand-separated list of keys and/or key=value elements.

func (*QueryParameterMatcher) Descriptor

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

func (*QueryParameterMatcher) Equal

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

func (*QueryParameterMatcher) GetName

func (m *QueryParameterMatcher) GetName() string

func (*QueryParameterMatcher) GetRegex

func (m *QueryParameterMatcher) GetRegex() bool

func (*QueryParameterMatcher) GetValue

func (m *QueryParameterMatcher) GetValue() string

func (*QueryParameterMatcher) ProtoMessage

func (*QueryParameterMatcher) ProtoMessage()

func (*QueryParameterMatcher) Reset

func (m *QueryParameterMatcher) Reset()

func (*QueryParameterMatcher) String

func (m *QueryParameterMatcher) String() string

func (*QueryParameterMatcher) XXX_DiscardUnknown

func (m *QueryParameterMatcher) XXX_DiscardUnknown()

func (*QueryParameterMatcher) XXX_Marshal

func (m *QueryParameterMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryParameterMatcher) XXX_Merge

func (m *QueryParameterMatcher) XXX_Merge(src proto.Message)

func (*QueryParameterMatcher) XXX_Size

func (m *QueryParameterMatcher) XXX_Size() int

func (*QueryParameterMatcher) XXX_Unmarshal

func (m *QueryParameterMatcher) XXX_Unmarshal(b []byte) error

type RedirectAction

type RedirectAction struct {
	// The host portion of the URL will be swapped with this value.
	HostRedirect string `protobuf:"bytes,1,opt,name=host_redirect,json=hostRedirect,proto3" json:"host_redirect,omitempty"`
	// Types that are valid to be assigned to PathRewriteSpecifier:
	//	*RedirectAction_PathRedirect
	//	*RedirectAction_PrefixRewrite
	PathRewriteSpecifier isRedirectAction_PathRewriteSpecifier `protobuf_oneof:"path_rewrite_specifier"`
	// The HTTP status code to use in the redirect response. The default response
	// code is MOVED_PERMANENTLY (301).
	ResponseCode RedirectAction_RedirectResponseCode `` /* 152-byte string literal not displayed */
	// The scheme portion of the URL will be swapped with "https".
	HttpsRedirect bool `protobuf:"varint,4,opt,name=https_redirect,json=httpsRedirect,proto3" json:"https_redirect,omitempty"`
	// Indicates that during redirection, the query portion of the URL will
	// be removed. Default value is false.
	StripQuery           bool     `protobuf:"varint,6,opt,name=strip_query,json=stripQuery,proto3" json:"strip_query,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

TODO(ilackarms): evaluate how much to differentiate (or if even to include) RedirectAction Notice: RedirectAction is copioed directly from https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/route/route.proto

func (*RedirectAction) Descriptor

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

func (*RedirectAction) Equal

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

func (*RedirectAction) GetHostRedirect

func (m *RedirectAction) GetHostRedirect() string

func (*RedirectAction) GetHttpsRedirect

func (m *RedirectAction) GetHttpsRedirect() bool

func (*RedirectAction) GetPathRedirect

func (m *RedirectAction) GetPathRedirect() string

func (*RedirectAction) GetPathRewriteSpecifier

func (m *RedirectAction) GetPathRewriteSpecifier() isRedirectAction_PathRewriteSpecifier

func (*RedirectAction) GetPrefixRewrite

func (m *RedirectAction) GetPrefixRewrite() string

func (*RedirectAction) GetResponseCode

func (*RedirectAction) GetStripQuery

func (m *RedirectAction) GetStripQuery() bool

func (*RedirectAction) ProtoMessage

func (*RedirectAction) ProtoMessage()

func (*RedirectAction) Reset

func (m *RedirectAction) Reset()

func (*RedirectAction) String

func (m *RedirectAction) String() string

func (*RedirectAction) XXX_DiscardUnknown

func (m *RedirectAction) XXX_DiscardUnknown()

func (*RedirectAction) XXX_Marshal

func (m *RedirectAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RedirectAction) XXX_Merge

func (m *RedirectAction) XXX_Merge(src proto.Message)

func (*RedirectAction) XXX_OneofFuncs

func (*RedirectAction) 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.

func (*RedirectAction) XXX_Size

func (m *RedirectAction) XXX_Size() int

func (*RedirectAction) XXX_Unmarshal

func (m *RedirectAction) XXX_Unmarshal(b []byte) error

type RedirectAction_PathRedirect

type RedirectAction_PathRedirect struct {
	PathRedirect string `protobuf:"bytes,2,opt,name=path_redirect,json=pathRedirect,proto3,oneof"`
}

func (*RedirectAction_PathRedirect) Equal

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

type RedirectAction_PrefixRewrite

type RedirectAction_PrefixRewrite struct {
	PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3,oneof"`
}

func (*RedirectAction_PrefixRewrite) Equal

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

type RedirectAction_RedirectResponseCode

type RedirectAction_RedirectResponseCode int32
const (
	// Moved Permanently HTTP Status Code - 301.
	RedirectAction_MOVED_PERMANENTLY RedirectAction_RedirectResponseCode = 0
	// Found HTTP Status Code - 302.
	RedirectAction_FOUND RedirectAction_RedirectResponseCode = 1
	// See Other HTTP Status Code - 303.
	RedirectAction_SEE_OTHER RedirectAction_RedirectResponseCode = 2
	// Temporary Redirect HTTP Status Code - 307.
	RedirectAction_TEMPORARY_REDIRECT RedirectAction_RedirectResponseCode = 3
	// Permanent Redirect HTTP Status Code - 308.
	RedirectAction_PERMANENT_REDIRECT RedirectAction_RedirectResponseCode = 4
)

func (RedirectAction_RedirectResponseCode) EnumDescriptor

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

func (RedirectAction_RedirectResponseCode) String

type Route

type Route struct {
	// The matcher contains parameters for matching requests (i.e.: based on HTTP path, headers, etc.)
	Matcher *Matcher `protobuf:"bytes,1,opt,name=matcher,proto3" json:"matcher,omitempty"`
	// The Route Action Defines what action the proxy should take when a request matches the route.
	//
	// Types that are valid to be assigned to Action:
	//	*Route_RouteAction
	//	*Route_RedirectAction
	//	*Route_DirectResponseAction
	Action isRoute_Action `protobuf_oneof:"action"`
	// Route Plugins extend the behavior of routes.
	// Route plugins include configuration such as retries,
	// rate limiting, and request/resonse transformation.
	//
	// Plugins should be specified here in the form of
	//   `"plugin_name": {..//plugin_config...}`
	// to allow specifying multiple plugins.
	RoutePlugins         *RoutePlugins `protobuf:"bytes,5,opt,name=route_plugins,json=routePlugins,proto3" json:"route_plugins,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

* Routes declare the entrypoints on virtual hosts and the action to take for matched requests.

func (*Route) Descriptor

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

func (*Route) Equal

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

func (*Route) GetAction

func (m *Route) GetAction() isRoute_Action

func (*Route) GetDirectResponseAction

func (m *Route) GetDirectResponseAction() *DirectResponseAction

func (*Route) GetMatcher

func (m *Route) GetMatcher() *Matcher

func (*Route) GetRedirectAction

func (m *Route) GetRedirectAction() *RedirectAction

func (*Route) GetRouteAction

func (m *Route) GetRouteAction() *RouteAction

func (*Route) GetRoutePlugins

func (m *Route) GetRoutePlugins() *RoutePlugins

func (*Route) ProtoMessage

func (*Route) ProtoMessage()

func (*Route) Reset

func (m *Route) Reset()

func (*Route) String

func (m *Route) String() string

func (*Route) XXX_DiscardUnknown

func (m *Route) XXX_DiscardUnknown()

func (*Route) XXX_Marshal

func (m *Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Route) XXX_Merge

func (m *Route) XXX_Merge(src proto.Message)

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.

func (*Route) XXX_Size

func (m *Route) XXX_Size() int

func (*Route) XXX_Unmarshal

func (m *Route) XXX_Unmarshal(b []byte) error

type RouteAction

type RouteAction struct {
	// Defines the destination upstream for routing
	// Some destinations require additional configuration for the route (e.g. AWS upstreams require a function name
	// to be specified).
	//
	// Types that are valid to be assigned to Destination:
	//	*RouteAction_Single
	//	*RouteAction_Multi
	Destination          isRouteAction_Destination `protobuf_oneof:"destination"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

RouteActions are used to route matched requests to upstreams.

func (*RouteAction) Descriptor

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

func (*RouteAction) Equal

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

func (*RouteAction) GetDestination

func (m *RouteAction) GetDestination() isRouteAction_Destination

func (*RouteAction) GetMulti

func (m *RouteAction) GetMulti() *MultiDestination

func (*RouteAction) GetSingle

func (m *RouteAction) GetSingle() *Destination

func (*RouteAction) ProtoMessage

func (*RouteAction) ProtoMessage()

func (*RouteAction) Reset

func (m *RouteAction) Reset()

func (*RouteAction) String

func (m *RouteAction) String() string

func (*RouteAction) XXX_DiscardUnknown

func (m *RouteAction) XXX_DiscardUnknown()

func (*RouteAction) XXX_Marshal

func (m *RouteAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteAction) XXX_Merge

func (m *RouteAction) XXX_Merge(src proto.Message)

func (*RouteAction) XXX_OneofFuncs

func (*RouteAction) 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.

func (*RouteAction) XXX_Size

func (m *RouteAction) XXX_Size() int

func (*RouteAction) XXX_Unmarshal

func (m *RouteAction) XXX_Unmarshal(b []byte) error

type RouteAction_Multi

type RouteAction_Multi struct {
	Multi *MultiDestination `protobuf:"bytes,2,opt,name=multi,proto3,oneof"`
}

func (*RouteAction_Multi) Equal

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

type RouteAction_Single

type RouteAction_Single struct {
	Single *Destination `protobuf:"bytes,1,opt,name=single,proto3,oneof"`
}

func (*RouteAction_Single) Equal

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

type RoutePlugins

type RoutePlugins struct {
	Transformations      *transformation.RouteTransformations `protobuf:"bytes,1,opt,name=transformations,proto3" json:"transformations,omitempty"`
	Faults               *faultinjection.RouteFaults          `protobuf:"bytes,2,opt,name=faults,proto3" json:"faults,omitempty"`
	PrefixRewrite        *transformation.PrefixRewrite        `protobuf:"bytes,3,opt,name=prefix_rewrite,json=prefixRewrite,proto3" json:"prefix_rewrite,omitempty"`
	Timeout              *time.Duration                       `protobuf:"bytes,4,opt,name=timeout,proto3,stdduration" json:"timeout,omitempty"`
	Retries              *retries.RetryPolicy                 `protobuf:"bytes,5,opt,name=retries,proto3" json:"retries,omitempty"`
	Extensions           *Extensions                          `protobuf:"bytes,6,opt,name=extensions,proto3" json:"extensions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
	XXX_unrecognized     []byte                               `json:"-"`
	XXX_sizecache        int32                                `json:"-"`
}

Plugin-specific configuration that lives on routes Each RoutePlugin object contains configuration for a specific plugin Note to developers: new Route Plugins must be added to this struct to be usable by Gloo.

func (*RoutePlugins) Descriptor

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

func (*RoutePlugins) Equal

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

func (*RoutePlugins) GetExtensions

func (m *RoutePlugins) GetExtensions() *Extensions

func (*RoutePlugins) GetFaults

func (m *RoutePlugins) GetFaults() *faultinjection.RouteFaults

func (*RoutePlugins) GetPrefixRewrite

func (m *RoutePlugins) GetPrefixRewrite() *transformation.PrefixRewrite

func (*RoutePlugins) GetRetries

func (m *RoutePlugins) GetRetries() *retries.RetryPolicy

func (*RoutePlugins) GetTimeout

func (m *RoutePlugins) GetTimeout() *time.Duration

func (*RoutePlugins) GetTransformations

func (m *RoutePlugins) GetTransformations() *transformation.RouteTransformations

func (*RoutePlugins) ProtoMessage

func (*RoutePlugins) ProtoMessage()

func (*RoutePlugins) Reset

func (m *RoutePlugins) Reset()

func (*RoutePlugins) String

func (m *RoutePlugins) String() string

func (*RoutePlugins) XXX_DiscardUnknown

func (m *RoutePlugins) XXX_DiscardUnknown()

func (*RoutePlugins) XXX_Marshal

func (m *RoutePlugins) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RoutePlugins) XXX_Merge

func (m *RoutePlugins) XXX_Merge(src proto.Message)

func (*RoutePlugins) XXX_Size

func (m *RoutePlugins) XXX_Size() int

func (*RoutePlugins) XXX_Unmarshal

func (m *RoutePlugins) XXX_Unmarshal(b []byte) error

type Route_DirectResponseAction

type Route_DirectResponseAction struct {
	DirectResponseAction *DirectResponseAction `protobuf:"bytes,4,opt,name=direct_response_action,json=directResponseAction,proto3,oneof"`
}

func (*Route_DirectResponseAction) Equal

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

type Route_RedirectAction

type Route_RedirectAction struct {
	RedirectAction *RedirectAction `protobuf:"bytes,3,opt,name=redirect_action,json=redirectAction,proto3,oneof"`
}

func (*Route_RedirectAction) Equal

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

type Route_RouteAction

type Route_RouteAction struct {
	RouteAction *RouteAction `protobuf:"bytes,2,opt,name=route_action,json=routeAction,proto3,oneof"`
}

func (*Route_RouteAction) Equal

func (this *Route_RouteAction) 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (*SSLFiles) XXX_DiscardUnknown

func (m *SSLFiles) XXX_DiscardUnknown()

func (*SSLFiles) XXX_Marshal

func (m *SSLFiles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SSLFiles) XXX_Merge

func (m *SSLFiles) XXX_Merge(src proto.Message)

func (*SSLFiles) XXX_Size

func (m *SSLFiles) XXX_Size() int

func (*SSLFiles) XXX_Unmarshal

func (m *SSLFiles) XXX_Unmarshal(b []byte) error

type Secret

type Secret struct {
	// Types that are valid to be assigned to Kind:
	//	*Secret_Aws
	//	*Secret_Azure
	//	*Secret_Tls
	//	*Secret_Extension
	Kind isSecret_Kind `protobuf_oneof:"kind"`
	// Metadata contains the object metadata for this resource
	Metadata             core.Metadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

@solo-kit:resource.short_name=sec @solo-kit:resource.plural_name=secrets @solo-kit:resource.resource_groups=api.gloo.solo.io,discovery.gloo.solo.io,translator.supergloo.solo.io

Certain plugins such as the AWS Lambda Plugin require the use of secrets for authentication, configuration of SSL Certificates, and other data that should not be stored in plaintext configuration.

Gloo runs an independent (goroutine) controller to monitor secrets. Secrets are stored in their own secret storage layer. Gloo can monitor secrets stored in the following secret storage services:

Kubernetes Secrets Hashicorp Vault Plaintext files (recommended only for testing) Secrets must adhere to a structure, specified by the plugin that requires them.

Gloo's secret backend can be configured in Gloo's bootstrap options

func NewSecret

func NewSecret(namespace, name string) *Secret

TODO: modify as needed to populate additional fields

func (*Secret) DeepCopyObject

func (o *Secret) DeepCopyObject() runtime.Object

func (*Secret) Descriptor

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

func (*Secret) Equal

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

func (*Secret) GetAws

func (m *Secret) GetAws() *AwsSecret

func (*Secret) GetAzure

func (m *Secret) GetAzure() *AzureSecret

func (*Secret) GetExtension

func (m *Secret) GetExtension() *Extension

func (*Secret) GetKind

func (m *Secret) GetKind() isSecret_Kind

func (*Secret) GetMetadata

func (m *Secret) GetMetadata() core.Metadata

func (*Secret) GetObjectKind

func (o *Secret) GetObjectKind() schema.ObjectKind

func (*Secret) GetTls

func (m *Secret) GetTls() *TlsSecret

func (*Secret) Hash

func (r *Secret) Hash() uint64

func (*Secret) ProtoMessage

func (*Secret) ProtoMessage()

func (*Secret) Reset

func (m *Secret) Reset()

func (*Secret) SetMetadata

func (r *Secret) SetMetadata(meta core.Metadata)

func (*Secret) String

func (m *Secret) String() string

func (*Secret) XXX_DiscardUnknown

func (m *Secret) XXX_DiscardUnknown()

func (*Secret) XXX_Marshal

func (m *Secret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Secret) XXX_Merge

func (m *Secret) XXX_Merge(src proto.Message)

func (*Secret) XXX_OneofFuncs

func (*Secret) 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.

func (*Secret) XXX_Size

func (m *Secret) XXX_Size() int

func (*Secret) XXX_Unmarshal

func (m *Secret) XXX_Unmarshal(b []byte) error

type SecretClient

type SecretClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Secret, error)
	Write(resource *Secret, opts clients.WriteOpts) (*Secret, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (SecretList, error)
	Watch(namespace string, opts clients.WatchOpts) (<-chan SecretList, <-chan error, error)
}

func NewSecretClient

func NewSecretClient(rcFactory factory.ResourceClientFactory) (SecretClient, error)

func NewSecretClientWithBase

func NewSecretClientWithBase(rc clients.ResourceClient) SecretClient

func NewSecretClientWithToken

func NewSecretClientWithToken(rcFactory factory.ResourceClientFactory, token string) (SecretClient, error)

type SecretList

type SecretList []*Secret

func (SecretList) AsInterfaces

func (list SecretList) AsInterfaces() []interface{}

func (SecretList) AsResources

func (list SecretList) AsResources() resources.ResourceList

func (SecretList) Clone

func (list SecretList) Clone() SecretList

func (SecretList) Each

func (list SecretList) Each(f func(element *Secret))

func (SecretList) Find

func (list SecretList) Find(namespace, name string) (*Secret, error)

namespace is optional, if left empty, names can collide if the list contains more than one with the same name

func (SecretList) Names

func (list SecretList) Names() []string

func (SecretList) NamespacesDotNames

func (list SecretList) NamespacesDotNames() []string

func (SecretList) Sort

func (list SecretList) Sort() SecretList

type SecretReconciler

type SecretReconciler interface {
	Reconcile(namespace string, desiredResources SecretList, transition TransitionSecretFunc, opts clients.ListOpts) error
}

func NewSecretReconciler

func NewSecretReconciler(client SecretClient) SecretReconciler

type Secret_Aws

type Secret_Aws struct {
	Aws *AwsSecret `protobuf:"bytes,1,opt,name=aws,proto3,oneof"`
}

func (*Secret_Aws) Equal

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

type Secret_Azure

type Secret_Azure struct {
	Azure *AzureSecret `protobuf:"bytes,2,opt,name=azure,proto3,oneof"`
}

func (*Secret_Azure) Equal

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

type Secret_Extension

type Secret_Extension struct {
	Extension *Extension `protobuf:"bytes,4,opt,name=extension,proto3,oneof"`
}

func (*Secret_Extension) Equal

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

type Secret_Tls

type Secret_Tls struct {
	Tls *TlsSecret `protobuf:"bytes,3,opt,name=tls,proto3,oneof"`
}

func (*Secret_Tls) Equal

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

type SecretsByNamespace

type SecretsByNamespace map[string]SecretList

func (SecretsByNamespace) Add

func (byNamespace SecretsByNamespace) Add(secret ...*Secret)

func (SecretsByNamespace) Clear

func (byNamespace SecretsByNamespace) Clear(namespace string)

func (SecretsByNamespace) Clone

func (byNamespace SecretsByNamespace) Clone() SecretsByNamespace

func (SecretsByNamespace) List

func (byNamespace SecretsByNamespace) List() SecretList

type ServiceSpecGetter

type ServiceSpecGetter interface {
	GetServiceSpec() *plugins.ServiceSpec
}

type ServiceSpecMutator

type ServiceSpecMutator interface {
	ServiceSpecGetter
	ServiceSpecSetter
}

type ServiceSpecSetter

type ServiceSpecSetter interface {
	SetServiceSpec(*plugins.ServiceSpec)
}

type Settings

type Settings struct {
	// namespace to write discovered data
	DiscoveryNamespace string `protobuf:"bytes,1,opt,name=discovery_namespace,json=discoveryNamespace,proto3" json:"discovery_namespace,omitempty"`
	// namespaces to watch for user config as well as services
	// TODO(ilackarms): split out watch_namespaces and service_discovery_namespaces...
	WatchNamespaces []string `protobuf:"bytes,2,rep,name=watch_namespaces,json=watchNamespaces,proto3" json:"watch_namespaces,omitempty"`
	// where to read user config (upstream, proxy) from
	// if nil, use only in memory config
	//
	// Types that are valid to be assigned to ConfigSource:
	//	*Settings_KubernetesConfigSource
	//	*Settings_DirectoryConfigSource
	ConfigSource isSettings_ConfigSource `protobuf_oneof:"config_source"`
	// where to read secrets from (vault, k8s)
	//
	// Types that are valid to be assigned to SecretSource:
	//	*Settings_KubernetesSecretSource
	//	*Settings_VaultSecretSource
	//	*Settings_DirectorySecretSource
	SecretSource isSettings_SecretSource `protobuf_oneof:"secret_source"`
	// where to read artifacts from (configmap, file)
	//
	// Types that are valid to be assigned to ArtifactSource:
	//	*Settings_KubernetesArtifactSource
	//	*Settings_DirectoryArtifactSource
	ArtifactSource isSettings_ArtifactSource `protobuf_oneof:"artifact_source"`
	// where the gloo xds server should bind (should not need configuration by user)
	BindAddr string `protobuf:"bytes,11,opt,name=bind_addr,json=bindAddr,proto3" json:"bind_addr,omitempty"`
	// how frequently to resync watches, etc
	RefreshRate *types.Duration `protobuf:"bytes,12,opt,name=refresh_rate,json=refreshRate,proto3" json:"refresh_rate,omitempty"`
	// enable serving debug data on port 9090
	DevMode bool `protobuf:"varint,13,opt,name=dev_mode,json=devMode,proto3" json:"dev_mode,omitempty"`
	// Settings for extensions
	Extensions *Extensions `protobuf:"bytes,16,opt,name=extensions,proto3" json:"extensions,omitempty"`
	// Metadata contains the object metadata for this resource
	Metadata core.Metadata `protobuf:"bytes,14,opt,name=metadata,proto3" json:"metadata"`
	// 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,15,opt,name=status,proto3" json:"status" testdiff:"ignore"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

@solo-kit:resource.short_name=st @solo-kit:resource.plural_name=settings @solo-kit:resource.resource_groups=setup.gloo.solo.io

func NewSettings

func NewSettings(namespace, name string) *Settings

TODO: modify as needed to populate additional fields

func (*Settings) DeepCopyObject

func (o *Settings) DeepCopyObject() runtime.Object

func (*Settings) Descriptor

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

func (*Settings) Equal

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

func (*Settings) GetArtifactSource

func (m *Settings) GetArtifactSource() isSettings_ArtifactSource

func (*Settings) GetBindAddr

func (m *Settings) GetBindAddr() string

func (*Settings) GetConfigSource

func (m *Settings) GetConfigSource() isSettings_ConfigSource

func (*Settings) GetDevMode

func (m *Settings) GetDevMode() bool

func (*Settings) GetDirectoryArtifactSource

func (m *Settings) GetDirectoryArtifactSource() *Settings_Directory

func (*Settings) GetDirectoryConfigSource

func (m *Settings) GetDirectoryConfigSource() *Settings_Directory

func (*Settings) GetDirectorySecretSource

func (m *Settings) GetDirectorySecretSource() *Settings_Directory

func (*Settings) GetDiscoveryNamespace

func (m *Settings) GetDiscoveryNamespace() string

func (*Settings) GetExtensions

func (m *Settings) GetExtensions() *Extensions

func (*Settings) GetKubernetesArtifactSource

func (m *Settings) GetKubernetesArtifactSource() *Settings_KubernetesConfigmaps

func (*Settings) GetKubernetesConfigSource

func (m *Settings) GetKubernetesConfigSource() *Settings_KubernetesCrds

func (*Settings) GetKubernetesSecretSource

func (m *Settings) GetKubernetesSecretSource() *Settings_KubernetesSecrets

func (*Settings) GetMetadata

func (m *Settings) GetMetadata() core.Metadata

func (*Settings) GetObjectKind

func (o *Settings) GetObjectKind() schema.ObjectKind

func (*Settings) GetRefreshRate

func (m *Settings) GetRefreshRate() *types.Duration

func (*Settings) GetSecretSource

func (m *Settings) GetSecretSource() isSettings_SecretSource

func (*Settings) GetStatus

func (m *Settings) GetStatus() core.Status

func (*Settings) GetVaultSecretSource

func (m *Settings) GetVaultSecretSource() *Settings_VaultSecrets

func (*Settings) GetWatchNamespaces

func (m *Settings) GetWatchNamespaces() []string

func (*Settings) Hash

func (r *Settings) Hash() uint64

func (*Settings) ProtoMessage

func (*Settings) ProtoMessage()

func (*Settings) Reset

func (m *Settings) Reset()

func (*Settings) SetMetadata

func (r *Settings) SetMetadata(meta core.Metadata)

func (*Settings) SetStatus

func (r *Settings) SetStatus(status core.Status)

func (*Settings) String

func (m *Settings) String() string

func (*Settings) XXX_DiscardUnknown

func (m *Settings) XXX_DiscardUnknown()

func (*Settings) XXX_Marshal

func (m *Settings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Settings) XXX_Merge

func (m *Settings) XXX_Merge(src proto.Message)

func (*Settings) XXX_OneofFuncs

func (*Settings) 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.

func (*Settings) XXX_Size

func (m *Settings) XXX_Size() int

func (*Settings) XXX_Unmarshal

func (m *Settings) XXX_Unmarshal(b []byte) error

type SettingsByNamespace

type SettingsByNamespace map[string]SettingsList

func (SettingsByNamespace) Add

func (byNamespace SettingsByNamespace) Add(settings ...*Settings)

func (SettingsByNamespace) Clear

func (byNamespace SettingsByNamespace) Clear(namespace string)

func (SettingsByNamespace) Clone

func (byNamespace SettingsByNamespace) Clone() SettingsByNamespace

func (SettingsByNamespace) List

func (byNamespace SettingsByNamespace) List() SettingsList

type SettingsClient

type SettingsClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Settings, error)
	Write(resource *Settings, opts clients.WriteOpts) (*Settings, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (SettingsList, error)
	Watch(namespace string, opts clients.WatchOpts) (<-chan SettingsList, <-chan error, error)
}

func NewSettingsClient

func NewSettingsClient(rcFactory factory.ResourceClientFactory) (SettingsClient, error)

func NewSettingsClientWithBase

func NewSettingsClientWithBase(rc clients.ResourceClient) SettingsClient

func NewSettingsClientWithToken

func NewSettingsClientWithToken(rcFactory factory.ResourceClientFactory, token string) (SettingsClient, error)

type SettingsList

type SettingsList []*Settings

func (SettingsList) AsInputResources

func (list SettingsList) AsInputResources() resources.InputResourceList

func (SettingsList) AsInterfaces

func (list SettingsList) AsInterfaces() []interface{}

func (SettingsList) AsResources

func (list SettingsList) AsResources() resources.ResourceList

func (SettingsList) Clone

func (list SettingsList) Clone() SettingsList

func (SettingsList) Each

func (list SettingsList) Each(f func(element *Settings))

func (SettingsList) Find

func (list SettingsList) Find(namespace, name string) (*Settings, error)

namespace is optional, if left empty, names can collide if the list contains more than one with the same name

func (SettingsList) Names

func (list SettingsList) Names() []string

func (SettingsList) NamespacesDotNames

func (list SettingsList) NamespacesDotNames() []string

func (SettingsList) Sort

func (list SettingsList) Sort() SettingsList

type SettingsReconciler

type SettingsReconciler interface {
	Reconcile(namespace string, desiredResources SettingsList, transition TransitionSettingsFunc, opts clients.ListOpts) error
}

func NewSettingsReconciler

func NewSettingsReconciler(client SettingsClient) SettingsReconciler

type Settings_Directory

type Settings_Directory struct {
	Directory            string   `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Settings_Directory) Descriptor

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

func (*Settings_Directory) Equal

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

func (*Settings_Directory) GetDirectory

func (m *Settings_Directory) GetDirectory() string

func (*Settings_Directory) ProtoMessage

func (*Settings_Directory) ProtoMessage()

func (*Settings_Directory) Reset

func (m *Settings_Directory) Reset()

func (*Settings_Directory) String

func (m *Settings_Directory) String() string

func (*Settings_Directory) XXX_DiscardUnknown

func (m *Settings_Directory) XXX_DiscardUnknown()

func (*Settings_Directory) XXX_Marshal

func (m *Settings_Directory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Settings_Directory) XXX_Merge

func (m *Settings_Directory) XXX_Merge(src proto.Message)

func (*Settings_Directory) XXX_Size

func (m *Settings_Directory) XXX_Size() int

func (*Settings_Directory) XXX_Unmarshal

func (m *Settings_Directory) XXX_Unmarshal(b []byte) error

type Settings_DirectoryArtifactSource

type Settings_DirectoryArtifactSource struct {
	DirectoryArtifactSource *Settings_Directory `protobuf:"bytes,10,opt,name=directory_artifact_source,json=directoryArtifactSource,proto3,oneof"`
}

func (*Settings_DirectoryArtifactSource) Equal

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

type Settings_DirectoryConfigSource

type Settings_DirectoryConfigSource struct {
	DirectoryConfigSource *Settings_Directory `protobuf:"bytes,5,opt,name=directory_config_source,json=directoryConfigSource,proto3,oneof"`
}

func (*Settings_DirectoryConfigSource) Equal

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

type Settings_DirectorySecretSource

type Settings_DirectorySecretSource struct {
	DirectorySecretSource *Settings_Directory `protobuf:"bytes,8,opt,name=directory_secret_source,json=directorySecretSource,proto3,oneof"`
}

func (*Settings_DirectorySecretSource) Equal

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

type Settings_KubernetesArtifactSource

type Settings_KubernetesArtifactSource struct {
	KubernetesArtifactSource *Settings_KubernetesConfigmaps `protobuf:"bytes,9,opt,name=kubernetes_artifact_source,json=kubernetesArtifactSource,proto3,oneof"`
}

func (*Settings_KubernetesArtifactSource) Equal

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

type Settings_KubernetesConfigSource

type Settings_KubernetesConfigSource struct {
	KubernetesConfigSource *Settings_KubernetesCrds `protobuf:"bytes,4,opt,name=kubernetes_config_source,json=kubernetesConfigSource,proto3,oneof"`
}

func (*Settings_KubernetesConfigSource) Equal

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

type Settings_KubernetesConfigmaps

type Settings_KubernetesConfigmaps struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Settings_KubernetesConfigmaps) Descriptor

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

func (*Settings_KubernetesConfigmaps) Equal

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

func (*Settings_KubernetesConfigmaps) ProtoMessage

func (*Settings_KubernetesConfigmaps) ProtoMessage()

func (*Settings_KubernetesConfigmaps) Reset

func (m *Settings_KubernetesConfigmaps) Reset()

func (*Settings_KubernetesConfigmaps) String

func (*Settings_KubernetesConfigmaps) XXX_DiscardUnknown

func (m *Settings_KubernetesConfigmaps) XXX_DiscardUnknown()

func (*Settings_KubernetesConfigmaps) XXX_Marshal

func (m *Settings_KubernetesConfigmaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Settings_KubernetesConfigmaps) XXX_Merge

func (m *Settings_KubernetesConfigmaps) XXX_Merge(src proto.Message)

func (*Settings_KubernetesConfigmaps) XXX_Size

func (m *Settings_KubernetesConfigmaps) XXX_Size() int

func (*Settings_KubernetesConfigmaps) XXX_Unmarshal

func (m *Settings_KubernetesConfigmaps) XXX_Unmarshal(b []byte) error

type Settings_KubernetesCrds

type Settings_KubernetesCrds struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

ilackarms(todo: make sure these are configurable)

func (*Settings_KubernetesCrds) Descriptor

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

func (*Settings_KubernetesCrds) Equal

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

func (*Settings_KubernetesCrds) ProtoMessage

func (*Settings_KubernetesCrds) ProtoMessage()

func (*Settings_KubernetesCrds) Reset

func (m *Settings_KubernetesCrds) Reset()

func (*Settings_KubernetesCrds) String

func (m *Settings_KubernetesCrds) String() string

func (*Settings_KubernetesCrds) XXX_DiscardUnknown

func (m *Settings_KubernetesCrds) XXX_DiscardUnknown()

func (*Settings_KubernetesCrds) XXX_Marshal

func (m *Settings_KubernetesCrds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Settings_KubernetesCrds) XXX_Merge

func (m *Settings_KubernetesCrds) XXX_Merge(src proto.Message)

func (*Settings_KubernetesCrds) XXX_Size

func (m *Settings_KubernetesCrds) XXX_Size() int

func (*Settings_KubernetesCrds) XXX_Unmarshal

func (m *Settings_KubernetesCrds) XXX_Unmarshal(b []byte) error

type Settings_KubernetesSecretSource

type Settings_KubernetesSecretSource struct {
	KubernetesSecretSource *Settings_KubernetesSecrets `protobuf:"bytes,6,opt,name=kubernetes_secret_source,json=kubernetesSecretSource,proto3,oneof"`
}

func (*Settings_KubernetesSecretSource) Equal

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

type Settings_KubernetesSecrets

type Settings_KubernetesSecrets struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Settings_KubernetesSecrets) Descriptor

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

func (*Settings_KubernetesSecrets) Equal

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

func (*Settings_KubernetesSecrets) ProtoMessage

func (*Settings_KubernetesSecrets) ProtoMessage()

func (*Settings_KubernetesSecrets) Reset

func (m *Settings_KubernetesSecrets) Reset()

func (*Settings_KubernetesSecrets) String

func (m *Settings_KubernetesSecrets) String() string

func (*Settings_KubernetesSecrets) XXX_DiscardUnknown

func (m *Settings_KubernetesSecrets) XXX_DiscardUnknown()

func (*Settings_KubernetesSecrets) XXX_Marshal

func (m *Settings_KubernetesSecrets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Settings_KubernetesSecrets) XXX_Merge

func (m *Settings_KubernetesSecrets) XXX_Merge(src proto.Message)

func (*Settings_KubernetesSecrets) XXX_Size

func (m *Settings_KubernetesSecrets) XXX_Size() int

func (*Settings_KubernetesSecrets) XXX_Unmarshal

func (m *Settings_KubernetesSecrets) XXX_Unmarshal(b []byte) error

type Settings_VaultSecretSource

type Settings_VaultSecretSource struct {
	VaultSecretSource *Settings_VaultSecrets `protobuf:"bytes,7,opt,name=vault_secret_source,json=vaultSecretSource,proto3,oneof"`
}

func (*Settings_VaultSecretSource) Equal

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

type Settings_VaultSecrets

type Settings_VaultSecrets struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Settings_VaultSecrets) Descriptor

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

func (*Settings_VaultSecrets) Equal

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

func (*Settings_VaultSecrets) ProtoMessage

func (*Settings_VaultSecrets) ProtoMessage()

func (*Settings_VaultSecrets) Reset

func (m *Settings_VaultSecrets) Reset()

func (*Settings_VaultSecrets) String

func (m *Settings_VaultSecrets) String() string

func (*Settings_VaultSecrets) XXX_DiscardUnknown

func (m *Settings_VaultSecrets) XXX_DiscardUnknown()

func (*Settings_VaultSecrets) XXX_Marshal

func (m *Settings_VaultSecrets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Settings_VaultSecrets) XXX_Merge

func (m *Settings_VaultSecrets) XXX_Merge(src proto.Message)

func (*Settings_VaultSecrets) XXX_Size

func (m *Settings_VaultSecrets) XXX_Size() int

func (*Settings_VaultSecrets) XXX_Unmarshal

func (m *Settings_VaultSecrets) XXX_Unmarshal(b []byte) error

type SetupEmitter

type SetupEmitter interface {
	Register() error
	Settings() SettingsClient
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *SetupSnapshot, <-chan error, error)
}

func NewSetupEmitter

func NewSetupEmitter(settingsClient SettingsClient) SetupEmitter

func NewSetupEmitterWithEmit

func NewSetupEmitterWithEmit(settingsClient SettingsClient, emit <-chan struct{}) SetupEmitter

type SetupEventLoop

type SetupEventLoop interface {
	Run(namespaces []string, opts clients.WatchOpts) (<-chan error, error)
}

func NewSetupEventLoop

func NewSetupEventLoop(emitter SetupEmitter, syncer SetupSyncer) SetupEventLoop

type SetupSnapshot

type SetupSnapshot struct {
	Settings SettingsByNamespace
}

func (SetupSnapshot) Clone

func (s SetupSnapshot) Clone() SetupSnapshot

func (SetupSnapshot) Hash

func (s SetupSnapshot) Hash() uint64

func (SetupSnapshot) HashFields

func (s SetupSnapshot) HashFields() []zap.Field

func (SetupSnapshot) Stringer

func (s SetupSnapshot) Stringer() SetupSnapshotStringer

type SetupSnapshotStringer

type SetupSnapshotStringer struct {
	Version  uint64
	Settings []string
}

func (SetupSnapshotStringer) String

func (ss SetupSnapshotStringer) String() string

type SetupSyncer

type SetupSyncer interface {
	Sync(context.Context, *SetupSnapshot) error
}

type SetupSyncers

type SetupSyncers []SetupSyncer

func (SetupSyncers) Sync

func (s SetupSyncers) Sync(ctx context.Context, snapshot *SetupSnapshot) error

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,proto3" json:"sni_domains,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

SslConfig contains the options necessary to configure a virtual host 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() *core.ResourceRef

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_DiscardUnknown

func (m *SslConfig) XXX_DiscardUnknown()

func (*SslConfig) XXX_Marshal

func (m *SslConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SslConfig) XXX_Merge

func (m *SslConfig) XXX_Merge(src proto.Message)

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.

func (*SslConfig) XXX_Size

func (m *SslConfig) XXX_Size() int

func (*SslConfig) XXX_Unmarshal

func (m *SslConfig) XXX_Unmarshal(b []byte) error

type SslConfig_SecretRef

type SslConfig_SecretRef struct {
	SecretRef *core.ResourceRef `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,proto3,oneof"`
}

func (*SslConfig_SslFiles) Equal

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

type TlsSecret

type TlsSecret struct {
	CertChain            string   `protobuf:"bytes,1,opt,name=cert_chain,json=certChain,proto3" json:"cert_chain,omitempty"`
	PrivateKey           string   `protobuf:"bytes,2,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
	RootCa               string   `protobuf:"bytes,3,opt,name=root_ca,json=rootCa,proto3" json:"root_ca,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*TlsSecret) Descriptor

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

func (*TlsSecret) Equal

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

func (*TlsSecret) GetCertChain

func (m *TlsSecret) GetCertChain() string

func (*TlsSecret) GetPrivateKey

func (m *TlsSecret) GetPrivateKey() string

func (*TlsSecret) GetRootCa

func (m *TlsSecret) GetRootCa() string

func (*TlsSecret) ProtoMessage

func (*TlsSecret) ProtoMessage()

func (*TlsSecret) Reset

func (m *TlsSecret) Reset()

func (*TlsSecret) String

func (m *TlsSecret) String() string

func (*TlsSecret) XXX_DiscardUnknown

func (m *TlsSecret) XXX_DiscardUnknown()

func (*TlsSecret) XXX_Marshal

func (m *TlsSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TlsSecret) XXX_Merge

func (m *TlsSecret) XXX_Merge(src proto.Message)

func (*TlsSecret) XXX_Size

func (m *TlsSecret) XXX_Size() int

func (*TlsSecret) XXX_Unmarshal

func (m *TlsSecret) XXX_Unmarshal(b []byte) error

type TransitionArtifactFunc

type TransitionArtifactFunc func(original, desired *Artifact) (bool, error)

Option to copy anything from the original to the desired before writing. Return value of false means don't update

type TransitionEndpointFunc

type TransitionEndpointFunc func(original, desired *Endpoint) (bool, error)

Option to copy anything from the original to the desired before writing. Return value of false means don't update

type TransitionProxyFunc

type TransitionProxyFunc func(original, desired *Proxy) (bool, error)

Option to copy anything from the original to the desired before writing. Return value of false means don't update

type TransitionSecretFunc

type TransitionSecretFunc func(original, desired *Secret) (bool, error)

Option to copy anything from the original to the desired before writing. Return value of false means don't update

type TransitionSettingsFunc

type TransitionSettingsFunc func(original, desired *Settings) (bool, error)

Option to copy anything from the original to the desired before writing. Return value of false means don't update

type TransitionUpstreamFunc

type TransitionUpstreamFunc func(original, desired *Upstream) (bool, error)

Option to copy anything from the original to the desired before writing. Return value of false means don't update

type Upstream

type Upstream struct {
	// Type-specific configuration. Examples include static, kubernetes, and aws.
	// The type-specific config for the upstream is called a spec.
	UpstreamSpec *UpstreamSpec `protobuf:"bytes,2,opt,name=upstream_spec,json=upstreamSpec,proto3" json:"upstream_spec,omitempty"`
	// Status indicates the validation status of the 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"`
	// Upstreams and their configuration can be automatically by Gloo Discovery
	// if this upstream is created or modified by Discovery, metadata about the operation will be placed here.
	DiscoveryMetadata    *DiscoveryMetadata `protobuf:"bytes,8,opt,name=discovery_metadata,json=discoveryMetadata,proto3" json:"discovery_metadata,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

@solo-kit:resource.short_name=us @solo-kit:resource.plural_name=upstreams @solo-kit:resource.resource_groups=api.gloo.solo.io,discovery.gloo.solo.io,translator.supergloo.solo.io

Upstreams represent destination for routing HTTP requests. Upstreams can be compared to [clusters](https://www.envoyproxy.io/docs/envoy/latest/api-v1/cluster_manager/cluster.html?highlight=cluster) in Envoy terminology. Each upstream in Gloo has a type. Supported types include `static`, `kubernetes`, `aws`, `consul`, and more. Each upstream type is handled by a corresponding Gloo plugin.

func NewUpstream

func NewUpstream(namespace, name string) *Upstream

TODO: modify as needed to populate additional fields

func (*Upstream) DeepCopyObject

func (o *Upstream) DeepCopyObject() runtime.Object

func (*Upstream) Descriptor

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

func (*Upstream) Equal

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

func (*Upstream) GetDiscoveryMetadata

func (m *Upstream) GetDiscoveryMetadata() *DiscoveryMetadata

func (*Upstream) GetMetadata

func (m *Upstream) GetMetadata() core.Metadata

func (*Upstream) GetObjectKind

func (o *Upstream) GetObjectKind() schema.ObjectKind

func (*Upstream) GetStatus

func (m *Upstream) GetStatus() core.Status

func (*Upstream) GetUpstreamSpec

func (m *Upstream) GetUpstreamSpec() *UpstreamSpec

func (*Upstream) Hash

func (r *Upstream) Hash() uint64

func (*Upstream) ProtoMessage

func (*Upstream) ProtoMessage()

func (*Upstream) Reset

func (m *Upstream) Reset()

func (*Upstream) SetMetadata

func (r *Upstream) SetMetadata(meta core.Metadata)

func (*Upstream) SetStatus

func (r *Upstream) SetStatus(status core.Status)

func (*Upstream) String

func (m *Upstream) String() string

func (*Upstream) XXX_DiscardUnknown

func (m *Upstream) XXX_DiscardUnknown()

func (*Upstream) XXX_Marshal

func (m *Upstream) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Upstream) XXX_Merge

func (m *Upstream) XXX_Merge(src proto.Message)

func (*Upstream) XXX_Size

func (m *Upstream) XXX_Size() int

func (*Upstream) XXX_Unmarshal

func (m *Upstream) XXX_Unmarshal(b []byte) error

type UpstreamClient

type UpstreamClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Upstream, error)
	Write(resource *Upstream, opts clients.WriteOpts) (*Upstream, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (UpstreamList, error)
	Watch(namespace string, opts clients.WatchOpts) (<-chan UpstreamList, <-chan error, error)
}

func NewUpstreamClient

func NewUpstreamClient(rcFactory factory.ResourceClientFactory) (UpstreamClient, error)

func NewUpstreamClientWithBase

func NewUpstreamClientWithBase(rc clients.ResourceClient) UpstreamClient

func NewUpstreamClientWithToken

func NewUpstreamClientWithToken(rcFactory factory.ResourceClientFactory, token string) (UpstreamClient, error)

type UpstreamList

type UpstreamList []*Upstream

func (UpstreamList) AsInputResources

func (list UpstreamList) AsInputResources() resources.InputResourceList

func (UpstreamList) AsInterfaces

func (list UpstreamList) AsInterfaces() []interface{}

func (UpstreamList) AsResources

func (list UpstreamList) AsResources() resources.ResourceList

func (UpstreamList) Clone

func (list UpstreamList) Clone() UpstreamList

func (UpstreamList) Each

func (list UpstreamList) Each(f func(element *Upstream))

func (UpstreamList) Find

func (list UpstreamList) Find(namespace, name string) (*Upstream, error)

namespace is optional, if left empty, names can collide if the list contains more than one with the same name

func (UpstreamList) Names

func (list UpstreamList) Names() []string

func (UpstreamList) NamespacesDotNames

func (list UpstreamList) NamespacesDotNames() []string

func (UpstreamList) Sort

func (list UpstreamList) Sort() UpstreamList

type UpstreamReconciler

type UpstreamReconciler interface {
	Reconcile(namespace string, desiredResources UpstreamList, transition TransitionUpstreamFunc, opts clients.ListOpts) error
}

func NewUpstreamReconciler

func NewUpstreamReconciler(client UpstreamClient) UpstreamReconciler

type UpstreamSpec

type UpstreamSpec struct {
	SslConfig *UpstreamSslConfig `protobuf:"bytes,6,opt,name=ssl_config,json=sslConfig,proto3" json:"ssl_config,omitempty"`
	// Note to developers: new Upstream Plugins must be added to this oneof field
	// to be usable by Gloo.
	//
	// Types that are valid to be assigned to UpstreamType:
	//	*UpstreamSpec_Kube
	//	*UpstreamSpec_Static
	//	*UpstreamSpec_Aws
	//	*UpstreamSpec_Azure
	//	*UpstreamSpec_Consul
	UpstreamType         isUpstreamSpec_UpstreamType `protobuf_oneof:"upstream_type"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

Each upstream in Gloo has a type. Supported types include `static`, `kubernetes`, `aws`, `consul`, and more. Each upstream type is handled by a corresponding Gloo plugin.

func (*UpstreamSpec) Descriptor

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

func (*UpstreamSpec) Equal

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

func (*UpstreamSpec) GetAws

func (m *UpstreamSpec) GetAws() *aws.UpstreamSpec

func (*UpstreamSpec) GetAzure

func (m *UpstreamSpec) GetAzure() *azure.UpstreamSpec

func (*UpstreamSpec) GetConsul

func (m *UpstreamSpec) GetConsul() *consul.UpstreamSpec

func (*UpstreamSpec) GetKube

func (m *UpstreamSpec) GetKube() *kubernetes.UpstreamSpec

func (*UpstreamSpec) GetSslConfig

func (m *UpstreamSpec) GetSslConfig() *UpstreamSslConfig

func (*UpstreamSpec) GetStatic

func (m *UpstreamSpec) GetStatic() *static.UpstreamSpec

func (*UpstreamSpec) GetUpstreamType

func (m *UpstreamSpec) GetUpstreamType() isUpstreamSpec_UpstreamType

func (*UpstreamSpec) ProtoMessage

func (*UpstreamSpec) ProtoMessage()

func (*UpstreamSpec) Reset

func (m *UpstreamSpec) Reset()

func (*UpstreamSpec) String

func (m *UpstreamSpec) String() string

func (*UpstreamSpec) XXX_DiscardUnknown

func (m *UpstreamSpec) XXX_DiscardUnknown()

func (*UpstreamSpec) XXX_Marshal

func (m *UpstreamSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*UpstreamSpec) XXX_Merge

func (m *UpstreamSpec) XXX_Merge(src proto.Message)

func (*UpstreamSpec) XXX_OneofFuncs

func (*UpstreamSpec) 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.

func (*UpstreamSpec) XXX_Size

func (m *UpstreamSpec) XXX_Size() int

func (*UpstreamSpec) XXX_Unmarshal

func (m *UpstreamSpec) XXX_Unmarshal(b []byte) error

type UpstreamSpec_Aws

type UpstreamSpec_Aws struct {
	Aws *aws.UpstreamSpec `protobuf:"bytes,2,opt,name=aws,proto3,oneof"`
}

func (*UpstreamSpec_Aws) Equal

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

type UpstreamSpec_Azure

type UpstreamSpec_Azure struct {
	Azure *azure.UpstreamSpec `protobuf:"bytes,3,opt,name=azure,proto3,oneof"`
}

func (*UpstreamSpec_Azure) Equal

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

type UpstreamSpec_Consul

type UpstreamSpec_Consul struct {
	Consul *consul.UpstreamSpec `protobuf:"bytes,5,opt,name=consul,proto3,oneof"`
}

func (*UpstreamSpec_Consul) Equal

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

type UpstreamSpec_Kube

type UpstreamSpec_Kube struct {
	Kube *kubernetes.UpstreamSpec `protobuf:"bytes,1,opt,name=kube,proto3,oneof"`
}

func (*UpstreamSpec_Kube) Equal

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

func (*UpstreamSpec_Kube) GetServiceSpec

func (us *UpstreamSpec_Kube) GetServiceSpec() *plugins.ServiceSpec

Add these two methods to any upstream spec that supports

func (*UpstreamSpec_Kube) SetServiceSpec

func (us *UpstreamSpec_Kube) SetServiceSpec(spec *plugins.ServiceSpec)

type UpstreamSpec_Static

type UpstreamSpec_Static struct {
	Static *static.UpstreamSpec `protobuf:"bytes,4,opt,name=static,proto3,oneof"`
}

func (*UpstreamSpec_Static) Equal

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

func (*UpstreamSpec_Static) GetServiceSpec

func (us *UpstreamSpec_Static) GetServiceSpec() *plugins.ServiceSpec

func (*UpstreamSpec_Static) SetServiceSpec

func (us *UpstreamSpec_Static) SetServiceSpec(spec *plugins.ServiceSpec)

type UpstreamSslConfig

type UpstreamSslConfig struct {
	// Types that are valid to be assigned to SslSecrets:
	//	*UpstreamSslConfig_SecretRef
	//	*UpstreamSslConfig_SslFiles
	SslSecrets isUpstreamSslConfig_SslSecrets `protobuf_oneof:"ssl_secrets"`
	// optional. the SNI domains that should be considered for TLS connections
	Sni                  string   `protobuf:"bytes,3,opt,name=sni,proto3" json:"sni,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

SslConfig contains the options necessary to configure a virtual host or listener to use TLS

func (*UpstreamSslConfig) Descriptor

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

func (*UpstreamSslConfig) Equal

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

func (*UpstreamSslConfig) GetSecretRef

func (m *UpstreamSslConfig) GetSecretRef() *core.ResourceRef

func (*UpstreamSslConfig) GetSni

func (m *UpstreamSslConfig) GetSni() string

func (*UpstreamSslConfig) GetSslFiles

func (m *UpstreamSslConfig) GetSslFiles() *SSLFiles

func (*UpstreamSslConfig) GetSslSecrets

func (m *UpstreamSslConfig) GetSslSecrets() isUpstreamSslConfig_SslSecrets

func (*UpstreamSslConfig) ProtoMessage

func (*UpstreamSslConfig) ProtoMessage()

func (*UpstreamSslConfig) Reset

func (m *UpstreamSslConfig) Reset()

func (*UpstreamSslConfig) String

func (m *UpstreamSslConfig) String() string

func (*UpstreamSslConfig) XXX_DiscardUnknown

func (m *UpstreamSslConfig) XXX_DiscardUnknown()

func (*UpstreamSslConfig) XXX_Marshal

func (m *UpstreamSslConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*UpstreamSslConfig) XXX_Merge

func (m *UpstreamSslConfig) XXX_Merge(src proto.Message)

func (*UpstreamSslConfig) XXX_OneofFuncs

func (*UpstreamSslConfig) 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.

func (*UpstreamSslConfig) XXX_Size

func (m *UpstreamSslConfig) XXX_Size() int

func (*UpstreamSslConfig) XXX_Unmarshal

func (m *UpstreamSslConfig) XXX_Unmarshal(b []byte) error

type UpstreamSslConfig_SecretRef

type UpstreamSslConfig_SecretRef struct {
	SecretRef *core.ResourceRef `protobuf:"bytes,1,opt,name=secret_ref,json=secretRef,proto3,oneof"`
}

func (*UpstreamSslConfig_SecretRef) Equal

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

type UpstreamSslConfig_SslFiles

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

func (*UpstreamSslConfig_SslFiles) Equal

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

type UpstreamsByNamespace

type UpstreamsByNamespace map[string]UpstreamList

func (UpstreamsByNamespace) Add

func (byNamespace UpstreamsByNamespace) Add(upstream ...*Upstream)

func (UpstreamsByNamespace) Clear

func (byNamespace UpstreamsByNamespace) Clear(namespace string)

func (UpstreamsByNamespace) Clone

func (byNamespace UpstreamsByNamespace) Clone() UpstreamsByNamespace

func (UpstreamsByNamespace) List

func (byNamespace UpstreamsByNamespace) List() UpstreamList

type VirtualHost

type VirtualHost struct {
	// the logical name of the virtual host. names must be unique for each virtual host within a listener
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The list of domains (i.e.: matching the `Host` header of a request) that belong to this virtual host.
	// Note that the wildcard will not match the empty string. e.g. “*-bar.foo.com” will match “baz-bar.foo.com”
	// but not “-bar.foo.com”. Additionally, a special entry “*” is allowed which will match any host/authority header.
	// Only a single virtual host in the entire route configuration can match on “*”. A domain must be unique across all
	// virtual hosts or the config will be invalidated by Gloo
	// Domains on virtual hosts obey the same rules as [Envoy Virtual Hosts](https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/route/route.proto)
	Domains []string `protobuf:"bytes,2,rep,name=domains,proto3" json:"domains,omitempty"`
	// The list of HTTP routes define routing actions to be taken for incoming HTTP requests whose host header matches
	// this virtual host. If the request matches more than one route in the list, the first route matched will be selected.
	// If the list of routes is empty, the virtual host will be ignored by Gloo.
	Routes []*Route `protobuf:"bytes,3,rep,name=routes,proto3" json:"routes,omitempty"`
	// Plugins contains top-level plugin configuration to be applied to a listener
	// Listener config is applied to all HTTP traffic that
	// connects to this listener. Some configuration here can be overridden in
	// Virtual Host Plugin configuration or Route Plugin configuration
	//
	// Plugins should be specified here in the form of
	//   `"plugin_name": {..//plugin_config...}`
	// to allow specifying multiple plugins.
	VirtualHostPlugins   *VirtualHostPlugins `protobuf:"bytes,4,opt,name=virtual_host_plugins,json=virtualHostPlugins,proto3" json:"virtual_host_plugins,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

Virtual Hosts group an ordered list of routes under one or more domains. Each Virtual Host has a logical name, which must be unique for the listener. An HTTP request is first matched to a virtual host based on its host header, then to a route within the virtual host. If a request is not matched to any virtual host or a route therein, the target proxy will reply with a 404.

func (*VirtualHost) Descriptor

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

func (*VirtualHost) Equal

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

func (*VirtualHost) GetDomains

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

func (*VirtualHost) GetName

func (m *VirtualHost) GetName() string

func (*VirtualHost) GetRoutes

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

func (*VirtualHost) GetVirtualHostPlugins

func (m *VirtualHost) GetVirtualHostPlugins() *VirtualHostPlugins

func (*VirtualHost) ProtoMessage

func (*VirtualHost) ProtoMessage()

func (*VirtualHost) Reset

func (m *VirtualHost) Reset()

func (*VirtualHost) String

func (m *VirtualHost) String() string

func (*VirtualHost) XXX_DiscardUnknown

func (m *VirtualHost) XXX_DiscardUnknown()

func (*VirtualHost) XXX_Marshal

func (m *VirtualHost) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*VirtualHost) XXX_Merge

func (m *VirtualHost) XXX_Merge(src proto.Message)

func (*VirtualHost) XXX_Size

func (m *VirtualHost) XXX_Size() int

func (*VirtualHost) XXX_Unmarshal

func (m *VirtualHost) XXX_Unmarshal(b []byte) error

type VirtualHostPlugins

type VirtualHostPlugins struct {
	Extensions           *Extensions `protobuf:"bytes,1,opt,name=extensions,proto3" json:"extensions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

Plugin-specific configuration that lives on virtual hosts Each VirtualHostPlugin object contains configuration for a specific plugin Note to developers: new Virtual Host Plugins must be added to this struct to be usable by Gloo.

func (*VirtualHostPlugins) Descriptor

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

func (*VirtualHostPlugins) Equal

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

func (*VirtualHostPlugins) GetExtensions

func (m *VirtualHostPlugins) GetExtensions() *Extensions

func (*VirtualHostPlugins) ProtoMessage

func (*VirtualHostPlugins) ProtoMessage()

func (*VirtualHostPlugins) Reset

func (m *VirtualHostPlugins) Reset()

func (*VirtualHostPlugins) String

func (m *VirtualHostPlugins) String() string

func (*VirtualHostPlugins) XXX_DiscardUnknown

func (m *VirtualHostPlugins) XXX_DiscardUnknown()

func (*VirtualHostPlugins) XXX_Marshal

func (m *VirtualHostPlugins) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*VirtualHostPlugins) XXX_Merge

func (m *VirtualHostPlugins) XXX_Merge(src proto.Message)

func (*VirtualHostPlugins) XXX_Size

func (m *VirtualHostPlugins) XXX_Size() int

func (*VirtualHostPlugins) XXX_Unmarshal

func (m *VirtualHostPlugins) XXX_Unmarshal(b []byte) error

type WeightedDestination

type WeightedDestination struct {
	Destination *Destination `protobuf:"bytes,1,opt,name=destination,proto3" 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

WeightedDestination attaches a weight to a single destination.

func (*WeightedDestination) Descriptor

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

func (*WeightedDestination) Equal

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

func (*WeightedDestination) GetDestination

func (m *WeightedDestination) GetDestination() *Destination

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

func (*WeightedDestination) XXX_DiscardUnknown

func (m *WeightedDestination) XXX_DiscardUnknown()

func (*WeightedDestination) XXX_Marshal

func (m *WeightedDestination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*WeightedDestination) XXX_Merge

func (m *WeightedDestination) XXX_Merge(src proto.Message)

func (*WeightedDestination) XXX_Size

func (m *WeightedDestination) XXX_Size() int

func (*WeightedDestination) XXX_Unmarshal

func (m *WeightedDestination) XXX_Unmarshal(b []byte) error

Directories

Path Synopsis
aws

Jump to

Keyboard shortcuts

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