v1

package
v1.10.0-beta2 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 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, statusSetter resources.StatusSetter) 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, statusSetter resources.StatusSetter) 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