v1

package
v0.13.31 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2019 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var IngressCrd = crd.NewCrd("ingress.solo.io",
	"ingresses",
	"ingress.solo.io",
	"v1",
	"Ingress",
	"ig",
	false,
	&Ingress{})
View Source
var KubeServiceCrd = crd.NewCrd("ingress.solo.io",
	"services",
	"ingress.solo.io",
	"v1",
	"KubeService",
	"sv",
	false,
	&KubeService{})

Functions

func NewStatusEventLoop

func NewStatusEventLoop(emitter StatusEmitter, syncer StatusSyncer) eventloop.EventLoop

func NewStatusSimpleEventLoop added in v0.13.21

func NewStatusSimpleEventLoop(emitter StatusSimpleEmitter, syncers ...StatusSyncer) eventloop.SimpleEventLoop

func NewTranslatorEventLoop

func NewTranslatorEventLoop(emitter TranslatorEmitter, syncer TranslatorSyncer) eventloop.EventLoop

func NewTranslatorSimpleEventLoop added in v0.13.21

func NewTranslatorSimpleEventLoop(emitter TranslatorSimpleEmitter, syncers ...TranslatorSyncer) eventloop.SimpleEventLoop

Types

type Ingress

type Ingress struct {
	// a raw byte representation of the kubernetes ingress this resource wraps
	KubeIngressSpec *types.Any `protobuf:"bytes,1,opt,name=kube_ingress_spec,json=kubeIngressSpec,proto3" json:"kube_ingress_spec,omitempty"`
	// a raw byte representation of the ingress status of the kubernetes ingress object
	KubeIngressStatus *types.Any `protobuf:"bytes,2,opt,name=kube_ingress_status,json=kubeIngressStatus,proto3" json:"kube_ingress_status,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=ig @solo-kit:resource.plural_name=ingresses

A simple wrapper for a Kubernetes Ingress Object.

func NewIngress

func NewIngress(namespace, name string) *Ingress

func (*Ingress) DeepCopyObject

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

func (*Ingress) Descriptor

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

func (*Ingress) Equal

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

func (*Ingress) GetKubeIngressSpec

func (m *Ingress) GetKubeIngressSpec() *types.Any

func (*Ingress) GetKubeIngressStatus

func (m *Ingress) GetKubeIngressStatus() *types.Any

func (*Ingress) GetMetadata

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

func (*Ingress) GetObjectKind

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

func (*Ingress) Hash

func (r *Ingress) Hash() uint64

func (*Ingress) ProtoMessage

func (*Ingress) ProtoMessage()

func (*Ingress) Reset

func (m *Ingress) Reset()

func (*Ingress) SetMetadata

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

func (*Ingress) String

func (m *Ingress) String() string

func (*Ingress) XXX_DiscardUnknown

func (m *Ingress) XXX_DiscardUnknown()

func (*Ingress) XXX_Marshal

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

func (*Ingress) XXX_Merge

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

func (*Ingress) XXX_Size

func (m *Ingress) XXX_Size() int

func (*Ingress) XXX_Unmarshal

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

type IngressClient

type IngressClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*Ingress, error)
	Write(resource *Ingress, opts clients.WriteOpts) (*Ingress, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (IngressList, error)
	IngressWatcher
}

func NewIngressClient

func NewIngressClient(rcFactory factory.ResourceClientFactory) (IngressClient, error)

func NewIngressClientWithBase

func NewIngressClientWithBase(rc clients.ResourceClient) IngressClient

func NewIngressClientWithToken

func NewIngressClientWithToken(rcFactory factory.ResourceClientFactory, token string) (IngressClient, error)

type IngressList

type IngressList []*Ingress

func (IngressList) AsInterfaces

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

func (IngressList) AsResources

func (list IngressList) AsResources() resources.ResourceList

func (IngressList) Clone

func (list IngressList) Clone() IngressList

func (IngressList) Each

func (list IngressList) Each(f func(element *Ingress))

func (IngressList) EachResource added in v0.13.21

func (list IngressList) EachResource(f func(element resources.Resource))

func (IngressList) Find

func (list IngressList) Find(namespace, name string) (*Ingress, error)

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

func (IngressList) Names

func (list IngressList) Names() []string

func (IngressList) NamespacesDotNames

func (list IngressList) NamespacesDotNames() []string

func (IngressList) Sort

func (list IngressList) Sort() IngressList

type IngressReconciler

type IngressReconciler interface {
	Reconcile(namespace string, desiredResources IngressList, transition TransitionIngressFunc, opts clients.ListOpts) error
}

func NewIngressReconciler

func NewIngressReconciler(client IngressClient) IngressReconciler

type IngressWatcher added in v0.13.21

type IngressWatcher interface {
	// watch namespace-scoped Ingresses
	Watch(namespace string, opts clients.WatchOpts) (<-chan IngressList, <-chan error, error)
}

type KubeService

type KubeService struct {
	// a raw byte representation of the kubernetes service this resource wraps
	KubeServiceSpec *types.Any `protobuf:"bytes,1,opt,name=kube_service_spec,json=kubeServiceSpec,proto3" json:"kube_service_spec,omitempty"`
	// a raw byte representation of the service status of the kubernetes service object
	KubeServiceStatus *types.Any `protobuf:"bytes,2,opt,name=kube_service_status,json=kubeServiceStatus,proto3" json:"kube_service_status,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=sv @solo-kit:resource.plural_name=services

A simple wrapper for a Kubernetes Service Object.

func NewKubeService

func NewKubeService(namespace, name string) *KubeService

func (*KubeService) DeepCopyObject

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

func (*KubeService) Descriptor

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

func (*KubeService) Equal

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

func (*KubeService) GetKubeServiceSpec

func (m *KubeService) GetKubeServiceSpec() *types.Any

func (*KubeService) GetKubeServiceStatus

func (m *KubeService) GetKubeServiceStatus() *types.Any

func (*KubeService) GetMetadata

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

func (*KubeService) GetObjectKind

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

func (*KubeService) Hash

func (r *KubeService) Hash() uint64

func (*KubeService) ProtoMessage

func (*KubeService) ProtoMessage()

func (*KubeService) Reset

func (m *KubeService) Reset()

func (*KubeService) SetMetadata

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

func (*KubeService) String

func (m *KubeService) String() string

func (*KubeService) XXX_DiscardUnknown

func (m *KubeService) XXX_DiscardUnknown()

func (*KubeService) XXX_Marshal

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

func (*KubeService) XXX_Merge

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

func (*KubeService) XXX_Size

func (m *KubeService) XXX_Size() int

func (*KubeService) XXX_Unmarshal

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

type KubeServiceClient

type KubeServiceClient interface {
	BaseClient() clients.ResourceClient
	Register() error
	Read(namespace, name string, opts clients.ReadOpts) (*KubeService, error)
	Write(resource *KubeService, opts clients.WriteOpts) (*KubeService, error)
	Delete(namespace, name string, opts clients.DeleteOpts) error
	List(namespace string, opts clients.ListOpts) (KubeServiceList, error)
	KubeServiceWatcher
}

func NewKubeServiceClient

func NewKubeServiceClient(rcFactory factory.ResourceClientFactory) (KubeServiceClient, error)

func NewKubeServiceClientWithBase

func NewKubeServiceClientWithBase(rc clients.ResourceClient) KubeServiceClient

func NewKubeServiceClientWithToken

func NewKubeServiceClientWithToken(rcFactory factory.ResourceClientFactory, token string) (KubeServiceClient, error)

type KubeServiceList

type KubeServiceList []*KubeService

func (KubeServiceList) AsInterfaces

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

func (KubeServiceList) AsResources

func (list KubeServiceList) AsResources() resources.ResourceList

func (KubeServiceList) Clone

func (list KubeServiceList) Clone() KubeServiceList

func (KubeServiceList) Each

func (list KubeServiceList) Each(f func(element *KubeService))

func (KubeServiceList) EachResource added in v0.13.21

func (list KubeServiceList) EachResource(f func(element resources.Resource))

func (KubeServiceList) Find

func (list KubeServiceList) Find(namespace, name string) (*KubeService, error)

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

func (KubeServiceList) Names

func (list KubeServiceList) Names() []string

func (KubeServiceList) NamespacesDotNames

func (list KubeServiceList) NamespacesDotNames() []string

func (KubeServiceList) Sort

func (list KubeServiceList) Sort() KubeServiceList

type KubeServiceReconciler

type KubeServiceReconciler interface {
	Reconcile(namespace string, desiredResources KubeServiceList, transition TransitionKubeServiceFunc, opts clients.ListOpts) error
}

func NewKubeServiceReconciler

func NewKubeServiceReconciler(client KubeServiceClient) KubeServiceReconciler

type KubeServiceWatcher added in v0.13.21

type KubeServiceWatcher interface {
	// watch namespace-scoped Services
	Watch(namespace string, opts clients.WatchOpts) (<-chan KubeServiceList, <-chan error, error)
}

type StatusEmitter

type StatusEmitter interface {
	Register() error
	KubeService() KubeServiceClient
	Ingress() IngressClient
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *StatusSnapshot, <-chan error, error)
}

