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: 29 Imported by: 10

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

This section is empty.

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

TODO: modify as needed to populate additional fields

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)
	Watch(namespace string, opts clients.WatchOpts) (<-chan IngressList, <-chan error, error)
}

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

type IngressesByNamespace map[string]IngressList

func (IngressesByNamespace) Add

func (byNamespace IngressesByNamespace) Add(ingress ...*Ingress)

func (IngressesByNamespace) Clear

func (byNamespace IngressesByNamespace) Clear(namespace string)

func (IngressesByNamespace) Clone

func (byNamespace IngressesByNamespace) Clone() IngressesByNamespace

func (IngressesByNamespace) List

func (byNamespace IngressesByNamespace) List() IngressList

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

TODO: modify as needed to populate additional fields

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)
	Watch(namespace string, opts clients.WatchOpts) (<-chan KubeServiceList, <-chan error, error)
}

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

type ServicesByNamespace map[string]KubeServiceList

func (ServicesByNamespace) Add

func (byNamespace ServicesByNamespace) Add(kubeService ...*KubeService)

func (ServicesByNamespace) Clear

func (byNamespace ServicesByNamespace) Clear(namespace string)

func (ServicesByNamespace) Clone

func (byNamespace ServicesByNamespace) Clone() ServicesByNamespace

func (ServicesByNamespace) List

func (byNamespace ServicesByNamespace) List() KubeServiceList

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 StatusEventLoop

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

func NewStatusEventLoop

func NewStatusEventLoop(emitter StatusEmitter, syncer StatusSyncer) StatusEventLoop

type StatusSnapshot

type StatusSnapshot struct {
	Services  ServicesByNamespace
	Ingresses IngressesByNamespace
}

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 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 TranslatorEventLoop

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

func NewTranslatorEventLoop

func NewTranslatorEventLoop(emitter TranslatorEmitter, syncer TranslatorSyncer) TranslatorEventLoop

type TranslatorSnapshot

type TranslatorSnapshot struct {
	Secrets   gloo_solo_io.SecretsByNamespace
	Upstreams gloo_solo_io.UpstreamsByNamespace
	Ingresses IngressesByNamespace
}

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