v1

package
v1.9.0-beta2 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2021 License: Apache-2.0 Imports: 43 Imported by: 10

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

View Source
var File_github_com_solo_io_gloo_projects_ingress_api_v1_ingress_proto protoreflect.FileDescriptor
View Source
var File_github_com_solo_io_gloo_projects_ingress_api_v1_service_proto protoreflect.FileDescriptor
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 ¶ added in v0.13.21

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

func NewTranslatorEventLoop ¶

func NewTranslatorEventLoop(emitter TranslatorSnapshotEmitter, 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 *any.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 *any.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,omitempty"`
	// contains filtered or unexported fields
}

A simple wrapper for a Kubernetes Ingress Object.

func NewIngress ¶

func NewIngress(namespace, name string) *Ingress

func (*Ingress) DeepCopyInto ¶ added in v0.20.9

func (o *Ingress) DeepCopyInto(out *Ingress)

func (*Ingress) DeepCopyObject ¶

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

func (*Ingress) Descriptor deprecated

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

Deprecated: Use Ingress.ProtoReflect.Descriptor instead.

func (*Ingress) Equal ¶

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

Equal function

func (*Ingress) GetKubeIngressSpec ¶

func (x *Ingress) GetKubeIngressSpec() *any.Any

func (*Ingress) GetKubeIngressStatus ¶

func (x *Ingress) GetKubeIngressStatus() *any.Any

func (*Ingress) GetMetadata ¶

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

func (*Ingress) GetObjectKind ¶

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

func (*Ingress) GroupVersionKind ¶ added in v0.18.0

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

func (*Ingress) Hash ¶

func (m *Ingress) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*Ingress) MustHash ¶ added in v1.2.13

func (r *Ingress) MustHash() uint64

func (*Ingress) ProtoMessage ¶

func (*Ingress) ProtoMessage()

func (*Ingress) ProtoReflect ¶ added in v1.6.0

func (x *Ingress) ProtoReflect() protoreflect.Message

func (*Ingress) Reset ¶

func (x *Ingress) Reset()

func (*Ingress) SetMetadata ¶

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

func (*Ingress) String ¶

func (x *Ingress) String() string

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(ctx context.Context, rcFactory factory.ResourceClientFactory) (IngressClient, error)

func NewIngressClientWithBase ¶

func NewIngressClientWithBase(rc clients.ResourceClient) IngressClient

func NewIngressClientWithToken ¶

func NewIngressClientWithToken(ctx context.Context, 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)

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 *any.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 *any.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,omitempty"`
	// contains filtered or unexported fields
}

A simple wrapper for a Kubernetes Service Object.

func NewKubeService ¶

func NewKubeService(namespace, name string) *KubeService

func (*KubeService) DeepCopyInto ¶ added in v0.20.9

func (o *KubeService) DeepCopyInto(out *KubeService)

func (*KubeService) DeepCopyObject ¶

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

func (*KubeService) Descriptor deprecated

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

Deprecated: Use KubeService.ProtoReflect.Descriptor instead.

func (*KubeService) Equal ¶

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

Equal function

func (*KubeService) GetKubeServiceSpec ¶

func (x *KubeService) GetKubeServiceSpec() *any.Any

func (*KubeService) GetKubeServiceStatus ¶

func (x *KubeService) GetKubeServiceStatus() *any.Any

func (*KubeService) GetMetadata ¶

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

func (*KubeService) GetObjectKind ¶

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

func (*KubeService) GroupVersionKind ¶ added in v0.18.0

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

func (*KubeService) Hash ¶

func (m *KubeService) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*KubeService) MustHash ¶ added in v1.2.13

func (r *KubeService) MustHash() uint64

func (*KubeService) ProtoMessage ¶

func (*KubeService) ProtoMessage()

func (*KubeService) ProtoReflect ¶ added in v1.6.0

func (x *KubeService) ProtoReflect() protoreflect.Message

func (*KubeService) Reset ¶

func (x *KubeService) Reset()

func (*KubeService) SetMetadata ¶

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

func (*KubeService) String ¶

func (x *KubeService) String() string

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(ctx context.Context, rcFactory factory.ResourceClientFactory) (KubeServiceClient, error)

func NewKubeServiceClientWithBase ¶

func NewKubeServiceClientWithBase(rc clients.ResourceClient) KubeServiceClient

func NewKubeServiceClientWithToken ¶

func NewKubeServiceClientWithToken(ctx context.Context, 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)

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 {
	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 ¶ 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(hasher hash.Hash64) (uint64, error)

func (StatusSnapshot) HashFields ¶

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

func (StatusSnapshot) Stringer ¶

type StatusSnapshotEmitter ¶ added in v0.18.44

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 added in v0.13.21

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

Deprecated: use StatusSyncDeciderWithContext

type StatusSyncDeciderWithContext ¶ added in v0.15.0

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
	Upstream() gloo_solo_io.UpstreamClient
	KubeService() KubeServiceClient
	Ingress() IngressClient
}

func NewTranslatorEmitter ¶

func NewTranslatorEmitter(upstreamClient gloo_solo_io.UpstreamClient, kubeServiceClient KubeServiceClient, ingressClient IngressClient) TranslatorEmitter

func NewTranslatorEmitterWithEmit ¶

func NewTranslatorEmitterWithEmit(upstreamClient gloo_solo_io.UpstreamClient, kubeServiceClient KubeServiceClient, 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 {
	Upstreams gloo_solo_io.UpstreamList
	Services  KubeServiceList
	Ingresses IngressList
}

func (TranslatorSnapshot) Clone ¶

func (TranslatorSnapshot) Hash ¶

func (s TranslatorSnapshot) Hash(hasher hash.Hash64) (uint64, error)

func (TranslatorSnapshot) HashFields ¶

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

func (TranslatorSnapshot) Stringer ¶

type TranslatorSnapshotEmitter ¶ added in v0.18.44

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

type TranslatorSnapshotStringer ¶

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

func (TranslatorSnapshotStringer) String ¶

func (ss TranslatorSnapshotStringer) String() string

type TranslatorSyncDecider deprecated added in v0.13.21

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

Deprecated: use TranslatorSyncDeciderWithContext

type TranslatorSyncDeciderWithContext ¶ added in v0.15.0

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