func NewStatusEmitter

func NewStatusEmitter(kubeServiceClient KubeServiceClient, ingressClient IngressClient) StatusEmitter

func NewStatusEmitterWithEmit

func NewStatusEmitterWithEmit(kubeServiceClient KubeServiceClient, ingressClient IngressClient, emit <-chan struct{}) StatusEmitter

type StatusSimpleEmitter added in v0.13.21

type StatusSimpleEmitter interface {
	Snapshots(ctx context.Context) (<-chan *StatusSnapshot, <-chan error, error)
}

func NewStatusSimpleEmitter added in v0.13.21

func NewStatusSimpleEmitter(aggregatedWatch clients.ResourceWatch) StatusSimpleEmitter

func NewStatusSimpleEmitterWithEmit added in v0.13.21

func NewStatusSimpleEmitterWithEmit(aggregatedWatch clients.ResourceWatch, emit <-chan struct{}) StatusSimpleEmitter

type StatusSnapshot

type StatusSnapshot struct {
	Services  KubeServiceList
	Ingresses IngressList
}

func (StatusSnapshot) Clone

func (s StatusSnapshot) Clone() StatusSnapshot

func (StatusSnapshot) Hash

func (s StatusSnapshot) Hash() uint64

func (StatusSnapshot) HashFields

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

