Prometheus defines a Prometheus deployment.
Prometheus defines a Prometheus deployment.
object
spec
Property | Type | Description |
---|---|---|
|
|
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
|
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
|
|
|
Specification of the desired behavior of the Prometheus cluster. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
|
|
Most recent observed status of the Prometheus cluster. Read-only. Not included when requesting from the apiserver, only from the Prometheus Operator API itself. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
Specification of the desired behavior of the Prometheus cluster. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
object
Property | Type | Description |
---|---|---|
|
|
AdditionalAlertManagerConfigs allows specifying a key of a Secret containing additional Prometheus AlertManager configurations. AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator. Job configurations specified must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config. As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade. |
|
|
AdditionalAlertRelabelConfigs allows specifying a key of a Secret containing additional Prometheus alert relabel configurations. Alert relabel configurations specified are appended to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs. As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel configs are going to break Prometheus after the upgrade. |
|
|
AdditionalScrapeConfigs allows specifying a key of a Secret containing additional Prometheus scrape configurations. Scrape configurations specified are appended to the configurations generated by the Prometheus Operator. Job configurations specified must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible scrape configs are going to break Prometheus after the upgrade. |
|
|
If specified, the pod’s scheduling constraints. |
|
|
Define details regarding alerting. |
|
|
AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental in Prometheus so it may change in any upcoming release. |
|
|
APIServerConfig allows specifying a host and auth methods to access apiserver. If left empty, Prometheus is assumed to run inside of the cluster and will discover API servers automatically and use the pod’s CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. |
|
|
ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files on the file system of the Prometheus container e.g. bearer token files. |
|
|
Base image to use for a Prometheus deployment. Deprecated: use 'image' instead |
|
|
ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods. The ConfigMaps are mounted into /etc/prometheus/configmaps/<configmap-name>. |
|
|
Containers allows injecting additional containers or modifying operator generated containers. This can be used to allow adding an authentication proxy to a Prometheus 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: |
|
|
A single application container that you want to run within a pod. |
|
|
Disable prometheus compaction. |
|
|
Enable access to prometheus web admin API. Defaults to the value of |
|
|
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. |
|
|
EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead. |
|
|
EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep overall number of targets under the desired limit. Note that if TargetLimit is higher that value will be taken instead. |
|
|
Interval between consecutive evaluations. |
|
|
The labels to add to any time series or alerts when communicating with external systems (federation, remote storage, Alertmanager). |
|
|
The external URL the Prometheus instances will be available under. This is necessary to generate correct URLs. This is necessary if Prometheus is not served from root of a DNS name. |
|
|
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from the podmonitor and servicemonitor configs, and they will only discover endpoints within their current namespace. Defaults to false. |
|
|
Image if specified has precedence over baseImage, tag and sha combinations. Specifying the version is still necessary to ensure the Prometheus Operator knows what version of Prometheus is being configured. |
|
|
An optional list of references to secrets in the same namespace to use for pulling prometheus and alertmanager images from registries see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod |
|
|
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. |
|
|
InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the Prometheus 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. |
|
|
A single application container that you want to run within a pod. |
|
|
ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP. |
|
|
Log format for Prometheus to be configured with. |
|
|
Log level for Prometheus to be configured with. |
|
|
Define which Nodes the Pods are scheduled on. |
|
|
OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor or PodMonitor to true, this overrides honor_labels to false. |
|
|
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
|
|
When a Prometheus deployment is paused, no actions except for deletion will be performed on the underlying objects. |
|
|
PodMetadata configures Labels and Annotations which are propagated to the prometheus pods. |
|
|
Namespace’s labels to match for PodMonitor discovery. If nil, only check own namespace. |
|
|
Experimental PodMonitors to be selected for target discovery. Deprecated: if neither this nor serviceMonitorSelector are specified, configuration is unmanaged. |
|
|
Port name used for the pods and governing service. This defaults to web |
|
|
Priority class assigned to the Pods |
|
|
Experimental Namespaces to be selected for Probe discovery. If nil, only check own namespace. |
|
|
Experimental Probes to be selected for target discovery. |
|
|
Name of Prometheus external label used to denote Prometheus instance name. Defaults to the value of |
|
|
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 |
|
|
PrometheusRuleExcludeConfig enables users to configure excluded PrometheusRule names and their namespaces to be ignored while enforcing namespace label for alerts and metrics. |
|
|
QuerySpec defines the query command line flags when starting Prometheus. |
|
|
QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable, and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such as |
|
|
If specified, the remote_read spec. This is an experimental feature, it may change in any upcoming release in a breaking way. |
|
|
RemoteReadSpec defines the remote_read configuration for prometheus. |
|
|
If specified, the remote_write spec. This is an experimental feature, it may change in any upcoming release in a breaking way. |
|
|
RemoteWriteSpec defines the remote_write configuration for prometheus. |
|
|
Name of Prometheus external label used to denote replica name. Defaults to the value of |
|
|
Number of replicas of each shard to deploy for a Prometheus deployment. Number of replicas multiplied by shards is the total number of Pods created. |
|
|
Define resources requests and limits for single Pods. |
|
|
Time duration Prometheus shall retain data for. Default is '24h', and must match the regular expression |
|
|
Maximum amount of disk space used by blocks. Supported units: B, KB, MB, GB, TB, PB, EB. Ex: |
|
|
The route prefix Prometheus registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true, but the server serves requests under a different route prefix. For example for use with |
|
|
Namespaces to be selected for PrometheusRules discovery. If unspecified, only the same namespace as the Prometheus object is in is used. |
|
|
A selector to select which PrometheusRules to mount for loading alerting/recording rules from. Until (excluding) Prometheus Operator v0.24.0 Prometheus Operator will migrate any legacy rule ConfigMaps to PrometheusRule custom resources selected by RuleSelector. Make sure it does not match any config maps that you do not want to be migrated. |
|
|
/--rules.*/ command-line arguments. |
|
|
Interval between consecutive scrapes. |
|
|
Number of seconds to wait for target to respond before erroring. |
|
|
Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods. The Secrets are mounted into /etc/prometheus/secrets/<secret-name>. |
|
|
SecurityContext holds pod-level security attributes and common container settings. This defaults to the default PodSecurityContext. |
|
|
ServiceAccountName is the name of the ServiceAccount to use to run the Prometheus Pods. |
|
|
Namespace’s labels to match for ServiceMonitor discovery. If nil, only check own namespace. |
|
|
ServiceMonitors to be selected for target discovery. Deprecated: if neither this nor podMonitorSelector are specified, configuration is unmanaged. |
|
|
SHA of Prometheus container image to be deployed. Defaults to the value of |
|
|
EXPERIMENTAL: Number of shards to distribute targets onto. Number of replicas multiplied by shards is the total number of Pods created. Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved. Increasing shards will not reshard data either but it will continue to be available from the same instances. To query globally use Thanos sidecar and Thanos querier or remote write data to a central location. Sharding is done on the content of the |
|
|
Storage spec to specify how storage shall be used. |
|
|
Tag of Prometheus container image to be deployed. Defaults to the value of |
|
|
Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment. This section is experimental, it may change significantly without deprecation notice in any release. This is experimental and may change significantly without backward compatibility in any release. |
|
|
If specified, the pod’s tolerations. |
|
|
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>. |
|
|
If specified, the pod’s topology spread constraints. |
|
|
TopologySpreadConstraint specifies how to spread matching pods among the given topology. |
|
|
Version of Prometheus to be deployed. |
|
|
VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the prometheus container, that are generated as a result of StorageSpec objects. |
|
|
VolumeMount describes a mounting of a Volume within a container. |
|
|
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. |
|
|
Volume represents a named volume in a pod that may be accessed by any container in the pod. |
|
|
Enable compression of the write-ahead log using Snappy. This flag is only available in versions of Prometheus >= 2.11.0. |
|
|
WebSpec defines the web command line flags when starting Prometheus. |
AdditionalAlertManagerConfigs allows specifying a key of a Secret containing additional Prometheus AlertManager configurations. AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator. Job configurations specified must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config. As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
AdditionalAlertRelabelConfigs allows specifying a key of a Secret containing additional Prometheus alert relabel configurations. Alert relabel configurations specified are appended to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs. As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel configs are going to break Prometheus after the upgrade.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
AdditionalScrapeConfigs allows specifying a key of a Secret containing additional Prometheus scrape configurations. Scrape configurations specified are appended to the configurations generated by the Prometheus Operator. Job configurations specified must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible scrape configs are going to break Prometheus after the upgrade.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
If specified, the pod’s scheduling constraints.
object
Property | Type | Description |
---|---|---|
|
|
Describes node affinity scheduling rules for the pod. |
|
|
Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). |
|
|
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). |
Describes node affinity scheduling rules for the pod.
object
Property | Type | Description |
---|---|---|
|
|
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. |
|
|
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). |
|
|
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
array
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
object
preference
weight
Property | Type | Description |
---|---|---|
|
|
A node selector term, associated with the corresponding weight. |
|
|
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. |
A node selector term, associated with the corresponding weight.
object
Property | Type | Description |
---|---|---|
|
|
A list of node selector requirements by node’s labels. |
|
|
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
|
|
A list of node selector requirements by node’s fields. |
|
|
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
A list of node selector requirements by node’s labels.
array
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
The label key that the selector applies to. |
|
|
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. |
|
|
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. |
A list of node selector requirements by node’s fields.
array
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
The label key that the selector applies to. |
|
|
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. |
|
|
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
object
nodeSelectorTerms
Property | Type | Description |
---|---|---|
|
|
Required. A list of node selector terms. The terms are ORed. |
|
|
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. |
Required. A list of node selector terms. The terms are ORed.
array
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
object
Property | Type | Description |
---|---|---|
|
|
A list of node selector requirements by node’s labels. |
|
|
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
|
|
A list of node selector requirements by node’s fields. |
|
|
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
A list of node selector requirements by node’s labels.
array
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
The label key that the selector applies to. |
|
|
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. |
|
|
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. |
A list of node selector requirements by node’s fields.
array
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
The label key that the selector applies to. |
|
|
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. |
|
|
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. |
Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
object
Property | Type | Description |
---|---|---|
|
|
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. |
|
|
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) |
|
|
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. |
|
|
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
array
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
object
podAffinityTerm
weight
Property | Type | Description |
---|---|---|
|
|
Required. A pod affinity term, associated with the corresponding weight. |
|
|
weight associated with matching the corresponding podAffinityTerm, in the range 1-100. |
Required. A pod affinity term, associated with the corresponding weight.
object
topologyKey
Property | Type | Description |
---|---|---|
|
|
A label query over a set of resources, in this case pods. |
|
|
namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace" |
|
|
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. |
A label query over a set of resources, in this case pods.
object
Property | Type | Description |
---|---|---|
|
|
matchExpressions is a list of label selector requirements. The requirements are ANDed. |
|
|
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
array
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
key is the label key that the selector applies to. |
|
|
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. |
|
|
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
array
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
object
topologyKey
Property | Type | Description |
---|---|---|
|
|
A label query over a set of resources, in this case pods. |
|
|
namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace" |
|
|
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. |
A label query over a set of resources, in this case pods.
object
Property | Type | Description |
---|---|---|
|
|
matchExpressions is a list of label selector requirements. The requirements are ANDed. |
|
|
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
array
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
key is the label key that the selector applies to. |
|
|
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. |
|
|
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. |
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
object
Property | Type | Description |
---|---|---|
|
|
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. |
|
|
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) |
|
|
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. |
|
|
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
array
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
object
podAffinityTerm
weight
Property | Type | Description |
---|---|---|
|
|
Required. A pod affinity term, associated with the corresponding weight. |
|
|
weight associated with matching the corresponding podAffinityTerm, in the range 1-100. |
Required. A pod affinity term, associated with the corresponding weight.
object
topologyKey
Property | Type | Description |
---|---|---|
|
|
A label query over a set of resources, in this case pods. |
|
|
namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace" |
|
|
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. |
A label query over a set of resources, in this case pods.
object
Property | Type | Description |
---|---|---|
|
|
matchExpressions is a list of label selector requirements. The requirements are ANDed. |
|
|
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
array
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
key is the label key that the selector applies to. |
|
|
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. |
|
|
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
array
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
object
topologyKey
Property | Type | Description |
---|---|---|
|
|
A label query over a set of resources, in this case pods. |
|
|
namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace" |
|
|
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. |
A label query over a set of resources, in this case pods.
object
Property | Type | Description |
---|---|---|
|
|
matchExpressions is a list of label selector requirements. The requirements are ANDed. |
|
|
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. |
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
array
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
object
key
operator
Property | Type | Description |
---|---|---|
|
|
key is the label key that the selector applies to. |
|
|
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. |
|
|
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. |
Define details regarding alerting.
object
alertmanagers
Property | Type | Description |
---|---|---|
|
|
AlertmanagerEndpoints Prometheus should fire alerts against. |
|
|
AlertmanagerEndpoints defines a selection of a single Endpoints object containing alertmanager IPs to fire alerts against. |
AlertmanagerEndpoints Prometheus should fire alerts against.
array
AlertmanagerEndpoints defines a selection of a single Endpoints object containing alertmanager IPs to fire alerts against.
object
name
namespace
port
Property | Type | Description |
---|---|---|
|
|
Version of the Alertmanager API that Prometheus uses to send alerts. It can be "v1" or "v2". |
|
|
BearerTokenFile to read from filesystem to use when authenticating to Alertmanager. |
|
|
Name of Endpoints object in Namespace. |
|
|
Namespace of Endpoints object. |
|
|
Prefix for the HTTP path alerts are pushed to. |
|
|
Port the Alertmanager API is exposed on. |
|
|
Scheme to use when firing alerts. |
|
|
Timeout is a per-target Alertmanager timeout when pushing alerts. |
|
|
TLS Config to use for alertmanager connection. |
TLS Config to use for alertmanager connection.
object
Property | Type | Description |
---|---|---|
|
|
Struct containing the CA cert to use for the targets. |
|
|
Path to the CA cert in the Prometheus container to use for the targets. |
|
|
Struct containing the client cert file for the targets. |
|
|
Path to the client cert file in the Prometheus container for the targets. |
|
|
Disable target certificate validation. |
|
|
Path to the client key file in the Prometheus container for the targets. |
|
|
Secret containing the client key file for the targets. |
|
|
Used to verify the hostname for the targets. |
Struct containing the CA cert to use for the targets.
object
Property | Type | Description |
---|---|---|
|
|
ConfigMap containing data to use for the targets. |
|
|
Secret containing data to use for the targets. |
ConfigMap containing data to use for the targets.
object
key
Property | Type | Description |
---|---|---|
|
|
The key to select. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the ConfigMap or its key must be defined |
Secret containing data to use for the targets.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
Struct containing the client cert file for the targets.
object
Property | Type | Description |
---|---|---|
|
|
ConfigMap containing data to use for the targets. |
|
|
Secret containing data to use for the targets. |
ConfigMap containing data to use for the targets.
object
key
Property | Type | Description |
---|---|---|
|
|
The key to select. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the ConfigMap or its key must be defined |
Secret containing data to use for the targets.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
Secret containing the client key file for the targets.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
APIServerConfig allows specifying a host and auth methods to access apiserver. If left empty, Prometheus is assumed to run inside of the cluster and will discover API servers automatically and use the pod’s CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
object
host
Property | Type | Description |
---|---|---|
|
|
BasicAuth allow an endpoint to authenticate over basic authentication |
|
|
Bearer token for accessing apiserver. |
|
|
File to read bearer token for accessing apiserver. |
|
|
Host of apiserver. A valid string consisting of a hostname or IP followed by an optional port number |
|
|
TLS Config to use for accessing apiserver. |
BasicAuth allow an endpoint to authenticate over basic authentication
object
Property | Type | Description |
---|---|---|
|
|
The secret in the service monitor namespace that contains the password for authentication. |
|
|
The secret in the service monitor namespace that contains the username for authentication. |
The secret in the service monitor namespace that contains the password for authentication.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
The secret in the service monitor namespace that contains the username for authentication.
object
key
Property | Type | Description |
---|---|---|
|
|
The key of the secret to select from. Must be a valid secret key. |
|
|
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
|
|
Specify whether the Secret or its key must be defined |
TLS Config to use for accessing apiserver.
object
Property | Type | Description |
---|---|---|
|
|
Struct containing the CA cert to use for the targets. |
|
|
Path to the CA cert in the Prometheus container to use for the targets. |
|
|
Struct containing the client cert file for the targets. |
|
|
Path to the client cert file in the Prometheus container for the targets. |
|
|
Disable target certificate validation. |
|
|
Path to the client key file in the Prometheus container for the targets. |
|
|
Secret containing the client key file for the targets. |
|