v1alpha1

package
v0.3.24 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2023 License: Apache-2.0 Imports: 11 Imported by: 9

Documentation

Overview

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

Index

Constants

View Source
const (
	// TenantReadyCondition reports on current status of the Tenant. Ready indicates the tenant has been created and the limits have been applied.
	TenantReadyCondition crhelperTypes.ConditionType = "TenantReady"

	// MimirLimitsValidationErrorReason used when the limits configured for Mimir are invalid.
	MimirLimitsValidationErrorReason = "MimirLimitsValidationError"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "observability.traceshield.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 AllMatchType = []MatchType{
	Strict,
	Regex,
}
View Source
var SchemeGroupVersion = GroupVersion

SchemeGroupVersion is group version used to register these objects.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Types

type BlockedQuery added in v0.3.0

type BlockedQuery struct {
	// +kubebuilder:validation:Optional
	Pattern *string `yaml:"pattern,omitempty" json:"pattern,omitempty"`
	// +kubebuilder:validation:Optional
	Regex *bool `yaml:"regex,omitempty" json:"regex,omitempty"`
	// +kubebuilder:validation:Optional
	Hash *uint32 `yaml:"hash,omitempty" json:"hash,omitempty"`
	// +kubebuilder:validation:Optional
	Types BlockedQueryTypes `yaml:"types,omitempty" json:"types,omitempty"`
}

func (*BlockedQuery) DeepCopy added in v0.3.0

func (in *BlockedQuery) DeepCopy() *BlockedQuery

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

func (*BlockedQuery) DeepCopyInto added in v0.3.0

func (in *BlockedQuery) DeepCopyInto(out *BlockedQuery)

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

type BlockedQueryType added in v0.3.9

type BlockedQueryType string

BlockedQueryType is the type of blocked query +kubebuilder:validation:Enum=metric;filter;limited

const (
	BlockedQueryTypeMetric  BlockedQueryType = "metric"
	BlockedQueryTypeFilter  BlockedQueryType = "filter"
	BlockedQueryTypeLimited BlockedQueryType = "limited"
)

func (BlockedQueryType) IsValid added in v0.3.9

func (e BlockedQueryType) IsValid() bool

func (BlockedQueryType) MarshalGQL added in v0.3.9

func (e BlockedQueryType) MarshalGQL(w io.Writer)

func (BlockedQueryType) String added in v0.3.9

func (e BlockedQueryType) String() string

func (*BlockedQueryType) UnmarshalGQL added in v0.3.9

func (e *BlockedQueryType) UnmarshalGQL(v interface{}) error

type BlockedQueryTypes added in v0.3.9

type BlockedQueryTypes []BlockedQueryType

func (BlockedQueryTypes) BlockedQueryType added in v0.3.24

func (t BlockedQueryTypes) BlockedQueryType() []BlockedQueryType

func (BlockedQueryTypes) DeepCopy added in v0.3.9

func (in BlockedQueryTypes) DeepCopy() BlockedQueryTypes

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

func (BlockedQueryTypes) DeepCopyInto added in v0.3.9

func (in BlockedQueryTypes) DeepCopyInto(out *BlockedQueryTypes)

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

func (BlockedQueryTypes) MarshalGQL added in v0.3.23

func (t BlockedQueryTypes) MarshalGQL(w io.Writer)

func (BlockedQueryTypes) MarshalYAML added in v0.3.9

func (t BlockedQueryTypes) MarshalYAML() (interface{}, error)

MarshalYAML implements the yaml.Marshaler interface.

func (BlockedQueryTypes) String added in v0.3.9

func (t BlockedQueryTypes) String() string

String implements the fmt.Stringer interface.

func (*BlockedQueryTypes) UnmarshalGQL added in v0.3.23

func (t *BlockedQueryTypes) UnmarshalGQL(v interface{}) error

func (*BlockedQueryTypes) UnmarshalYAML added in v0.3.9

func (t *BlockedQueryTypes) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements the yaml.Unmarshaler interface.

type Config

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

	Spec   ConfigSpec   `json:"spec,omitempty"`
	Status ConfigStatus `json:"status,omitempty"`
}

+genclient:nonNamespaced Config is the Schema for the configs API

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

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

func (*Config) DeepCopyObject

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

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

type ConfigList

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

ConfigList contains a list of Config

func (*ConfigList) DeepCopy

func (in *ConfigList) DeepCopy() *ConfigList

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

func (*ConfigList) DeepCopyInto

func (in *ConfigList) DeepCopyInto(out *ConfigList)

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

func (*ConfigList) DeepCopyObject

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

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

type ConfigMapSelector

type ConfigMapSelector struct {
	// +kubebuilder:default:="mimir-runtime"
	Name string `json:"name"`

	// +kubebuilder:default:="mimir"
	Namespace string `json:"namespace"`

	// +kubebuilder:default:="runtime.yaml"
	Key string `json:"key"`
}

func (*ConfigMapSelector) DeepCopy

func (in *ConfigMapSelector) DeepCopy() *ConfigMapSelector

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

func (*ConfigMapSelector) DeepCopyInto

func (in *ConfigMapSelector) DeepCopyInto(out *ConfigMapSelector)

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

type ConfigSpec

type ConfigSpec struct {

	// +kubebuilder:validation:Optional
	Mimir *MimirSpec `json:"mimir,omitempty"`

	// +kubebuilder:validation:Optional
	Loki *LokiSpec `json:"loki,omitempty"`

	// +kubebuilder:validation:Optional
	Tempo *TempoSpec `json:"tempo,omitempty"`
}

ConfigSpec defines the desired state of Config

func (*ConfigSpec) DeepCopy

func (in *ConfigSpec) DeepCopy() *ConfigSpec

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

func (*ConfigSpec) DeepCopyInto

func (in *ConfigSpec) DeepCopyInto(out *ConfigSpec)

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

type ConfigStatus

type ConfigStatus struct {
}

ConfigStatus defines the observed state of Config

func (*ConfigStatus) DeepCopy

func (in *ConfigStatus) DeepCopy() *ConfigStatus

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

func (*ConfigStatus) DeepCopyInto

func (in *ConfigStatus) DeepCopyInto(out *ConfigStatus)

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

type DimensionMappings added in v0.3.0

type DimensionMappings struct {
	// +kubebuilder:validation:Optional
	Name *string `yaml:"name,omitempty" json:"name,omitempty"`
	// +kubebuilder:validation:Optional
	SourceLabel []string `yaml:"source_labels,omitempty" json:"source_labels,omitempty"`
	// +kubebuilder:validation:Optional
	Join *string `yaml:"join,omitempty" json:"join,omitempty"`
}

func (*DimensionMappings) DeepCopy added in v0.3.0

func (in *DimensionMappings) DeepCopy() *DimensionMappings

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

func (*DimensionMappings) DeepCopyInto added in v0.3.0

func (in *DimensionMappings) DeepCopyInto(out *DimensionMappings)

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

type FilterPolicy added in v0.3.0

type FilterPolicy struct {
	// +kubebuilder:validation:Optional
	Include *PolicyMatch `yaml:"include,omitempty" json:"include,omitempty"`
	// +kubebuilder:validation:Optional
	Exclude *PolicyMatch `yaml:"exclude,omitempty" json:"exclude,omitempty"`
}

func (*FilterPolicy) DeepCopy added in v0.3.0

func (in *FilterPolicy) DeepCopy() *FilterPolicy

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

func (*FilterPolicy) DeepCopyInto added in v0.3.0

func (in *FilterPolicy) DeepCopyInto(out *FilterPolicy)

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

type HTTPClientConfig added in v0.3.0

type HTTPClientConfig struct {
	// The HTTP basic authentication credentials for the targets.
	// +kubebuilder:validation:Optional
	BasicAuth *prom_config.BasicAuth `yaml:"basic_auth,omitempty" json:"basic_auth,omitempty"`
	// The HTTP authorization credentials for the targets.
	// +kubebuilder:validation:Optional
	Authorization *prom_config.Authorization `yaml:"authorization,omitempty" json:"authorization,omitempty"`
	// The OAuth2 client credentials used to fetch a token for the targets.
	// +kubebuilder:validation:Optional
	OAuth2 *OAuth2 `yaml:"oauth2,omitempty" json:"oauth2,omitempty"`
	// TLSConfig to use to connect to the targets.
	// +kubebuilder:validation:Optional
	TLSConfig *prom_config.TLSConfig `yaml:"tls_config,omitempty" json:"tls_config,omitempty"`
	// FollowRedirects specifies whether the client should follow HTTP 3xx redirects.
	// The omitempty flag is not set, because it would be hidden from the
	// marshalled configuration when set to false.
	// +kubebuilder:validation:Optional
	FollowRedirects *bool `yaml:"follow_redirects" json:"follow_redirects"`
	// EnableHTTP2 specifies whether the client should configure HTTP2.
	// The omitempty flag is not set, because it would be hidden from the
	// marshalled configuration when set to false.
	// +kubebuilder:validation:Optional
	EnableHTTP2 *bool `yaml:"enable_http2" json:"enable_http2"`
	// Proxy configuration.
	// +kubebuilder:validation:Optional
	ProxyConfig `yaml:",inline" json:",inline"`
}