func (StatusSnapshot) Stringer

type StatusSnapshotStringer

type StatusSnapshotStringer struct {
	Version   uint64
	Services  []string
	Ingresses []string
}

func (StatusSnapshotStringer) String

func (ss StatusSnapshotStringer) String() string

type StatusSyncDecider added in v0.13.21

type StatusSyncDecider interface {
	StatusSyncer
	ShouldSync(old, new *StatusSnapshot) bool
}

a Syncer which implements this interface can make smarter decisions over whether it should be restarted (including having its context cancelled) based on a diff of the previous and current snapshot

type StatusSyncer

type StatusSyncer interface {
	Sync(context.Context, *StatusSnapshot) error
}

type StatusSyncers

type StatusSyncers []StatusSyncer

func (StatusSyncers) Sync

func (s StatusSyncers) Sync(ctx context.Context, snapshot *StatusSnapshot) error

type TransitionIngressFunc

type TransitionIngressFunc func(original, desired *Ingress) (bool, error)

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

type TransitionKubeServiceFunc

type TransitionKubeServiceFunc func(original, desired *KubeService) (bool, error)

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

type TranslatorEmitter

type TranslatorEmitter interface {
	Register() error
	Secret() gloo_solo_io.SecretClient
	Upstream() gloo_solo_io.UpstreamClient
	Ingress() IngressClient
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *TranslatorSnapshot, <-chan error, error)
}

func NewTranslatorEmitter

func NewTranslatorEmitter(secretClient gloo_solo_io.SecretClient, upstreamClient gloo_solo_io.UpstreamClient, ingressClient IngressClient) TranslatorEmitter

func NewTranslatorEmitterWithEmit

func NewTranslatorEmitterWithEmit(secretClient gloo_solo_io.SecretClient, upstreamClient gloo_solo_io.UpstreamClient, ingressClient IngressClient, emit <-chan struct{}) TranslatorEmitter

type TranslatorSimpleEmitter added in v0.13.21

type TranslatorSimpleEmitter interface {
	Snapshots(ctx context.Context) (<-chan *TranslatorSnapshot, <-chan error, error)
}

func NewTranslatorSimpleEmitter added in v0.13.21

func NewTranslatorSimpleEmitter(aggregatedWatch clients.ResourceWatch) TranslatorSimpleEmitter

func NewTranslatorSimpleEmitterWithEmit added in v0.13.21

func NewTranslatorSimpleEmitterWithEmit(aggregatedWatch clients.ResourceWatch, emit <-chan struct{}) TranslatorSimpleEmitter

type TranslatorSnapshot

type TranslatorSnapshot struct {
	Secrets   gloo_solo_io.SecretList
	Upstreams gloo_solo_io.UpstreamList
	Ingresses IngressList
}

func (TranslatorSnapshot) Clone

func (TranslatorSnapshot) Hash

func (s TranslatorSnapshot) Hash() uint64

func (TranslatorSnapshot) HashFields

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

func (TranslatorSnapshot) Stringer

type TranslatorSnapshotStringer

type TranslatorSnapshotStringer struct {
	Version   uint64
	Secrets   []string
	Upstreams []string
	Ingresses []string
}

func (TranslatorSnapshotStringer) String

func (ss TranslatorSnapshotStringer) String() string

type TranslatorSyncDecider added in v0.13.21

type TranslatorSyncDecider interface {
	TranslatorSyncer
	ShouldSync(old, new *TranslatorSnapshot) bool
}

a Syncer which implements this interface can make smarter decisions over whether it should be restarted (including having its context cancelled) based on a diff of the previous and current snapshot

type TranslatorSyncer

type TranslatorSyncer interface {
	Sync(context.Context, *TranslatorSnapshot) error
}

type TranslatorSyncers

type TranslatorSyncers []TranslatorSyncer

func (TranslatorSyncers) Sync

func (s TranslatorSyncers) Sync(ctx context.Context, snapshot *TranslatorSnapshot) error

Jump to

Keyboard shortcuts

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