v1alpha1

package
v0.3.7 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2022 License: Apache-2.0 Imports: 9 Imported by: 2

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the monitoring v1alpha1 API group +kubebuilder:object:generate=true +groupName=monitoring.banzaicloud.io

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	QueryName         = "query"
	StoreName         = "store"
	RuleName          = "rule"
	SidecarName       = "sidecar"
	QueryFrontendName = "query-frontend"
	ReceiverName      = "receiver"
	EndpointName      = "endpoint"
	PeerName          = "peer"
)
View Source
const (
	ThanosImageRepository = "quay.io/thanos/thanos"
	ThanosImageTag        = "v0.22.0"
)
View Source
const (
	PeerCertSecretLabel = "monitoring.banzaicloud.io/thanospeer"
	PeerCASecretLabel   = "monitoring.banzaicloud.io/thanospeer-ca"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "monitoring.banzaicloud.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
)
View Source
var DefaultBucketWeb = &BucketWeb{
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	HTTPAddress:     "0.0.0.0:10902",
	HTTPGracePeriod: metav1.Duration{Duration: 2 * time.Minute},
	Refresh:         metav1.Duration{Duration: 30 * time.Minute},
	Timeout:         metav1.Duration{Duration: 5 * time.Minute},
}
View Source
var DefaultCompactor = &Compactor{
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	HTTPAddress:            "0.0.0.0:10902",
	HTTPGracePeriod:        metav1.Duration{Duration: 2 * time.Minute},
	DataDir:                "/data",
	ConsistencyDelay:       metav1.Duration{Duration: 30 * time.Minute},
	RetentionResolutionRaw: metav1.Duration{Duration: 0},
	RetentionResolution5m:  metav1.Duration{Duration: 0},
	RetentionResolution1h:  metav1.Duration{Duration: 0},
	BlockSyncConcurrency:   20,
	CompactConcurrency:     1,
	Wait:                   true,
}
View Source
var DefaultQuery = Query{
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	LogLevel:    "info",
	HttpAddress: "0.0.0.0:10902",
	GRPCAddress: "0.0.0.0:10901",
}
View Source
var DefaultQueryFrontend = QueryFrontend{
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	LogLevel:    "info",
	HttpAddress: "0.0.0.0:9090",
}
View Source
var DefaultReceiverGroup = &ReceiverGroup{
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	HTTPAddress:          "0.0.0.0:10909",
	RemoteWriteAddress:   "0.0.0.0:10908",
	GRPCAddress:          "0.0.0.0:10907",
	TSDBPath:             "/data",
	Replicas:             1,
	TSDBMinBlockDuration: "15m",
	TSDBMaxBlockDuration: "15m",
}
View Source
var DefaultRule = Rule{
	DataDir: "/data",
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	LogLevel:    "info",
	HttpAddress: "0.0.0.0:10902",
	GRPCAddress: "0.0.0.0:10901",
}
View Source
var DefaultStoreGateway = StoreGateway{
	Metrics: &Metrics{
		Interval:       "15s",
		Timeout:        "5s",
		Path:           "/metrics",
		ServiceMonitor: false,
	},
	LogLevel:    "info",
	HttpAddress: "0.0.0.0:10902",
	GRPCAddress: "0.0.0.0:10901",
}

Functions

This section is empty.

Types

type BucketWeb

type BucketWeb struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [Deployment override](../overrides/override/#deployment)
	DeploymentOverrides *typeoverride.Deployment `json:"deploymentOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	Metrics          *Metrics              `json:"metrics,omitempty"`
	HTTPIngress      *Ingress              `json:"HTTPIngress,omitempty"`
	// Listen host:port for HTTP endpoints.
	HTTPAddress string `json:"httpAddress,omitempty"`
	// Time to wait after an interrupt received for HTTP Server.
	HTTPGracePeriod metav1.Duration `json:"httpGracePeriod,omitempty"`
	// Static prefix for all HTML links and redirect URLs in the bucket web UI interface. Actual endpoints are still served on / or the web.route-prefix. This allows thanos bucket web UI to be served behind a reverse proxy that strips a URL sub-path.
	WebExternalPrefix string `json:"web_external_prefix,omitempty"`
	// 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. The --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is served via Traefik reverse proxy with PathPrefixStrip option enabled, which sends the stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a sub-path.
	WebPrefixHeader string `json:"web_prefix_header,omitempty"`
	// Refresh interval to download metadata from remote storage.
	Refresh metav1.Duration `json:"refresh,omitempty"`
	// Timeout to download metadata from remote.
	Timeout metav1.Duration `json:"timeout,omitempty"`
	// Prometheus label to use as timeline title.
	Label string `json:"label,omitempty"`
}

func (*BucketWeb) DeepCopy

func (in *BucketWeb) DeepCopy() *BucketWeb

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketWeb.

func (*BucketWeb) DeepCopyInto

func (in *BucketWeb) DeepCopyInto(out *BucketWeb)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Compactor

type Compactor struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [Deployment override](../overrides/override/#deployment)
	DeploymentOverrides *typeoverride.Deployment `json:"deploymentOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	Metrics          *Metrics              `json:"metrics,omitempty"`
	// Listen host:port for HTTP endpoints.
	HTTPAddress string `json:"httpAddress,omitempty"`
	// Time to wait after an interrupt received for HTTP Server.
	HTTPGracePeriod metav1.Duration `json:"httpGracePeriod,omitempty"`
	// Data directory in which to cache blocks and process compactions.
	DataDir string `json:"dataDir,omitempty"`
	// Kubernetes volume abstraction refers to different types of volumes to be mounted to pods: emptyDir, hostPath, pvc.
	DataVolume *volume.KubernetesVolume `json:"dataVolume,omitempty"`
	// 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.
	ConsistencyDelay metav1.Duration `json:"consistencyDelay,omitempty"`
	// How long to retain raw samples in bucket. 0d - disables this retention.
	RetentionResolutionRaw metav1.Duration `json:"retentionResolutionRaw,omitempty"`
	// How long to retain samples of resolution 1 (5 minutes) in bucket. 0d - disables this retention.
	RetentionResolution5m metav1.Duration `json:"retentionResolution5m,omitempty"`
	// How long to retain samples of resolution 2 (1 hour) in bucket. 0d - disables this retention.
	RetentionResolution1h metav1.Duration `json:"retentionResolution1h,omitempty"`
	// Do not exit after all compactions have been processed and wait for new work.
	Wait bool `json:"wait,omitempty"`
	// Disables downsampling. This is not recommended as querying long time ranges without non-downsampleddata
	// is not efficient and useful e.g it is not possible to render all samples for a human eye anyway.
	DownsamplingDisable bool `json:"downsamplingDisable,omitempty"`
	// Number of goroutines to use when syncing block metadata from object storage.
	// +kubebuilder:validation:Minimum=1
	BlockSyncConcurrency int `json:"blockSyncConcurrency,omitempty"`
	// Number of goroutines to use when compacting groups.
	// +kubebuilder:validation:Minimum=1
	CompactConcurrency int `json:"compactConcurrency,omitempty"`
}