HTTPClientConfig configures an HTTP client.

func (*HTTPClientConfig) DeepCopy added in v0.3.0

func (in *HTTPClientConfig) DeepCopy() *HTTPClientConfig

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

func (*HTTPClientConfig) DeepCopyInto added in v0.3.0

func (in *HTTPClientConfig) DeepCopyInto(out *HTTPClientConfig)

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

type LabelName added in v0.3.8

type LabelName string

LabelName is a valid Prometheus label name which may only contain ASCII letters, numbers, as well as underscores. +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"

func (LabelName) MarshalGQL added in v0.3.10

func (l LabelName) MarshalGQL(w io.Writer)

MarshalGQL implements the graphql.Marshaler interface

func (*LabelName) UnmarshalGQL added in v0.3.10

func (l *LabelName) UnmarshalGQL(v interface{}) error

UnmarshalGQL implements the graphql.Unmarshaler interface

type LimitSpec

type LimitSpec struct {

	// +kubebuilder:validation:Optional
	Mimir *MimirLimits `json:"mimir,omitempty"`

	// +kubebuilder:validation:Optional
	Loki *LokiLimits `json:"loki,omitempty"`

	// +kubebuilder:validation:Optional
	Tempo *TempoLimits `json:"tempo,omitempty"`
}

Defines the limits for a tenant

func (*LimitSpec) DeepCopy

func (in *LimitSpec) DeepCopy() *LimitSpec

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

func (*LimitSpec) DeepCopyInto

func (in *LimitSpec) DeepCopyInto(out *LimitSpec)

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

type LokiConfigSpec added in v0.3.0

type LokiConfigSpec struct {
	// +kubebuilder:validation:Optional
	Multi *MultiRuntimeConfig `json:"multi_kv_config,omitempty"`
	// +kubebuilder:validation:Optional
	TenantConfig map[string]*LokiRuntimeConfig `json:"configs,omitempty"`
}

func (*LokiConfigSpec) DeepCopy added in v0.3.0

func (in *LokiConfigSpec) DeepCopy() *LokiConfigSpec

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

func (*LokiConfigSpec) DeepCopyInto added in v0.3.0

func (in *LokiConfigSpec) DeepCopyInto(out *LokiConfigSpec)

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

type LokiLimits added in v0.3.0

