Documentation
¶
Index ¶
Constants ¶
const (
// ServicePortName is the name of the port in the Service specification.
ServicePortName = "web"
)
Variables ¶
var TimeoutWaitForManagedResource = 5 * time.Minute
TimeoutWaitForManagedResource is the timeout used while waiting for the ManagedResources to become healthy or deleted.
Functions ¶
func CentralLoggingConfiguration ¶ added in v1.95.0
func CentralLoggingConfiguration() (component.CentralLoggingConfig, error)
CentralLoggingConfiguration returns a fluent-bit parser and filter for the monitoring logs.
Types ¶
type AlertingValues ¶
type AlertingValues struct {
// Alertmanagers is a slice containing the alertmanager names (and namespaces) to which alerts should be sent.
Alertmanagers []*Alertmanager
// AdditionalAlertmanager contains the data of the 'alerting' secret (url, credentials, etc.).
AdditionalAlertmanager map[string][]byte
}
AlertingValues contains alerting configuration for this Prometheus instance.
type Alertmanager ¶ added in v1.95.3
type Alertmanager struct {
// Name is the name of the alertmanager to which alerts should be sent.
Name string
// Namespace is the namespace of the alertmanager to which alerts should be sent.
// If not set, the namespace of the Prometheus instance is used.
Namespace *string
}
Alertmanager contains the name and namespace of an alertmanager to which alerts should be sent.
type CentralConfigs ¶
type CentralConfigs struct {
// AdditionalScrapeConfigs are additional scrape configs which cannot be modelled with the CRDs of the Prometheus
// operator.
AdditionalScrapeConfigs []string
// PrometheusRules is a list of central PrometheusRule objects for this prometheus instance.
PrometheusRules []*monitoringv1.PrometheusRule
// ScrapeConfigs is a list of central ScrapeConfig objects for this prometheus instance.
ScrapeConfigs []*monitoringv1alpha1.ScrapeConfig
// ServiceMonitors is a list of central ServiceMonitor objects for this prometheus instance.
ServiceMonitors []*monitoringv1.ServiceMonitor
// PodMonitors is a list of central PodMonitor objects for this prometheus instance.
PodMonitors []*monitoringv1.PodMonitor
}
CentralConfigs contains configuration for this Prometheus instance that is created together with it. This should only contain configuration that cannot be directly assigned to another component package.
type CortexValues ¶ added in v1.94.0
type CortexValues struct {
// Image defines the container image of cortex.
Image string
// CacheValidity defines the validity of the FIFO cache.
CacheValidity time.Duration
}
CortexValues contains configuration for the cortex frontend sidecar container.
type IngressValues ¶
type IngressValues struct {
// AuthSecretName is the name of the auth secret.
AuthSecretName string
// Host is the hostname under which the Prometheus instance should be exposed.
Host string
// SecretsManager is the secrets manager used for generating the TLS certificate if no wildcard certificate is
// provided.
SecretsManager secretsmanager.Interface
// SigningCA is the name of the CA that should be used the sign a self-signed server certificate. Only needed when
// no wildcard certificate secret is provided.
SigningCA string
// WildcardCertSecretName is name of a secret containing the wildcard TLS certificate which is issued for the
// ingress domain. If not provided, a self-signed server certificate will be created.
WildcardCertSecretName *string
// BlockManagementAndTargetAPIAccess controls whether access to the management and target APIs is blocked when
// accessing Prometheus via ingress.
BlockManagementAndTargetAPIAccess bool
}
IngressValues contains configuration for exposing this Prometheus instance via an Ingress resource.
type Interface ¶ added in v1.93.0
type Interface interface {
component.DeployWaiter
// SetIngressAuthSecret sets the ingress authentication secret name.
SetIngressAuthSecret(*corev1.Secret)
// SetIngressWildcardCertSecret sets the ingress wildcard certificate secret name.
SetIngressWildcardCertSecret(*corev1.Secret)
// SetCentralScrapeConfigs sets the central scrape configs.
SetCentralScrapeConfigs([]*monitoringv1alpha1.ScrapeConfig)
// SetAdditionalScrapeConfigs sets the additional scrape configs.
SetAdditionalScrapeConfigs([]string)
// SetAdditionalResources sets the additional resources.
SetAdditionalResources(...client.Object)
// SetNamespaceUID sets the namespace UID.
SetNamespaceUID(name types.UID)
}
Interface contains functions for a Prometheus deployer.
type RemoteWriteValues ¶ added in v1.95.0
type RemoteWriteValues struct {
// URL is the remote url.
URL string
// KeptMetrics is a list of metrics to keep.
KeptMetrics []string
// GlobalShootRemoteWriteSecret is a secret containing basic auth credentials for the remote write endpoint.
GlobalShootRemoteWriteSecret *corev1.Secret
}
RemoteWriteValues contains remote write configuration for this Prometheus instance.
type TargetClusterValues ¶ added in v1.95.0
type TargetClusterValues struct {
// ServiceAccountName is the name of the ServiceAccount.
ServiceAccountName string
// ScrapesMetrics specifies whether this Prometheus has scrape configs for scraping metrics from components running
// in the target cluster.
ScrapesMetrics bool
}
TargetClusterValues contains configuration in case Prometheus scrapes metrics from another kube-apiserver (e.g., virtual garden, or shoot cluster) or other components running in this cluster.
type Values ¶
type Values struct {
// Name is the name of the prometheus. It will be used for the resource names of Prometheus and ManagedResource.
Name string
// Image defines the container image of prometheus.
Image string
// Version is the version of prometheus.
Version string
// ClusterType is the type of the cluster.
ClusterType component.ClusterType
// PriorityClassName is the name of the priority class for the deployment.
PriorityClassName string
// StorageCapacity is the storage capacity of Prometheus.
StorageCapacity resource.Quantity
// Replicas is the number of replicas.
Replicas int32
// Retention is the duration for the data retention.
Retention *monitoringv1.Duration
// RetentionSize is the size for the data retention.
RetentionSize monitoringv1.ByteSize
// RuntimeVersion is the Kubernetes version of the runtime cluster.
RuntimeVersion *semver.Version
// ScrapeTimeout is the timeout duration when scraping targets.
ScrapeTimeout monitoringv1.Duration
// VPAMinAllowed defines the resource list for the minAllowed field for the prometheus container resource policy.
VPAMinAllowed *corev1.ResourceList
// VPAMaxAllowed defines the resource list for the maxAllowed field for the prometheus container resource policy.
VPAMaxAllowed *corev1.ResourceList
// ExternalLabels is the set of external labels for the Prometheus configuration.
ExternalLabels map[string]string
// AdditionalPodLabels is a map containing additional labels for the created pods.
AdditionalPodLabels map[string]string
// NamespaceUID is the UID of the namespace.
NamespaceUID *types.UID
// CentralConfigs contains configuration for this Prometheus instance that is created together with it. This should
// only contain configuration that cannot be directly assigned to another component package.
CentralConfigs CentralConfigs
// IngressValues contains configuration for exposing this Prometheus instance via an Ingress resource.
Ingress *IngressValues
// Alerting contains alerting configuration for this Prometheus instance.
Alerting *AlertingValues
// RemoteWrite contains remote write configuration for this Prometheus instance.
RemoteWrite *RemoteWriteValues
// AdditionalResources contains any additional resources which get added to the ManagedResource.
AdditionalResources []client.Object
// Cortex contains configuration for the cortex frontend sidecar container.
Cortex *CortexValues
// TargetCluster contains configuration in case Prometheus scrapes metrics from another kube-apiserver (e.g.,
// virtual garden, or shoot cluster) or other components running in this cluster.
TargetCluster *TargetClusterValues
// AdditionalAlertRelabelConfigs contains additional alert relabel configurations.
AdditionalAlertRelabelConfigs []monitoringv1.RelabelConfig
// DataMigration is a struct for migrating data from existing disks.
// TODO(rfranzke): Remove this after v1.97 has been released.
DataMigration monitoring.DataMigration
// RestrictToNamespace controls whether the Prometheus instance should only scrape its targets in its own namespace.
RestrictToNamespace bool
}
Values contains configuration values for the prometheus resources.