clusters

package
v0.0.0-...-8b28c38 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	LoadRetries    int           = 6
	LoadRetryDelay time.Duration = 10 * time.Second
)
View Source
const (
	ClusterInfoIdKey               = "id"
	ClusterInfoNameKey             = "name"
	ClusterInfoProviderKey         = "provider"
	ClusterInfoProjectKey          = "project"
	ClusterInfoAccountKey          = "account"
	ClusterInfoRegionKey           = "region"
	ClusterInfoProvisionerKey      = "provisioner"
	ClusterInfoProfileKey          = "clusterProfile"
	ClusterInfoLogCollectionKey    = "logCollection"
	ClusterInfoProductAnalyticsKey = "productAnalytics"
	ClusterInfoErrorReportingKey   = "errorReporting"
	ClusterInfoValuesReportingKey  = "valuesReporting"
	ClusterInfoThanosEnabledKey    = "thanosEnabled"
	ClusterInfoThanosOffsetKey     = "thanosOffset"
	ClusterInfoVersionKey          = "version"
)

The following constants are used as keys into the cluster info map data structure

Variables

This section is empty.

Functions

func SplitNameID

func SplitNameID(nameID string) (id string, name string)

SplitNameID is a helper method that removes the common split format and returns

Types

type ClusterInfo

type ClusterInfo struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Profile     string `json:"profile"`
	Provider    string `json:"provider"`
	Account     string `json:"account"`
	Project     string `json:"project"`
	Region      string `json:"region"`
	Provisioner string `json:"provisioner"`
}

ClusterInfo holds attributes of Cluster from metrics pulled from Prometheus

func MapToClusterInfo

func MapToClusterInfo(info map[string]string) (*ClusterInfo, error)

MapToClusterInfo returns a ClusterInfo using parsed data from a string map. If parsing the map fails for id and/or name, an error is returned.

func (*ClusterInfo) Clone

func (ci *ClusterInfo) Clone() *ClusterInfo

Clone creates a copy of ClusterInfo and returns it

type ClusterInfoProvider

type ClusterInfoProvider interface {
	// GetClusterInfo returns a string map containing the local/remote connected cluster info
	GetClusterInfo() map[string]string
}

ClusterInfoProvider is a contract which is capable of performing cluster info lookups.

type ClusterMap

type ClusterMap interface {
	// GetClusterIDs returns a slice containing all of the cluster identifiers.
	GetClusterIDs() []string

	// AsMap returns the cluster map as a standard go map
	AsMap() map[string]*ClusterInfo

	// InfoFor returns the ClusterInfo entry for the provided clusterID or nil if it
	// doesn't exist
	InfoFor(clusterID string) *ClusterInfo

	// NameFor returns the name of the cluster provided the clusterID.
	NameFor(clusterID string) string

	// NameIDFor returns an identifier in the format "<clusterName>/<clusterID>" if the cluster has an
	// assigned name. Otherwise, just the clusterID is returned.
	NameIDFor(clusterID string) string
}

func NewClusterMap

func NewClusterMap(client prometheus.Client, cip ClusterInfoProvider, refresh time.Duration) ClusterMap

NewClusterMap creates a new ClusterMap implementation using a prometheus or thanos client

type PrometheusClusterMap

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

ClusterMap keeps records of all known cost-model clusters.

func (*PrometheusClusterMap) AsMap

func (pcm *PrometheusClusterMap) AsMap() map[string]*ClusterInfo

AsMap returns the cluster map as a standard go map

func (*PrometheusClusterMap) GetClusterIDs

func (pcm *PrometheusClusterMap) GetClusterIDs() []string

GetClusterIDs returns a slice containing all of the cluster identifiers.

func (*PrometheusClusterMap) InfoFor

func (pcm *PrometheusClusterMap) InfoFor(clusterID string) *ClusterInfo

InfoFor returns the ClusterInfo entry for the provided clusterID or nil if it doesn't exist

func (*PrometheusClusterMap) NameFor

func (pcm *PrometheusClusterMap) NameFor(clusterID string) string

NameFor returns the name of the cluster provided the clusterID.

func (*PrometheusClusterMap) NameIDFor

func (pcm *PrometheusClusterMap) NameIDFor(clusterID string) string

NameIDFor returns an identifier in the format "<clusterName>/<clusterID>" if the cluster has an assigned name. Otherwise, just the clusterID is returned.

func (*PrometheusClusterMap) StopRefresh

func (pcm *PrometheusClusterMap) StopRefresh()

StopRefresh stops the automatic internal map refresh

Jump to

Keyboard shortcuts

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