mla

package
v2.21.6 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2023 License: Apache-2.0 Imports: 54 Imported by: 0

Documentation

Overview

Package mla contains controllers that are responsible for configuring MLA (Monitoring, Logging, and Alerting) for user clusters. - org grafana controller - create/update/delete Grafana organizations based on Kubermatic Projects - user grafana controller - create/update/delete Grafana Users to organizations based on Kubermatic UserProjectBindings - datasource grafana controller - create/update/delete Grafana Datasources to organizations based on Kubermatic Clusters - alertmanager configuration controller - manage alertmanager configuration based on Kubermatic Clusters

Index

Constants

View Source
const (
	AlertmanagerConfigEndpoint   = "/api/v1/alerts"
	AlertmanagerTenantHeaderName = "X-Scope-OrgID"
)
View Source
const (
	ControllerName = "kkp-mla-controller"

	GrafanaUserKey     = "admin-user"
	GrafanaPasswordKey = "admin-password"
)
View Source
const (
	RuntimeConfigMap      = "cortex-runtime-config"
	RuntimeConfigFileName = "runtime-config.yaml"
)
View Source
const (
	MetricsRuleGroupConfigEndpoint = "/api/v1/rules"
	LogRuleGroupConfigEndpoint     = "/loki/api/v1/rules"
	RuleGroupTenantHeaderName      = "X-Scope-OrgID"
)
View Source
const (
	GrafanaOrgAnnotationKey = "mla.k8c.io/organization"
)
View Source
const (
	PrometheusType = "prometheus"
)

Variables

This section is empty.

Functions

func Add

func Add(
	ctx context.Context,
	mgr manager.Manager,
	log *zap.SugaredLogger,
	numWorkers int,
	workerName string,
	versions kubermatic.Versions,
	mlaNamespace string,
	grafanaURL string,
	grafanaHeader string,
	grafanaSecret string,
	overwriteRegistry string,
	cortexAlertmanagerURL string,
	cortexRulerURL string,
	lokiRulerURL string,
	mlaEnabled bool,
) error

Add creates a new MLA controller that is responsible for managing Monitoring, Logging and Alerting for user clusters. * org grafana controller - create/update/delete Grafana organizations based on Kubermatic Projects * user grafana controller - create/update/delete Grafana Global Users based on Kubermatic User and its Group/UserProjectBindings * datasource grafana controller - create/update/delete Grafana Datasources to organizations based on Kubermatic Clusters * alertmanager configuration controller - manage alertmanager configuration based on Kubermatic Clusters * rule group controller - manager rule groups that will be used to generate alerts. * dashboard grafana controller - create/delete Grafana dashboards based on configmaps with prefix `grafana-dashboards` * ratelimit cortex controller - updates Cortex runtime configuration with rate limits based on kubermatic MLAAdminSetting * cleanup controller - this controller runs when mla disabled and clean objects that left from other MLA controller.

func GatewayCACreator added in v2.18.0

func GatewayCACreator() reconciling.NamedSecretCreatorGetter

GatewayCACreator returns a function to create the ECDSA-based CA to be used for MLA Gateway.

func GatewayCertificateCreator added in v2.18.0

func GatewayCertificateCreator(c *kubermaticv1.Cluster, mlaGatewayCAGetter func() (*resources.ECDSAKeyPair, error)) reconciling.NamedSecretCreatorGetter

GatewayCertificateCreator returns a function to create/update a secret with the MLA gateway TLS certificate.

func GatewayConfigMapCreator added in v2.18.0

func GatewayDeploymentCreator added in v2.18.0

func GatewayExternalServiceCreator added in v2.18.0

func GatewayExternalServiceCreator(c *kubermaticv1.Cluster) reconciling.NamedServiceCreatorGetter

func GatewayInternalServiceCreator added in v2.18.0

func GatewayInternalServiceCreator() reconciling.NamedServiceCreatorGetter

func GetGrafanaOrgUser added in v2.19.0

func GetGrafanaOrgUser(ctx context.Context, grafanaClient *grafanasdk.Client, orgID, uid uint) (*grafanasdk.OrgUser, error)

func ResourcesOnDeletion added in v2.18.0

func ResourcesOnDeletion(clusterNamespace string) []ctrlruntimeclient.Object

Types

type Overrides added in v2.19.0

type Overrides struct {
	Overrides map[string]TenantOverride `yaml:"overrides"`
}

type TenantOverride added in v2.19.0

type TenantOverride struct {
	IngestionRate      *int32 `yaml:"ingestion_rate,omitempty"`
	MaxSeriesPerMetric *int32 `yaml:"max_series_per_metric,omitempty"`
	MaxSeriesPerQuery  *int32 `yaml:"max_series_per_query,omitempty"`
	MaxSamplesPerQuery *int32 `yaml:"max_samples_per_query,omitempty"`
	IngestionBurstSize *int32 `yaml:"ingestion_burst_size,omitempty"`
	MaxSeriesTotal     *int32 `yaml:"max_series_per_user,omitempty"`
}

Jump to

Keyboard shortcuts

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