type LokiLimits struct {

	// Distributor enforced limits.
	// +kubebuilder:validation:Optional
	IngestionRateStrategy *string `yaml:"ingestion_rate_strategy,omitempty" json:"ingestion_rate_strategy,omitempty"`
	// +kubebuilder:validation:Optional
	IngestionRateMB *float64 `yaml:"ingestion_rate_mb,omitempty" json:"ingestion_rate_mb,omitempty"`
	// +kubebuilder:validation:Optional
	IngestionBurstSizeMB *float64 `yaml:"ingestion_burst_size_mb,omitempty" json:"ingestion_burst_size_mb,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLabelNameLength *int `yaml:"max_label_name_length,omitempty" json:"max_label_name_length,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLabelValueLength *int `yaml:"max_label_value_length,omitempty" json:"max_label_value_length,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLabelNamesPerSeries *int `yaml:"max_label_names_per_series,omitempty" json:"max_label_names_per_series,omitempty"`
	// +kubebuilder:validation:Optional
	RejectOldSamples *bool `yaml:"reject_old_samples,omitempty" json:"reject_old_samples,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	RejectOldSamplesMaxAge *metav1.Duration `yaml:"reject_old_samples_max_age,omitempty" json:"reject_old_samples_max_age,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	CreationGracePeriod *metav1.Duration `yaml:"creation_grace_period,omitempty" json:"creation_grace_period,omitempty"`
	// +kubebuilder:validation:Optional
	EnforceMetricName *bool `yaml:"enforce_metric_name,omitempty" json:"enforce_metric_name,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLineSize *uint64 `yaml:"max_line_size,omitempty" json:"max_line_size,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLineSizeTruncate *bool `yaml:"max_line_size_truncate,omitempty" json:"max_line_size_truncate,omitempty"`
	// +kubebuilder:validation:Optional
	IncrementDuplicateTimestamp *bool `yaml:"increment_duplicate_timestamp,omitempty" json:"increment_duplicate_timestamp,omitempty"`

	// Ingester enforced limits.
	// +kubebuilder:validation:Optional
	MaxLocalStreamsPerUser *int `yaml:"max_streams_per_user,omitempty" json:"max_streams_per_user,omitempty"`
	// +kubebuilder:validation:Optional
	MaxGlobalStreamsPerUser *int `yaml:"max_global_streams_per_user,omitempty" json:"max_global_streams_per_user,omitempty"`
	// +kubebuilder:validation:Optional
	UnorderedWrites *bool `yaml:"unordered_writes,omitempty" json:"unordered_writes,omitempty"`
	// +kubebuilder:validation:Optional
	PerStreamRateLimit *uint64 `yaml:"per_stream_rate_limit,omitempty" json:"per_stream_rate_limit,omitempty"`
	// +kubebuilder:validation:Optional
	PerStreamRateLimitBurst *uint64 `yaml:"per_stream_rate_limit_burst,omitempty" json:"per_stream_rate_limit_burst,omitempty"`

	// Querier enforced limits.
	// +kubebuilder:validation:Optional
	MaxChunksPerQuery *int `yaml:"max_chunks_per_query,omitempty" json:"max_chunks_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	MaxQuerySeries *int `yaml:"max_query_series,omitempty" json:"max_query_series,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxQueryLookback *metav1.Duration `yaml:"max_query_lookback,omitempty" json:"max_query_lookback,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxQueryLength *metav1.Duration `yaml:"max_query_length,omitempty" json:"max_query_length,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxQueryRange *metav1.Duration `yaml:"max_query_range,omitempty" json:"max_query_range,omitempty"`
	// +kubebuilder:validation:Optional
	MaxQueryParallelism *int `yaml:"max_query_parallelism,omitempty" json:"max_query_parallelism,omitempty"`
	// +kubebuilder:validation:Optional
	TSDBMaxQueryParallelism *int `yaml:"tsdb_max_query_parallelism,omitempty" json:"tsdb_max_query_parallelism,omitempty"`
	// +kubebuilder:validation:Optional
	TSDBMaxBytesPerShard *uint64 `yaml:"tsdb_max_bytes_per_shard,omitempty" json:"tsdb_max_bytes_per_shard,omitempty"`
	// +kubebuilder:validation:Optional
	CardinalityLimit *int `yaml:"cardinality_limit,omitempty" json:"cardinality_limit,omitempty"`
	// +kubebuilder:validation:Optional
	MaxStreamsMatchersPerQuery *int `yaml:"max_streams_matchers_per_query,omitempty" json:"max_streams_matchers_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	MaxConcurrentTailRequests *int `yaml:"max_concurrent_tail_requests,omitempty" json:"max_concurrent_tail_requests,omitempty"`
	// +kubebuilder:validation:Optional
	MaxEntriesLimitPerQuery *int `yaml:"max_entries_limit_per_query,omitempty" json:"max_entries_limit_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxCacheFreshness *metav1.Duration `yaml:"max_cache_freshness_per_query,omitempty" json:"max_cache_freshness_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxStatsCacheFreshness *metav1.Duration `yaml:"max_stats_cache_freshness,omitempty" json:"max_stats_cache_freshness,omitempty"`
	// +kubebuilder:validation:Optional
	MaxQueriersPerTenant *int `yaml:"max_queriers_per_tenant,omitempty" json:"max_queriers_per_tenant,omitempty"`
	// +kubebuilder:validation:Optional
	QueryReadyIndexNumDays *int `yaml:"query_ready_index_num_days,omitempty" json:"query_ready_index_num_days,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	QueryTimeout *metav1.Duration `yaml:"query_timeout,omitempty" json:"query_timeout,omitempty"`

	// Query frontend enforced limits. The default is actually parameterized by the queryrange config.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	QuerySplitDuration *metav1.Duration `yaml:"split_queries_by_interval,omitempty" json:"split_queries_by_interval,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MinShardingLookback *metav1.Duration `yaml:"min_sharding_lookback,omitempty" json:"min_sharding_lookback,omitempty"`
	// +kubebuilder:validation:Optional
	MaxQueryBytesRead *uint64 `yaml:"max_query_bytes_read,omitempty" json:"max_query_bytes_read,omitempty"`
	// +kubebuilder:validation:Optional
	MaxQuerierBytesRead *uint64 `yaml:"max_querier_bytes_read,omitempty" json:"max_querier_bytes_read,omitempty"`
	// +kubebuilder:validation:Optional
	VolumeEnabled *bool `yaml:"volume_enabled,omitempty" json:"volume_enabled,omitempty" doc:"description=Enable log-volume endpoints."`
	// +kubebuilder:validation:Optional
	VolumeMaxSeries *int `` /* 152-byte string literal not displayed */

	// TODO(dannyk): this setting is misnamed and probably deprecatable.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	RulerEvaluationDelay *metav1.Duration `yaml:"ruler_evaluation_delay_duration,omitempty" json:"ruler_evaluation_delay_duration,omitempty"`
	// +kubebuilder:validation:Optional
	RulerMaxRulesPerRuleGroup *int `yaml:"ruler_max_rules_per_rule_group,omitempty" json:"ruler_max_rules_per_rule_group,omitempty"`
	// +kubebuilder:validation:Optional
	RulerMaxRuleGroupsPerTenant *int `yaml:"ruler_max_rule_groups_per_tenant,omitempty" json:"ruler_max_rule_groups_per_tenant,omitempty"`
	// +kubebuilder:validation:Optional
	RulerAlertManagerConfig *RulerAlertManagerConfig `yaml:"ruler_alertmanager_config,omitempty" json:"ruler_alertmanager_config,omitempty" doc:"hidden"`
	// +kubebuilder:validation:Optional
	RulerTenantShardSize *int `yaml:"ruler_tenant_shard_size,omitempty" json:"ruler_tenant_shard_size,omitempty"`

	// this field is the inversion of the general remote_write.enabled because the zero value of a boolean is false,
	// and if it were ruler_remote_write_enabled, it would be impossible to know if the value was explicitly set or default
	// +kubebuilder:validation:Optional
	RulerRemoteWriteDisabled *bool `` /* 145-byte string literal not displayed */

	// +kubebuilder:validation:Optional
	RulerRemoteWriteConfig map[string]RemoteWriteSpec `` /* 205-byte string literal not displayed */

	// TODO(dannyk): possible enhancement is to align this with rule group interval
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	RulerRemoteEvaluationTimeout *metav1.Duration `` /* 203-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	RulerRemoteEvaluationMaxResponseSize *int64 `` /* 268-byte string literal not displayed */

	// Global and per tenant deletion mode
	// +kubebuilder:validation:Optional
	DeletionMode *string `yaml:"deletion_mode,omitempty" json:"deletion_mode,omitempty"`

	// Global and per tenant retention
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	RetentionPeriod *metav1.Duration `yaml:"retention_period,omitempty" json:"retention_period,omitempty"`
	// +kubebuilder:validation:Optional
	StreamRetention []StreamRetention `` /* 568-byte string literal not displayed */

	// +kubebuilder:validation:Optional
	ShardStreams *ShardstreamsConfig `yaml:"shard_streams,omitempty" json:"shard_streams,omitempty"`

	// +kubebuilder:validation:Optional
	BlockedQueries []BlockedQuery `yaml:"blocked_queries,omitempty" json:"blocked_queries,omitempty"`

	// +kubebuilder:validation:Optional
	RequiredLabels []string `` /* 126-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	RequiredNumberLabels *int `` /* 152-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	IndexGatewayShardSize *int `yaml:"index_gateway_shard_size,omitempty" json:"index_gateway_shard_size,omitempty"`
}

func (*LokiLimits) DeepCopy added in v0.3.0

func (in *LokiLimits) DeepCopy() *LokiLimits

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

func (*LokiLimits) DeepCopyInto added in v0.3.0

func (in *LokiLimits) DeepCopyInto(out *LokiLimits)

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

type LokiLimitsInput added in v0.3.7

type LokiLimitsInput LokiLimits

func (*LokiLimitsInput) DeepCopy added in v0.3.7

func (in *LokiLimitsInput) DeepCopy() *LokiLimitsInput

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

func (*LokiLimitsInput) DeepCopyInto added in v0.3.7

func (in *LokiLimitsInput) DeepCopyInto(out *LokiLimitsInput)

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

type LokiRuntimeConfig added in v0.3.0

type LokiRuntimeConfig struct {
	// +kubebuilder:validation:Optional
	LogStreamCreation *bool `json:"log_stream_creation,omitempty"`
	// +kubebuilder:validation:Optional
	LogPushRequest *bool `json:"log_push_request,omitempty"`
	// +kubebuilder:validation:Optional
	LogPushRequestStreams *bool `json:"log_push_request_streams,omitempty"`
	// LimitedLogPushErrors is to be implemented and will allow logging push failures at a controlled pace.
	// +kubebuilder:validation:Optional
	LimitedLogPushErrors *bool `json:"limited_log_push_errors,omitempty"`
}

func (*LokiRuntimeConfig) DeepCopy added in v0.3.0

func (in *LokiRuntimeConfig) DeepCopy() *LokiRuntimeConfig

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

func (*LokiRuntimeConfig) DeepCopyInto added in v0.3.0

func (in *LokiRuntimeConfig) DeepCopyInto(out *LokiRuntimeConfig)

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

type LokiSpec added in v0.3.0

type LokiSpec struct {
	// +kubebuilder:validation:Required
	ConfigMap ConfigMapSelector `json:"configMap"`

	// +kubebuilder:validation:Optional
	Config *LokiConfigSpec `json:"config,omitempty"`
}

func (*LokiSpec) DeepCopy added in v0.3.0

func (in *LokiSpec) DeepCopy() *LokiSpec

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

func (*LokiSpec) DeepCopyInto added in v0.3.0

func (in *LokiSpec) DeepCopyInto(out *LokiSpec)

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

type MatchPolicyAttribute added in v0.3.0

type MatchPolicyAttribute struct {
	Key string `yaml:"key" json:"key"`

	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:Type=object
	Value WrappedMap `yaml:"value" json:"value"`
}

func (*MatchPolicyAttribute) DeepCopy added in v0.3.0

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

func (*MatchPolicyAttribute) DeepCopyInto added in v0.3.0

func (in *MatchPolicyAttribute) DeepCopyInto(out *MatchPolicyAttribute)

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

type MatchType added in v0.3.0

type MatchType string
const (
	Strict MatchType = "strict"
	Regex  MatchType = "regex"
)

func (MatchType) IsValid added in v0.3.8

func (e MatchType) IsValid() bool

func (MatchType) MarshalGQL added in v0.3.8

func (e MatchType) MarshalGQL(w io.Writer)

func (MatchType) String added in v0.3.8

func (e MatchType) String() string

func (*MatchType) UnmarshalGQL added in v0.3.8

func (e *MatchType) UnmarshalGQL(v interface{}) error

type MetadataConfig added in v0.3.0

type MetadataConfig struct {
	// Send controls whether we send metric metadata to remote storage.
	// +kubebuilder:validation:Optional
	Send *bool `yaml:"send,omitempty" json:"send,omitempty"`
	// SendInterval controls how frequently we send metric metadata.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	SendInterval *metav1.Duration `yaml:"send_interval,omitempty" json:"send_interval,omitempty"`
	// Maximum number of samples per send.
	// +kubebuilder:validation:Optional
	MaxSamplesPerSend *int `yaml:"max_samples_per_send,omitempty" json:"max_samples_per_send,omitempty"`
}

MetadataConfig is the configuration for sending metadata to remote storage.

func (*MetadataConfig) DeepCopy added in v0.3.0

func (in *MetadataConfig) DeepCopy() *MetadataConfig

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

func (*MetadataConfig) DeepCopyInto added in v0.3.0

func (in *MetadataConfig) DeepCopyInto(out *MetadataConfig)

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

type MimirConfigSpec

type MimirConfigSpec struct {
	// +kubebuilder:validation:Optional
	Multi *MultiRuntimeConfig `json:"multi_kv_config,omitempty"`

	// +kubebuilder:validation:Optional
	IngesterChunkStreaming *bool `json:"ingester_stream_chunks_when_using_blocks,omitempty"`

	// +kubebuilder:validation:Optional
	IngesterLimits *MimirIngesterInstanceLimits `json:"ingester_limits,omitempty"`
	// +kubebuilder:validation:Optional
	DistributorLimits *MimirDistributorInstanceLimits `json:"distributor_limits,omitempty"`
}

func (*MimirConfigSpec) DeepCopy

func (in *MimirConfigSpec) DeepCopy() *MimirConfigSpec

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

func (*MimirConfigSpec) DeepCopyInto

func (in *MimirConfigSpec) DeepCopyInto(out *MimirConfigSpec)

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

type MimirDistributorInstanceLimits

type MimirDistributorInstanceLimits struct {
	// +kubebuilder:validation:Optional
	MaxIngestionRate float64 `json:"max_ingestion_rate,omitempty"`
	// +kubebuilder:validation:Optional
	MaxInflightPushRequests int `json:"max_inflight_push_requests,omitempty"`
	// +kubebuilder:validation:Optional
	MaxInflightPushRequestsBytes int `json:"max_inflight_push_requests_bytes,omitempty"`
}

func (*MimirDistributorInstanceLimits) DeepCopy

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

func (*MimirDistributorInstanceLimits) DeepCopyInto

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

type MimirIngesterInstanceLimits

type MimirIngesterInstanceLimits struct {
	// +kubebuilder:validation:Optional
	MaxIngestionRate float64 `json:"max_ingestion_rate,omitempty"`
	// +kubebuilder:validation:Optional
	MaxInMemoryTenants int64 `json:"max_tenants,omitempty"`
	// +kubebuilder:validation:Optional
	MaxInMemorySeries int64 `json:"max_series,omitempty"`
	// +kubebuilder:validation:Optional
	MaxInflightPushRequests int64 `json:"max_inflight_push_requests,omitempty"`
}

func (*MimirIngesterInstanceLimits) DeepCopy

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

func (*MimirIngesterInstanceLimits) DeepCopyInto

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

type MimirLimits

type MimirLimits struct {
	// Distributor enforced limits.
	// +kubebuilder:validation:Optional
	RequestRate *float64 `yaml:"request_rate,omitempty" json:"request_rate,omitempty" category:"experimental"`
	// +kubebuilder:validation:Optional
	RequestBurstSize *int `yaml:"request_burst_size,omitempty" json:"request_burst_size,omitempty" category:"experimental"`
	// +kubebuilder:validation:Optional
	IngestionRate *float64 `yaml:"ingestion_rate,omitempty" json:"ingestion_rate,omitempty"`
	// +kubebuilder:validation:Optional
	IngestionBurstSize *int `yaml:"ingestion_burst_size,omitempty" json:"ingestion_burst_size,omitempty"`
	// +kubebuilder:validation:Optional
	AcceptHASamples *bool `yaml:"accept_ha_samples,omitempty" json:"accept_ha_samples,omitempty"`
	// +kubebuilder:validation:Optional
	HAClusterLabel *string `yaml:"ha_cluster_label,omitempty" json:"ha_cluster_label,omitempty"`
	// +kubebuilder:validation:Optional
	HAReplicaLabel *string `yaml:"ha_replica_label,omitempty" json:"ha_replica_label,omitempty"`
	// +kubebuilder:validation:Optional
	HAMaxClusters *int `yaml:"ha_max_clusters,omitempty" json:"ha_max_clusters,omitempty"`
	// +kubebuilder:validation:Optional
	DropLabels []string `yaml:"drop_labels,omitempty" json:"drop_labels,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	MaxLabelNameLength *int `yaml:"max_label_name_length,omitempty" json:"max_label_name_length,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLabelValueLength *int `yaml:"max_label_value_length,omitempty" json:"max_label_value_length,omitempty"`
	// +kubebuilder:validation:Optional
	MaxLabelNamesPerSeries *int `yaml:"max_label_names_per_series,omitempty" json:"max_label_names_per_series,omitempty"`
	// +kubebuilder:validation:Optional
	MaxMetadataLength *int `yaml:"max_metadata_length,omitempty" json:"max_metadata_length,omitempty"`
	// +kubebuilder:validation:Optional
	MaxNativeHistogramBuckets *int `yaml:"max_native_histogram_buckets,omitempty" json:"max_native_histogram_buckets,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	CreationGracePeriod *metav1.Duration `yaml:"creation_grace_period,omitempty" json:"creation_grace_period,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	EnforceMetadataMetricName *bool `yaml:"enforce_metadata_metric_name,omitempty" json:"enforce_metadata_metric_name,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	IngestionTenantShardSize *int `yaml:"ingestion_tenant_shard_size,omitempty" json:"ingestion_tenant_shard_size,omitempty"`
	// +kubebuilder:validation:Optional
	MetricRelabelConfigs []RelabelConfig `` /* 319-byte string literal not displayed */

	// Ingester enforced limits.
	// Series
	// +kubebuilder:validation:Optional
	MaxGlobalSeriesPerUser *int `yaml:"max_global_series_per_user,omitempty" json:"max_global_series_per_user,omitempty"`
	// +kubebuilder:validation:Optional
	MaxGlobalSeriesPerMetric *int `yaml:"max_global_series_per_metric,omitempty" json:"max_global_series_per_metric,omitempty"`
	// Metadata
	// +kubebuilder:validation:Optional
	MaxGlobalMetricsWithMetadataPerUser *int `yaml:"max_global_metadata_per_user,omitempty" json:"max_global_metadata_per_user,omitempty"`
	// +kubebuilder:validation:Optional
	MaxGlobalMetadataPerMetric *int `yaml:"max_global_metadata_per_metric,omitempty" json:"max_global_metadata_per_metric,omitempty"`
	// +kubebuilder:validation:Optional
	// Exemplars
	// +kubebuilder:validation:Optional
	MaxGlobalExemplarsPerUser *int `yaml:"max_global_exemplars_per_user,omitempty" json:"max_global_exemplars_per_user,omitempty" category:"experimental"`
	// Native histograms
	// +kubebuilder:validation:Optional
	NativeHistogramsIngestionEnabled *bool `` /* 129-byte string literal not displayed */
	// Active series custom trackers
	// +kubebuilder:validation:Optional
	ActiveSeriesCustomTrackersConfig map[string]string `` /* 420-byte string literal not displayed */
	// Max allowed time window for out-of-order samples.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	OutOfOrderTimeWindow *metav1.Duration `yaml:"out_of_order_time_window,omitempty" json:"out_of_order_time_window,omitempty" category:"experimental"`
	// +kubebuilder:validation:Optional
	OutOfOrderBlocksExternalLabelEnabled *bool `` /* 143-byte string literal not displayed */

	// User defined label to give the option of subdividing specific metrics by another label
	// +kubebuilder:validation:Optional
	SeparateMetricsGroupLabel *string `yaml:"separate_metrics_group_label,omitempty" json:"separate_metrics_group_label,omitempty" category:"experimental"`

	// Querier enforced limits.
	// +kubebuilder:validation:Optional
	MaxChunksPerQuery *int `yaml:"max_fetched_chunks_per_query,omitempty" json:"max_fetched_chunks_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	MaxFetchedSeriesPerQuery *int `yaml:"max_fetched_series_per_query,omitempty" json:"max_fetched_series_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	MaxFetchedChunkBytesPerQuery *int `yaml:"max_fetched_chunk_bytes_per_query,omitempty" json:"max_fetched_chunk_bytes_per_query,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxQueryLookback *metav1.Duration `yaml:"max_query_lookback,omitempty" json:"max_query_lookback,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxPartialQueryLength *metav1.Duration `yaml:"max_partial_query_length,omitempty" json:"max_partial_query_length,omitempty"`
	// +kubebuilder:validation:Optional
	MaxQueryParallelism *int `yaml:"max_query_parallelism,omitempty" json:"max_query_parallelism,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxLabelsQueryLength *metav1.Duration `yaml:"max_labels_query_length,omitempty" json:"max_labels_query_length,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxCacheFreshness *metav1.Duration `yaml:"max_cache_freshness,omitempty" json:"max_cache_freshness,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	MaxQueriersPerTenant *int `yaml:"max_queriers_per_tenant,omitempty" json:"max_queriers_per_tenant,omitempty"`
	// +kubebuilder:validation:Optional
	QueryShardingTotalShards *int `yaml:"query_sharding_total_shards,omitempty" json:"query_sharding_total_shards,omitempty"`
	// +kubebuilder:validation:Optional
	QueryShardingMaxShardedQueries *int `yaml:"query_sharding_max_sharded_queries,omitempty" json:"query_sharding_max_sharded_queries,omitempty"`
	// +kubebuilder:validation:Optional
	QueryShardingMaxRegexpSizeBytes *int `` /* 131-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	SplitInstantQueriesByInterval *metav1.Duration `yaml:"split_instant_queries_by_interval,omitempty" json:"split_instant_queries_by_interval,omitempty" category:"experimental"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	QueryIngestersWithin *metav1.Duration `yaml:"query_ingesters_within,omitempty" json:"query_ingesters_within,omitempty" category:"advanced"`

	// Query-frontend limits.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxTotalQueryLength *metav1.Duration `yaml:"max_total_query_length,omitempty" json:"max_total_query_length,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	ResultsCacheTTL *metav1.Duration `yaml:"results_cache_ttl,omitempty" json:"results_cache_ttl,omitempty" category:"experimental"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	ResultsCacheTTLForOutOfOrderTimeWindow *metav1.Duration `` /* 151-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	ResultsCacheTTLForCardinalityQuery *metav1.Duration `` /* 137-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	ResultsCacheTTLForLabelsQuery *metav1.Duration `` /* 127-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	ResultsCacheForUnalignedQueryEnabled *bool `yaml:"cache_unaligned_requests,omitempty" json:"cache_unaligned_requests,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	MaxQueryExpressionSizeBytes *int `yaml:"max_query_expression_size_bytes,omitempty" json:"max_query_expression_size_bytes,omitempty" category:"experimental"`

	// Cardinality
	// +kubebuilder:validation:Optional
	CardinalityAnalysisEnabled *bool `yaml:"cardinality_analysis_enabled,omitempty" json:"cardinality_analysis_enabled,omitempty"`
	// +kubebuilder:validation:Optional
	LabelNamesAndValuesResultsMaxSizeBytes *int `yaml:"label_names_and_values_results_max_size_bytes,omitempty" json:"label_names_and_values_results_max_size_bytes,omitempty"`
	// +kubebuilder:validation:Optional
	LabelValuesMaxCardinalityLabelNamesPerRequest *int `` /* 139-byte string literal not displayed */

	// Ruler defaults and limits.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	RulerEvaluationDelay *metav1.Duration `yaml:"ruler_evaluation_delay_duration,omitempty" json:"ruler_evaluation_delay_duration,omitempty"`
	// +kubebuilder:validation:Optional
	RulerTenantShardSize *int `yaml:"ruler_tenant_shard_size,omitempty" json:"ruler_tenant_shard_size,omitempty"`
	// +kubebuilder:validation:Optional
	RulerMaxRulesPerRuleGroup *int `yaml:"ruler_max_rules_per_rule_group,omitempty" json:"ruler_max_rules_per_rule_group,omitempty"`
	// +kubebuilder:validation:Optional
	RulerMaxRuleGroupsPerTenant *int `yaml:"ruler_max_rule_groups_per_tenant,omitempty" json:"ruler_max_rule_groups_per_tenant,omitempty"`
	// +kubebuilder:validation:Optional
	RulerRecordingRulesEvaluationEnabled *bool `` /* 139-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	RulerAlertingRulesEvaluationEnabled *bool `` /* 137-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	RulerSyncRulesOnChangesEnabled *bool `yaml:"ruler_sync_rules_on_changes_enabled,omitempty" json:"ruler_sync_rules_on_changes_enabled,omitempty" category:"advanced"`

	// Store-gateway.
	// +kubebuilder:validation:Optional
	StoreGatewayTenantShardSize *int `yaml:"store_gateway_tenant_shard_size,omitempty" json:"store_gateway_tenant_shard_size,omitempty"`

	// Compactor.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	CompactorBlocksRetentionPeriod *metav1.Duration `yaml:"compactor_blocks_retention_period,omitempty" json:"compactor_blocks_retention_period,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorSplitAndMergeShards *int `yaml:"compactor_split_and_merge_shards,omitempty" json:"compactor_split_and_merge_shards,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorSplitGroups *int `yaml:"compactor_split_groups,omitempty" json:"compactor_split_groups,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorTenantShardSize *int `yaml:"compactor_tenant_shard_size,omitempty" json:"compactor_tenant_shard_size,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	CompactorPartialBlockDeletionDelay *metav1.Duration `yaml:"compactor_partial_block_deletion_delay,omitempty" json:"compactor_partial_block_deletion_delay,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorBlockUploadEnabled *bool `yaml:"compactor_block_upload_enabled,omitempty" json:"compactor_block_upload_enabled,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorBlockUploadValidationEnabled *bool `yaml:"compactor_block_upload_validation_enabled,omitempty" json:"compactor_block_upload_validation_enabled,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorBlockUploadVerifyChunks *bool `yaml:"compactor_block_upload_verify_chunks,omitempty" json:"compactor_block_upload_verify_chunks,omitempty"`
	// +kubebuilder:validation:Optional
	CompactorBlockUploadMaxBlockSizeBytes *int64 `` /* 141-byte string literal not displayed */

	// This config doesn't have a CLI flag registered here because they're registered in
	// their own original config struct.
	// +kubebuilder:validation:Optional
	S3SSEType *string `` /* 241-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	S3SSEKMSKeyID *string `` /* 176-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	S3SSEKMSEncryptionContext *string `` /* 304-byte string literal not displayed */

	// Alertmanager.
	// Comma-separated list of network CIDRs to block in Alertmanager receiver
	// +kubebuilder:validation:Optional
	AlertmanagerReceiversBlockCIDRNetworks *string `` /* 137-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	AlertmanagerReceiversBlockPrivateAddresses *bool `` /* 145-byte string literal not displayed */

	// +kubebuilder:validation:Optional
	NotificationRateLimit *float64 `yaml:"alertmanager_notification_rate_limit,omitempty" json:"alertmanager_notification_rate_limit,omitempty"`
	// +kubebuilder:validation:Optional
	NotificationRateLimitPerIntegration map[string]float64 `` /* 139-byte string literal not displayed */

	// +kubebuilder:validation:Optional
	AlertmanagerMaxConfigSizeBytes *int `yaml:"alertmanager_max_config_size_bytes,omitempty" json:"alertmanager_max_config_size_bytes,omitempty"`
	// +kubebuilder:validation:Optional
	AlertmanagerMaxTemplatesCount *int `yaml:"alertmanager_max_templates_count,omitempty" json:"alertmanager_max_templates_count,omitempty"`
	// +kubebuilder:validation:Optional
	AlertmanagerMaxTemplateSizeBytes *int `yaml:"alertmanager_max_template_size_bytes,omitempty" json:"alertmanager_max_template_size_bytes,omitempty"`
	// +kubebuilder:validation:Optional
	AlertmanagerMaxDispatcherAggregationGroups *int `` /* 127-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	AlertmanagerMaxAlertsCount *int `yaml:"alertmanager_max_alerts_count,omitempty" json:"alertmanager_max_alerts_count,omitempty"`
	// +kubebuilder:validation:Optional
	AlertmanagerMaxAlertsSizeBytes *int `yaml:"alertmanager_max_alerts_size_bytes,omitempty" json:"alertmanager_max_alerts_size_bytes,omitempty"`
}

func (*MimirLimits) DeepCopy

func (in *MimirLimits) DeepCopy() *MimirLimits

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

func (*MimirLimits) DeepCopyInto

func (in *MimirLimits) DeepCopyInto(out *MimirLimits)

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

type MimirLimitsInput

type MimirLimitsInput MimirLimits

func (*MimirLimitsInput) DeepCopy

func (in *MimirLimitsInput) DeepCopy() *MimirLimitsInput

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

func (*MimirLimitsInput) DeepCopyInto

func (in *MimirLimitsInput) DeepCopyInto(out *MimirLimitsInput)

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

type MimirSpec

type MimirSpec struct {
	// +kubebuilder:validation:Required
	ConfigMap ConfigMapSelector `json:"configMap"`

	// +kubebuilder:validation:Optional
	Config *MimirConfigSpec `json:"config,omitempty"`
}

func (*MimirSpec) DeepCopy

func (in *MimirSpec) DeepCopy() *MimirSpec

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

func (*MimirSpec) DeepCopyInto

func (in *MimirSpec) DeepCopyInto(out *MimirSpec)

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

type MultiRuntimeConfig

type MultiRuntimeConfig struct {
	// Primary store used by MultiClient. Can be updated in runtime to switch to a different store (eg. consul -> etcd,
	// or to gossip). Doing this allows nice migration between stores. Empty values are ignored.
	PrimaryStore string `json:"primary"`

	// Mirroring enabled or not. Nil = no change.
	Mirroring *bool `json:"mirror_enabled"`
}

func (*MultiRuntimeConfig) DeepCopy

func (in *MultiRuntimeConfig) DeepCopy() *MultiRuntimeConfig

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

func (*MultiRuntimeConfig) DeepCopyInto

func (in *MultiRuntimeConfig) DeepCopyInto(out *MultiRuntimeConfig)

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

type NotifierBasicAuth added in v0.3.5

type NotifierBasicAuth struct {
	// +kubebuilder:validation:Optional
	Username *string `yaml:"basic_auth_username,omitempty" json:"basic_auth_username,omitempty"`
	// +kubebuilder:validation:Optional
	Password *string `yaml:"basic_auth_password,omitempty" json:"basic_auth_password,omitempty"`
}

NotifBasicAuth configures basic authentication for HTTP clients.

func (*NotifierBasicAuth) DeepCopy added in v0.3.5

func (in *NotifierBasicAuth) DeepCopy() *NotifierBasicAuth

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

func (*NotifierBasicAuth) DeepCopyInto added in v0.3.5

func (in *NotifierBasicAuth) DeepCopyInto(out *NotifierBasicAuth)

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

type NotifierConfig added in v0.3.0

type NotifierConfig struct {
	// +kubebuilder:validation:Optional
	TLS *NotifierTLSClientConfig `yaml:",inline,omitempty" json:",inline,omitempty"`
	// +kubebuilder:validation:Optional
	BasicAuth *NotifierBasicAuth `yaml:",inline,omitempty" json:",inline,omitempty"`
	// +kubebuilder:validation:Optional
	HeaderAuth *NotifierHeaderAuth `yaml:",inline,omitempty" json:",inline,omitempty"`
}

func (*NotifierConfig) DeepCopy added in v0.3.0

func (in *NotifierConfig) DeepCopy() *NotifierConfig

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

func (*NotifierConfig) DeepCopyInto added in v0.3.0

func (in *NotifierConfig) DeepCopyInto(out *NotifierConfig)

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

type NotifierHeaderAuth added in v0.3.5

type NotifierHeaderAuth struct {
	// +kubebuilder:validation:Optional
	Type *string `yaml:"type,omitempty" json:"type,omitempty"`
	// +kubebuilder:validation:Optional
	Credentials *string `yaml:"credentials,omitempty" json:"credentials,omitempty"`
	// +kubebuilder:validation:Optional
	CredentialsFile *string `yaml:"credentials_file,omitempty" json:"credentials_file,omitempty"`
}

HeaderAuth condigures header based authorization for HTTP clients.

func (*NotifierHeaderAuth) DeepCopy added in v0.3.5

func (in *NotifierHeaderAuth) DeepCopy() *NotifierHeaderAuth

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

func (*NotifierHeaderAuth) DeepCopyInto added in v0.3.5

func (in *NotifierHeaderAuth) DeepCopyInto(out *NotifierHeaderAuth)

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

type NotifierTLSClientConfig added in v0.3.5

type NotifierTLSClientConfig struct {
	// +kubebuilder:validation:Optional
	CertPath *string `yaml:"tls_cert_path,omitempty" json:"tls_cert_path,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	KeyPath *string `yaml:"tls_key_path,omitempty" json:"tls_key_path,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	CAPath *string `yaml:"tls_ca_path,omitempty" json:"tls_ca_path,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	ServerName *string `yaml:"tls_server_name,omitempty" json:"tls_server_name,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	InsecureSkipVerify *bool `yaml:"tls_insecure_skip_verify,omitempty" json:"tls_insecure_skip_verify,omitempty" category:"advanced"`
	// +kubebuilder:validation:Optional
	CipherSuites *string `` /* 148-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MinVersion *string `yaml:"tls_min_version,omitempty" json:"tls_min_version,omitempty" category:"advanced"`
}

ClientConfig is the config for client TLS.

func (*NotifierTLSClientConfig) DeepCopy added in v0.3.5

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

func (*NotifierTLSClientConfig) DeepCopyInto added in v0.3.5

func (in *NotifierTLSClientConfig) DeepCopyInto(out *NotifierTLSClientConfig)

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

type OAuth2 added in v0.3.0

type OAuth2 struct {
	ClientID string `yaml:"client_id" json:"client_id"`
	// +kubebuilder:validation:Optional
	ClientSecret *prom_config.Secret `yaml:"client_secret" json:"client_secret"`
	// +kubebuilder:validation:Optional
	ClientSecretFile *string `yaml:"client_secret_file" json:"client_secret_file"`
	// +kubebuilder:validation:Optional
	Scopes []string `yaml:"scopes,omitempty" json:"scopes,omitempty"`
	// +kubebuilder:validation:Optional
	TokenURL *string `yaml:"token_url" json:"token_url"`
	// +kubebuilder:validation:Optional
	EndpointParams map[string]string `yaml:"endpoint_params,omitempty" json:"endpoint_params,omitempty"`
	// +kubebuilder:validation:Optional
	TLSConfig *prom_config.TLSConfig `yaml:"tls_config,omitempty" json:"tls_config,omitempty"`
	// +kubebuilder:validation:Optional
	ProxyConfig `yaml:",inline" json:",inline"`
}

OAuth2 is the oauth2 client configuration.

func (*OAuth2) DeepCopy added in v0.3.0

func (in *OAuth2) DeepCopy() *OAuth2

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

func (*OAuth2) DeepCopyInto added in v0.3.0

func (in *OAuth2) DeepCopyInto(out *OAuth2)

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

type PolicyMatch added in v0.3.0

type PolicyMatch struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=strict;regex
	MatchType *MatchType `yaml:"match_type,omitempty" json:"match_type,omitempty"`
	// +kubebuilder:validation:Optional
	Attributes []MatchPolicyAttribute `yaml:"attributes,omitempty" json:"attributes,omitempty"`
}

func (*PolicyMatch) DeepCopy added in v0.3.0

func (in *PolicyMatch) DeepCopy() *PolicyMatch

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

func (*PolicyMatch) DeepCopyInto added in v0.3.0

func (in *PolicyMatch) DeepCopyInto(out *PolicyMatch)

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

type ProxyConfig added in v0.3.0

type ProxyConfig struct {
	// HTTP proxy server to use to connect to the targets.
	// +kubebuilder:validation:Optional
	ProxyURL *string `yaml:"proxy_url,omitempty" json:"proxy_url,omitempty"`
	// NoProxy contains addresses that should not use a proxy.
	// +kubebuilder:validation:Optional
	NoProxy *string `yaml:"no_proxy,omitempty" json:"no_proxy,omitempty"`
	// ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function
	// to determine proxies.
	// +kubebuilder:validation:Optional
	ProxyFromEnvironment *bool `yaml:"proxy_from_environment,omitempty" json:"proxy_from_environment,omitempty"`
	// ProxyConnectHeader optionally specifies headers to send to
	// proxies during CONNECT requests. Assume that at least _some_ of
	// these headers are going to contain secrets and use Secret as the
	// value type instead of string.
	// +kubebuilder:validation:Optional
	ProxyConnectHeader prom_config.Header `yaml:"proxy_connect_header,omitempty" json:"proxy_connect_header,omitempty"`
}

func (*ProxyConfig) DeepCopy added in v0.3.0

func (in *ProxyConfig) DeepCopy() *ProxyConfig

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

func (*ProxyConfig) DeepCopyInto added in v0.3.0

func (in *ProxyConfig) DeepCopyInto(out *ProxyConfig)

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

type QueueConfig added in v0.3.0

type QueueConfig struct {
	// Number of samples to buffer per shard before we block. Defaults to
	// MaxSamplesPerSend.
	// +kubebuilder:validation:Optional
	Capacity *int `yaml:"capacity,omitempty" json:"capacity,omitempty"`

	// Max number of shards, i.e. amount of concurrency.
	// +kubebuilder:validation:Optional
	MaxShards *int `yaml:"max_shards,omitempty" json:"max_shards,omitempty"`

	// Min number of shards, i.e. amount of concurrency.
	// +kubebuilder:validation:Optional
	MinShards *int `yaml:"min_shards,omitempty" json:"min_shards,omitempty"`

	// Maximum number of samples per send.
	// +kubebuilder:validation:Optional
	MaxSamplesPerSend *int `yaml:"max_samples_per_send,omitempty" json:"max_samples_per_send,omitempty"`

	// Maximum time sample will wait in buffer.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	BatchSendDeadline *metav1.Duration `yaml:"batch_send_deadline,omitempty" json:"batch_send_deadline,omitempty"`

	// On recoverable errors, backoff exponentially.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MinBackoff *metav1.Duration `yaml:"min_backoff,omitempty" json:"min_backoff,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxBackoff *metav1.Duration `yaml:"max_backoff,omitempty" json:"max_backoff,omitempty"`
	// +kubebuilder:validation:Optional
	RetryOnRateLimit *bool `yaml:"retry_on_http_429,omitempty" json:"retry_on_http_429,omitempty"`
}

func (*QueueConfig) DeepCopy added in v0.3.0

func (in *QueueConfig) DeepCopy() *QueueConfig

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

func (*QueueConfig) DeepCopyInto added in v0.3.0

func (in *QueueConfig) DeepCopyInto(out *QueueConfig)

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

type RelabelAction added in v0.3.3

type RelabelAction string
const (
	RelabelActionReplace    RelabelAction = "replace"
	RelabelActionReplace0   RelabelAction = "Replace"
	RelabelActionKeep       RelabelAction = "keep"
	RelabelActionKeep0      RelabelAction = "Keep"
	RelabelActionDrop       RelabelAction = "drop"
	RelabelActionDrop0      RelabelAction = "Drop"
	RelabelActionHashmod    RelabelAction = "hashmod"
	RelabelActionHashMod    RelabelAction = "HashMod"
	RelabelActionLabelmap   RelabelAction = "labelmap"
	RelabelActionLabelMap   RelabelAction = "LabelMap"
	RelabelActionLabeldrop  RelabelAction = "labeldrop"
	RelabelActionLabelDrop  RelabelAction = "LabelDrop"
	RelabelActionLabelkeep  RelabelAction = "labelkeep"
	RelabelActionLabelKeep  RelabelAction = "LabelKeep"
	RelabelActionLowercase  RelabelAction = "lowercase"
	RelabelActionLowercase0 RelabelAction = "Lowercase"
	RelabelActionUppercase  RelabelAction = "uppercase"
	RelabelActionUppercase0 RelabelAction = "Uppercase"
	RelabelActionKeepequal  RelabelAction = "keepequal"
	RelabelActionKeepEqual  RelabelAction = "KeepEqual"
	RelabelActionDropequal  RelabelAction = "dropequal"
	RelabelActionDropEqual  RelabelAction = "DropEqual"
)

func (RelabelAction) IsValid added in v0.3.8

func (e RelabelAction) IsValid() bool

func (RelabelAction) MarshalGQL added in v0.3.8

func (e RelabelAction) MarshalGQL(w io.Writer)

func (RelabelAction) String added in v0.3.8

func (e RelabelAction) String() string

func (*RelabelAction) UnmarshalGQL added in v0.3.8

func (e *RelabelAction) UnmarshalGQL(v interface{}) error

type RelabelConfig added in v0.3.0

type RelabelConfig struct {
	// A list of labels from which values are taken and concatenated
	// with the configured separator in order.
	// +kubebuilder:validation:Optional
	SourceLabels []LabelName `yaml:"source_labels,omitempty" json:"source_labels,omitempty"`
	// Separator is the string between concatenated values from the source labels.
	// +kubebuilder:validation:Optional
	Separator *string `yaml:"separator,omitempty" json:"separator,omitempty"`
	// Regex against which the concatenation is matched.
	// +kubebuilder:validation:Optional
	Regex *string `yaml:"regex,omitempty" json:"regex,omitempty"`
	// Modulus to take of the hash of concatenated values from the source labels.
	// +kubebuilder:validation:Optional
	Modulus *uint64 `yaml:"modulus,omitempty" json:"modulus,omitempty"`
	// TargetLabel is the label to which the resulting string is written in a replacement.
	// Regexp interpolation is allowed for the replace action.
	// +kubebuilder:validation:Optional
	TargetLabel *string `yaml:"target_label,omitempty" json:"target_label,omitempty"`
	// Replacement is the regex replacement pattern to be used.
	// +kubebuilder:validation:Optional
	Replacement *string `yaml:"replacement,omitempty" json:"replacement,omitempty"`
	// Action is the action to be performed for the relabeling.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=replace;Replace;keep;Keep;drop;Drop;hashmod;HashMod;labelmap;LabelMap;labeldrop;LabelDrop;labelkeep;LabelKeep;lowercase;Lowercase;uppercase;Uppercase;keepequal;KeepEqual;dropequal;DropEqual
	// +kubebuilder:default=replace
	Action *RelabelAction `yaml:"action,omitempty" json:"action,omitempty"`
}

func (*RelabelConfig) DeepCopy added in v0.3.0

func (in *RelabelConfig) DeepCopy() *RelabelConfig

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

func (*RelabelConfig) DeepCopyInto added in v0.3.0

func (in *RelabelConfig) DeepCopyInto(out *RelabelConfig)

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

type RemoteWriteSpec added in v0.3.0

type RemoteWriteSpec struct {
	URL string `yaml:"url" json:"url"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	RemoteTimeout *metav1.Duration `yaml:"remote_timeout,omitempty" json:"remote_timeout,omitempty"`
	// +kubebuilder:validation:Optional
	Headers map[string]string `yaml:"headers,omitempty" json:"headers,omitempty"`
	// +kubebuilder:validation:Optional
	WriteRelabelConfigs []RelabelConfig `yaml:"write_relabel_configs,omitempty" json:"write_relabel_configs,omitempty"`
	// +kubebuilder:validation:Optional
	Name *string `yaml:"name,omitempty" json:"name,omitempty"`
	// +kubebuilder:validation:Optional
	SendExemplars *bool `yaml:"send_exemplars,omitempty" json:"send_exemplars,omitempty"`
	// +kubebuilder:validation:Optional
	SendNativeHistograms *bool `yaml:"send_native_histograms,omitempty" json:"send_native_histograms,omitempty"`

	// We cannot do proper Go type embedding below as the parser will then parse
	// values arbitrarily into the overflow maps of further-down types.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XPreserveUnknownFields
	// +kubebuilder:pruning:PreserveUnknownFields
	HTTPClientConfig *HTTPClientConfig `yaml:",inline" json:",inline"`
	// +kubebuilder:validation:Optional
	QueueConfig *QueueConfig `yaml:"queue_config,omitempty" json:"queue_config,omitempty"`
	// +kubebuilder:validation:Optional
	MetadataConfig *MetadataConfig `yaml:"metadata_config,omitempty" json:"metadata_config,omitempty"`
	// +kubebuilder:validation:Optional
	SigV4Config *SigV4Config `yaml:"sigv4,omitempty" json:"sigv4,omitempty"`
}

func (*RemoteWriteSpec) DeepCopy added in v0.3.0

func (in *RemoteWriteSpec) DeepCopy() *RemoteWriteSpec

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

func (*RemoteWriteSpec) DeepCopyInto added in v0.3.0

func (in *RemoteWriteSpec) DeepCopyInto(out *RemoteWriteSpec)

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

type RulerAlertManagerConfig added in v0.3.0

type RulerAlertManagerConfig struct {
	// URL of the Alertmanager to send notifications to.
	AlertmanagerURL string `yaml:"alertmanager_url,omitempty" json:"alertmanager_url,omitempty"`
	// Whether to use DNS SRV records to discover Alertmanager.
	// +kubebuilder:validation:Optional
	AlertmanagerDiscovery *bool `yaml:"enable_alertmanager_discovery,omitempty" json:"enable_alertmanager_discovery,omitempty"`
	// How long to wait between refreshing the list of Alertmanager based on DNS service discovery.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	AlertmanagerRefreshInterval *metav1.Duration `yaml:"alertmanager_refresh_interval,omitempty" json:"alertmanager_refresh_interval,omitempty"`
	// Enables the ruler notifier to use the Alertmananger V2 API.
	// +kubebuilder:validation:Optional
	AlertmanangerEnableV2API *bool `yaml:"enable_alertmanager_v2,omitempty" json:"enable_alertmanager_v2,omitempty"`
	// Configuration for alert relabeling.
	// +kubebuilder:validation:Optional
	AlertRelabelConfigs []RelabelConfig `` /* 126-byte string literal not displayed */
	// Capacity of the queue for notifications to be sent to the Alertmanager.
	// +kubebuilder:validation:Optional
	NotificationQueueCapacity *int `yaml:"notification_queue_capacity,omitempty" json:"notification_queue_capacity,omitempty"`
	// HTTP timeout duration when sending notifications to the Alertmanager.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	NotificationTimeout *metav1.Duration `yaml:"notification_timeout,omitempty" json:"notification_timeout,omitempty"`
	// Client configs for interacting with the Alertmanager
	// +kubebuilder:validation:Optional
	Notifier *NotifierConfig `yaml:"alertmanager_client,omitempty" json:"alertmanager_client,omitempty"`
}

