v1alpha1

package
v0.3.27 Latest Latest
Warning

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

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

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

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

func (in *BlockedQuery) DeepCopy() *BlockedQuery

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

func (*BlockedQuery) DeepCopyInto

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

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

func (e BlockedQueryType) IsValid() bool

func (BlockedQueryType) MarshalGQL

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

func (BlockedQueryType) String

func (e BlockedQueryType) String() string

func (*BlockedQueryType) UnmarshalGQL

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

type BlockedQueryTypes

type BlockedQueryTypes []BlockedQueryType

func (BlockedQueryTypes) BlockedQueryType

func (t BlockedQueryTypes) BlockedQueryType() []BlockedQueryType

func (BlockedQueryTypes) DeepCopy

func (in BlockedQueryTypes) DeepCopy() BlockedQueryTypes

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

func (BlockedQueryTypes) DeepCopyInto

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

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

func (BlockedQueryTypes) MarshalYAML

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

MarshalYAML implements the yaml.Marshaler interface.

func (BlockedQueryTypes) String

func (t BlockedQueryTypes) String() string

String implements the fmt.Stringer interface.

func (*BlockedQueryTypes) UnmarshalGQL

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

func (*BlockedQueryTypes) UnmarshalYAML

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

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

func (in *DimensionMappings) DeepCopy() *DimensionMappings

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

func (*DimensionMappings) DeepCopyInto

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

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

func (in *FilterPolicy) DeepCopy() *FilterPolicy

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

func (*FilterPolicy) DeepCopyInto

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

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

func (in *HTTPClientConfig) DeepCopy() *HTTPClientConfig

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

func (*HTTPClientConfig) DeepCopyInto

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

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

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

MarshalGQL implements the graphql.Marshaler interface

func (*LabelName) UnmarshalGQL

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

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

func (in *LokiConfigSpec) DeepCopy() *LokiConfigSpec

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

func (*LokiConfigSpec) DeepCopyInto

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

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

func (in *LokiLimits) DeepCopy() *LokiLimits

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

func (*LokiLimits) DeepCopyInto

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

type LokiLimitsInput LokiLimits

func (*LokiLimitsInput) DeepCopy

func (in *LokiLimitsInput) DeepCopy() *LokiLimitsInput

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

func (*LokiLimitsInput) DeepCopyInto

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

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

func (in *LokiRuntimeConfig) DeepCopy() *LokiRuntimeConfig

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

func (*LokiRuntimeConfig) DeepCopyInto

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

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

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

func (*LokiSpec) DeepCopy

func (in *LokiSpec) DeepCopy() *LokiSpec

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

func (*LokiSpec) DeepCopyInto

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

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

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

func (*MatchPolicyAttribute) DeepCopyInto

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

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

func (MatchType) IsValid

func (e MatchType) IsValid() bool

func (MatchType) MarshalGQL

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

func (MatchType) String

func (e MatchType) String() string

func (*MatchType) UnmarshalGQL

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

type MetadataConfig

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

func (in *MetadataConfig) DeepCopy() *MetadataConfig

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

func (*MetadataConfig) DeepCopyInto

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

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

func (in *NotifierBasicAuth) DeepCopy() *NotifierBasicAuth

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

func (*NotifierBasicAuth) DeepCopyInto

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

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

func (in *NotifierConfig) DeepCopy() *NotifierConfig

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

func (*NotifierConfig) DeepCopyInto

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

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

func (in *NotifierHeaderAuth) DeepCopy() *NotifierHeaderAuth

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

func (*NotifierHeaderAuth) DeepCopyInto

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

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

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

func (*NotifierTLSClientConfig) DeepCopyInto

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

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

func (in *OAuth2) DeepCopy() *OAuth2

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

func (*OAuth2) DeepCopyInto

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

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

func (in *PolicyMatch) DeepCopy() *PolicyMatch

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

func (*PolicyMatch) DeepCopyInto

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

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

func (in *ProxyConfig) DeepCopy() *ProxyConfig

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

func (*ProxyConfig) DeepCopyInto

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

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

func (in *QueueConfig) DeepCopy() *QueueConfig

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

func (*QueueConfig) DeepCopyInto

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

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

func (e RelabelAction) IsValid() bool

func (RelabelAction) MarshalGQL

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

func (RelabelAction) String

func (e RelabelAction) String() string

func (*RelabelAction) UnmarshalGQL

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

type RelabelConfig

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

func (in *RelabelConfig) DeepCopy() *RelabelConfig

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

func (*RelabelConfig) DeepCopyInto

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

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

func (in *RemoteWriteSpec) DeepCopy() *RemoteWriteSpec

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

func (*RemoteWriteSpec) DeepCopyInto

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

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

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

func (*RulerAlertManagerConfig) DeepCopyInto

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

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

func (in *ShardstreamsConfig) DeepCopy() *ShardstreamsConfig

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

func (*ShardstreamsConfig) DeepCopyInto

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

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

func (in *SigV4Config) DeepCopy() *SigV4Config

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

func (*SigV4Config) DeepCopyInto

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

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

func (in *StreamRetention) DeepCopy() *StreamRetention

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

func (*StreamRetention) DeepCopyInto

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

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

func (in *TempoLimits) DeepCopy() *TempoLimits

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

func (*TempoLimits) DeepCopyInto

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

type TempoLimitsInput TempoLimits

func (*TempoLimitsInput) DeepCopy

func (in *TempoLimitsInput) DeepCopy() *TempoLimitsInput

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

func (*TempoLimitsInput) DeepCopyInto

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

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

func (*TempoSpec) DeepCopy

func (in *TempoSpec) DeepCopy() *TempoSpec

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

func (*TempoSpec) DeepCopyInto

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

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

func NewWrappedMap

func NewWrappedMap() WrappedMap

NewWrappedMap returns an empty WrappedMap

func (*WrappedMap) DeepCopy

func (w *WrappedMap) DeepCopy() *WrappedMap

func (*WrappedMap) DeepCopyInto

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

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

func (*WrappedMap) MarshalJSON

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

MarshalJSON defers JSON encoding to the wrapped map

func (*WrappedMap) UnmarshalGQL

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

func (*WrappedMap) UnmarshalJSON

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