v1

package
v0.0.0-...-5a6645a Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2019 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	IngressCrd = crd.NewCrd(
		"ingresses",
		IngressGVK.Group,
		IngressGVK.Version,
		IngressGVK.Kind,
		"ig",
		false,
		&Ingress{})
)
View Source
var (
	IngressGVK = schema.GroupVersionKind{
		Version: "v1",
		Group:   "ingress.solo.io",
		Kind:    "Ingress",
	}
)
View Source
var (
	KubeServiceCrd = crd.NewCrd(
		"services",
		KubeServiceGVK.Group,
		KubeServiceGVK.Version,
		KubeServiceGVK.Kind,
		"sv",
		false,
		&KubeService{})
)
View Source
var (
	KubeServiceGVK = schema.GroupVersionKind{
		Version: "v1",
		Group:   "ingress.solo.io",
		Kind:    "KubeService",
	}
)

Functions

func NewStatusEventLoop

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

func NewStatusSimpleEventLoop

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

func NewTranslatorEventLoop

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

func NewTranslatorSimpleEventLoop

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:"-"`
}

A simple wrapper for a Kubernetes Ingress Object.

func NewIngress

func NewIngress(namespace, name string) *Ingress

func (*Ingress) DeepCopyInto

func (o *Ingress) DeepCopyInto(out *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) GroupVersionKind

func (r *Ingress) GroupVersionKind() schema.GroupVersionKind

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

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

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:"-"`
}

A simple wrapper for a Kubernetes Service Object.

func NewKubeService

func NewKubeService(namespace, name string) *KubeService

func (*KubeService) DeepCopyInto

func (o *KubeService) DeepCopyInto(out *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) GroupVersionKind

func (r *KubeService) GroupVersionKind() schema.GroupVersionKind

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

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

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

type StatusEmitter

type StatusEmitter interface {
	StatusSnapshotEmitter
	Register() error
	KubeService() KubeServiceClient
	Ingress() IngressClient
}

func NewStatusEmitter

func NewStatusEmitter(kubeServiceClient KubeServiceClient, ingressClient IngressClient) StatusEmitter

func NewStatusEmitterWithEmit

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

type StatusSimpleEmitter

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

func NewStatusSimpleEmitter

func NewStatusSimpleEmitter(aggregatedWatch clients.ResourceWatch) StatusSimpleEmitter

func NewStatusSimpleEmitterWithEmit

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 StatusSnapshotEmitter

type StatusSnapshotEmitter interface {
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *StatusSnapshot, <-chan error, error)
}

type StatusSnapshotStringer

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

func (StatusSnapshotStringer) String

func (ss StatusSnapshotStringer) String() string

type StatusSyncDecider deprecated

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

Deprecated: use StatusSyncDeciderWithContext

type StatusSyncDeciderWithContext

type StatusSyncDeciderWithContext interface {
	StatusSyncer
	ShouldSync(ctx context.Context, old, new *StatusSnapshot) bool
}

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 {
	TranslatorSnapshotEmitter
	Register() error
	Secret() gloo_solo_io.SecretClient
	Upstream() gloo_solo_io.UpstreamClient
	Ingress() IngressClient
}

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

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

func NewTranslatorSimpleEmitter

func NewTranslatorSimpleEmitter(aggregatedWatch clients.ResourceWatch) TranslatorSimpleEmitter

func NewTranslatorSimpleEmitterWithEmit

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 TranslatorSnapshotEmitter

type TranslatorSnapshotEmitter interface {
	Snapshots(watchNamespaces []string, opts clients.WatchOpts) (<-chan *TranslatorSnapshot, <-chan error, error)
}

type TranslatorSnapshotStringer

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

func (TranslatorSnapshotStringer) String

func (ss TranslatorSnapshotStringer) String() string

type TranslatorSyncDecider deprecated

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

Deprecated: use TranslatorSyncDeciderWithContext

type TranslatorSyncDeciderWithContext

type TranslatorSyncDeciderWithContext interface {
	TranslatorSyncer
	ShouldSync(ctx context.Context, old, new *TranslatorSnapshot) bool
}

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