func (*RulerAlertManagerConfig) DeepCopy added in v0.3.0

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

func (*RulerAlertManagerConfig) DeepCopyInto added in v0.3.0

func (in *RulerAlertManagerConfig) DeepCopyInto(out *RulerAlertManagerConfig)

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

type ShardstreamsConfig added in v0.3.0

type ShardstreamsConfig struct {
	// +kubebuilder:validation:Optional
	Enabled *bool `yaml:"enabled,omitempty" json:"enabled,omitempty"`
	// +kubebuilder:validation:Optional
	LoggingEnabled *bool `yaml:"logging_enabled,omitempty" json:"logging_enabled,omitempty"`

	// DesiredRate is the threshold used to shard the stream into smaller pieces.
	// Expected to be in bytes.
	// +kubebuilder:validation:Optional
	DesiredRate *uint64 `yaml:"desired_rate,omitempty" json:"desired_rate,omitempty"`
}

func (*ShardstreamsConfig) DeepCopy added in v0.3.0

func (in *ShardstreamsConfig) DeepCopy() *ShardstreamsConfig

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

func (*ShardstreamsConfig) DeepCopyInto added in v0.3.0

func (in *ShardstreamsConfig) DeepCopyInto(out *ShardstreamsConfig)

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

type SigV4Config added in v0.3.0

