Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrClusterIDChanged = errors.New("etcd cluster ID has changed") ErrEtcdInvalidResponse = errors.New("received an invalid etcd response") )
Functions ¶
func ConfigFiles ¶ added in v1.15.6
ConfigFiles returns the list of configuration files in the given path. It shall be used by CLI tools only, as it doesn't handle subsequent updates.
func MetricsProvider ¶
Types ¶
type ClusterMesh ¶
type ClusterMesh struct {
// contains filtered or unexported fields
}
ClusterMesh is a cache of multiple remote clusters
func NewClusterMesh ¶
func NewClusterMesh(c Configuration) ClusterMesh
NewClusterMesh creates a new remote cluster cache based on the provided configuration
func (*ClusterMesh) ForEachRemoteCluster ¶
func (cm *ClusterMesh) ForEachRemoteCluster(fn func(RemoteCluster) error) error
func (*ClusterMesh) NumReadyClusters ¶
func (cm *ClusterMesh) NumReadyClusters() int
NumReadyClusters returns the number of remote clusters to which a connection has been established
func (*ClusterMesh) Start ¶
func (cm *ClusterMesh) Start(cell.HookContext) error
func (*ClusterMesh) Stop ¶
func (cm *ClusterMesh) Stop(cell.HookContext) error
Close stops watching for remote cluster configuration files to appear and will close all connections to remote clusters
type Config ¶
type Config struct {
// ClusterMeshConfig is the path to the clustermesh configuration directory.
ClusterMeshConfig string
}
type Configuration ¶
type Configuration struct {
Config
// ClusterInfo is the id/name of the local cluster. This is used for logging and metrics
ClusterInfo types.ClusterInfo
// NewRemoteCluster is a function returning a new implementation of the remote cluster business logic.
NewRemoteCluster RemoteClusterCreatorFunc
// nodeName is the name of the local node. This is used for logging and metrics
NodeName string
// ClusterSizeDependantInterval allows to calculate intervals based on cluster size.
ClusterSizeDependantInterval kvstore.ClusterSizeDependantIntervalFunc
// ServiceIPGetter, if not nil, is used to create a custom dialer for service resolution.
ServiceIPGetter k8s.ServiceIPGetter
// Metrics holds the different clustermesh metrics.
Metrics Metrics
}
Configuration is the configuration that must be provided to NewClusterMesh()
type Metrics ¶
type Metrics struct {
// TotalRemoteClusters tracks the total number of remote clusters.
TotalRemoteClusters metric.Vec[metric.Gauge]
// LastFailureTimestamp tracks the last failure timestamp.
LastFailureTimestamp metric.Vec[metric.Gauge]
// ReadinessStatus tracks the readiness status of remote clusters.
ReadinessStatus metric.Vec[metric.Gauge]
// TotalFailure tracks the number of failures when connecting to remote clusters.
TotalFailures metric.Vec[metric.Gauge]
}
type RemoteCluster ¶
type RemoteCluster interface {
// Run implements the actual business logic once the connection to the remote cluster has been established.
// The ready channel shall be closed when the initialization tasks completed, possibly returning an error.
Run(ctx context.Context, backend kvstore.BackendOperations, config *types.CiliumClusterConfig, ready chan<- error)
// ClusterConfigRequired returns whether the CiliumClusterConfig is always
// expected to be exposed by remote clusters.
ClusterConfigRequired() bool
Stop()
Remove()
}
type RemoteClusterCreatorFunc ¶
type RemoteClusterCreatorFunc func(name string, status StatusFunc) RemoteCluster
type StatusFunc ¶
type StatusFunc func() *models.RemoteCluster
Click to show internal directories.
Click to hide internal directories.