prober

package
v0.36.8 Latest Latest
Warning

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

Go to latest
Published: May 30, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetIPForService added in v0.34.0

func GetIPForService(svc types.NamespacedName) string

func NewIPListerWithMapping added in v0.34.0

func NewIPListerWithMapping() *ipListerWithMapping

Types

type Addressable

type Addressable struct {
	// Addressable address.
	Address *url.URL
	// Resource key.
	ResourceKey types.NamespacedName
}

Addressable contains addressable resource data for the prober.

type Cache

type Cache interface {
	// GetStatus retries the status associated with the given key.
	GetStatus(key string) Status
	// UpsertStatus add or updates the status associated with the given key.
	// Once the given key expires the onExpired callback will be called passing the arg parameter.
	UpsertStatus(key string, status Status, arg interface{}, onExpired ExpirationFunc)
	// Expire will expire the given key.
	Expire(key string)
}

Cache is a key-status store.

func NewLocalExpiringCache

func NewLocalExpiringCache(ctx context.Context, expiration time.Duration) Cache

type EnqueueFunc

type EnqueueFunc func(key types.NamespacedName)

EnqueueFunc enqueues the given provided resource key.

type ExpirationFunc

type ExpirationFunc func(key string, arg interface{})

ExpirationFunc is a callback called once an entry in the cache is expired.

type Func

type Func func(ctx context.Context, addressable Addressable, expected Status) Status

Func type is an adapter to allow the use of ordinary functions as Prober. If f is a function with the appropriate signature, Func(f) is a Prober that calls f.

func (Func) Probe

func (p Func) Probe(ctx context.Context, addressable Addressable, expected Status) Status

Probe implements the Prober interface for Func.

type IPListerWithMapping added in v0.34.0

type IPListerWithMapping interface {
	Register(svc types.NamespacedName, ip string)
	Unregister(svc types.NamespacedName)
	List(addressable Addressable) ([]string, error)
}

type IPsLister added in v0.29.5

type IPsLister func(addressable Addressable) ([]string, error)

func IPsListerFromService added in v0.29.5

func IPsListerFromService(svc types.NamespacedName) IPsLister

func IdentityIPsLister added in v0.31.3

func IdentityIPsLister() IPsLister

type Prober

type Prober interface {
	// Probe probes the provided Addressable resource and returns its Status.
	Probe(ctx context.Context, addressable Addressable, expected Status) Status
}

Prober probes an addressable resource.

func NewAsync

func NewAsync(ctx context.Context, client httpClient, port string, IPsLister IPsLister, enqueue EnqueueFunc) Prober

NewAsync creates an async Prober.

It reports status changes using the provided EnqueueFunc.

type Status

type Status int

Status represents the resource status.

const (
	// StatusReady signals that a given object is ready.
	StatusReady Status = iota
	// StatusUnknown signals that a given object is not ready and its state is unknown.
	StatusUnknown
	// StatusUnknownErr signals that a given object is not ready and its state is unknown due to
	// networking problems between control plane and data plane.
	StatusUnknownErr
	// StatusNotReady signals that a given object is not ready.
	StatusNotReady
)

func (Status) String

func (s Status) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL