health

package
v0.12.1 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2023 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CondConfigSync = "Config Sync"
	CondBackend    = "Backend"
	CondNodeDriver = "Node Driver"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Aggregator added in v0.6.0

type Aggregator struct {
	controlv1.UnsafeHealthServer
	AggregatorOptions
	// contains filtered or unexported fields
}

Aggregator implements a HealthServer that queries one or more HealthClients and aggregates the results. This server will report as ready if and only if all clients report as ready.

func NewAggregator added in v0.6.0

func NewAggregator(opts ...AggregatorOption) *Aggregator

func (*Aggregator) AddClient added in v0.6.0

func (h *Aggregator) AddClient(name string, client controlv1.HealthClient)

func (*Aggregator) GetHealth added in v0.6.0

func (h *Aggregator) GetHealth(ctx context.Context, _ *emptypb.Empty) (*corev1.Health, error)

func (*Aggregator) RemoveClient added in v0.6.0

func (h *Aggregator) RemoveClient(name string)

type AggregatorOption added in v0.6.0

type AggregatorOption func(*AggregatorOptions)

func WithStaticAnnotations added in v0.6.0

func WithStaticAnnotations(staticAnnotations map[string]string) AggregatorOption

type AggregatorOptions added in v0.6.0

type AggregatorOptions struct {
	// contains filtered or unexported fields
}

type ConditionStatus added in v0.6.1

type ConditionStatus int32
const (
	StatusPending ConditionStatus = iota
	StatusFailure
	StatusDisabled
)

func ConditionStatusStrToEnum added in v0.8.0

func ConditionStatusStrToEnum(status string) (ConditionStatus, error)

func (ConditionStatus) String added in v0.6.1

func (s ConditionStatus) String() string

type ConditionTracker added in v0.6.1

type ConditionTracker interface {
	Set(key string, value ConditionStatus, reason string)
	Clear(key string, reason ...string)
	List() []string
	LastModified() time.Time

	// Adds a listener that will be called whenever any condition is changed.
	// The listener will be called in a separate goroutine. Ensure that the
	// listener does not itself set or clear any conditions.
	AddListener(listener any)
}

func NewDefaultConditionTracker added in v0.6.1

func NewDefaultConditionTracker(logger *slog.Logger) ConditionTracker

type HealthClientSet

type HealthClientSet interface {
	// rpc GetHealth(emptypb.Empty) returns (core.Health)
	GetHealth(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*corev1.Health, error)
}

type HealthStatusQuerier

type HealthStatusQuerier interface {
	GetHealthStatus(id string) *corev1.HealthStatus
	WatchHealthStatus(ctx context.Context) <-chan *corev1.ClusterHealthStatus
}

type HealthStatusUpdater

type HealthStatusUpdater interface {
	StatusC() chan StatusUpdate
	HealthC() chan HealthUpdate
}

type HealthUpdate

type HealthUpdate struct {
	ID     string         `json:"id"`
	Health *corev1.Health `json:"health"`
}

type Listener

type Listener struct {
	controlv1.UnsafeHealthListenerServer
	ListenerOptions
	// contains filtered or unexported fields
}

func NewListener

func NewListener(opts ...ListenerOption) *Listener

func (*Listener) Close

func (l *Listener) Close()

func (*Listener) HandleAgentConnection

func (l *Listener) HandleAgentConnection(ctx context.Context, clientset agentv1.ClientSet)

Implements gateway.ConnectionHandler

func (*Listener) HandleConnection

func (l *Listener) HandleConnection(ctx context.Context, clientset HealthClientSet)

func (*Listener) HealthC

func (l *Listener) HealthC() chan HealthUpdate

func (*Listener) StatusC

func (l *Listener) StatusC() chan StatusUpdate

func (*Listener) UpdateHealth added in v0.6.0

func (l *Listener) UpdateHealth(ctx context.Context, req *corev1.Health) (*emptypb.Empty, error)

Implements controlv1.HealthListenerServer

type ListenerOption

type ListenerOption func(*ListenerOptions)

func WithMaxConnections

func WithMaxConnections(max int64) ListenerOption

Max concurrent connections. Defaults to math.MaxInt64

func WithMaxJitter

func WithMaxJitter(duration time.Duration) ListenerOption

func WithPollInterval

func WithPollInterval(interval time.Duration) ListenerOption

func WithUpdateQueueCap

func WithUpdateQueueCap(cap int) ListenerOption

Max concurrent queued updates before blocking. Defaults to 1000

type ListenerOptions

type ListenerOptions struct {
	// contains filtered or unexported fields
}

type Monitor

type Monitor struct {
	MonitorOptions
	// contains filtered or unexported fields
}

func NewMonitor

func NewMonitor(opts ...MonitorOption) *Monitor

func (*Monitor) GetHealthStatus

func (m *Monitor) GetHealthStatus(id string) *corev1.HealthStatus

func (*Monitor) Run

func (m *Monitor) Run(ctx context.Context, updater HealthStatusUpdater)

func (*Monitor) WatchHealthStatus added in v0.6.0

func (m *Monitor) WatchHealthStatus(ctx context.Context) <-chan *corev1.ClusterHealthStatus

type MonitorOption

type MonitorOption func(*MonitorOptions)

func WithLogger

func WithLogger(lg *slog.Logger) MonitorOption

type MonitorOptions

type MonitorOptions struct {
	// contains filtered or unexported fields
}

type StatusUpdate

type StatusUpdate struct {
	ID     string         `json:"id"`
	Status *corev1.Status `json:"status"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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