Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=monitoring.thanos.io
Index ¶
- Variables
- type Additional
- type BlockConfig
- type BlockDiscoveryStrategy
- type BlockViewerGlobalSyncConfig
- type CacheConfig
- type CommonFields
- type CompactConfig
- type DebugConfig
- type DownsamplingConfig
- type Duration
- type ExternalLabelShardingConfig
- type ExternalLabels
- type FeatureGates
- type InMemoryCacheConfig
- type IndexHeaderConfig
- type IngesterHashringSpec
- type IngesterSpec
- type ObjectStorageConfig
- type QueryFrontendSpec
- type RetentionResolutionConfig
- type RouterSpec
- type ServiceMonitorConfig
- type ShardingConfig
- type ShardingStrategy
- type ShardingStrategyType
- type StorageSize
- type StoreLimitsOptions
- type TSDBConfig
- type TelemetryQuantiles
- type TenancyConfig
- type ThanosCompact
- type ThanosCompactList
- type ThanosCompactSpec
- type ThanosCompactStatus
- type ThanosQuery
- type ThanosQueryList
- type ThanosQuerySpec
- type ThanosQueryStatus
- type ThanosReceive
- type ThanosReceiveList
- type ThanosReceiveSpec
- type ThanosReceiveStatus
- type ThanosRuler
- type ThanosRulerList
- type ThanosRulerSpec
- type ThanosRulerStatus
- type ThanosStore
- type ThanosStoreList
- type ThanosStoreSpec
- type ThanosStoreStatus
- type WebConfig
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "monitoring.thanos.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Additional ¶
type Additional struct { // Additional arguments to pass to the Thanos components. // +kubebuilder:validation:Optional Args []string `json:"additionalArgs,omitempty"` // Additional containers to add to the Thanos components. // +kubebuilder:validation:Optional Containers []corev1.Container `json:"additionalContainers,omitempty"` // Additional volumes to add to the Thanos components. // +kubebuilder:validation:Optional Volumes []corev1.Volume `json:"additionalVolumes,omitempty"` // Additional volume mounts to add to the Thanos component container in a Deployment or StatefulSet // controlled by the operator. // +kubebuilder:validation:Optional VolumeMounts []corev1.VolumeMount `json:"additionalVolumeMounts,omitempty"` // Additional ports to expose on the Thanos component container in a Deployment or StatefulSet // controlled by the operator. // +kubebuilder:validation:Optional Ports []corev1.ContainerPort `json:"additionalPorts,omitempty"` // Additional environment variables to add to the Thanos component container in a Deployment or StatefulSet // controlled by the operator. // +kubebuilder:validation:Optional Env []corev1.EnvVar `json:"additionalEnv,omitempty"` // AdditionalServicePorts are additional ports to expose on the Service for the Thanos component. // +kubebuilder:validation:Optional ServicePorts []corev1.ServicePort `json:"additionalServicePorts,omitempty"` }
Additional holds additional configuration for the Thanos components.
func (*Additional) DeepCopy ¶
func (in *Additional) DeepCopy() *Additional
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Additional.
func (*Additional) DeepCopyInto ¶
func (in *Additional) DeepCopyInto(out *Additional)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockConfig ¶
type BlockConfig struct { // BlockDiscoveryStrategy is the discovery strategy to use for block discovery in storage. // +kubebuilder:default="concurrent" // +kubebuilder:validation:Enum=concurrent;recursive BlockDiscoveryStrategy BlockDiscoveryStrategy `json:"blockDiscoveryStrategy,omitempty"` // BlockFilesConcurrency is the number of goroutines to use when to use when // fetching/uploading block files from object storage. // +kubebuilder:default=1 // +kubebuilder:validation:Optional BlockFilesConcurrency *int32 `json:"blockFilesConcurrency,omitempty"` // BlockMetaFetchConcurrency is the number of goroutines to use when fetching block metadata from object storage. // +kubebuilder:default=32 // +kubebuilder:validation:Optional BlockMetaFetchConcurrency *int32 `json:"blockMetaFetchConcurrency,omitempty"` }
BlockConfig defines settings for block handling.
func (*BlockConfig) DeepCopy ¶
func (in *BlockConfig) DeepCopy() *BlockConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockConfig.
func (*BlockConfig) DeepCopyInto ¶
func (in *BlockConfig) DeepCopyInto(out *BlockConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockDiscoveryStrategy ¶
type BlockDiscoveryStrategy string
BlockDiscoveryStrategy represents the strategy to use for block discovery.
const ( // BlockDiscoveryStrategyConcurrent means stores will concurrently issue one call // per directory to discover active blocks storage. BlockDiscoveryStrategyConcurrent BlockDiscoveryStrategy = "concurrent" // BlockDiscoveryStrategyRecursive means stores iterate through all objects in storage // recursively traversing into each directory. // This avoids N+1 calls at the expense of having slower bucket iterations. BlockDiscoveryStrategyRecursive BlockDiscoveryStrategy = "recursive" )
type BlockViewerGlobalSyncConfig ¶
type BlockViewerGlobalSyncConfig struct { // BlockViewerGlobalSyncInterval for syncing the blocks between local and remote view for /global Block Viewer UI. // +kubebuilder:default="1m" // +kubebuilder:validation:Optional BlockViewerGlobalSyncInterval *Duration `json:"blockViewerGlobalSync,omitempty"` // BlockViewerGlobalSyncTimeout is the maximum time for syncing the blocks // between local and remote view for /global Block Viewer UI. // +kubebuilder:default="5m" // +kubebuilder:validation:Optional BlockViewerGlobalSyncTimeout *Duration `json:"blockViewerGlobalSyncTimeout,omitempty"` }
BlockViewerGlobalSyncConfig is the configuration for syncing the blocks between local and remote view for /global Block Viewer UI.
func (*BlockViewerGlobalSyncConfig) DeepCopy ¶
func (in *BlockViewerGlobalSyncConfig) DeepCopy() *BlockViewerGlobalSyncConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockViewerGlobalSyncConfig.
func (*BlockViewerGlobalSyncConfig) DeepCopyInto ¶
func (in *BlockViewerGlobalSyncConfig) DeepCopyInto(out *BlockViewerGlobalSyncConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CacheConfig ¶
type CacheConfig struct { // InMemoryCacheConfig is the configuration for the in-memory cache. // +kubebuilder:validation:Optional InMemoryCacheConfig *InMemoryCacheConfig `json:"inMemoryCacheConfig,omitempty"` // ExternalCacheConfig is the configuration for the external cache. // +kubebuilder:validation:Optional ExternalCacheConfig *corev1.SecretKeySelector `json:"externalCacheConfig,omitempty"` }
CacheConfig is the configuration for the cache. If both InMemoryCacheConfig and ExternalCacheConfig are specified, the operator will prefer the ExternalCacheConfig. +kubebuilder:validation:Optional
func (*CacheConfig) DeepCopy ¶
func (in *CacheConfig) DeepCopy() *CacheConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CacheConfig.
func (*CacheConfig) DeepCopyInto ¶
func (in *CacheConfig) DeepCopyInto(out *CacheConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommonFields ¶
type CommonFields struct { // Version of Thanos to be deployed. // If not specified, the operator assumes the latest upstream version of // Thanos available at the time when the version of the operator was released. // +kubebuilder:validation:Optional Version *string `json:"version,omitempty"` // Container image to use for the Thanos components. // +kubebuilder:validation:Optional Image *string `json:"image,omitempty"` // Image pull policy for the Thanos containers. // See https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details. // +kubebuilder:validation:Enum=Always;Never;IfNotPresent // +kubebuilder:default:=IfNotPresent // +kubebuilder:validation:Optional ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // An optional list of references to Secrets in the same namespace // to use for pulling images from registries. // See http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +kubebuilder:validation:Optional ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // ResourceRequirements for the Thanos component container. // +kubebuilder:validation:Optional ResourceRequirements *corev1.ResourceRequirements `json:"resourceRequirements,omitempty"` // Log level for Thanos. // +kubebuilder:validation:Enum=debug;info;warn;error // +kubebuilder:validation:Optional LogLevel *string `json:"logLevel,omitempty"` // Log format for Thanos. // +kubebuilder:validation:Enum=logfmt;json // +kubebuilder:default:=logfmt // +kubebuilder:validation:Optional LogFormat *string `json:"logFormat,omitempty"` }
CommonFields are the options available to all Thanos components. These fields reflect runtime changes to managed StatefulSet and Deployment resources. +kubebuilder:validation:Optional +k8s:deepcopy-gen=true
func (*CommonFields) DeepCopy ¶
func (in *CommonFields) DeepCopy() *CommonFields
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonFields.
func (*CommonFields) DeepCopyInto ¶
func (in *CommonFields) DeepCopyInto(out *CommonFields)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompactConfig ¶
type CompactConfig struct { // CompactConcurrency is the number of goroutines to use when compacting blocks. // +kubebuilder:default=1 // +kubebuilder:validation:Optional CompactConcurrency *int32 `json:"compactConcurrency,omitempty"` // BlockFetchConcurrency is the number of goroutines to use when fetching blocks from object storage. // +kubebuilder:default=1 // +kubebuilder:validation:Optional BlockFetchConcurrency *int32 `json:"blockFetchConcurrency,omitempty"` // CleanupInterval configures how often we should clean up partially uploaded blocks and blocks // that are marked for deletion. // Cleaning happens at the end of an iteration. // Setting this to 0s disables the cleanup. // +kubebuilder:default="5m" // +kubebuilder:validation:Optional CleanupInterval *Duration `json:"cleanupInterval,omitempty"` // ConsistencyDelay is the minimum age of fresh (non-compacted) blocks before they are being processed. // Malformed blocks older than the maximum of consistency-delay and 48h0m0s will be removed. // +kubebuilder:default="30m" // +kubebuilder:validation:Optional ConsistencyDelay *Duration `json:"blockConsistencyDelay,omitempty"` }
func (*CompactConfig) DeepCopy ¶
func (in *CompactConfig) DeepCopy() *CompactConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompactConfig.
func (*CompactConfig) DeepCopyInto ¶
func (in *CompactConfig) DeepCopyInto(out *CompactConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DebugConfig ¶
type DebugConfig struct { // AcceptMalformedIndex allows compact to accept blocks with malformed index. // +kubebuilder:default=false // +kubebuilder:validation:Optional AcceptMalformedIndex *bool `json:"acceptMalformedIndex,omitempty"` // MaxCompactionLevel is the maximum compaction level to use when compacting blocks. // +kubebuilder:default=5 // +kubebuilder:validation:Optional MaxCompactionLevel *int32 `json:"maxCompactionLevel,omitempty"` // HaltOnError halts the compact process on critical compaction error. // +kubebuilder:default=false // +kubebuilder:validation:Optional HaltOnError *bool `json:"haltOnError,omitempty"` }
func (*DebugConfig) DeepCopy ¶
func (in *DebugConfig) DeepCopy() *DebugConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DebugConfig.
func (*DebugConfig) DeepCopyInto ¶
func (in *DebugConfig) DeepCopyInto(out *DebugConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DownsamplingConfig ¶
type DownsamplingConfig struct { // Disable downsampling. // +kubebuilder:default=false Disable *bool `json:"downsamplingEnabled,omitempty"` // Concurrency is the number of goroutines to use when downsampling blocks. // +kubebuilder:default=1 // +kubebuilder:validation:Optional Concurrency *int32 `json:"downsamplingConcurrency,omitempty"` }
DownsamplingConfig defines the downsampling configuration for the compact component.
func (*DownsamplingConfig) DeepCopy ¶
func (in *DownsamplingConfig) DeepCopy() *DownsamplingConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownsamplingConfig.
func (*DownsamplingConfig) DeepCopyInto ¶
func (in *DownsamplingConfig) DeepCopyInto(out *DownsamplingConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Duration ¶
type Duration string
Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function. Supported units: y, w, d, h, m, s, ms Examples: `30s`, `1m`, `1h20m15s`, `15d` +kubebuilder:validation:Pattern:="^-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$"
type ExternalLabelShardingConfig ¶
type ExternalLabelShardingConfig struct { // ShardName is the name of the shard. // ShardName is used to identify the shard in the compact component. // +kubebuilder:validation:Required ShardName string `json:"shardName"` // Label is the external label to shard on. // +kubebuilder:validation:Required Label string `json:"label"` // Values are the values (as regular expressions) to shard on. Values []string `json:"values"` }
ExternalLabelShardingConfig defines the sharding configuration based on explicit external labels and their values. The keys are the external labels to shard on and the values are the values (as regular expressions) to shard on. Each value will be a configured and deployed as a separate compact component. For example, if the 'label' is set to `tenant_id` with values `tenant-a` and `!tenant-a` two compact components will be deployed. The resulting compact StatefulSets will have an appropriate --selection.relabel-config flag set to the value of the external label sharding. And named such that:
The first compact component will have the name {ThanosCompact.Name}-{shardName}-0 with the flag --selector.relabel-config= - source_labels: - tenant_id regex: 'tenant-a' action: keep The second compact component will have the name {ThanosCompact.Name}-{shardName}-1 with the flag --selector.relabel-config= - source_labels: - tenant_id regex: '!tenant-a' action: keep
func (*ExternalLabelShardingConfig) DeepCopy ¶
func (in *ExternalLabelShardingConfig) DeepCopy() *ExternalLabelShardingConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalLabelShardingConfig.
func (*ExternalLabelShardingConfig) DeepCopyInto ¶
func (in *ExternalLabelShardingConfig) DeepCopyInto(out *ExternalLabelShardingConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalLabels ¶
ExternalLabels are the labels to add to the metrics. POD_NAME and POD_NAMESPACE are available via the downward API. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:Required https://thanos.io/tip/thanos/storage.md/#external-labels
func (ExternalLabels) DeepCopy ¶
func (in ExternalLabels) DeepCopy() ExternalLabels
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalLabels.
func (ExternalLabels) DeepCopyInto ¶
func (in ExternalLabels) DeepCopyInto(out *ExternalLabels)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FeatureGates ¶
type FeatureGates struct { // ServiceMonitorConfig is the configuration for the ServiceMonitor. // This setting requires the feature gate for ServiceMonitor management to be enabled. // +kubebuilder:validation:Optional // +kubebuilder:default:={enable: true} ServiceMonitorConfig *ServiceMonitorConfig `json:"serviceMonitor,omitempty"` // PrometheusRuleEnabled enables the loading of PrometheusRules into the Thanos Ruler. // This setting is only applicable to ThanosRuler CRD, will be ignored for other components. // +kubebuilder:validation:Optional // +kubebuilder:default:=true PrometheusRuleEnabled *bool `json:"prometheusRuleEnabled,omitempty"` }
FeatureGates holds the configuration for behaviour that is behind feature flags in the operator.
func (*FeatureGates) DeepCopy ¶
func (in *FeatureGates) DeepCopy() *FeatureGates
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGates.
func (*FeatureGates) DeepCopyInto ¶
func (in *FeatureGates) DeepCopyInto(out *FeatureGates)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InMemoryCacheConfig ¶
type InMemoryCacheConfig struct { MaxSize *StorageSize `json:"maxSize,omitempty"` MaxItemSize *StorageSize `json:"maxItemSize,omitempty"` }
InMemoryCacheConfig is the configuration for the in-memory cache.
func (*InMemoryCacheConfig) DeepCopy ¶
func (in *InMemoryCacheConfig) DeepCopy() *InMemoryCacheConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InMemoryCacheConfig.
func (*InMemoryCacheConfig) DeepCopyInto ¶
func (in *InMemoryCacheConfig) DeepCopyInto(out *InMemoryCacheConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IndexHeaderConfig ¶
type IndexHeaderConfig struct { // If true, Store Gateway will lazy memory map index-header only once the block is required by a query. // +kubebuilder:validation:Optional // +kubebuilder:default=true EnableLazyReader *bool `json:"enableLazyReader,omitempty"` // If index-header lazy reader is enabled and this idle timeout setting is > 0, memory map-ed index-headers will be automatically released after 'idle timeout' inactivity // +kubebuilder:default="5m" // +kubebuilder:validation:Optional LazyReaderIdleTimeout *Duration `json:"lazyReaderIdleTimeout,omitempty"` // Strategy of how to download index headers lazily. // If eager, always download index header during initial load. If lazy, download index header during query time. // +kubebuilder:validation:Enum=eager;lazy // +kubebuilder:default=eager // +kubebuilder:validation:Optional LazyDownloadStrategy *string `json:"lazyDownloadStrategy,omitempty"` }
IndexHeaderConfig allows configuration of the Store Gateway index header.
func (*IndexHeaderConfig) DeepCopy ¶
func (in *IndexHeaderConfig) DeepCopy() *IndexHeaderConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IndexHeaderConfig.
func (*IndexHeaderConfig) DeepCopyInto ¶
func (in *IndexHeaderConfig) DeepCopyInto(out *IndexHeaderConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngesterHashringSpec ¶
type IngesterHashringSpec struct { // CommonFields are the options available to all Thanos components. // +kubebuilder:validation:Optional CommonFields `json:",inline"` // Name is the name of the hashring. // Name will be used to generate the names for the resources created for the hashring. // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$` Name string `json:"name"` // Labels are additional labels to add to the ingester components. // Labels set here will overwrite the labels inherited from the ThanosReceive object if they have the same key. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` // ExternalLabels to add to the ingesters tsdb blocks. // +kubebuilder:default={replica: "$(POD_NAME)"} // +kubebuilder:validation:Required ExternalLabels ExternalLabels `json:"externalLabels,omitempty"` // Replicas is the number of replicas/members of the hashring to add to the Thanos Receive StatefulSet. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 // +kubebuilder:validation:Required Replicas int32 `json:"replicas,omitempty"` // TSDB configuration for the ingestor. // +kubebuilder:validation:Required TSDBConfig TSDBConfig `json:"tsdbConfig,omitempty"` // ObjectStorageConfig is the secret that contains the object storage configuration for the hashring. // +kubebuilder:validation:Optional ObjectStorageConfig *ObjectStorageConfig `json:"objectStorageConfig,omitempty"` // StorageSize is the size of the storage to be used by the Thanos Receive StatefulSet. // +kubebuilder:validation:Required StorageSize StorageSize `json:"storageSize"` // TenancyConfig is the configuration for the tenancy options. // +kubebuilder:validation:Optional TenancyConfig *TenancyConfig `json:"tenancyConfig,omitempty"` // AsyncForwardWorkerCount is the number of concurrent workers processing forwarding of remote-write requests. // +kubebuilder:default:=5 // +kubebuilder:validation:Optional AsyncForwardWorkerCount *uint64 `json:"asyncForwardWorkerCount,omitempty"` // StoreLimitsOptions is the configuration for the store API limits options. // +kubebuilder:validation:Optional StoreLimitsOptions *StoreLimitsOptions `json:"storeLimitsOptions,omitempty"` // TooFarInFutureTimeWindow is the allowed time window for ingesting samples too far in the future. // 0s means disabled. // +kubebuilder:default:="0s" // +kubebuilder:validation:Optional TooFarInFutureTimeWindow *Duration `json:"tooFarInFutureTimeWindow,omitempty"` }
IngesterHashringSpec represents the configuration for a hashring to be used by the Thanos Receive StatefulSet.
func (*IngesterHashringSpec) DeepCopy ¶
func (in *IngesterHashringSpec) DeepCopy() *IngesterHashringSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngesterHashringSpec.
func (*IngesterHashringSpec) DeepCopyInto ¶
func (in *IngesterHashringSpec) DeepCopyInto(out *IngesterHashringSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngesterSpec ¶
type IngesterSpec struct { // DefaultObjectStorageConfig is the secret that contains the object storage configuration for the ingest components. // Can be overridden by the ObjectStorageConfig in the IngesterHashringSpec per hashring. // +kubebuilder:validation:Required DefaultObjectStorageConfig ObjectStorageConfig `json:"defaultObjectStorageConfig,omitempty"` // Hashrings is a list of hashrings to route to. // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:Required // +listType=map // +listMapKey=name Hashrings []IngesterHashringSpec `json:"hashrings,omitempty"` // Additional configuration for the Thanos components. Allows you to add // additional args, containers, volumes, and volume mounts to Thanos Deployments, // and StatefulSets. Ideal to use for things like sidecars. // +kubebuilder:validation:Optional Additional `json:",inline"` }
IngesterSpec represents the configuration for the ingestor
func (*IngesterSpec) DeepCopy ¶
func (in *IngesterSpec) DeepCopy() *IngesterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngesterSpec.
func (*IngesterSpec) DeepCopyInto ¶
func (in *IngesterSpec) DeepCopyInto(out *IngesterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectStorageConfig ¶
type ObjectStorageConfig corev1.SecretKeySelector
ObjectStorageConfig is the secret that contains the object storage configuration. The secret needs to be in the same namespace as the ReceiveHashring object. See https://thanos.io/tip/thanos/storage.md/#supported-clients for relevant documentation.
func (*ObjectStorageConfig) DeepCopy ¶
func (in *ObjectStorageConfig) DeepCopy() *ObjectStorageConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageConfig.
func (*ObjectStorageConfig) DeepCopyInto ¶
func (in *ObjectStorageConfig) DeepCopyInto(out *ObjectStorageConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ObjectStorageConfig) ToSecretKeySelector ¶
func (osc *ObjectStorageConfig) ToSecretKeySelector() corev1.SecretKeySelector
type QueryFrontendSpec ¶
type QueryFrontendSpec struct { CommonFields `json:",inline"` // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 Replicas int32 `json:"replicas,omitempty"` // CompressResponses enables response compression // +kubebuilder:default=true CompressResponses bool `json:"compressResponses,omitempty"` // By default, the operator will add the first discoverable Query API to the // Query Frontend, if they have query labels. You can optionally choose to override default // Query selector labels, to select a subset of QueryAPIs to query. // +kubebuilder:validation:Optional // +kubebuilder:default:={matchLabels:{"operator.thanos.io/query-api": "true"}} QueryLabelSelector *metav1.LabelSelector `json:"queryLabelSelector,omitempty"` // LogQueriesLongerThan sets the duration threshold for logging long queries // +kubebuilder:validation:Optional LogQueriesLongerThan *Duration `json:"logQueriesLongerThan,omitempty"` // QueryRangeResponseCacheConfig holds the configuration for the query range response cache // +kubebuilder:validation:Optional QueryRangeResponseCacheConfig *CacheConfig `json:"queryRangeResponseCacheConfig,omitempty"` // QueryRangeSplitInterval sets the split interval for query range // +kubebuilder:validation:Optional QueryRangeSplitInterval *Duration `json:"queryRangeSplitInterval,omitempty"` // LabelsSplitInterval sets the split interval for labels // +kubebuilder:validation:Optional LabelsSplitInterval *Duration `json:"labelsSplitInterval,omitempty"` // QueryRangeMaxRetries sets the maximum number of retries for query range requests // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=5 QueryRangeMaxRetries int `json:"queryRangeMaxRetries,omitempty"` // LabelsMaxRetries sets the maximum number of retries for label requests // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=5 LabelsMaxRetries int `json:"labelsMaxRetries,omitempty"` // LabelsDefaultTimeRange sets the default time range for label queries // +kubebuilder:validation:Optional LabelsDefaultTimeRange *Duration `json:"labelsDefaultTimeRange,omitempty"` // Additional configuration for the Thanos components Additional `json:",inline"` }
QueryFrontendSpec defines the desired state of ThanosQueryFrontend
func (*QueryFrontendSpec) DeepCopy ¶
func (in *QueryFrontendSpec) DeepCopy() *QueryFrontendSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueryFrontendSpec.
func (*QueryFrontendSpec) DeepCopyInto ¶
func (in *QueryFrontendSpec) DeepCopyInto(out *QueryFrontendSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetentionResolutionConfig ¶
type RetentionResolutionConfig struct { // Raw is the retention configuration for the raw samples. // This configures how long to retain raw samples in the storage. // The default value is 0d, which means samples are retained indefinitely. // +kubebuilder:default="0d" // +kubebuilder:validation:Required Raw Duration `json:"raw,omitempty"` // FiveMinutes is the retention configuration for samples of resolution 1 (5 minutes). // This configures how long to retain samples of resolution 1 (5 minutes) in storage. // The default value is 0d, which means these samples are retained indefinitely. // +kubebuilder:default="0d" // +kubebuilder:validation:Required FiveMinutes Duration `json:"fiveMinutes,omitempty"` // OneHour is the retention configuration for samples of resolution 2 (1 hour). // This configures how long to retain samples of resolution 2 (1 hour) in storage. // The default value is 0d, which means these samples are retained indefinitely. // +kubebuilder:default="0d" // +kubebuilder:validation:Required OneHour Duration `json:"oneHour,omitempty"` }
RetentionResolutionConfig defines the retention configuration for the compact component.
func (*RetentionResolutionConfig) DeepCopy ¶
func (in *RetentionResolutionConfig) DeepCopy() *RetentionResolutionConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionResolutionConfig.
func (*RetentionResolutionConfig) DeepCopyInto ¶
func (in *RetentionResolutionConfig) DeepCopyInto(out *RetentionResolutionConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterSpec ¶
type RouterSpec struct { // CommonFields are the options available to all Thanos components. // +kubebuilder:validation:Optional CommonFields `json:",inline"` // Labels are additional labels to add to the router components. // Labels set here will overwrite the labels inherited from the ThanosReceive object if they have the same key. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` // Replicas is the number of router replicas. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 // +kubebuilder:validation:Required Replicas int32 `json:"replicas,omitempty"` // ReplicationFactor is the replication factor for the router. // +kubebuilder:default=1 // +kubebuilder:validation:Enum=1;3;5 // +kubebuilder:validation:Required ReplicationFactor int32 `json:"replicationFactor,omitempty"` // ExternalLabels set and forwarded by the router to the ingesters. // +kubebuilder:default={receive: "true"} // +kubebuilder:validation:Required ExternalLabels ExternalLabels `json:"externalLabels,omitempty"` // Additional configuration for the Thanos components. Allows you to add // additional args, containers, volumes, and volume mounts to Thanos Deployments, // and StatefulSets. Ideal to use for things like sidecars. // +kubebuilder:validation:Optional Additional `json:",inline"` }
RouterSpec represents the configuration for the router
func (*RouterSpec) DeepCopy ¶
func (in *RouterSpec) DeepCopy() *RouterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterSpec.
func (*RouterSpec) DeepCopyInto ¶
func (in *RouterSpec) DeepCopyInto(out *RouterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceMonitorConfig ¶
type ServiceMonitorConfig struct { // Enable the management of ServiceMonitors for the Thanos component. // If not specified, the operator will default to true. // +kubebuilder:validation:Optional Enable *bool `json:"enable,omitempty"` // Labels to add to the ServiceMonitor. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` }
ServiceMonitorConfig is the configuration for the ServiceMonitor.
func (*ServiceMonitorConfig) DeepCopy ¶
func (in *ServiceMonitorConfig) DeepCopy() *ServiceMonitorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMonitorConfig.
func (*ServiceMonitorConfig) DeepCopyInto ¶
func (in *ServiceMonitorConfig) DeepCopyInto(out *ServiceMonitorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ShardingConfig ¶
type ShardingConfig struct { // ExternalLabelSharding is the sharding configuration based on explicit external labels and their values. // +kubebuilder:validation:Optional // +listType=map // +listMapKey=shardName ExternalLabelSharding []ExternalLabelShardingConfig `json:"externalLabelSharding,omitempty"` }
ShardingConfig defines the sharding configuration for the compact component.
func (*ShardingConfig) DeepCopy ¶
func (in *ShardingConfig) DeepCopy() *ShardingConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardingConfig.
func (*ShardingConfig) DeepCopyInto ¶
func (in *ShardingConfig) DeepCopyInto(out *ShardingConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ShardingStrategy ¶
type ShardingStrategy struct { // Type here is the type of sharding strategy. // +kubebuilder:validation:Required // +kubebuilder:default="block" // +kubebuilder:validation:Enum=block Type ShardingStrategyType `json:"type,omitempty"` // Shards is the number of shards to split the data into. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 Shards int32 `json:"shards,omitempty"` }
ShardingStrategy controls the automatic deployment of multiple store gateways sharded by block ID by hashmoding __block_id label value.
func (*ShardingStrategy) DeepCopy ¶
func (in *ShardingStrategy) DeepCopy() *ShardingStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardingStrategy.
func (*ShardingStrategy) DeepCopyInto ¶
func (in *ShardingStrategy) DeepCopyInto(out *ShardingStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ShardingStrategyType ¶
type ShardingStrategyType string
const ( // Block is the block modulo sharding strategy for sharding Stores according to block ids. Block ShardingStrategyType = "block" )
type StorageSize ¶
type StorageSize string
StorageSize is the size of the PV storage to be used by a Thanos component. +kubebuilder:validation:Required +kubebuilder:validation:Pattern=`^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$`
func (StorageSize) ToResourceQuantity ¶
func (s StorageSize) ToResourceQuantity() resource.Quantity
ToResourceQuantity converts a StorageSize to a resource.Quantity.
type StoreLimitsOptions ¶
type StoreLimitsOptions struct { // StoreLimitsRequestSamples is the maximum samples allowed for a single StoreAPI Series request. // 0 means no limit. // +kubebuilder:default=0 StoreLimitsRequestSamples uint64 `json:"storeLimitsRequestSamples,omitempty"` // StoreLimitsRequestSeries is the maximum series allowed for a single StoreAPI Series request. // 0 means no limit. // +kubebuilder:default=0 StoreLimitsRequestSeries uint64 `json:"storeLimitsRequestSeries,omitempty"` }
StoreLimitsOptions is the configuration for the store API limits options.
func (*StoreLimitsOptions) DeepCopy ¶
func (in *StoreLimitsOptions) DeepCopy() *StoreLimitsOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreLimitsOptions.
func (*StoreLimitsOptions) DeepCopyInto ¶
func (in *StoreLimitsOptions) DeepCopyInto(out *StoreLimitsOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TSDBConfig ¶
type TSDBConfig struct { // Retention is the duration for which a particular TSDB will retain data. // +kubebuilder:default="2h" // +kubebuilder:validation:Required Retention Duration `json:"retention,omitempty"` }
TSDBConfig specifies configuration for any particular Thanos TSDB. NOTE: Some of these options will not exist for all components, in which case, even if specified can be ignored.
func (*TSDBConfig) DeepCopy ¶
func (in *TSDBConfig) DeepCopy() *TSDBConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TSDBConfig.
func (*TSDBConfig) DeepCopyInto ¶
func (in *TSDBConfig) DeepCopyInto(out *TSDBConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TelemetryQuantiles ¶
type TelemetryQuantiles struct { // Duration is the quantiles for exporting metrics about the request duration. // +kubebuilder:validation:Optional Duration []string `json:"duration,omitempty"` // Samples is the quantiles for exporting metrics about the samples count. // +kubebuilder:validation:Optional Samples []string `json:"samples,omitempty"` // Series is the quantiles for exporting metrics about the series count. // +kubebuilder:validation:Optional Series []string `json:"series,omitempty"` }
TelemetryQuantiles is the configuration for the request telemetry quantiles. Float usage is discouraged by controller-runtime, so we use string instead.
func (*TelemetryQuantiles) DeepCopy ¶
func (in *TelemetryQuantiles) DeepCopy() *TelemetryQuantiles
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TelemetryQuantiles.
func (*TelemetryQuantiles) DeepCopyInto ¶
func (in *TelemetryQuantiles) DeepCopyInto(out *TelemetryQuantiles)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TenancyConfig ¶
type TenancyConfig struct { // Tenants is a list of tenants that should be matched by the hashring. // An empty list matches all tenants. // +kubebuilder:validation:Optional Tenants []string `json:"tenants,omitempty"` // TenantMatcherType is the type of tenant matching to use. // +kubebuilder:default:="exact" // +kubebuilder:validation:Enum=exact;glob TenantMatcherType string `json:"tenantMatcherType,omitempty"` // TenantHeader is the HTTP header to determine tenant for write requests. // +kubebuilder:default="THANOS-TENANT" TenantHeader string `json:"tenantHeader,omitempty"` // TenantCertificateField is the TLS client's certificate field to determine tenant for write requests. // +kubebuilder:validation:Enum=organization;organizationalUnit;commonName // +kubebuilder:validation:Optional TenantCertificateField *string `json:"tenantCertificateField,omitempty"` // DefaultTenantID is the default tenant ID to use when none is provided via a header. // +kubebuilder:default="default-tenant" DefaultTenantID string `json:"defaultTenantID,omitempty"` // SplitTenantLabelName is the label name through which the request will be split into multiple tenants. // +kubebuilder:validation:Optional SplitTenantLabelName *string `json:"splitTenantLabelName,omitempty"` // TenantLabelName is the label name through which the tenant will be announced. // +kubebuilder:default="tenant_id" TenantLabelName string `json:"tenantLabelName,omitempty"` }
TenancyConfig is the configuration for the tenancy options.
func (*TenancyConfig) DeepCopy ¶
func (in *TenancyConfig) DeepCopy() *TenancyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenancyConfig.
func (*TenancyConfig) DeepCopyInto ¶
func (in *TenancyConfig) DeepCopyInto(out *TenancyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosCompact ¶
type ThanosCompact struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ThanosCompactSpec `json:"spec,omitempty"` Status ThanosCompactStatus `json:"status,omitempty"` }
ThanosCompact is the Schema for the thanoscompacts API
func (*ThanosCompact) DeepCopy ¶
func (in *ThanosCompact) DeepCopy() *ThanosCompact
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosCompact.
func (*ThanosCompact) DeepCopyInto ¶
func (in *ThanosCompact) DeepCopyInto(out *ThanosCompact)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosCompact) DeepCopyObject ¶
func (in *ThanosCompact) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosCompactList ¶
type ThanosCompactList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ThanosCompact `json:"items"` }
ThanosCompactList contains a list of ThanosCompact
func (*ThanosCompactList) DeepCopy ¶
func (in *ThanosCompactList) DeepCopy() *ThanosCompactList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosCompactList.
func (*ThanosCompactList) DeepCopyInto ¶
func (in *ThanosCompactList) DeepCopyInto(out *ThanosCompactList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosCompactList) DeepCopyObject ¶
func (in *ThanosCompactList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosCompactSpec ¶
type ThanosCompactSpec struct { // CommonFields are the options available to all Thanos components. CommonFields `json:",inline"` // Labels are additional labels to add to the Compact component. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` // ObjectStorageConfig is the object storage configuration for the compact component. // +kubebuilder:validation:Required ObjectStorageConfig ObjectStorageConfig `json:"objectStorageConfig"` // StorageSize is the size of the storage to be used by the Thanos Compact StatefulSets. // +kubebuilder:validation:Required StorageSize StorageSize `json:"storageSize"` // RetentionConfig is the retention configuration for the compact component. // +kubebuilder:validation:Required RetentionConfig RetentionResolutionConfig `json:"retentionConfig,omitempty"` // BlockConfig defines settings for block handling. // +kubebuilder:validation:Optional BlockConfig *BlockConfig `json:"blockConfig,omitempty"` // BlockViewerGlobalSync is the configuration for syncing the blocks between local and remote view for /global Block Viewer UI. // +kubebuilder:validation:Optional BlockViewerGlobalSync *BlockViewerGlobalSyncConfig `json:"blockViewerGlobalSync,omitempty"` // ShardingConfig is the sharding configuration for the compact component. // +kubebuilder:validation:Optional ShardingConfig *ShardingConfig `json:"shardingConfig,omitempty"` // CompactConfig is the configuration for the compact component. // +kubebuilder:validation:Optional CompactConfig *CompactConfig `json:"compactConfig,omitempty"` // DownsamplingConfig is the downsampling configuration for the compact component. // +kubebuilder:validation:Optional DownsamplingConfig *DownsamplingConfig `json:"downsamplingConfig,omitempty"` // DebugConfig is the debug configuration for the compact component. // +kubebuilder:validation:Optional DebugConfig *DebugConfig `json:"debugConfig,omitempty"` // Minimum time range to serve. Any data earlier than this lower time range will be ignored. // If not set, will be set as zero value, so most recent blocks will be served. // +kubebuilder:validation:Optional MinTime *Duration `json:"minTime,omitempty"` // Maximum time range to serve. Any data after this upper time range will be ignored. // If not set, will be set as max value, so all blocks will be served. // +kubebuilder:validation:Optional MaxTime *Duration `json:"maxTime,omitempty"` // When a resource is paused, no actions except for deletion // will be performed on the underlying objects. // +kubebuilder:validation:Optional Paused *bool `json:"paused,omitempty"` // FeatureGates are feature gates for the compact component. // +kubebuilder:validation:Optional // +kubebuilder:default:={"serviceMonitor":{"enable":true}} FeatureGates *FeatureGates `json:"featureGates,omitempty"` // Additional configuration for the Thanos components. Allows you to add // additional args, containers, volumes, and volume mounts to Thanos Deployments, // and StatefulSets. Ideal to use for things like sidecars. // +kubebuilder:validation:Optional Additional `json:",inline"` }
ThanosCompactSpec defines the desired state of ThanosCompact
func (*ThanosCompactSpec) DeepCopy ¶
func (in *ThanosCompactSpec) DeepCopy() *ThanosCompactSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosCompactSpec.
func (*ThanosCompactSpec) DeepCopyInto ¶
func (in *ThanosCompactSpec) DeepCopyInto(out *ThanosCompactSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosCompactStatus ¶
type ThanosCompactStatus struct { // Conditions represent the latest available observations of the state of the hashring. Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
ThanosCompactStatus defines the observed state of ThanosCompact
func (*ThanosCompactStatus) DeepCopy ¶
func (in *ThanosCompactStatus) DeepCopy() *ThanosCompactStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosCompactStatus.
func (*ThanosCompactStatus) DeepCopyInto ¶
func (in *ThanosCompactStatus) DeepCopyInto(out *ThanosCompactStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosQuery ¶
type ThanosQuery struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ThanosQuerySpec `json:"spec,omitempty"` Status ThanosQueryStatus `json:"status,omitempty"` }
ThanosQuery is the Schema for the thanosqueries API
func (*ThanosQuery) DeepCopy ¶
func (in *ThanosQuery) DeepCopy() *ThanosQuery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosQuery.
func (*ThanosQuery) DeepCopyInto ¶
func (in *ThanosQuery) DeepCopyInto(out *ThanosQuery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosQuery) DeepCopyObject ¶
func (in *ThanosQuery) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosQueryList ¶
type ThanosQueryList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ThanosQuery `json:"items"` }
ThanosQueryList contains a list of ThanosQuery
func (*ThanosQueryList) DeepCopy ¶
func (in *ThanosQueryList) DeepCopy() *ThanosQueryList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosQueryList.
func (*ThanosQueryList) DeepCopyInto ¶
func (in *ThanosQueryList) DeepCopyInto(out *ThanosQueryList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosQueryList) DeepCopyObject ¶
func (in *ThanosQueryList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosQuerySpec ¶
type ThanosQuerySpec struct { CommonFields `json:",inline"` // Replicas is the number of querier replicas. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 // +kubebuilder:validation:Required Replicas int32 `json:"replicas,omitempty"` // Labels are additional labels to add to the Querier component. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` // ReplicaLabels are labels to treat as a replica indicator along which data is deduplicated. // Data can still be queried without deduplication using 'dedup=false' parameter. // Data includes time series, recording rules, and alerting rules. // Refer to https://thanos.io/tip/components/query.md/#deduplication-replica-labels // +kubebuilder:default:={"replica"} // +kubebuilder:validation:Optional ReplicaLabels []string `json:"replicaLabels,omitempty"` // StoreLabelSelector enables adding additional labels to build a custom label selector // for discoverable StoreAPIs. Values provided here will be appended to the default which are // {"operator.thanos.io/store-api": "true", "app.kubernetes.io/part-of": "thanos"}. // +kubebuilder:validation:Optional StoreLabelSelector *metav1.LabelSelector `json:"customStoreLabelSelector,omitempty"` // TelemetryQuantiles is the configuration for the request telemetry quantiles. // +kubebuilder:validation:Optional TelemetryQuantiles *TelemetryQuantiles `json:"telemetryQuantiles,omitempty"` // WebConfig is the configuration for the Query UI and API web options. // +kubebuilder:validation:Optional WebConfig *WebConfig `json:"webConfig,omitempty"` // GRPCProxyStrategy is the strategy to use when proxying Series requests to leaf nodes. // +kubebuilder:validation:Enum=eager;lazy // +kubebuilder:default=eager GRPCProxyStrategy string `json:"grpcProxyStrategy,omitempty"` // QueryFrontend is the configuration for the Query Frontend // If you specify this, the operator will create a Query Frontend in front of your query deployment. // +kubebuilder:validation:Optional QueryFrontend *QueryFrontendSpec `json:"queryFrontend,omitempty"` // When a resource is paused, no actions except for deletion // will be performed on the underlying objects. // +kubebuilder:validation:Optional Paused *bool `json:"paused,omitempty"` // FeatureGates are feature gates for the compact component. // +kubebuilder:validation:Optional // +kubebuilder:default:={"serviceMonitor":{"enable":true}} FeatureGates *FeatureGates `json:"featureGates,omitempty"` // Additional configuration for the Thanos components. Allows you to add // additional args, containers, volumes, and volume mounts to Thanos Deployments, // and StatefulSets. Ideal to use for things like sidecars. // +kubebuilder:validation:Optional Additional `json:",inline"` }
ThanosQuerySpec defines the desired state of ThanosQuery
func (*ThanosQuerySpec) DeepCopy ¶
func (in *ThanosQuerySpec) DeepCopy() *ThanosQuerySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosQuerySpec.
func (*ThanosQuerySpec) DeepCopyInto ¶
func (in *ThanosQuerySpec) DeepCopyInto(out *ThanosQuerySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosQueryStatus ¶
type ThanosQueryStatus struct { // Conditions represent the latest available observations of the state of the Querier. Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
ThanosQueryStatus defines the observed state of ThanosQuery
func (*ThanosQueryStatus) DeepCopy ¶
func (in *ThanosQueryStatus) DeepCopy() *ThanosQueryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosQueryStatus.
func (*ThanosQueryStatus) DeepCopyInto ¶
func (in *ThanosQueryStatus) DeepCopyInto(out *ThanosQueryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosReceive ¶
type ThanosReceive struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Spec defines the desired state of ThanosReceive Spec ThanosReceiveSpec `json:"spec,omitempty"` // Status defines the observed state of ThanosReceive Status ThanosReceiveStatus `json:"status,omitempty"` }
ThanosReceive is the Schema for the thanosreceives API
func (*ThanosReceive) DeepCopy ¶
func (in *ThanosReceive) DeepCopy() *ThanosReceive
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosReceive.
func (*ThanosReceive) DeepCopyInto ¶
func (in *ThanosReceive) DeepCopyInto(out *ThanosReceive)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosReceive) DeepCopyObject ¶
func (in *ThanosReceive) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosReceiveList ¶
type ThanosReceiveList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ThanosReceive `json:"items"` }
ThanosReceiveList contains a list of ThanosReceive
func (*ThanosReceiveList) DeepCopy ¶
func (in *ThanosReceiveList) DeepCopy() *ThanosReceiveList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosReceiveList.
func (*ThanosReceiveList) DeepCopyInto ¶
func (in *ThanosReceiveList) DeepCopyInto(out *ThanosReceiveList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosReceiveList) DeepCopyObject ¶
func (in *ThanosReceiveList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosReceiveSpec ¶
type ThanosReceiveSpec struct { // Router is the configuration for the router. // +kubebuilder:validation:Required Router RouterSpec `json:"routerSpec,omitempty"` // Ingester is the configuration for the ingestor. // +kubebuilder:validation:Required Ingester IngesterSpec `json:"ingesterSpec,omitempty"` // When a resource is paused, no actions except for deletion // will be performed on the underlying objects. // +kubebuilder:validation:Optional Paused *bool `json:"paused,omitempty"` // FeatureGates are feature gates for the compact component. // +kubebuilder:validation:Optional // +kubebuilder:default:={"serviceMonitor":{"enable":true}} FeatureGates *FeatureGates `json:"featureGates,omitempty"` }
ThanosReceiveSpec defines the desired state of ThanosReceive +kubebuilder:validation:XValidation:rule="self.ingesterSpec.hashrings.all(h, h.replicas >= self.routerSpec.replicationFactor )", message=" Ingester replicas must be greater than or equal to the Router replicas"
func (*ThanosReceiveSpec) DeepCopy ¶
func (in *ThanosReceiveSpec) DeepCopy() *ThanosReceiveSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosReceiveSpec.
func (*ThanosReceiveSpec) DeepCopyInto ¶
func (in *ThanosReceiveSpec) DeepCopyInto(out *ThanosReceiveSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosReceiveStatus ¶
type ThanosReceiveStatus struct { // Conditions represent the latest available observations of the state of the hashring. Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
ThanosReceiveStatus defines the observed state of ThanosReceive
func (*ThanosReceiveStatus) DeepCopy ¶
func (in *ThanosReceiveStatus) DeepCopy() *ThanosReceiveStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosReceiveStatus.
func (*ThanosReceiveStatus) DeepCopyInto ¶
func (in *ThanosReceiveStatus) DeepCopyInto(out *ThanosReceiveStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosRuler ¶
type ThanosRuler struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ThanosRulerSpec `json:"spec,omitempty"` Status ThanosRulerStatus `json:"status,omitempty"` }
ThanosRuler is the Schema for the thanosrulers API
func (*ThanosRuler) DeepCopy ¶
func (in *ThanosRuler) DeepCopy() *ThanosRuler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosRuler.
func (*ThanosRuler) DeepCopyInto ¶
func (in *ThanosRuler) DeepCopyInto(out *ThanosRuler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosRuler) DeepCopyObject ¶
func (in *ThanosRuler) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosRulerList ¶
type ThanosRulerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ThanosRuler `json:"items"` }
ThanosRulerList contains a list of ThanosRuler
func (*ThanosRulerList) DeepCopy ¶
func (in *ThanosRulerList) DeepCopy() *ThanosRulerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosRulerList.
func (*ThanosRulerList) DeepCopyInto ¶
func (in *ThanosRulerList) DeepCopyInto(out *ThanosRulerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosRulerList) DeepCopyObject ¶
func (in *ThanosRulerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosRulerSpec ¶
type ThanosRulerSpec struct { CommonFields `json:",inline"` // Labels are additional labels to add to the Ruler component. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` // Replicas is the number of Ruler replicas. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 // +kubebuilder:validation:Required Replicas int32 `json:"replicas,omitempty"` // QueryLabelSelector is the label selector to discover Queriers. // It enables adding additional labels to build a custom label selector for discoverable QueryAPIs. // Values provided here will be appended to the default which are: // {"operator.thanos.io/query-api": "true", "app.kubernetes.io/part-of": "thanos"}. // +kubebuilder:validation:Optional QueryLabelSelector *metav1.LabelSelector `json:"queryLabelSelector,omitempty"` // ObjectStorageConfig is the secret that contains the object storage configuration for Ruler to upload blocks. // +kubebuilder:validation:Required ObjectStorageConfig ObjectStorageConfig `json:"defaultObjectStorageConfig,omitempty"` // RuleConfigSelector is the label selector to discover ConfigMaps with rule files. // It enables adding additional labels to build a custom label selector for discoverable rule files. // Values provided here will be appended to the default which is: // {"operator.thanos.io/rule-file": "true"}. RuleConfigSelector *metav1.LabelSelector `json:"ruleConfigSelector,omitempty"` // AlertmanagerURL is the URL of the Alertmanager to which the Ruler will send alerts. // The scheme should not be empty e.g http might be used. The scheme may be prefixed with // 'dns+' or 'dnssrv+' to detect Alertmanager IPs through respective DNS lookups. // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=`^((dns\+)?(dnssrv\+)?(http|https):\/\/)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(:[0-9]{1,5})?$` AlertmanagerURL string `json:"alertmanagerURL,omitempty"` // ExternalLabels set on Ruler TSDB, for query time deduplication. // +kubebuilder:default={rule_replica: "$(NAME)"} // +kubebuilder:validation:Required ExternalLabels ExternalLabels `json:"externalLabels,omitempty"` // EvaluationInterval is the default interval at which rules are evaluated. // +kubebuilder:default="1m" EvaluationInterval Duration `json:"evaluationInterval,omitempty"` // Labels to drop before Ruler sends alerts to alertmanager. // +kubebuilder:validation:Optional AlertLabelDrop []string `json:"alertLabelDrop,omitempty"` // Retention is the duration for which the Thanos Rule StatefulSet will retain data. // +kubebuilder:default="2h" // +kubebuilder:validation:Required Retention Duration `json:"retention,omitempty"` // StorageSize is the size of the storage to be used by the Thanos Ruler StatefulSet. // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=`^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$` StorageSize string `json:"storageSize"` // When a resource is paused, no actions except for deletion // will be performed on the underlying objects. // +kubebuilder:validation:Optional Paused *bool `json:"paused,omitempty"` // FeatureGates are feature gates for the rule component. // +kubebuilder:validation:Optional // +kubebuilder:default:={"serviceMonitor":{"enable":true}, "prometheusRuleEnabled":true} FeatureGates *FeatureGates `json:"featureGates,omitempty"` // PrometheusRuleSelector is the label selector to discover PrometheusRule CRDs. // Once detected, these rules are made into configmaps and added to the Ruler. // +kubebuilder:default:={matchLabels:{"operator.thanos.io/prometheus-rule": "true"}} // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="self.matchLabels.size() >= 1 || self.matchExpressions.size() >= 1",message="PrometheusRuleSelector must have at least one label selector" PrometheusRuleSelector metav1.LabelSelector `json:"prometheusRuleSelector,omitempty"` // Additional configuration for the Thanos components. Allows you to add // additional args, containers, volumes, and volume mounts to Thanos Deployments, // and StatefulSets. Ideal to use for things like sidecars. // +kubebuilder:validation:Optional Additional `json:",inline"` }
ThanosRulerSpec defines the desired state of ThanosRuler
func (*ThanosRulerSpec) DeepCopy ¶
func (in *ThanosRulerSpec) DeepCopy() *ThanosRulerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosRulerSpec.
func (*ThanosRulerSpec) DeepCopyInto ¶
func (in *ThanosRulerSpec) DeepCopyInto(out *ThanosRulerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosRulerStatus ¶
type ThanosRulerStatus struct { // Conditions represent the latest available observations of the state of the Ruler. Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
ThanosRulerStatus defines the observed state of ThanosRuler
func (*ThanosRulerStatus) DeepCopy ¶
func (in *ThanosRulerStatus) DeepCopy() *ThanosRulerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosRulerStatus.
func (*ThanosRulerStatus) DeepCopyInto ¶
func (in *ThanosRulerStatus) DeepCopyInto(out *ThanosRulerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosStore ¶
type ThanosStore struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ThanosStoreSpec `json:"spec,omitempty"` Status ThanosStoreStatus `json:"status,omitempty"` }
ThanosStore is the Schema for the thanosstores API
func (*ThanosStore) DeepCopy ¶
func (in *ThanosStore) DeepCopy() *ThanosStore
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosStore.
func (*ThanosStore) DeepCopyInto ¶
func (in *ThanosStore) DeepCopyInto(out *ThanosStore)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosStore) DeepCopyObject ¶
func (in *ThanosStore) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosStoreList ¶
type ThanosStoreList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ThanosStore `json:"items"` }
ThanosStoreList contains a list of ThanosStore
func (*ThanosStoreList) DeepCopy ¶
func (in *ThanosStoreList) DeepCopy() *ThanosStoreList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosStoreList.
func (*ThanosStoreList) DeepCopyInto ¶
func (in *ThanosStoreList) DeepCopyInto(out *ThanosStoreList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ThanosStoreList) DeepCopyObject ¶
func (in *ThanosStoreList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ThanosStoreSpec ¶
type ThanosStoreSpec struct { CommonFields `json:",inline"` // Replicas is the number of store or store shard replicas. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 // +kubebuilder:validation:Required Replicas int32 `json:"replicas,omitempty"` // Labels are additional labels to add to the Store component. // +kubebuilder:validation:Optional Labels map[string]string `json:"labels,omitempty"` // ObjectStorageConfig is the secret that contains the object storage configuration for Store Gateways. // +kubebuilder:validation:Required ObjectStorageConfig ObjectStorageConfig `json:"objectStorageConfig,omitempty"` // StorageSize is the size of the storage to be used by the Thanos Store StatefulSets. // +kubebuilder:validation:Required StorageSize StorageSize `json:"storageSize"` // Duration after which the blocks marked for deletion will be filtered out while fetching blocks. // The idea of ignore-deletion-marks-delay is to ignore blocks that are marked for deletion with some delay. // This ensures store can still serve blocks that are meant to be deleted but do not have a replacement yet. // If delete-delay duration is provided to compactor or bucket verify component, it will upload deletion-mark.json // file to mark after what duration the block should be deleted rather than deleting the block straight away. // +kubebuilder:default="24h" IgnoreDeletionMarksDelay Duration `json:"ignoreDeletionMarksDelay,omitempty"` // IndexCacheConfig allows configuration of the index cache. // See format details: https://thanos.io/tip/components/store.md/#index-cache // +kubebuilder:validation:Optional IndexCacheConfig *CacheConfig `json:"indexCacheConfig,omitempty"` // CachingBucketConfig allows configuration of the caching bucket. // See format details: https://thanos.io/tip/components/store.md/#caching-bucket // +kubebuilder:validation:Optional CachingBucketConfig *CacheConfig `json:"cachingBucketConfig,omitempty"` // ShardingStrategy defines the sharding strategy for the Store Gateways across object storage blocks. // +kubebuilder:validation:Required ShardingStrategy ShardingStrategy `json:"shardingStrategy,omitempty"` // Minimum time range to serve. Any data earlier than this lower time range will be ignored. // If not set, will be set as zero value, so most recent blocks will be served. // +kubebuilder:validation:Optional MinTime *Duration `json:"minTime,omitempty"` // Maximum time range to serve. Any data after this upper time range will be ignored. // If not set, will be set as max value, so all blocks will be served. // +kubebuilder:validation:Optional MaxTime *Duration `json:"maxTime,omitempty"` // StoreLimitsOptions allows configuration of the store API limits. // +kubebuilder:validation:Optional StoreLimitsOptions *StoreLimitsOptions `json:"storeLimitsOptions,omitempty"` // IndexHeaderConfig allows configuration of the Store Gateway index header. // +kubebuilder:validation:Optional IndexHeaderConfig *IndexHeaderConfig `json:"indexHeaderConfig,omitempty"` // BlockConfig defines settings for block handling. // +kubebuilder:validation:Optional BlockConfig *BlockConfig `json:"blockConfig,omitempty"` // When a resource is paused, no actions except for deletion // will be performed on the underlying objects. // +kubebuilder:validation:Optional Paused *bool `json:"paused,omitempty"` // FeatureGates are feature gates for the compact component. // +kubebuilder:validation:Optional // +kubebuilder:default:={"serviceMonitor":{"enable":true}} FeatureGates *FeatureGates `json:"featureGates,omitempty"` // Additional configuration for the Thanos components. Allows you to add // additional args, containers, volumes, and volume mounts to Thanos Deployments, // and StatefulSets. Ideal to use for things like sidecars. // +kubebuilder:validation:Optional Additional `json:",inline"` }
ThanosStoreSpec defines the desired state of ThanosStore
func (*ThanosStoreSpec) DeepCopy ¶
func (in *ThanosStoreSpec) DeepCopy() *ThanosStoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosStoreSpec.
func (*ThanosStoreSpec) DeepCopyInto ¶
func (in *ThanosStoreSpec) DeepCopyInto(out *ThanosStoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ThanosStoreStatus ¶
type ThanosStoreStatus struct { // Conditions represent the latest available observations of the state of the Querier. Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` }
ThanosStoreStatus defines the observed state of ThanosStore
func (*ThanosStoreStatus) DeepCopy ¶
func (in *ThanosStoreStatus) DeepCopy() *ThanosStoreStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosStoreStatus.
func (*ThanosStoreStatus) DeepCopyInto ¶
func (in *ThanosStoreStatus) DeepCopyInto(out *ThanosStoreStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebConfig ¶
type WebConfig struct { // RoutePrefix is the prefix for API and UI endpoints. // This allows thanos UI to be served on a sub-path. // Defaults to the value of --web.external-prefix. // This option is analogous to --web.route-prefix of Prometheus. // +kubebuilder:validation:Optional RoutePrefix *string `json:"routePrefix,omitempty"` // ExternalPrefix is the static prefix for all HTML links and redirect URLs in the UI query web interface. // Actual endpoints are still served on / or the web.route-prefix. // This allows thanos UI to be served behind a reverse proxy that strips a URL sub-path. // +kubebuilder:validation:Optional ExternalPrefix *string `json:"externalPrefix,omitempty"` // PrefixHeader is the name of HTTP request header used for dynamic prefixing of UI links and redirects. // This option is ignored if web.external-prefix argument is set. // Security risk: enable this option only if a reverse proxy in front of thanos is resetting the header. // This allows thanos UI to be served on a sub-path. // +kubebuilder:validation:Optional PrefixHeader *string `json:"prefixHeader,omitempty"` // DisableCORS is the flag to disable CORS headers to be set by Thanos. // By default Thanos sets CORS headers to be allowed by all. // +kubebuilder:default=false DisableCORS *bool `json:"disableCORS,omitempty"` }
WebConfig is the configuration for the Query UI and API web options.
func (*WebConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebConfig.
func (*WebConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.