func (*Compactor) DeepCopy

func (in *Compactor) DeepCopy() *Compactor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Compactor.

func (*Compactor) DeepCopyInto

func (in *Compactor) DeepCopyInto(out *Compactor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Ingress

type Ingress struct {
	// See [Ingress override](../overrides/override/#ingressnetworkingv1beta1)
	IngressOverrides *typeoverride.IngressNetworkingV1beta1 `json:"ingressOverrides,omitempty"`
	// Certificate in the ingress namespace
	Certificate string `json:"certificate,omitempty"`
	Host        string `json:"host,omitempty"`
	Path        string `json:"path,omitempty"`
}

func (*Ingress) DeepCopy

func (in *Ingress) DeepCopy() *Ingress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.

func (*Ingress) DeepCopyInto

func (in *Ingress) DeepCopyInto(out *Ingress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesSelector

type KubernetesSelector struct {
	Namespace   string            `json:"namespaces,omitempty"`
	Labels      map[string]string `json:"labels,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty"`
	HTTPPort    int32             `json:"httpPort,omitempty"`
	GRPCPort    int32             `json:"grpcPort,omitempty"`
}

func (*KubernetesSelector) DeepCopy

func (in *KubernetesSelector) DeepCopy() *KubernetesSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesSelector.

func (*KubernetesSelector) DeepCopyInto

func (in *KubernetesSelector) DeepCopyInto(out *KubernetesSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Metrics

type Metrics struct {
	Interval              string `json:"interval,omitempty"`
	Timeout               string `json:"timeout,omitempty"`
	Port                  int32  `json:"port,omitempty"`
	Path                  string `json:"path,omitempty"`
	ServiceMonitor        bool   `json:"serviceMonitor,omitempty"`
	PrometheusAnnotations bool   `json:"prometheusAnnotations,omitempty"`
}

Metrics defines the service monitor endpoints

func (*Metrics) DeepCopy

func (in *Metrics) DeepCopy() *Metrics

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metrics.

func (*Metrics) DeepCopyInto

func (in *Metrics) DeepCopyInto(out *Metrics)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectStore

type ObjectStore struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ObjectStoreSpec   `json:"spec,omitempty"`
	Status ObjectStoreStatus `json:"status,omitempty"`
}

ObjectStore is the Schema for the objectstores API

func (*ObjectStore) DeepCopy

func (in *ObjectStore) DeepCopy() *ObjectStore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStore.

func (*ObjectStore) DeepCopyInto

func (in *ObjectStore) DeepCopyInto(out *ObjectStore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ObjectStore) DeepCopyObject

func (in *ObjectStore) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ObjectStoreList

type ObjectStoreList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ObjectStore `json:"items"`
}

ObjectStoreList contains a list of ObjectStore

func (*ObjectStoreList) DeepCopy

func (in *ObjectStoreList) DeepCopy() *ObjectStoreList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStoreList.

func (*ObjectStoreList) DeepCopyInto

func (in *ObjectStoreList) DeepCopyInto(out *ObjectStoreList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ObjectStoreList) DeepCopyObject

func (in *ObjectStoreList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ObjectStoreSpec

type ObjectStoreSpec struct {
	// Config
	Config secret.Secret `json:"config"`
	// See [Compactor](#compactor)
	Compactor *Compactor `json:"compactor,omitempty"`
	// See [BucketWeb](#bucketweb)
	BucketWeb *BucketWeb `json:"bucketWeb,omitempty"`
}

ObjectStoreSpec defines the desired state of ObjectStore

func (*ObjectStoreSpec) DeepCopy

func (in *ObjectStoreSpec) DeepCopy() *ObjectStoreSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStoreSpec.

func (*ObjectStoreSpec) DeepCopyInto

func (in *ObjectStoreSpec) DeepCopyInto(out *ObjectStoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectStoreStatus

type ObjectStoreStatus struct {
}

ObjectStoreStatus defines the observed state of ObjectStore

func (*ObjectStoreStatus) DeepCopy

func (in *ObjectStoreStatus) DeepCopy() *ObjectStoreStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStoreStatus.

func (*ObjectStoreStatus) DeepCopyInto

func (in *ObjectStoreStatus) DeepCopyInto(out *ObjectStoreStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Query

type Query struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [Deployment override](../overrides/override/#deployment)
	DeploymentOverrides *typeoverride.Deployment `json:"deploymentOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	Metrics          *Metrics              `json:"metrics,omitempty"`
	HTTPIngress      *Ingress              `json:"HTTPIngress,omitempty"`
	GRPCIngress      *Ingress              `json:"GRPCIngress,omitempty"`
	// Cert and key expected under tls.crt, tls.key
	GRPCClientCertificate string `json:"GRPCClientCertificate,omitempty"`
	// CA bundle to verify servers against, expected under ca.crt
	GRPCClientCA string `json:"GRPCClientCA,omitempty"`
	// Server name to verify server certificate against
	GRPCClientServerName string `json:"GRPCClientServerName,omitempty"`
	// Cert and key expected under tls.crt, tls.key
	GRPCServerCertificate string `json:"GRPCServerCertificate,omitempty"`
	// CA bundle to verify clients against, expected under ca.crt
	GRPCServerCA string `json:"GRPCServerCA,omitempty"`
	LogLevel     string `json:"logLevel,omitempty" thanos:"--log.level=%s"`
	LogFormat    string `json:"logFormat,omitempty" thanos:"--log.format=%s"`
	// Listen host:port for HTTP endpoints.
	HttpAddress string `json:"httpAddress,omitempty" thanos:"--http-address=%s"`
	// Time to wait after an interrupt received for HTTP Server.
	HttpGracePeriod string `json:"http_grace_period,omitempty" thanos:"--http-grace-period=%s"`
	// Listen ip:port address for gRPC endpoints
	GRPCAddress string `json:"grpcAddress,omitempty" thanos:"--grpc-address=%s"`
	// Time to wait after an interrupt received for GRPC Server.
	GRPCGracePeriod string `json:"grpcGracePeriod,omitempty" thanos:"--grpc-grace-period=%s"`
	// Prefix for API and UI endpoints. This allows thanos UI to be served on a sub-path. This
	// option is analogous to --web.route-prefix of Promethus.
	WebRoutePrefix string `json:"webRoutePrefix,omitempty" thanos:"--web.route-prefix=%s"`
	// 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.
	WebExternalPrefix string `json:"webExternalPrefix,omitempty" thanos:"--web.external-prefix=%s"`
	// 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. The
	// --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is
	// served via Traefik reverse proxy with PathPrefixStrip option enabled, which sends the
	// stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a
	// sub-path.
	WebPrefixHeader string `json:"webPrefixHeader,omitempty" thanos:"--web.prefix-header=%s"`
	// Maximum time to process query by query node.
	QueryTimeout metav1.Duration `json:"queryTimeout,omitempty" thanos:"--query.timeout=%s"`
	// Maximum number of queries processed concurrently by query node.
	QueryMaxConcurrent int `json:"queryMaxConcurrent,omitempty" thanos:"--query.max-concurrent=%d"`
	// Labels to treat as a replica indicator along which data is deduplicated. Still you will be
	// able to query without deduplication using 'dedup=false' parameter.
	QueryReplicaLabels []string `json:"queryReplicaLabel,omitempty"`
	// Query selector labels that will be exposed in info endpoint (repeated).
	SelectorLabels map[string]string `json:"selectorLabels,omitempty"`
	// Addresses of statically configured store API servers (repeatable). The scheme may be
	// prefixed with 'dns+' or 'dnssrv+' to detect store API servers through respective DNS lookups.
	Stores []string `json:"stores,omitempty"`
	//	Interval between DNS resolutions.
	StoreSDDNSInterval metav1.Duration `json:"storeSDDNSInterval,omitempty" thanos:"--store.sd-dns-interval=%s"`
	//	Timeout before an unhealthy store is cleaned from the store UI page.
	StoreUnhealthyTimeout metav1.Duration `json:"storeUnhealthyTimeout,omitempty" thanos:"--store.unhealthy-timeout=%s"`
	// Enable automatic adjustment (step / 5) to what source of data should be used in store gateways
	// if no max_source_resolution param is specified.
	QueryAutoDownsampling bool `json:"queryAutoDownsampling,omitempty" thanos:"--query.auto-downsampling"`
	// Enable partial response for queries if no partial_response param is specified.
	QueryPartialResponse bool `json:"queryPartialResponse,omitempty" thanos:"--query.partial-response"`
	//	Set default evaluation interval for sub queries.
	QueryDefaultEvaluationInterval metav1.Duration `json:"queryDefaultEvaluationInterval,omitempty" thanos:" --query.default-evaluation-interval=%s"`
	//	If a Store doesn't send any data in this specified duration then a Store will be ignored
	//	and partial data will be returned if it's enabled. 0 disables timeout.
	StoreResponseTimeout metav1.Duration `json:"storeResponseTimeout,omitempty" thanos:"--store.response-timeout=%s"`
	// create Grafana data source
	GrafanaDatasource bool `json:"grafanaDatasource,omitempty"`
}

func (*Query) DeepCopy

func (in *Query) DeepCopy() *Query

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Query.

func (*Query) DeepCopyInto

func (in *Query) DeepCopyInto(out *Query)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type QueryFrontend added in v0.1.1

type QueryFrontend struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [Deployment override](../overrides/override/#deployment)
	DeploymentOverrides *typeoverride.Deployment `json:"deploymentOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	Metrics          *Metrics              `json:"metrics,omitempty"`
	HTTPIngress      *Ingress              `json:"HTTPIngress,omitempty"`
	LogLevel         string                `json:"logLevel,omitempty" thanos:"--log.level=%s"`
	LogFormat        string                `json:"logFormat,omitempty" thanos:"--log.format=%s"`
	// Split queries by an interval and execute in parallel, 0 disables it.
	QueryRangeSplit string `json:"queryRangeSplit,omitempty" thanos:"--query-range.split-interval=%s"`
	// Maximum number of retries for a single request; beyond this, the downstream error is returned.
	QueryRangeMaxRetriesPerRequest int `json:"queryRangeMaxRetriesPerRequest,omitempty" thanos:"--query-range.max-retries-per-request=%d"`
	// Limit the query time range (end - start time) in the query-frontend, 0 disables it.
	QueryRangeMaxQueryLength int `json:"queryRangeMaxQueryLength,omitempty" thanos:"--query-range.max-query-length=%d"`
	// Maximum number of queries will be scheduled in parallel by the frontend.
	QueryRangeMaxQueryParallelism int `json:"queryRangeMaxQueryParallelism,omitempty" thanos:"--query-range.max-query-parallelism=%d"`
	// Most recent allowed cacheable result, to prevent	caching very recent results that might still be in flux.
	QueryRangeResponseCacheMaxFreshness string `json:"queryRangeResponseCacheMaxFreshness,omitempty" thanos:"--query-range.response-cache-max-freshness=%s"`
	// Enable partial response for queries if no partial_response param is specified.
	QueryRangePartialResponse *bool `json:"queryRangePartialResponse,omitempty" thanos:"--query-range.partial-response"`
	// Path to YAML file that contains response cache configuration.
	QueryRangeResponseCacheConfigFile string `json:"queryRangeResponseCacheConfigFile,omitempty" thanos:"--query-range.response-cache-config-file=%s"`
	// Alternative to 'query-range.response-cache-config-file' flag (lower priority). Content of YAML file that contains response cache configuration.
	QueryRangeResponseCache string `json:"queryRangeResponseCache,omitempty" thanos:"--query-range.response-cache-config=%s"`
	// Listen host:port for HTTP endpoints.
	HttpAddress string `json:"httpAddress,omitempty" thanos:"--http-address=%s"`
	// Time to wait after an interrupt received for HTTP Server.
	HttpGracePeriod string `json:"http_grace_period,omitempty" thanos:"--http-grace-period=%s"`
	// URL of downstream Prometheus Query compatible API.
	QueryFrontendDownstreamURL string `json:"queryFrontendDownstreamURL,omitempty"`
	// Compress HTTP responses.
	QueryFrontendCompressResponses *bool `json:"queryFrontendCompressResponses,omitempty" thanos:"--query-frontend.compress-responses"`
	// 	Log queries that are slower than the specified duration. Set to 0 to disable. Set to < 0 to enable on all queries.
	QueryFrontendLogQueriesLongerThan int `json:"queryFrontendLogQueriesLongerThan,omitempty" thanos:"--query-frontend.log-queries-longer-than=%d"`
	// 	Request Logging for logging the start and end of requests. LogFinishCall is enabled by default.
	//	LogFinishCall : Logs the finish call of the requests.
	//	LogStartAndFinishCall : Logs the start and finish call of the requests.
	//	NoLogCall : Disable request logging.
	LogRequestDecision string `json:"logRequestDecision,omitempty" thanos:"--log.request.decision=%s"`
}

func (*QueryFrontend) DeepCopy added in v0.1.1

func (in *QueryFrontend) DeepCopy() *QueryFrontend

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueryFrontend.

func (*QueryFrontend) DeepCopyInto added in v0.1.1

func (in *QueryFrontend) DeepCopyInto(out *QueryFrontend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Receiver added in v0.1.4

type Receiver struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ReceiverSpec   `json:"spec,omitempty"`
	Status ReceiverStatus `json:"status,omitempty"`
}

Receiver is the Schema for the receiver cluster

func (*Receiver) DeepCopy added in v0.1.4

func (in *Receiver) DeepCopy() *Receiver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Receiver.

func (*Receiver) DeepCopyInto added in v0.1.4

func (in *Receiver) DeepCopyInto(out *Receiver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Receiver) DeepCopyObject added in v0.1.4

func (in *Receiver) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ReceiverGroup added in v0.1.4

type ReceiverGroup struct {
	Name     string        `json:"name"`
	Tenants  []string      `json:"tenants,omitempty"`
	Config   secret.Secret `json:"config"`
	Replicas int32         `json:"replicas,omitempty"`
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [StatefulSet override](../overrides/override/#statefulset)
	StatefulSetOverrides *typeoverride.StatefulSet `json:"statefulSetOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	HTTPIngress      *Ingress              `json:"httpIngress,omitempty"`
	// Secret name for HTTP Server certificate (Kubernetes TLS secret type)
	HTTPServerCertificate string `json:"httpServerCertificate,omitempty"`
	// Secret name for HTTP Client certificate (Kubernetes TLS secret type)
	HTTPClientCertificate string   `json:"httpClientCertificate,omitempty"`
	GRPCIngress           *Ingress `json:"grpcIngress,omitempty"`
	// Secret name for GRPC Server certificate (Kubernetes TLS secret type)
	GRPCClientCertificate string `json:"htpcClientCertificate,omitempty"`
	// Secret name for GRPC Client certificate (Kubernetes TLS secret type)
	GRPCServerCertificate string `json:"grpcServerCertificate,omitempty"`
	// Server name to verify the hostname on the returned gRPC certificates. See https://tools.ietf.org/html/rfc4366#section-3.1
	RemoteWriteClientServerName string   `json:"remoteWriteClientServerName,omitempty" thanos:"--remote-write.client-server-name=%s"`
	Metrics                     *Metrics `json:"metrics,omitempty"`
	// Listen host:port for HTTP endpoints.
	HTTPAddress string `json:"httpAddress,omitempty" thanos:"--http-address=%s"`
	// Time to wait after an interrupt received for HTTP Server.
	HTTPGracePeriod metav1.Duration `json:"httpGracePeriod,omitempty"`
	// Listen ip:port address for gRPC endpoints
	GRPCAddress string `json:"grpcAddress,omitempty" thanos:"--grpc-address=%s"`
	// Time to wait after an interrupt received for GRPC Server.
	GRPCGracePeriod string `json:"grpcGracePeriod,omitempty" thanos:"--grpc-grace-period=%s"`
	// Address to listen on for remote write requests.
	RemoteWriteAddress string `json:"remoteWriteAddress,omitempty" thanos:"--remote-write.address=%s"`
	// External labels to announce. This flag will be removed in the future when handling multiple tsdb instances is added.
	Labels map[string]string `json:"labels,omitempty"`
	// Kubernetes volume abstraction refers to different types of volumes to be mounted to pods: emptyDir, hostPath, pvc.
	DataVolume *volume.KubernetesVolume `json:"dataVolume,omitempty"`
	TSDBPath   string                   `json:"tsdbPath,omitempty" thanos:"--tsdb.path=%s"`
	// How long to retain raw samples on local storage. 0d - disables this retention.
	TSDBRetention string `json:"tsdbRetention,omitempty" thanos:"--tsdb.retention=%s"`
	// The --tsdb.min-block-duration and --tsdb.max-block-duration must be set to equal values to disable local compaction
	// on order to use Thanos sidecar upload. Leave local compaction on if sidecar just exposes StoreAPI and your retention is normal.
	TSDBMinBlockDuration string `json:"tsdbMinBlockDuration,omitempty" thanos:"--tsdb.min-block-duration=%s"`
	TSDBMaxBlockDuration string `json:"tsdbMaxBlockDuration,omitempty" thanos:"--tsdb.max-block-duration=%s"`
	// Refresh interval to re-read the hashring configuration file. (used as a fallback)
	ReceiveHashringsFileRefreshInterval string `json:"receiveHashringsFileRefreshInterval,omitempty" thanos:"--receive.hashrings-file-refresh-interval=%s"`
	// HTTP header to determine tenant for write requests.
	ReceiveTenantHeader string `json:"receiveTenantHeader,omitempty" thanos:"--receive.tenant-header=%s"`
	// Default tenant ID to use when none is provided via a header.
	ReceiveDefaultTenantID string `json:"receiveDefaultTenantId,omitempty" thanos:"--receive.default-tenant-id=%s"`
	// Label name through which the tenant will be announced.
	ReceiveTenantLabelName string `json:"receiveTenantLabelName,omitempty" thanos:"--receive.tenant-label-name=%s"`
	// HTTP header specifying the replica number of a write request.
	ReceiveReplicaHeader string `json:"receiveReplicaHeader,omitempty" thanos:"--receive.replica-header=%s"`
	// How many times to replicate incoming write requests.
	ReceiveReplicationFactor int `json:"receiveReplicationFactor,omitempty" thanos:"--receive.replication-factor=%d"`
	// Compress the tsdb WAL.
	TSDBWalCompression *bool `json:"tsdbWalCompression,omitempty" thanos:"--tsdb.wal-compression"`
	// Do not create lockfile in TSDB data directory. In any case, the lockfiles will be deleted on next startup.
	TSDBNoLockfile *bool `json:"tsdbNoLockfile,omitempty" thanos:"--tsdb.no-lockfile"`
}

ReceiverGroup defines a Receiver group Tenants are the Hard tenants of the receiver group Replicas are the number of instances in this receiver group

func (*ReceiverGroup) DeepCopy added in v0.1.4

func (in *ReceiverGroup) DeepCopy() *ReceiverGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReceiverGroup.

func (*ReceiverGroup) DeepCopyInto added in v0.1.4

func (in *ReceiverGroup) DeepCopyInto(out *ReceiverGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReceiverList added in v0.1.4

type ReceiverList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Receiver `json:"items"`
}

ObjectStoreList contains a list of ObjectStore

func (*ReceiverList) DeepCopy added in v0.1.4

func (in *ReceiverList) DeepCopy() *ReceiverList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReceiverList.

func (*ReceiverList) DeepCopyInto added in v0.1.4

func (in *ReceiverList) DeepCopyInto(out *ReceiverList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ReceiverList) DeepCopyObject added in v0.1.4

func (in *ReceiverList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ReceiverSpec added in v0.1.4

type ReceiverSpec struct {
	ReceiverGroups []ReceiverGroup `json:"receiverGroups,omitempty"`
}

func (*ReceiverSpec) DeepCopy added in v0.1.4

func (in *ReceiverSpec) DeepCopy() *ReceiverSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReceiverSpec.

func (*ReceiverSpec) DeepCopyInto added in v0.1.4

func (in *ReceiverSpec) DeepCopyInto(out *ReceiverSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReceiverStatus added in v0.1.4

type ReceiverStatus struct {
}

ObjectStoreStatus defines the observed state of ObjectStore

func (*ReceiverStatus) DeepCopy added in v0.1.4

func (in *ReceiverStatus) DeepCopy() *ReceiverStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReceiverStatus.

func (*ReceiverStatus) DeepCopyInto added in v0.1.4

func (in *ReceiverStatus) DeepCopyInto(out *ReceiverStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Rule

type Rule struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [StatefulSet override](../overrides/override/#statefulset)
	StatefulsetOverrides *typeoverride.StatefulSet `json:"statefulsetOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	Metrics          *Metrics              `json:"metrics,omitempty"`
	HTTPIngress      *Ingress              `json:"HTTPIngress,omitempty"`
	GRPCIngress      *Ingress              `json:"GRPCIngress,omitempty"`
	LogLevel         string                `json:"logLevel,omitempty" thanos:"--log.level=%s"`
	LogFormat        string                `json:"logFormat,omitempty" thanos:"--log.format=%s"`
	// Listen host:port for HTTP endpoints.
	HttpAddress string `json:"httpAddress,omitempty" thanos:"--http-address=%s"`
	// Time to wait after an interrupt received for HTTP Server.
	HttpGracePeriod string `json:"http_grace_period,omitempty" thanos:"--http-grace-period=%s"`
	// Data directory.
	DataDir string `json:"dataDir,omitempty"`
	// Kubernetes volume abstraction refers to different types of volumes to be mounted to pods: emptyDir, hostPath, pvc.
	DataVolume *volume.KubernetesVolume `json:"dataVolume,omitempty"`
	// Listen ip:port address for gRPC endpoints
	GRPCAddress string `json:"grpcAddress,omitempty" thanos:"--grpc-address=%s"`
	// Time to wait after an interrupt received for GRPC Server.
	GRPCGracePeriod string `json:"grpcGracePeriod,omitempty" thanos:"--grpc-grace-period=%s"`
	// 	Labels to be applied to all generated metrics
	//(repeated). Similar to external labels for
	//	Prometheus, used to identify ruler and its
	//	blocks as unique source.
	Labels map[string]string `json:"labels,omitempty"`
	// Rules
	Rules string `json:"rules,omitempty"`
	// Minimum amount of time to wait before resending an alert to Alertmanager.
	ResendDelay string `json:"resendDelay,omitempty" thanos:"--resend-delay=%s"`
	// The default evaluation interval to use.
	EvalInterval string `json:"evalInterval,omitempty" thanos:"--eval-interval=%s"`
	// Block duration for TSDB block.
	TSDBBlockDuration string `json:"tsdbBlockDuration,omitempty" thanos:"--tsdb.block-duration=%s"`
	// Block retention time on local disk.
	TSDBRetention string `json:"tsdbRetention,omitempty" thanos:"--tsdb.retention=%s"`
	// Alertmanager replica URLs to push firing alerts. Ruler claims success if push to at
	// least one alertmanager from discovered succeeds. 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. The port defaults to 9093 or the SRV
	// record's value. The URL path is used as a prefix for the regular Alertmanager API path.
	AlertmanagersURLs []string `json:"alertmanagersURLs,omitempty"`
	// Timeout for sending alerts to Alertmanager
	AlertmanagersSendTimeout string `json:"alertmanagersSendTimeout,omitempty" thanos:"--alertmanagers.send-timeout=%s"`
	// Interval between DNS resolutions of Alertmanager hosts.
	AlertmanagersSDDNSInterval string `json:"alertmanagersSDDNSInterval,omitempty" thanos:"--alertmanagers.sd-dns-interval=%s"`
	// The external Thanos Query URL that would be set in all alerts 'Source' field
	AlertQueryURL string `json:"alertQueryUrl,omitempty" thanos:"--alert.query-url=%s"`
	// Labels by name to drop before sending to alertmanager. This allows alert to be
	// deduplicated on replica label (repeated). Similar Prometheus alert relabelling
	AlertLabelDrop map[string]string `json:"alertLabelDrop,omitempty"`
	// Prefix for API and UI endpoints. This allows thanos UI to be served on a sub-path. This
	// option is analogous to --web.route-prefix of Promethus.
	WebRoutePrefix string `json:"webRoutePrefix,omitempty" thanos:"--web.route-prefix=%s"`
	// 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.
	WebExternalPrefix string `json:"webExternalPrefix,omitempty" thanos:"--web.external-prefix=%s"`
	// 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. The
	// --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is
	// served via Traefik reverse proxy with PathPrefixStrip option enabled, which sends the
	// stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a
	// sub-path.
	WebPrefixHeader string `json:"webPrefixHeader,omitempty" thanos:"--web.prefix-header=%s"`
	// Addresses of statically configured query API servers (repeatable). The scheme may be
	// prefixed with 'dns+' or 'dnssrv+' to detect query API servers through respective DNS
	// lookups.
	Queries []string `json:"queries,omitempty"`
	// Interval between DNS resolutions.
	QuerySDDNSInterval string `json:"querySddnsInterval,omitempty" thanos:"--query.sd-dns-interval=%s"`
}

func (*Rule) DeepCopy

func (in *Rule) DeepCopy() *Rule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.

func (*Rule) DeepCopyInto

func (in *Rule) DeepCopyInto(out *Rule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StoreEndpoint

type StoreEndpoint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// See [StoreEndpointSpec](#storeendpointspec)
	Spec StoreEndpointSpec `json:"spec,omitempty"`
	// See [StoreEndpointStatus](#storeendpointstatus)
	Status StoreEndpointStatus `json:"status,omitempty"`
}

StoreEndpoint is the Schema for the storeendpoints API

func (*StoreEndpoint) DeepCopy

func (in *StoreEndpoint) DeepCopy() *StoreEndpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreEndpoint.

func (*StoreEndpoint) DeepCopyInto

func (in *StoreEndpoint) DeepCopyInto(out *StoreEndpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StoreEndpoint) DeepCopyObject

func (in *StoreEndpoint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*StoreEndpoint) GetServiceURL

func (s *StoreEndpoint) GetServiceURL() string

type StoreEndpointList

type StoreEndpointList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []StoreEndpoint `json:"items"`
}

StoreEndpointList contains a list of StoreEndpoint

func (*StoreEndpointList) DeepCopy

func (in *StoreEndpointList) DeepCopy() *StoreEndpointList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreEndpointList.

func (*StoreEndpointList) DeepCopyInto

func (in *StoreEndpointList) DeepCopyInto(out *StoreEndpointList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StoreEndpointList) DeepCopyObject

func (in *StoreEndpointList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type StoreEndpointSpec

type StoreEndpointSpec struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides *typeoverride.Service `json:"serviceOverrides,omitempty"`
	URL              string                `json:"url,omitempty"`
	// See [KubernetesSelector](#kubernetesselector)
	Selector *KubernetesSelector `json:"selector,omitempty"`
	Config   secret.Secret       `json:"config,omitempty"`
	Thanos   string              `json:"thanos"`
	Ingress  *Ingress            `json:"ingress,omitempty"`
}

StoreEndpointSpec defines the desired state of StoreEndpoint

func (*StoreEndpointSpec) DeepCopy

func (in *StoreEndpointSpec) DeepCopy() *StoreEndpointSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreEndpointSpec.

func (*StoreEndpointSpec) DeepCopyInto

func (in *StoreEndpointSpec) DeepCopyInto(out *StoreEndpointSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StoreEndpointStatus

type StoreEndpointStatus struct {
}

StoreEndpointStatus defines the observed state of StoreEndpoint

func (*StoreEndpointStatus) DeepCopy

func (in *StoreEndpointStatus) DeepCopy() *StoreEndpointStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreEndpointStatus.

func (*StoreEndpointStatus) DeepCopyInto

func (in *StoreEndpointStatus) DeepCopyInto(out *StoreEndpointStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StoreGateway

type StoreGateway struct {
	// See [ObjectMeta override](../overrides/override/#objectmeta)
	MetaOverrides *typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`
	// See [Deployment override](../overrides/override/#deployment)
	DeploymentOverrides *typeoverride.Deployment `json:"deploymentOverrides,omitempty"`
	// See [Service override](../overrides/override/#service)
	ServiceOverrides      *typeoverride.Service `json:"serviceOverride,omitempty"`
	Metrics               *Metrics              `json:"metrics,omitempty"`
	GRPCServerCertificate string                `json:"GRPCServerCertificate,omitempty"`
	LogLevel              string                `json:"logLevel,omitempty" thanos:"--log.level=%s"`
	LogFormat             string                `json:"logFormat,omitempty" thanos:"--log.format=%s"`
	// Listen host:port for HTTP endpoints.
	HttpAddress string `json:"httpAddress,omitempty" thanos:"--http-address=%s"`
	// Time to wait after an interrupt received for HTTP Server.
	HttpGracePeriod string `json:"http_grace_period,omitempty" thanos:"--http-grace-period=%s"`
	// Listen ip:port address for gRPC endpoints
	GRPCAddress string `json:"grpcAddress,omitempty" thanos:"--grpc-address=%s"`
	// Time to wait after an interrupt received for GRPC Server.
	GRPCGracePeriod string `json:"grpcGracePeriod,omitempty" thanos:"--grpc-grace-period=%s"`
	// Maximum size of items held in the in-memory index cache.
	IndexCacheSize string `json:"indexCacheSize,omitempty" thanos:"--index-cache-size=%s"`
	// Path to YAML file that contains index cache configuration. See format details:
	// https://thanos.io/tip/components/store.md/#index-cache
	IndexCacheConfigFile string `json:"indexCacheConfigFile,omitempty" thanos:"index-cache.config-file=%s"`
	// Alternative to 'index-cache.config-file' flag (lower priority). Content of YAML file that contains index cache configuration. See format details:
	// https://thanos.io/tip/components/store.md/#index-cache
	IndexCacheConfig string `json:"indexCacheConfig,omitempty" thanos:"--index-cache.config=%s"`
	// Maximum size of concurrently allocatable bytes for chunks.
	ChunkPoolSize string `json:"chunkPoolSize,omitempty" thanos:"--chunk-pool-size=%s"`
	// Maximum amount of samples returned via a single Series call. 0 means no limit. NOTE: For
	// efficiency we take 120 as the number of samples in chunk (it cannot be bigger than that), so
	// the actual number of samples might be lower, even though the maximum could be hit.
	StoreGRPCSeriesSampleLimit string `json:"storeGRPCSeriesSampleLimit,omitempty" thanos:"--store.grpc.series-sample-limit=%s"`
	// Maximum amount of touched series returned via a single Series call. The Series call fails if this limit is exceeded. 0 means no limit.
	StoreGRPCTouchedSeriesSampleLimit int `json:"storeGRPCTouchedSeriesSampleLimit,omitempty" thanos:"--store.grpc.touched-series-limit=%d"`
	// Maximum number of concurrent Series calls.
	StoreGRPCSeriesMaxConcurrency int `json:"storeGRPCSeriesMaxConcurrency,omitempty" thanos:"--store.grpc.series-max-concurrency=%d"`
	// Repeat interval for syncing the blocks between local and remote view.
	SyncBlockDuration string `json:"syncBlockDuration,omitempty" thanos:"--sync-block-duration=%s"`
	// Number of goroutines to use when constructing index-cache.json blocks from object storage.
	BlockSyncConcurrency int `json:"blockSyncConcurrency,omitempty" thanos:"--block-sync-concurrency=%d"`
	// Number of goroutines to use when fetching block metadata from object storage.
	BlockMetaFetchConcurrency int `json:"blockMetaFetchConcurrency,omitempty" thanos:"--block-meta-fetch-concurrency=%d"`
	// Path to YAML file that contains relabeling configuration that allows selecting blocks. It
	// follows native Prometheus relabel-config syntax. See format details:
	// https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
	SelectorRelabelConfigFile string `json:"selectorRelabelConfigFile,omitempty" thanos:"--selector.relabel-config-file=%s"`
	// Alternative to 'selector.relabel-config-file' flag (lower priority). Content of YAML file
	// that contains relabeling configuration that allows selecting blocks. It follows native
	// Prometheus relabel-config syntax. See format details:
	// https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
	SelectorRelabelConfig string `json:"selectorRelabelConfig,omitempty" thanos:"--selector.relabel-config=%s"`
	// Minimum age of all blocks before they are being read. Set it to safe value (e.g 30m) if your
	// object storage is eventually consistent. GCS and S3 are (roughly) strongly consistent.
	ConsistencyDelay string `json:"consistencyDelay,omitempty" thanos:"--consistency-delay=%s"`
	// 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. If
	// delete-delay is non-zero for compactor or bucket verify component, ignore-deletion-marks-delay should be set to
	// (delete-delay)/2 so that blocks marked for deletion are filtered out while fetching blocks
	// before being deleted from bucket. Default is 24h, half of the default value for --delete-delay on compactor.
	IgnoreDeletionMarksDelay string `json:"ignoreDeletionMarksDelay,omitempty" thanos:"--ignore-deletion-marks-delay=%s"`
	// 	If true, Store Gateway will lazy memory map index-header only once the block is required by a query.
	StoreEnableIndexHeaderLazyReader *bool `json:"storeEnableIndexHeaderLazyReader,omitempty" thanos:"--store.enable-index-header-lazy-reader"`
	// Static prefix for all HTML links and redirect URLs in the bucket web UI interface. Actual endpoints are still served on / or the
	// web.route-prefix. This allows thanos bucket web UI to be served behind a reverse proxy that
	// strips a URL sub-path.
	WebExternalPrefix string `json:"webExternalPrefix,omitempty" thanos:"--web.external-prefix=%s"`
	// 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. The
	// --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is
	// served via Traefik reverse proxy with PathPrefixStrip option enabled, which sends the
	// stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a sub-path.
	WebPrefixHeader string `json:"webPrefixHeader,omitempty" thanos:"--web.prefix-header=%s"`
	// TimeRanges is a list of TimeRange to partition Store Gateway
	TimeRanges []TimeRange `json:"timeRanges,omitempty"`
}

func (*StoreGateway) DeepCopy

func (in *StoreGateway) DeepCopy() *StoreGateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreGateway.

func (*StoreGateway) DeepCopyInto

func (in *StoreGateway) DeepCopyInto(out *StoreGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Thanos

type Thanos struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ThanosSpec   `json:"spec,omitempty"`
	Status ThanosStatus `json:"status,omitempty"`
}

Thanos is the Schema for the thanos API

func (*Thanos) DeepCopy

func (in *Thanos) DeepCopy() *Thanos

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Thanos.

func (*Thanos) DeepCopyInto

func (in *Thanos) DeepCopyInto(out *Thanos)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Thanos) DeepCopyObject

func (in *Thanos) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Thanos) GetClusterDomain added in v0.1.1

func (t *Thanos) GetClusterDomain() string

type ThanosDiscovery

type ThanosDiscovery struct {
	metav1.LabelSelector `json:",omitempty,inline"`
}

func (*ThanosDiscovery) DeepCopy

func (in *ThanosDiscovery) DeepCopy() *ThanosDiscovery

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosDiscovery.

func (*ThanosDiscovery) DeepCopyInto

func (in *ThanosDiscovery) DeepCopyInto(out *ThanosDiscovery)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ThanosEndpoint added in v0.1.4

type ThanosEndpoint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// See [ThanosEndpointSpec](#thanosendpointspec)
	Spec ThanosEndpointSpec `json:"spec,omitempty"`
	// See [ThanosEndpointStatus](#thanosendpointstatus)
	Status ThanosEndpointStatus `json:"status,omitempty"`
}

func (*ThanosEndpoint) DeepCopy added in v0.1.4

func (in *ThanosEndpoint) DeepCopy() *ThanosEndpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosEndpoint.

func (*ThanosEndpoint) DeepCopyInto added in v0.1.4

func (in *ThanosEndpoint) DeepCopyInto(out *ThanosEndpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ThanosEndpoint) DeepCopyObject added in v0.1.4

func (in *ThanosEndpoint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ThanosEndpointList added in v0.1.4

type ThanosEndpointList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ThanosEndpoint `json:"items"`
}

func (*ThanosEndpointList) DeepCopy added in v0.1.4

func (in *ThanosEndpointList) DeepCopy() *ThanosEndpointList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosEndpointList.

func (*ThanosEndpointList) DeepCopyInto added in v0.1.4

func (in *ThanosEndpointList) DeepCopyInto(out *ThanosEndpointList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ThanosEndpointList) DeepCopyObject added in v0.1.4

func (in *ThanosEndpointList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ThanosEndpointSpec added in v0.1.4

type ThanosEndpointSpec struct {
	// The endpoint should use this server certificate (tls.crt, tls.key) in the current namespace
	Certificate string `json:"certificate,omitempty"`

	// Reference the given ingressClass resource explicitly
	IngressClassName string `json:"ingressClassName,omitempty"`

	// Name of the secret that contains the CA certificate in ca.crt to verify client certs in the current namespace
	CABundle string `json:"caBundle,omitempty"`

	// List of statically configured store addresses
	Stores []string `json:"stores,omitempty"`

	// Custom replica labels if the default doesn't apply
	ReplicaLabels []string `json:"replicaLabels,omitempty"`

	// [Override metadata](../overrides/override/#objectmeta) for managed resources
	MetaOverrides typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`

	// Override any of the [Query parameters](../thanos_types/#query)
	QueryOverrides *Query `json:"queryOverrides,omitempty"`

	// Override any of the [StoreEndpoint parameters](../storeendpoint_types/)
	StoreEndpointOverrides []StoreEndpointSpec `json:"storeEndpointOverrides,omitempty"`
}

func (*ThanosEndpointSpec) DeepCopy added in v0.1.4

func (in *ThanosEndpointSpec) DeepCopy() *ThanosEndpointSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosEndpointSpec.

func (*ThanosEndpointSpec) DeepCopyInto added in v0.1.4

func (in *ThanosEndpointSpec) DeepCopyInto(out *ThanosEndpointSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ThanosEndpointStatus added in v0.1.4

type ThanosEndpointStatus struct {
	// Host (or IP) and port of the exposed Thanos endpoint
	EndpointAddress string `json:"endpointAddress,omitempty"`
}

func (*ThanosEndpointStatus) DeepCopy added in v0.1.4

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosEndpointStatus.

func (*ThanosEndpointStatus) DeepCopyInto added in v0.1.4

func (in *ThanosEndpointStatus) DeepCopyInto(out *ThanosEndpointStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ThanosList

type ThanosList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Thanos `json:"items"`
}

ThanosList contains a list of Thanos

func (*ThanosList) DeepCopy

func (in *ThanosList) DeepCopy() *ThanosList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosList.

func (*ThanosList) DeepCopyInto

func (in *ThanosList) DeepCopyInto(out *ThanosList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ThanosList) DeepCopyObject

func (in *ThanosList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ThanosPeer added in v0.1.4

type ThanosPeer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// See [ThanosPeerSpec](#thanospeerspec)
	Spec ThanosPeerSpec `json:"spec,omitempty"`
	// See [ThanosPeerStatus](#thanospeerstatus)
	Status ThanosPeerStatus `json:"status,omitempty"`
}

func (*ThanosPeer) DeepCopy added in v0.1.4

func (in *ThanosPeer) DeepCopy() *ThanosPeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosPeer.

func (*ThanosPeer) DeepCopyInto added in v0.1.4

func (in *ThanosPeer) DeepCopyInto(out *ThanosPeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ThanosPeer) DeepCopyObject added in v0.1.4

func (in *ThanosPeer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ThanosPeerList added in v0.1.4

type ThanosPeerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ThanosPeer `json:"items"`
}

func (*ThanosPeerList) DeepCopy added in v0.1.4

func (in *ThanosPeerList) DeepCopy() *ThanosPeerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosPeerList.

func (*ThanosPeerList) DeepCopyInto added in v0.1.4

func (in *ThanosPeerList) DeepCopyInto(out *ThanosPeerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ThanosPeerList) DeepCopyObject added in v0.1.4

func (in *ThanosPeerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ThanosPeerSpec added in v0.1.4

type ThanosPeerSpec struct {
	// Host (or IP) and port of the remote Thanos endpoint
	EndpointAddress string `json:"endpointAddress"`

	// Optional alias for the remote endpoint in case we have to access it through a different name.
	// This is typically needed if the remote endpoint has a certificate created for a predefined hostname.
	// The controller should create an externalName service for this backed buy the actual peer endpoint host
	// or a k8s service with a manually crafted k8s endpoint if EndpointAddress doesn't have a host but only an IP.
	PeerEndpointAlias string `json:"peerEndpointAlias,omitempty"`

	// The peer query should use this client certificate (tls.crt, tls.key) in the current namespace
	Certificate string `json:"certificate,omitempty"`

	// Name of the secret that contains the CA certificate in ca.crt to verify client certs in the current namespace
	CABundle string `json:"caBundle,omitempty"`

	// Custom replica labels if the default doesn't apply
	ReplicaLabels []string `json:"replicaLabels,omitempty"`

	// [Override metadata](../overrides/override/#objectmeta) for managed resources
	MetaOverrides typeoverride.ObjectMeta `json:"metaOverrides,omitempty"`

	// Override any of the [Query parameters](../thanos_types/#query)
	QueryOverrides *Query `json:"queryOverrides,omitempty"`
}

func (*ThanosPeerSpec) DeepCopy added in v0.1.4

func (in *ThanosPeerSpec) DeepCopy() *ThanosPeerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosPeerSpec.

func (*ThanosPeerSpec) DeepCopyInto added in v0.1.4

func (in *ThanosPeerSpec) DeepCopyInto(out *ThanosPeerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ThanosPeerStatus added in v0.1.4

type ThanosPeerStatus struct {
	// The peer query is available over HTTP on this internal service URL
	QueryHTTPServiceURL string `json:"queryHTTPServiceURL,omitempty"`
}

func (*ThanosPeerStatus) DeepCopy added in v0.1.4

func (in *ThanosPeerStatus) DeepCopy() *ThanosPeerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosPeerStatus.

func (*ThanosPeerStatus) DeepCopyInto added in v0.1.4

func (in *ThanosPeerStatus) DeepCopyInto(out *ThanosPeerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ThanosSpec

type ThanosSpec struct {
	QueryDiscovery                               bool           `json:"queryDiscovery,omitempty"`
	StoreGateway                                 *StoreGateway  `json:"storeGateway,omitempty"`
	Rule                                         *Rule          `json:"rule,omitempty"`
	Query                                        *Query         `json:"query,omitempty"`
	QueryFrontend                                *QueryFrontend `json:"queryFrontend,omitempty"`
	ClusterDomain                                string         `json:"clusterDomain,omitempty"`
	EnableRecreateWorkloadOnImmutableFieldChange bool           `json:"enableRecreateWorkloadOnImmutableFieldChange,omitempty"`
}

ThanosSpec defines the desired state of Thanos

func (*ThanosSpec) DeepCopy

func (in *ThanosSpec) DeepCopy() *ThanosSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosSpec.

func (*ThanosSpec) DeepCopyInto

func (in *ThanosSpec) DeepCopyInto(out *ThanosSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ThanosStatus

type ThanosStatus struct {
}

ThanosStatus defines the observed state of Thanos

func (*ThanosStatus) DeepCopy

func (in *ThanosStatus) DeepCopy() *ThanosStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosStatus.

func (*ThanosStatus) DeepCopyInto

func (in *ThanosStatus) DeepCopyInto(out *ThanosStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TimeRange

type TimeRange struct {
	// Start of time range limit to serve. Thanos Store will serve only metrics, which happened
	// later than this value. Option can be a constant time in RFC3339 format or time duration
	// relative to current time, such as -1d or 2h45m. Valid duration units are ms, s, m, h, d, w, y.
	MinTime string `json:"minTime,omitempty"`
	// 	End of time range limit to serve. Thanos Store
	//	will serve only blocks, which happened eariler
	//	than this value. Option can be a constant time
	//	in RFC3339 format or time duration relative to
	//	current time, such as -1d or 2h45m. Valid
	//	duration units are ms, s, m, h, d, w, y.
	MaxTime string `json:"maxTime,omitempty"`
}

func (*TimeRange) DeepCopy

func (in *TimeRange) DeepCopy() *TimeRange

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeRange.

func (*TimeRange) DeepCopyInto

func (in *TimeRange) DeepCopyInto(out *TimeRange)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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