type SigV4Config struct {
	// +kubebuilder:validation:Optional
	Region *string `yaml:"region,omitempty" json:"region,omitempty"`
	// +kubebuilder:validation:Optional
	AccessKey *string `yaml:"access_key,omitempty" json:"access_key,omitempty"`
	// +kubebuilder:validation:Optional
	SecretKey *prom_config.Secret `yaml:"secret_key,omitempty" json:"secret_key,omitempty"`
	// +kubebuilder:validation:Optional
	Profile *string `yaml:"profile,omitempty" json:"profile,omitempty"`
	// +kubebuilder:validation:Optional
	RoleARN *string `yaml:"role_arn,omitempty" json:"role_arn,omitempty"`
}

SigV4Config is the configuration for signing remote write requests with AWS's SigV4 verification process. Empty values will be retrieved using the AWS default credentials chain.

func (*SigV4Config) DeepCopy added in v0.3.0

func (in *SigV4Config) DeepCopy() *SigV4Config

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

func (*SigV4Config) DeepCopyInto added in v0.3.0

func (in *SigV4Config) DeepCopyInto(out *SigV4Config)

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

type StreamRetention added in v0.3.0

type StreamRetention struct {
	// +kubebuilder:validation:Optional
	Period *metav1.Duration `yaml:"period,omitempty" json:"period,omitempty"`
	// +kubebuilder:validation:Optional
	Priority *int `yaml:"priority,omitempty" json:"priority,omitempty"`
	// +kubebuilder:validation:Optional
	Selector *string `yaml:"selector,omitempty" json:"selector,omitempty"`
}

