Documentation ¶
Index ¶
- Constants
- Variables
- func WatchClusterHealthChange(m *Manager) *source.Channel
- type Manager
- func (m *Manager) AddObservationListener(listener OnObservation)
- func (m *Manager) Finalizer(cluster types.NamespacedName) finalizer.Finalizer
- func (m *Manager) Observe(cluster types.NamespacedName, zkClient zk.BaseClient) *Observer
- func (m *Manager) ObservedStateResolver(cluster types.NamespacedName, zkClient zk.BaseClient) State
- func (m *Manager) StopObserving(cluster types.NamespacedName)
- type Observer
- type OnObservation
- type Settings
- type State
Constants ¶
const ( DefaultObservationInterval = 10 * time.Second DefaultRequestTimeout = 1 * time.Minute )
Default values: - best-case scenario (healthy cluster): a request is performed every 10 seconds - worst-case scenario (unhealthy cluster): a request is performed every 70 (60+10) seconds
const (
// FinalizerName registered for each elasticsearch resource
FinalizerName = "finalizer.zookeeper.ghostbaby.io/observer"
)
Variables ¶
var DefaultSettings = Settings{ ObservationInterval: DefaultObservationInterval, RequestTimeout: DefaultRequestTimeout, }
DefaultSettings is an observer's Params with default values
Functions ¶
func WatchClusterHealthChange ¶
WatchClusterHealthChange returns a Source fed with generic events targeting clusters whose health has changed between 2 observations. Aimed to be used for triggering a reconciliation.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager for a set of observers
func (*Manager) AddObservationListener ¶
func (m *Manager) AddObservationListener(listener OnObservation)
AddObservationListener adds the given listener to the list of listeners notified on every observation.
func (*Manager) Finalizer ¶
func (m *Manager) Finalizer(cluster types.NamespacedName) finalizer.Finalizer
Finalizer returns a finalizer to be executed upon deletion of the given cluster, that makes sure the cluster is not observed anymore
func (*Manager) Observe ¶
func (m *Manager) Observe(cluster types.NamespacedName, zkClient zk.BaseClient) *Observer
Observe gets or create a cluster state observer for the given cluster In case something has changed in the given zkClient (eg. different caCert), the observer is recreated accordingly
func (*Manager) ObservedStateResolver ¶
func (m *Manager) ObservedStateResolver(cluster types.NamespacedName, zkClient zk.BaseClient) State
func (*Manager) StopObserving ¶
func (m *Manager) StopObserving(cluster types.NamespacedName)
type Observer ¶
type Observer struct {
// contains filtered or unexported fields
}
func NewObserver ¶
func NewObserver(cluster types.NamespacedName, esClient zk.BaseClient, settings Settings, onObservation OnObservation) *Observer
NewObserver creates and starts an Observer
type OnObservation ¶
type OnObservation func(cluster types.NamespacedName, previousState State, newState State)
OnObservation is a function that gets executed when a new state is observed
type State ¶
type State struct {
ClusterStats *zk.ClusterStats
}
func RetrieveState ¶
func RetrieveState(ctx context.Context, cluster types.NamespacedName, zkClient zk.BaseClient) State
RetrieveState returns the current Zookeeper cluster state