Documentation ¶
Index ¶
- Variables
- func NewStatusEventLoop(emitter StatusEmitter, syncer StatusSyncer) eventloop.EventLoop
- func NewTranslatorEventLoop(emitter TranslatorEmitter, syncer TranslatorSyncer) eventloop.EventLoop
- type Ingress
- func (o *Ingress) DeepCopyObject() runtime.Object
- func (*Ingress) Descriptor() ([]byte, []int)
- func (this *Ingress) Equal(that interface{}) bool
- func (m *Ingress) GetKubeIngressSpec() *types.Any
- func (m *Ingress) GetKubeIngressStatus() *types.Any
- func (m *Ingress) GetMetadata() core.Metadata
- func (o *Ingress) GetObjectKind() schema.ObjectKind
- func (r *Ingress) Hash() uint64
- func (*Ingress) ProtoMessage()
- func (m *Ingress) Reset()
- func (r *Ingress) SetMetadata(meta core.Metadata)
- func (m *Ingress) String() string
- func (m *Ingress) XXX_DiscardUnknown()
- func (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Ingress) XXX_Merge(src proto.Message)
- func (m *Ingress) XXX_Size() int
- func (m *Ingress) XXX_Unmarshal(b []byte) error
- type IngressClient
- type IngressList
- func (list IngressList) AsInterfaces() []interface{}
- func (list IngressList) AsResources() resources.ResourceList
- func (list IngressList) Clone() IngressList
- func (list IngressList) Each(f func(element *Ingress))
- func (list IngressList) Find(namespace, name string) (*Ingress, error)
- func (list IngressList) Names() []string
- func (list IngressList) NamespacesDotNames() []string
- func (list IngressList) Sort() IngressList
- type IngressReconciler
- type IngressesByNamespace
- type KubeService
- func (o *KubeService) DeepCopyObject() runtime.Object
- func (*KubeService) Descriptor() ([]byte, []int)
- func (this *KubeService) Equal(that interface{}) bool
- func (m *KubeService) GetKubeServiceSpec() *types.Any
- func (m *KubeService) GetKubeServiceStatus() *types.Any
- func (m *KubeService) GetMetadata() core.Metadata
- func (o *KubeService) GetObjectKind() schema.ObjectKind
- func (r *KubeService) Hash() uint64
- func (*KubeService) ProtoMessage()
- func (m *KubeService) Reset()
- func (r *KubeService) SetMetadata(meta core.Metadata)
- func (m *KubeService) String() string
- func (m *KubeService) XXX_DiscardUnknown()
- func (m *KubeService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *KubeService) XXX_Merge(src proto.Message)
- func (m *KubeService) XXX_Size() int
- func (m *KubeService) XXX_Unmarshal(b []byte) error
- type KubeServiceClient
- type KubeServiceList
- func (list KubeServiceList) AsInterfaces() []interface{}
- func (list KubeServiceList) AsResources() resources.ResourceList
- func (list KubeServiceList) Clone() KubeServiceList
- func (list KubeServiceList) Each(f func(element *KubeService))
- func (list KubeServiceList) Find(namespace, name string) (*KubeService, error)
- func (list KubeServiceList) Names() []string
- func (list KubeServiceList) NamespacesDotNames() []string
- func (list KubeServiceList) Sort() KubeServiceList
- type KubeServiceReconciler
- type ServicesByNamespace
- type StatusEmitter
- type StatusSnapshot
- type StatusSnapshotStringer
- type StatusSyncer
- type StatusSyncers
- type TransitionIngressFunc
- type TransitionKubeServiceFunc
- type TranslatorEmitter
- type TranslatorSnapshot
- type TranslatorSnapshotStringer
- type TranslatorSyncer
- type TranslatorSyncers
Constants ¶
This section is empty.
Variables ¶
var IngressCrd = crd.NewCrd("ingress.solo.io", "ingresses", "ingress.solo.io", "v1", "Ingress", "ig", false, &Ingress{})
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 NewTranslatorEventLoop ¶
func NewTranslatorEventLoop(emitter TranslatorEmitter, syncer TranslatorSyncer) eventloop.EventLoop
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 (*Ingress) DeepCopyObject ¶
func (*Ingress) Descriptor ¶
func (*Ingress) GetKubeIngressSpec ¶
func (*Ingress) GetKubeIngressStatus ¶
func (*Ingress) GetMetadata ¶
func (*Ingress) GetObjectKind ¶
func (o *Ingress) GetObjectKind() schema.ObjectKind
func (*Ingress) ProtoMessage ¶
func (*Ingress) ProtoMessage()
func (*Ingress) SetMetadata ¶
func (*Ingress) XXX_DiscardUnknown ¶
func (m *Ingress) XXX_DiscardUnknown()
func (*Ingress) XXX_Marshal ¶
func (*Ingress) XXX_Unmarshal ¶
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
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 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 ¶
func (s StatusSnapshot) Stringer() StatusSnapshotStringer
type StatusSnapshotStringer ¶
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 ¶
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 TranslatorSnapshot ¶
type TranslatorSnapshot struct { Secrets gloo_solo_io.SecretsByNamespace Upstreams gloo_solo_io.UpstreamsByNamespace Ingresses IngressesByNamespace }
func (TranslatorSnapshot) Clone ¶
func (s TranslatorSnapshot) Clone() TranslatorSnapshot
func (TranslatorSnapshot) Hash ¶
func (s TranslatorSnapshot) Hash() uint64
func (TranslatorSnapshot) HashFields ¶
func (s TranslatorSnapshot) HashFields() []zap.Field
func (TranslatorSnapshot) Stringer ¶
func (s TranslatorSnapshot) Stringer() TranslatorSnapshotStringer
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
Source Files ¶
- ingress.pb.go
- ingress.sk.go
- ingress_client.sk.go
- ingress_reconciler.sk.go
- kube_service.sk.go
- kube_service_client.sk.go
- kube_service_reconciler.sk.go
- service.pb.go
- status_event_loop.sk.go
- status_snapshot.sk.go
- status_snapshot_emitter.sk.go
- translator_event_loop.sk.go
- translator_snapshot.sk.go
- translator_snapshot_emitter.sk.go