func (*StreamRetention) DeepCopy added in v0.3.0

func (in *StreamRetention) DeepCopy() *StreamRetention

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

func (*StreamRetention) DeepCopyInto added in v0.3.0

func (in *StreamRetention) DeepCopyInto(out *StreamRetention)

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

type TempoLimits added in v0.3.0

type TempoLimits struct {
	// Distributor enforced limits.
	// +kubebuilder:validation:Optional
	IngestionRateStrategy *string `yaml:"ingestion_rate_strategy,omitempty" json:"ingestion_rate_strategy,omitempty"`
	// +kubebuilder:validation:Optional
	IngestionRateLimitBytes *int `yaml:"ingestion_rate_limit_bytes,omitempty" json:"ingestion_rate_limit_bytes,omitempty"`
	// +kubebuilder:validation:Optional
	IngestionBurstSizeBytes *int `yaml:"ingestion_burst_size_bytes,omitempty" json:"ingestion_burst_size_bytes,omitempty"`

	// Ingester enforced limits.
	// +kubebuilder:validation:Optional
	MaxLocalTracesPerUser *int `yaml:"max_traces_per_user,omitempty" json:"max_traces_per_user,omitempty"`
	// +kubebuilder:validation:Optional
	MaxGlobalTracesPerUser *int `yaml:"max_global_traces_per_user,omitempty" json:"max_global_traces_per_user,omitempty"`

	// Forwarders
	// +kubebuilder:validation:Optional
	Forwarders []string `yaml:"forwarders,omitempty" json:"forwarders,omitempty"`

	// Metrics-generator config
	// +kubebuilder:validation:Optional
	MetricsGeneratorRingSize *int `yaml:"metrics_generator_ring_size,omitempty" json:"metrics_generator_ring_size,omitempty"`
	// TODO: ensure the list only contains service-graphs and span-metrics
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessors []string `yaml:"metrics_generator_processors,omitempty" json:"metrics_generator_processors,omitempty"`
	// +kubebuilder:validation:Optional
	MetricsGeneratorMaxActiveSeries *uint32 `yaml:"metrics_generator_max_active_series,omitempty" json:"metrics_generator_max_active_series,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MetricsGeneratorCollectionInterval *metav1.Duration `yaml:"metrics_generator_collection_interval,omitempty" json:"metrics_generator_collection_interval,omitempty"`
	// +kubebuilder:validation:Optional
	MetricsGeneratorDisableCollection *bool `yaml:"metrics_generator_disable_collection,omitempty" json:"metrics_generator_disable_collection,omitempty"`
	// +kubebuilder:validation:Optional
	MetricsGeneratorForwarderQueueSize *int `yaml:"metrics_generator_forwarder_queue_size,omitempty" json:"metrics_generator_forwarder_queue_size,omitempty"`
	// +kubebuilder:validation:Optional
	MetricsGeneratorForwarderWorkers *int `yaml:"metrics_generator_forwarder_workers,omitempty" json:"metrics_generator_forwarder_workers,omitempty"`
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorServiceGraphsHistogramBuckets []float64 `` /* 155-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorServiceGraphsDimensions []string `` /* 141-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorServiceGraphsPeerAttributes []string `` /* 151-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorServiceGraphsEnableClientServerPrefix *bool `` /* 175-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorSpanMetricsHistogramBuckets []float64 `` /* 151-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorSpanMetricsDimensions []string `` /* 137-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorSpanMetricsIntrinsicDimensions map[string]bool `` /* 157-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorSpanMetricsFilterPolicies []FilterPolicy `` /* 147-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorSpanMetricsDimensionMappings []DimensionMappings `` /* 152-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorSpanMetricsEnableTargetInfo *bool `` /* 153-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorLocalBlocksMaxLiveTraces *uint64 `` /* 147-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MetricsGeneratorProcessorLocalBlocksMaxBlockDuration *metav1.Duration `` /* 153-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	MetricsGeneratorProcessorLocalBlocksMaxBlockBytes *uint64 `` /* 147-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MetricsGeneratorProcessorLocalBlocksFlushCheckPeriod *metav1.Duration `` /* 153-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MetricsGeneratorProcessorLocalBlocksTraceIdlePeriod *metav1.Duration `` /* 151-byte string literal not displayed */
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MetricsGeneratorProcessorLocalBlocksCompleteBlockTimeout *metav1.Duration `` /* 161-byte string literal not displayed */

	// Compactor enforced limits.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	BlockRetention *metav1.Duration `yaml:"block_retention,omitempty" json:"block_retention,omitempty"`

	// Querier and Ingester enforced limits.
	// +kubebuilder:validation:Optional
	MaxBytesPerTagValuesQuery *int `yaml:"max_bytes_per_tag_values_query,omitempty" json:"max_bytes_per_tag_values_query,omitempty"`
	// +kubebuilder:validation:Optional
	MaxBlocksPerTagValuesQuery *int `yaml:"max_blocks_per_tag_values_query,omitempty" json:"max_blocks_per_tag_values_query,omitempty"`

	// QueryFrontend enforced limits
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	MaxSearchDuration *metav1.Duration `yaml:"max_search_duration,omitempty" json:"max_search_duration,omitempty"`

	// MaxBytesPerTrace is enforced in the Ingester, Compactor, Querier (Search) and Serverless (Search). It
	//  is not used when doing a trace by id lookup.
	// +kubebuilder:validation:Optional
	MaxBytesPerTrace *int `yaml:"max_bytes_per_trace,omitempty" json:"max_bytes_per_trace,omitempty"`
}

func (*TempoLimits) DeepCopy added in v0.3.0

func (in *TempoLimits) DeepCopy() *TempoLimits

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

func (*TempoLimits) DeepCopyInto added in v0.3.0

func (in *TempoLimits) DeepCopyInto(out *TempoLimits)

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

type TempoLimitsInput added in v0.3.7

type TempoLimitsInput TempoLimits

func (*TempoLimitsInput) DeepCopy added in v0.3.7

func (in *TempoLimitsInput) DeepCopy() *TempoLimitsInput

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

func (*TempoLimitsInput) DeepCopyInto added in v0.3.7

func (in *TempoLimitsInput) DeepCopyInto(out *TempoLimitsInput)

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

type TempoSpec added in v0.3.0

type TempoSpec struct {
	// +kubebuilder:validation:Required
	ConfigMap ConfigMapSelector `json:"configMap"`
}

func (*TempoSpec) DeepCopy added in v0.3.0

func (in *TempoSpec) DeepCopy() *TempoSpec

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

func (*TempoSpec) DeepCopyInto added in v0.3.0

func (in *TempoSpec) DeepCopyInto(out *TempoSpec)

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

type Tenant

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

	Spec   TenantSpec   `json:"spec,omitempty"`
	Status TenantStatus `json:"status,omitempty"`
}

+genclient:nonNamespaced Tenant is the Schema for the tenants API

func (*Tenant) DeepCopy

func (in *Tenant) DeepCopy() *Tenant

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

func (*Tenant) DeepCopyInto

func (in *Tenant) DeepCopyInto(out *Tenant)

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

func (*Tenant) DeepCopyObject

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

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

func (*Tenant) GetConditions

func (t *Tenant) GetConditions() crhelperTypes.Conditions

GetConditions returns the list of conditions for a WireGuardServer API object.

func (*Tenant) SetConditions

func (t *Tenant) SetConditions(conditions crhelperTypes.Conditions)

SetConditions will set the given conditions on a WireGuardServer object.

type TenantList

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

TenantList contains a list of Tenant

func (*TenantList) DeepCopy

func (in *TenantList) DeepCopy() *TenantList

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

func (*TenantList) DeepCopyInto

func (in *TenantList) DeepCopyInto(out *TenantList)

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

func (*TenantList) DeepCopyObject

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

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

type TenantSpec

type TenantSpec struct {

	// DisplayName is a human readable name for the tenant
	DisplayName string `json:"displayName,omitempty"`

	// Limits is the set of limits for the tenant
	Limits *LimitSpec `json:"limits,omitempty"`
}

TenantSpec defines the desired state of Tenant

func (*TenantSpec) DeepCopy

func (in *TenantSpec) DeepCopy() *TenantSpec

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

func (*TenantSpec) DeepCopyInto

func (in *TenantSpec) DeepCopyInto(out *TenantSpec)

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

type TenantStatus

type TenantStatus struct {
	// Conditions defines current service state of the PacketMachine.
	// +optional
	Conditions crhelperTypes.Conditions `json:"conditions,omitempty"`
}

TenantStatus defines the observed state of Tenant

func (*TenantStatus) DeepCopy

func (in *TenantStatus) DeepCopy() *TenantStatus

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

func (*TenantStatus) DeepCopyInto

func (in *TenantStatus) DeepCopyInto(out *TenantStatus)

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

type WrappedMap added in v0.3.8

type WrappedMap struct {
	Object map[string]interface{} `yaml:",inline" json:",inline"`
}

func NewWrappedMap added in v0.3.8

func NewWrappedMap() WrappedMap

NewWrappedMap returns an empty WrappedMap

func (*WrappedMap) DeepCopy added in v0.3.8

func (w *WrappedMap) DeepCopy() *WrappedMap

func (*WrappedMap) DeepCopyInto added in v0.3.8

func (w *WrappedMap) DeepCopyInto(out *WrappedMap)

DeepCopyInto is an ~autogenerated~ deepcopy function, copying the receiver, writing into out. in must be non-nil. Works around https://github.com/kubernetes/code-generator/issues/50

func (WrappedMap) MarshalGQL added in v0.3.22

func (e WrappedMap) MarshalGQL(w io.Writer)

func (*WrappedMap) MarshalJSON added in v0.3.8

func (w *WrappedMap) MarshalJSON() ([]byte, error)

MarshalJSON defers JSON encoding to the wrapped map

func (*WrappedMap) UnmarshalGQL added in v0.3.22

func (e *WrappedMap) UnmarshalGQL(v interface{}) error

func (*WrappedMap) UnmarshalJSON added in v0.3.8

func (w *WrappedMap) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaler interface.

Jump to

Keyboard shortcuts

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