additionalArgs
|
array
|
AdditionalArgs allows setting additional arguments for the ThanosRuler container.
It is intended for e.g. activating hidden flags which are not supported by
the dedicated configuration options yet. The arguments are passed as-is to the
ThanosRuler container which may cause issues if they are invalid or not supported
by the given ThanosRuler version.
In case of an argument conflict (e.g. an argument which is already set by the
operator itself) or when providing an invalid argument the reconciliation will
fail and an error will be logged. |
additionalArgs[]
|
object
|
Argument as part of the AdditionalArgs list. |
affinity
|
object
|
If specified, the pod’s scheduling constraints. |
alertDropLabels
|
array (string)
|
Configures the label names which should be dropped in Thanos Ruler
alerts.
The replica label thanos_ruler_replica will always be dropped from the alerts. |
alertQueryUrl
|
string
|
The external Query URL the Thanos Ruler will set in the 'Source' field
of all alerts.
Maps to the '--alert.query-url' CLI arg. |
alertRelabelConfigFile
|
string
|
Configures the path to the alert relabeling configuration file.
Alert relabel configuration must have the form as specified in the
official Prometheus documentation:
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs
The operator performs no validation of the configuration file.
This field takes precedence over alertRelabelConfig . |
alertRelabelConfigs
|
object
|
Configures alert relabeling in Thanos Ruler.
Alert relabel configuration must have the form as specified in the
official Prometheus documentation:
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs
The operator performs no validation of the configuration.
alertRelabelConfigFile takes precedence over this field.
|
alertmanagersConfig
|
object
|
Configures the list of Alertmanager endpoints to send alerts to.
The configuration format is defined at https://thanos.io/tip/components/rule.md/#alertmanager.
It requires Thanos >= v0.10.0.
The operator performs no validation of the configuration.
This field takes precedence over alertmanagersUrl . |
alertmanagersUrl
|
array (string)
|
Configures the list of Alertmanager endpoints to send alerts to.
For Thanos >= v0.10.0, it is recommended to use alertmanagersConfig instead.
alertmanagersConfig takes precedence over this field.
|
containers
|
array
|
Containers allows injecting additional containers or modifying operator generated
containers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or
to change the behavior of an operator generated container. Containers described here modify
an operator generated container if they share the same name and modifications are done via a
strategic merge patch. The current container names are: thanos-ruler and config-reloader .
Overriding containers is entirely outside the scope of what the maintainers will support and by doing
so, you accept that this behaviour may break at any time without notice. |
containers[]
|
object
|
A single application container that you want to run within a pod. |
dnsConfig
|
object
|
Defines the DNS configuration for the pods. |
dnsPolicy
|
string
|
Defines the DNS policy for the pods. |
enableServiceLinks
|
boolean
|
Indicates whether information about services should be injected into pod’s environment variables |
enforcedNamespaceLabel
|
string
|
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
evaluationInterval
|
string
|
Interval between consecutive evaluations. |
excludedFromEnforcement
|
array
|
List of references to PrometheusRule objects
to be excluded from enforcing a namespace label of origin.
Applies only if enforcedNamespaceLabel set to true. |
excludedFromEnforcement[]
|
object
|
ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object. |
externalPrefix
|
string
|
The external URL the Thanos Ruler instances will be available under. This is
necessary to generate correct URLs. This is necessary if Thanos Ruler is not
served from root of a DNS name. |
grpcServerTlsConfig
|
object
|
GRPCServerTLSConfig configures the gRPC server from which Thanos Querier reads
recorded rule data.
Note: Currently only the CAFile, CertFile, and KeyFile fields are supported.
Maps to the '--grpc-server-tls-*' CLI args. |
hostAliases
|
array
|
Pods' hostAliases configuration |
hostAliases[]
|
object
|
HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
pod’s hosts file. |
image
|
string
|
Thanos container image URL. |
imagePullPolicy
|
string
|
Image pull policy for the 'thanos', 'init-config-reloader' and 'config-reloader' containers.
See https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details. |
imagePullSecrets
|
array
|
An optional list of references to secrets in the same namespace
to use for pulling thanos images from registries
see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod |
imagePullSecrets[]
|
object
|
LocalObjectReference contains enough information to let you locate the
referenced object inside the same namespace. |
initContainers
|
array
|
InitContainers allows adding initContainers to the pod definition. Those can be used to e.g.
fetch secrets for injection into the ThanosRuler configuration from external sources. Any
errors during the execution of an initContainer will lead to a restart of the Pod.
More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
Using initContainers for any use case other then secret fetching is entirely outside the scope
of what the maintainers will support and by doing so, you accept that this behaviour may break
at any time without notice. |
initContainers[]
|
object
|
A single application container that you want to run within a pod. |
labels
|
object (string)
|
Configures the external label pairs of the ThanosRuler resource.
A default replica label thanos_ruler_replica will be always added as a
label with the value of the pod’s name. |
listenLocal
|
boolean
|
ListenLocal makes the Thanos ruler listen on loopback, so that it
does not bind against the Pod IP. |
logFormat
|
string
|
Log format for ThanosRuler to be configured with. |
logLevel
|
string
|
Log level for ThanosRuler to be configured with. |
minReadySeconds
|
integer
|
Minimum number of seconds for which a newly created pod should be ready
without any of its container crashing for it to be considered available.
Defaults to 0 (pod will be considered available as soon as it is ready)
This is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate. |
nodeSelector
|
object (string)
|
Define which Nodes the Pods are scheduled on. |
objectStorageConfig
|
object
|
Configures object storage.
The configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage
The operator performs no validation of the configuration.
objectStorageConfigFile takes precedence over this field.
|
objectStorageConfigFile
|
string
|
Configures the path of the object storage configuration file.
The configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage
The operator performs no validation of the configuration file.
This field takes precedence over objectStorageConfig . |
paused
|
boolean
|
When a ThanosRuler deployment is paused, no actions except for deletion
will be performed on the underlying objects. |
podMetadata
|
object
|
PodMetadata configures labels and annotations which are propagated to the ThanosRuler pods.
The following items are reserved and cannot be overridden:
* "app.kubernetes.io/name" label, set to "thanos-ruler".
* "app.kubernetes.io/managed-by" label, set to "prometheus-operator".
* "app.kubernetes.io/instance" label, set to the name of the ThanosRuler instance.
* "thanos-ruler" label, set to the name of the ThanosRuler instance.
* "kubectl.kubernetes.io/default-container" annotation, set to "thanos-ruler". |
portName
|
string
|
Port name used for the pods and governing service.
Defaults to web . |
priorityClassName
|
string
|
Priority class assigned to the Pods |
prometheusRulesExcludedFromEnforce
|
array
|
PrometheusRulesExcludedFromEnforce - list of Prometheus rules to be excluded from enforcing
of adding namespace labels. Works only if enforcedNamespaceLabel set to true.
Make sure both ruleNamespace and ruleName are set for each pair
Deprecated: use excludedFromEnforcement instead. |
prometheusRulesExcludedFromEnforce[]
|
object
|
PrometheusRuleExcludeConfig enables users to configure excluded
PrometheusRule names and their namespaces to be ignored while enforcing
namespace label for alerts and metrics. |
queryConfig
|
object
|
Configures the list of Thanos Query endpoints from which to query metrics.
The configuration format is defined at https://thanos.io/tip/components/rule.md/#query-api
It requires Thanos >= v0.11.0.
The operator performs no validation of the configuration.
This field takes precedence over queryEndpoints . |
queryEndpoints
|
array (string)
|
Configures the list of Thanos Query endpoints from which to query metrics.
For Thanos >= v0.11.0, it is recommended to use queryConfig instead.
queryConfig takes precedence over this field.
|
replicas
|
integer
|
Number of thanos ruler instances to deploy. |
resources
|
object
|
Resources defines the resource requirements for single Pods.
If not provided, no requests/limits will be set |
retention
|
string
|
Time duration ThanosRuler shall retain data for. Default is '24h',
and must match the regular expression [0-9]+(ms|s|m|h|d|w|y) (milliseconds seconds minutes hours days weeks years). |
routePrefix
|
string
|
The route prefix ThanosRuler registers HTTP handlers for. This allows thanos UI to be served on a sub-path. |
ruleNamespaceSelector
|
object
|
Namespaces to be selected for Rules discovery. If unspecified, only
the same namespace as the ThanosRuler object is in is used. |
ruleSelector
|
object
|
PrometheusRule objects to be selected for rule evaluation. An empty
label selector matches all objects. A null label selector matches no
objects. |
securityContext
|
object
|
SecurityContext holds pod-level security attributes and common container settings.
This defaults to the default PodSecurityContext. |
serviceAccountName
|
string
|
ServiceAccountName is the name of the ServiceAccount to use to run the
Thanos Ruler Pods. |
serviceName
|
string
|
The name of the service name used by the underlying StatefulSet(s) as the governing service.
If defined, the Service must be created before the ThanosRuler resource in the same namespace and it must define a selector that matches the pod labels.
If empty, the operator will create and manage a headless service named thanos-ruler-operated for ThanosRuler resources.
When deploying multiple ThanosRuler resources in the same namespace, it is recommended to specify a different value for each.
See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id for more details. |
storage
|
object
|
Storage spec to specify how storage shall be used. |
tolerations
|
array
|
If specified, the pod’s tolerations. |
tolerations[]
|
object
|
The pod this Toleration is attached to tolerates any taint that matches
the triple <key,value,effect> using the matching operator <operator>. |
topologySpreadConstraints
|
array
|
If specified, the pod’s topology spread constraints. |
topologySpreadConstraints[]
|
object
|
TopologySpreadConstraint specifies how to spread matching pods among the given topology. |
tracingConfig
|
object
|
Configures tracing.
The configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration
This is an experimental feature, it may change in any upcoming release
in a breaking way.
The operator performs no validation of the configuration.
tracingConfigFile takes precedence over this field.
|
tracingConfigFile
|
string
|
Configures the path of the tracing configuration file.
The configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration
This is an experimental feature, it may change in any upcoming release
in a breaking way.
The operator performs no validation of the configuration file.
This field takes precedence over tracingConfig . |
version
|
string
|
Version of Thanos to be deployed. |
volumeMounts
|
array
|
VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the ruler container,
that are generated as a result of StorageSpec objects. |
volumeMounts[]
|
object
|
VolumeMount describes a mounting of a Volume within a container. |
volumes
|
array
|
Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will
be appended to other volumes that are generated as a result of StorageSpec objects. |
volumes[]
|
object
|
Volume represents a named volume in a pod that may be accessed by any container in the pod. |
web
|
object
|
Defines the configuration of the ThanosRuler web server. |