1# Default values for kube-prometheus-stack.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5## Provide a name in place of kube-prometheus-stack for `app:` labels
8## Override the deployment namespace
11## Provide a k8s version to auto dashboard import script example: kubeTargetVersionOverride: 1.26.6
13kubeTargetVersionOverride: ""
14## Allow kubeVersion to be overridden while creating the ingress
16kubeVersionOverride: ""
17## Provide a name to substitute for the full names of resources
20## Labels to apply to all resources
26## Install Prometheus Operator CRDs
30 ## The CRD upgrade job mitigates the limitation of helm not being able to upgrade CRDs.
31 ## The job will apply the CRDs to the cluster before the operator is deployed, using helm hooks.
32 ## It deploys a corresponding clusterrole, clusterrolebinding and serviceaccount to apply the CRDs.
33 ## This feature is in preview, off by default and may change in the future.
40 repository: chainguard-private/busybox
41 tag: latest@sha256:acad249c0a9cb8a50a17e453f590e9d95c2d35001ed5dcba37a4020740b671a9
43 pullPolicy: IfNotPresent
46 repository: chainguard-private/kubectl
48 sha: sha256:db9b26e5737932ff3b6e09f6b2069d7bf224b9f4499839b712cca61de1b36756
49 pullPolicy: IfNotPresent
51 ## Define resources requests and limits for single Pods.
52 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
58 ## Additional volume mounts
61 ## Define which Nodes the Pods are scheduled on.
62 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
65 ## Assign custom affinity rules to the upgrade-crd job
66 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
70 # requiredDuringSchedulingIgnoredDuringExecution:
73 # - key: kubernetes.io/e2e-az-name
79 ## If specified, the pod's tolerations.
80 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
86 # effect: "NoSchedule"
88 ## If specified, the pod's topology spread constraints.
89 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
91 topologySpreadConstraints: []
93 # topologyKey: topology.kubernetes.io/zone
94 # whenUnsatisfiable: DoNotSchedule
99 # ## Labels to add to the upgrade-crd job
102 ## Annotations to add to the upgrade-crd job
105 ## Labels to add to the upgrade-crd pod
108 ## Annotations to add to the upgrade-crd pod
111 ## Service account for upgrade crd job to use.
112 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
119 automountServiceAccountToken: true
120 ## Automounting API credentials for upgrade crd job pod.
122 automountServiceAccountToken: true
123 ## Container-specific security context configuration
124 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
126 containerSecurityContext:
127 allowPrivilegeEscalation: false
128 readOnlyRootFilesystem: true
132 ## SecurityContext holds pod-level security attributes and common container settings.
133 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
134 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
143## Custom rules to override "for" and "severity" in defaultRules
146# AlertmanagerFailedReload:
148# AlertmanagerMembersInconsistent:
152## Create default rules for monitoring the cluster
159 configReloaders: true
161 k8sContainerCpuUsageSecondsTotal: true
162 k8sContainerMemoryCache: true
163 k8sContainerMemoryRss: true
164 k8sContainerMemorySwap: true
165 k8sContainerResource: true
166 k8sContainerMemoryWorkingSetBytes: true
168 kubeApiserverAvailability: true
169 kubeApiserverBurnrate: true
170 kubeApiserverHistogram: true
171 kubeApiserverSlos: true
172 kubeControllerManager: true
175 kubePrometheusGeneral: true
176 kubePrometheusNodeRecording: true
178 kubernetesResources: true
179 kubernetesStorage: true
180 kubernetesSystem: true
181 kubeSchedulerAlerting: true
182 kubeSchedulerRecording: true
183 kubeStateMetrics: true
186 nodeExporterAlerting: true
187 nodeExporterRecording: true
189 prometheusOperator: true
191 # Defines the operator for namespace selection in rules
192 # Use "=~" to include namespaces matching the pattern (default)
193 # Use "!~" to exclude namespaces matching the pattern
194 appNamespacesOperator: "=~"
195 ## Reduce app namespace alert scope
196 appNamespacesTarget: ".*"
197 ## Set keep_firing_for for all alerts
199 ## Labels for default rules
201 ## Annotations for default rules
203 ## Additional labels for PrometheusRule alerts
204 additionalRuleLabels: {}
205 ## Additional annotations for PrometheusRule alerts
206 additionalRuleAnnotations: {}
207 ## Additional labels for specific PrometheusRule alert groups
208 additionalRuleGroupLabels:
213 k8sContainerCpuUsageSecondsTotal: {}
214 k8sContainerMemoryCache: {}
215 k8sContainerMemoryRss: {}
216 k8sContainerMemorySwap: {}
217 k8sContainerResource: {}
219 kubeApiserverAvailability: {}
220 kubeApiserverBurnrate: {}
221 kubeApiserverHistogram: {}
222 kubeApiserverSlos: {}
223 kubeControllerManager: {}
226 kubePrometheusGeneral: {}
227 kubePrometheusNodeRecording: {}
229 kubernetesResources: {}
230 kubernetesStorage: {}
232 kubeSchedulerAlerting: {}
233 kubeSchedulerRecording: {}
237 nodeExporterAlerting: {}
238 nodeExporterRecording: {}
240 prometheusOperator: {}
241 ## Additional annotations for specific PrometheusRule alert groups
242 additionalRuleGroupAnnotations:
247 k8sContainerCpuUsageSecondsTotal: {}
248 k8sContainerMemoryCache: {}
249 k8sContainerMemoryRss: {}
250 k8sContainerMemorySwap: {}
251 k8sContainerResource: {}
253 kubeApiserverAvailability: {}
254 kubeApiserverBurnrate: {}
255 kubeApiserverHistogram: {}
256 kubeApiserverSlos: {}
257 kubeControllerManager: {}
260 kubePrometheusGeneral: {}
261 kubePrometheusNodeRecording: {}
263 kubernetesResources: {}
264 kubernetesStorage: {}
266 kubeSchedulerAlerting: {}
267 kubeSchedulerRecording: {}
271 nodeExporterAlerting: {}
272 nodeExporterRecording: {}
274 prometheusOperator: {}
275 additionalAggregationLabels: []
276 ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
277 runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
278 ## Thresholds for kubelet certificate expiration alerts (in seconds)
279 kubeletServerCertificateExpiration:
280 warning: 604800 # 7 days
281 critical: 86400 # 1 day
282 kubeletClientCertificateExpiration:
283 warning: 604800 # 7 days
284 critical: 86400 # 1 day
286 fsSelector: 'fstype!=""'
287 # fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
288 ## Disabled PrometheusRule alerts
291 # NodeRAIDDegraded: true
292## Deprecated way to provide custom recording or alerting rules to be deployed into the cluster.
294# additionalPrometheusRules: []
295# - name: my-rule-file
300# expr: 100 * my_record
302## Provide custom recording or alerting rules to be deployed into the cluster.
304additionalPrometheusRulesMap: {}
310# expr: 100 * my_record
316 ## Create ClusterRoles that extend the existing view, edit and admin ClusterRoles to interact with prometheus-operator CRDs
317 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
318 createAggregateClusterRoles: false
319 ## Global image registry to use if it needs to be overridden for some specific use cases (e.g. local registries, custom images, ...)
322 ## Reference to one or more secrets to be used when pulling images
323 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
326 # - name: "image-pull-secret"
328 # - "image-pull-secret"
330 ## Deploys the windows-exporter and Windows-specific dashboards and rules (job name must be 'windows-exporter')
332## Configuration for prometheus-windows-exporter
333## ref: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-windows-exporter
335prometheus-windows-exporter:
336 ## Enable ServiceMonitor and set Kubernetes label to use as a job label
343 ## Set job label to 'windows-exporter' as required by the default Prometheus rules and Grafana dashboards
346 jobLabel: windows-exporter
347 ## Enable memory and container metrics as required by the default Prometheus rules and Grafana dashboards
351 enabled: '[defaults],memory,container'
352## Configuration for alertmanager
353## ref: https://prometheus.io/docs/alerting/alertmanager/
356 ## Deploy alertmanager
359 # Optional: Override the namespace where Alertmanager will be deployed.
360 namespaceOverride: ""
361 ## Annotations for Alertmanager
364 ## Additional labels for Alertmanager
367 ## API that Prometheus will use to communicate with alertmanager. Possible values are v1, v2
370 ## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
373 ## Create dashboard configmap even if alertmanager deployment has been disabled
375 forceDeployDashboards: false
376 ## Network Policy configuration
379 # -- Enable network policy for Alertmanager
381 # -- Define policy types. If egress is enabled, both Ingress and Egress will be used
382 # Valid values are ["Ingress"] or ["Ingress", "Egress"]
386 # -- Gateway (formerly ingress controller) configuration
389 # -- Gateway namespace
392 # -- Gateway pod labels
395 # app.kubernetes.io/name: ingress-nginx
396 # -- Additional custom ingress rules
398 additionalIngress: []
400 # - namespaceSelector:
402 # name: another-namespace
409 # app.kubernetes.io/name: loki
414 # -- Configure egress rules
417 # -- Enable egress rules. When enabled, policyTypes will include Egress
420 # -- Custom egress rules
424 # - namespaceSelector: {}
431 # -- Enable rules for alertmanager cluster traffic
433 enableClusterRules: true
434 # -- Configure monitoring component rules
437 # -- Enable ingress from Prometheus
440 # -- Enable ingress for config reloader metrics
443 ## Service account for Alertmanager to use.
444 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
450 automountServiceAccountToken: true
451 ## Configure pod disruption budgets for Alertmanager
452 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
458 unhealthyPodEvictionPolicy: AlwaysAllow
459 ## Enable vertical pod autoscaler support for Alertmanager
460 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
462 verticalPodAutoscaler:
464 # Recommender responsible for generating recommendation for the object.
465 # List should be empty (then the default recommender will generate the recommendation)
466 # or contain exactly one recommender.
468 # - name: custom-recommender-performance
470 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
471 controlledResources: []
472 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
473 # controlledValues: RequestsAndLimits
475 # Define the max allowed resources for the pod
479 # Define the min allowed resources for the pod
485 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
486 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
488 ## Alertmanager configuration directives
489 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
490 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
497 - 'severity = critical'
499 - 'severity =~ warning|info'
504 - 'severity = warning'
511 - 'alertname = InfoInhibitor'
517 - 'alertname = InfoInhibitor'
519 group_by: ['namespace']
527 - alertname = "Watchdog"
531 - '/etc/alertmanager/config/*.tmpl'
532 ## Alertmanager configuration directives (as string type, preferred over the config hash map)
533 ## stringConfig will be used only if tplConfig is true
534 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
535 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
538 ## Pass the Alertmanager configuration directives through Helm's templating
539 ## engine. If the Alertmanager configuration contains Alertmanager templates,
540 ## they'll need to be properly escaped so that they are not interpreted by
542 ## ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function
543 ## https://prometheus.io/docs/alerting/configuration/#tmpl_string
544 ## https://prometheus.io/docs/alerting/notifications/
545 ## https://prometheus.io/docs/alerting/notification_examples/
547 ## Alertmanager template files to format alerts
548 ## By default, templateFiles are placed in /etc/alertmanager/config/ and if
549 ## they have a .tmpl file suffix will be loaded. See config.templates above
550 ## to change, add other suffixes. If adding other suffixes, be sure to update
551 ## config.templates above to include those suffixes.
552 ## ref: https://prometheus.io/docs/alerting/notifications/
553 ## https://prometheus.io/docs/alerting/notification_examples/
557 ## An example template:
558 # template_1.tmpl: |-
559 # {{ define "cluster" }}{{ .ExternalURL | reReplaceAll ".*alertmanager\\.(.*)" "$1" }}{{ end }}
561 # {{ define "slack.myorg.text" }}
563 # {{ range .Alerts }}
564 # *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
565 # *Cluster:* {{ template "cluster" $root }}
566 # *Description:* {{ .Annotations.description }}
567 # *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:>
568 # *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
570 # {{ range .Labels.SortedPairs }} - *{{ .Name }}:* `{{ .Value }}`
580 ## Override ingress to a different defined port on the service
582 ## Override ingress to a different service then the default, this is useful if you need to
583 ## point to a specific instance of the alertmanager (eg kube-prometheus-stack-alertmanager-0)
584 # serviceName: kube-prometheus-stack-alertmanager-0
586 ## Hosts must be provided if Ingress is enabled.
589 # - alertmanager.domain.com
591 ## Paths to use for ingress rules - one path should match the alertmanagerSpec.routePrefix
596 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
597 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
598 # pathType: ImplementationSpecific
600 ## TLS configuration for Alertmanager Ingress
601 ## Secret must be manually created in the namespace
604 # - secretName: alertmanager-general-tls
606 # - alertmanager.example.com
607 # -- BETA: Configure the gateway routes for the chart here.
608 # More routes can be added by adding a dictionary key like the 'main' route.
609 # Be aware that this is an early beta of this feature,
610 # kube-prometheus-stack does not guarantee this works and is subject to change.
611 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
612 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
615 # -- Enables or disables the route
617 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
618 apiVersion: gateway.networking.k8s.io/v1
619 # -- Set the route kind
620 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
625 # - my-filter.example.com
629 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
630 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
631 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
637 ## Filters define the filters that are applied to requests that match this rule.
639 ## Session persistence configuration for the route rule.
640 sessionPersistence: {}
643 # absoluteTimeout: 12h
645 # lifetimeType: Permanent
647 ## Additional custom rules that can be added to the route
649 ## Configuration for Alertmanager secret
653 ## Configuration for creating an Ingress that will map to each Alertmanager replica service
654 ## alertmanager.servicePerReplica must be enabled
661 ## Final form of the hostname for each per replica ingress is
662 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
664 ## Prefix for the per replica ingress that will have `-$replicaNumber`
665 ## appended to the end
667 ## Domain that will be used for the per replica ingress
669 ## Paths to use for ingress rules
674 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
675 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
676 # pathType: ImplementationSpecific
678 ## Secret name containing the TLS certificate for alertmanager per replica ingress
679 ## Secret must be manually created in the namespace
681 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
685 ## Final form of the secret for each per replica ingress is
686 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
688 prefix: "alertmanager"
689 ## Configuration for Alertmanager service
698 ipFamilies: ["IPv6", "IPv4"]
699 ipFamilyPolicy: "PreferDualStack"
700 ## Port for Alertmanager Service to listen on
703 ## Port for Alertmanager cluster communication
706 ## To be used with a proxy extraContainer port
709 ## Port to expose on each node
710 ## Only used if service.type is 'NodePort'
713 ## List of IP addresses at which the Prometheus server service is available
714 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
717 ## Additional ports to open for Alertmanager service
720 # - name: oauth-proxy
723 # - name: oauth-metrics
729 loadBalancerSourceRanges: []
730 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
732 externalTrafficPolicy: Cluster
733 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
734 ## Accepts 'ClientIP' or 'None'
736 sessionAffinity: None
737 ## If you want to modify the ClientIP sessionAffinity timeout
738 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
740 sessionAffinityConfig:
742 timeoutSeconds: 10800
746 ## Configuration for creating a separate Service for each statefulset Alertmanager replica
751 ## Port for Alertmanager Service per replica to listen on
754 ## To be used with a proxy extraContainer port
756 ## Port to expose on each node
757 ## Only used if servicePerReplica.type is 'NodePort'
760 ## Loadbalancer source IP ranges
761 ## Only used if servicePerReplica.type is "LoadBalancer"
762 loadBalancerSourceRanges: []
763 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
765 externalTrafficPolicy: Cluster
769 ## Configuration for creating a ServiceMonitor for AlertManager
772 ## If true, a ServiceMonitor will be created for the AlertManager service.
775 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
781 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
784 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
787 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
790 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
792 labelNameLengthLimit: 0
793 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
795 labelValueLengthLimit: 0
796 ## proxyUrl: URL of a proxy that should be used for scraping.
799 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
801 ## enableHttp2: Whether to enable HTTP2.
802 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#endpoint
804 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
805 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
808 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
809 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
811 metricRelabelings: []
813 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
814 # sourceLabels: [__name__]
816 ## RelabelConfigs to apply to samples before scraping
817 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
820 # - sourceLabels: [__meta_kubernetes_pod_node_name]
823 # targetLabel: nodename
827 ## Additional Endpoints
829 additionalEndpoints: []
830 # - port: oauth-metrics
832 ## Settings affecting alertmanagerSpec
833 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerspec
836 ## Statefulset's persistent volume claim retention policy
837 ## whenDeleted and whenScaled determine whether
838 ## statefulset's PVCs are deleted (true) or retained (false)
839 ## on scaling down and deleting statefulset, respectively.
840 ## Requires Kubernetes version 1.27.0+.
841 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
842 persistentVolumeClaimRetentionPolicy: {}
843 # whenDeleted: Retain
846 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
847 ## Metadata Labels and Annotations gets propagated to the Alertmanager pods.
852 ## Image of Alertmanager
856 repository: chainguard-private/prometheus-alertmanager
858 sha: sha256:a3bf5afed597dfdb38a438ffd22cab7dbabe5923a283414b544e1eb23e129a70
859 pullPolicy: IfNotPresent
860 ## If true then the user will be responsible to provide a secret with alertmanager configuration
861 ## So when true the config part will be ignored (including templateFiles) and the one in the secret will be used
863 useExistingSecret: false
864 ## Secrets is a list of Secrets in the same namespace as the Alertmanager object, which shall be mounted into the
865 ## Alertmanager Pods. The Secrets are mounted into /etc/alertmanager/secrets/.
868 ## If false then the user will opt out of automounting API credentials.
870 automountServiceAccountToken: true
871 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.
872 ## The ConfigMaps are mounted into /etc/alertmanager/configmaps/.
875 ## ConfigSecret is the name of a Kubernetes Secret in the same namespace as the Alertmanager object, which contains configuration for
876 ## this Alertmanager instance. Defaults to 'alertmanager-' The secret is mounted into /etc/alertmanager/config.
880 ## WebTLSConfig defines the TLS parameters for HTTPS
881 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerwebspec
883 ## AlertmanagerConfigs to be selected to merge and configure Alertmanager with.
885 alertmanagerConfigSelector: {}
886 ## Example which selects all alertmanagerConfig resources
887 ## with label "alertconfig" with values any of "example-config" or "example-config-2"
888 # alertmanagerConfigSelector:
896 ## Example which selects all alertmanagerConfig resources with label "role" set to "example-config"
897 # alertmanagerConfigSelector:
899 # role: example-config
901 ## Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace.
903 alertmanagerConfigNamespaceSelector: {}
904 ## Example which selects all namespaces
905 ## with label "alertmanagerconfig" with values any of "example-namespace" or "example-namespace-2"
906 # alertmanagerConfigNamespaceSelector:
908 # - key: alertmanagerconfig
911 # - example-namespace
912 # - example-namespace-2
914 ## Example which selects all namespaces with label "alertmanagerconfig" set to "enabled"
915 # alertmanagerConfigNamespaceSelector:
917 # alertmanagerconfig: enabled
919 ## AlermanagerConfig to be used as top level configuration
921 alertmanagerConfiguration: {}
922 ## Example with select a global alertmanagerconfig
923 # alertmanagerConfiguration:
924 # name: global-alertmanager-Configuration
926 ## Defines the strategy used by AlertmanagerConfig objects to match alerts. eg:
928 alertmanagerConfigMatcherStrategy: {}
929 ## Example with use OnNamespace strategy
930 # alertmanagerConfigMatcherStrategy:
933 ## Additional command line arguments to pass to Alertmanager (in addition to those generated by the chart)
936 # Use logfmt (default) or json logging
938 ## Log level for Alertmanager to be configured with.
941 ## Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the
942 ## running cluster equal to the expected size.
944 ## Time duration Alertmanager shall retain data for. Default is '120h', and must match the regular expression
945 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
948 ## Storage is the definition of how storage will be used by the Alertmanager instances.
949 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
952 # volumeClaimTemplate:
954 # storageClassName: gluster
955 # accessModes: ["ReadWriteOnce"]
961 ## The external URL the Alertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if Alertmanager is not served from root of a DNS name. string false
964 ## The route prefix Alertmanager 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,
965 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
968 ## scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.
970 ## tlsConfig: TLS configuration to use when connect to the endpoint. For example if using istio mTLS.
971 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
973 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
976 ## Define which Nodes the Pods are scheduled on.
977 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
980 ## Define resources requests and limits for single Pods.
981 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
987 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
988 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
989 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
990 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
992 podAntiAffinity: "soft"
993 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
994 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
996 podAntiAffinityTopologyKey: kubernetes.io/hostname
997 ## Assign custom affinity rules to the alertmanager instance
998 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1002 # requiredDuringSchedulingIgnoredDuringExecution:
1003 # nodeSelectorTerms:
1004 # - matchExpressions:
1005 # - key: kubernetes.io/e2e-az-name
1011 ## If specified, the pod's tolerations.
1012 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
1018 # effect: "NoSchedule"
1020 ## If specified, the pod's topology spread constraints.
1021 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1023 topologySpreadConstraints: []
1025 # topologyKey: topology.kubernetes.io/zone
1026 # whenUnsatisfiable: DoNotSchedule
1031 ## SecurityContext holds pod-level security attributes and common container settings.
1032 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
1033 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1041 type: RuntimeDefault
1042 ## Use the host's user namespace for Alertmanager pods.
1043 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
1045 ## DNS configuration for Alertmanager.
1046 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
1048 ## DNS policy for Alertmanager.
1049 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
1051 ## Enable hostNetwork for Alertmanager.
1053 ## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.
1054 ## Note this is only for the Alertmanager UI, not the gossip communication.
1057 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an Alertmanager pod.
1061 # - name: oauth-proxy
1062 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.2
1064 # - --upstream=http://127.0.0.1:9093
1065 # - --http-address=0.0.0.0:8081
1066 # - --metrics-address=0.0.0.0:8082
1069 # - containerPort: 8081
1072 # - containerPort: 8082
1073 # name: oauth-metrics
1077 # Additional volumes on the output StatefulSet definition.
1079 # Additional VolumeMounts on the output StatefulSet definition.
1081 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
1082 ## (permissions, dir tree) on mounted volumes before starting prometheus
1084 ## Priority class assigned to the Pods
1086 priorityClassName: ""
1087 ## AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.
1090 ## PortName to use for Alert Manager.
1092 portName: "http-web"
1093 ## ClusterAdvertiseAddress is the explicit address to advertise in cluster. Needs to be provided for non RFC1918 [1] (public) addresses. [1] RFC1918: https://tools.ietf.org/html/rfc1918
1095 clusterAdvertiseAddress: false
1096 ## clusterGossipInterval determines interval between gossip attempts.
1097 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1098 clusterGossipInterval: ""
1099 ## clusterPeerTimeout determines timeout for cluster peering.
1100 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1101 clusterPeerTimeout: ""
1102 ## clusterPushpullInterval determines interval between pushpull attempts.
1103 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1104 clusterPushpullInterval: ""
1105 ## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
1107 ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
1108 ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
1109 forceEnableClusterMode: false
1110 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
1111 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
1113 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
1114 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1115 podManagementPolicy: ""
1116 ## Update strategy for the StatefulSet.
1117 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1119 # type: RollingUpdate
1123 ## Duration in seconds the pod needs to terminate gracefully.
1124 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
1125 terminationGracePeriodSeconds: ~
1126 ## Additional configuration which is not covered by the properties above. (passed through tpl)
1127 additionalConfig: {}
1128 ## Additional configuration which is not covered by the properties above.
1129 ## Useful, if you need advanced templating inside alertmanagerSpec.
1130 ## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
1131 additionalConfigString: ""
1132 ## ExtraSecret can be used to store various data in an extra secret
1133 ## (use it for example to store hashed basic auth credentials)
1135 ## if not set, name will be auto generated
1140 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
1141 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
1142## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
1146 namespaceOverride: ""
1147 ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
1149 forceDeployDatasources: false
1150 ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
1152 forceDeployDashboards: false
1153 ## Deploy default dashboards
1155 defaultDashboardsEnabled: true
1156 ## Deploy GrafanaDashboard CRDs that reference dashboards from ConfigMaps when grafana-operator is used
1157 ## These settings control how dashboards are integrated with the Grafana Operator
1158 ## Note: End user still need to create is own kind: GrafanaDataSource for Prometheus
1160 ## apiVersion: grafana.integreatly.org/v1beta1
1161 ## kind: GrafanaDatasource
1166 ## allowCrossNamespaceImport: true
1167 ## instanceSelector:
1174 ## url: http://prometheus-operated.prometheus-stack.svc.cluster.local:9090
1177 ## "tlsSkipVerify": true
1178 ## "timeInterval": "5s"
1181 ## Enable references to ConfigMaps containing dashboards in GrafanaDashboard CRs
1182 ## Set to true to allow dashboards to be loaded from ConfigMap references
1183 dashboardsConfigMapRefEnabled: false
1184 ## Annotations for GrafanaDashboard Cr
1187 ## Labels that should be matched kind: Grafana instance
1188 ## Example: { app: grafana, category: dashboard }
1191 ## How frequently the operator should resync resources (in duration format)
1192 ## Controls how often dashboards are reconciled by the operator
1195 ## Which folder contains all dashboards in Grafana
1196 ## This folder will be created on the Root level
1197 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1200 ## Which UID of the target folder contains all dashboards in Grafana
1201 ## This allows you to use subfolder hierarchy
1202 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1205 ## Which GrafanaFolder reference contains all dashboards in Grafana
1206 ## This allows you to use subfolder hierarchy.
1207 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1210 ## Timezone for the default dashboards
1211 ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
1213 defaultDashboardsTimezone: utc
1214 ## Editable flag for the default dashboards
1216 defaultDashboardsEditable: true
1217 ## Default interval for Grafana dashboards
1219 defaultDashboardsInterval: 1m
1220 # Administrator credentials when not using an existing secret (see below)
1222 # adminPassword: strongpassword
1224 # Use an existing secret for the admin user.
1226 ## Name of the secret. Can be templated.
1229 passwordKey: admin-password
1231 ## If true, Grafana PSPs will be created
1235 ## If true, Grafana Ingress will be created
1238 ## IngressClassName for Grafana Ingress.
1239 ## Should be provided if Ingress is enable.
1241 # ingressClassName: nginx
1243 ## Annotations for Grafana Ingress
1246 # kubernetes.io/ingress.class: nginx
1247 # kubernetes.io/tls-acme: "true"
1249 ## Labels to be added to the Ingress
1253 ## Must be provided if Ingress is enable.
1256 # - grafana.domain.com
1258 ## Path for grafana ingress
1260 ## TLS configuration for grafana Ingress
1261 ## Secret must be manually created in the namespace
1264 # - secretName: grafana-general-tls
1266 # - grafana.example.com
1267 # # To make Grafana persistent (Using Statefulset)
1272 # storageClassName: "storageClassName"
1277 # - kubernetes.io/pvc-protection
1284 label: grafana_dashboard
1286 # Allow discovery in all namespaces for dashboards
1287 searchNamespace: ALL
1288 # Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1289 enableNewTablePanelSyntax: false
1290 ## Annotations for Grafana dashboard configmaps
1299 allowUiUpdates: false
1302 defaultDatasourceEnabled: true
1303 isDefaultDatasource: true
1306 ## Extra jsonData properties to add to the datasource
1308 # prometheusType: Prometheus
1310 ## URL of prometheus datasource
1312 # url: http://prometheus-stack-prometheus:9090/
1314 ## Prometheus request timeout in seconds
1317 ## Query parameters to add, as a URL-encoded string,
1318 ## to query Prometheus
1319 # customQueryParameters: ""
1321 # If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1322 # defaultDatasourceScrapeInterval: 15s
1324 ## Annotations for Grafana datasource configmaps
1327 ## Set method for HTTP to send query to datasource
1329 ## Create datasource for each Pod of Prometheus StatefulSet;
1330 ## this uses by default the headless service `prometheus-operated` which is
1331 ## created by Prometheus Operator. In case you deployed your own Service for your
1332 ## Prometheus instance, you can specify it with the field `prometheusServiceName`
1333 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1334 createPrometheusReplicasDatasources: false
1335 prometheusServiceName: prometheus-operated
1336 label: grafana_datasource
1338 ## Field with internal link pointing to existing data source in Grafana.
1339 ## Can be provisioned via additionalDataSources
1340 exemplarTraceIdDestinations: {}
1341 # datasourceUid: Jaeger
1342 # traceIdLabelName: trace_id
1343 # urlDisplayLabel: View traces
1348 handleGrafanaManagedAlerts: false
1349 implementation: prometheus
1350 extraConfigmapMounts: []
1351 # - name: certs-configmap
1352 # mountPath: /etc/grafana/ssl/
1353 # configMap: certs-configmap
1356 deleteDatasources: []
1357 # - name: example-datasource
1360 ## Configure additional grafana datasources (passed through tpl)
1361 ## ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
1362 additionalDataSources: []
1363 # - name: prometheus-sample
1367 # basicAuthPassword: pass
1368 # basicAuthUser: daco
1371 # tlsSkipVerify: true
1374 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1377 ## Configure additional grafana datasources as a templated string (passed through tpl)
1378 ## Useful when you need Helm flow control or templating inside the datasource definition
1379 additionalDataSourcesString: ""
1380 # Flag to mark provisioned data sources for deletion if they are no longer configured.
1381 # It takes no effect if data sources are already listed in the deleteDatasources section.
1382 # ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
1384 ## Passed to grafana subchart and used by servicemonitor below
1391 # If true, a ServiceMonitor CRD is created for a prometheus operator
1392 # https://github.com/prometheus-operator/prometheus-operator
1395 # Path to use for scraping metrics. Might be different if server.root_url is set
1399 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1401 # labels for the ServiceMonitor
1404 # Extra scrape settings.
1408 # scrapeTimeout: 30s
1410 ## RelabelConfigs to apply to samples before scraping
1411 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1414 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1417 # targetLabel: nodename
1420## Flag to disable all the kubernetes component scrapers
1422kubernetesServiceMonitors:
1424## Component scraping the kube api server
1429 serverName: kubernetes
1430 insecureSkipVerify: false
1433 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1436 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1439 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1442 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1445 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1447 labelNameLengthLimit: 0
1448 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1450 labelValueLengthLimit: 0
1451 ## proxyUrl: URL of a proxy that should be used for scraping.
1457 component: apiserver
1458 provider: kubernetes
1459 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1460 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1463 # Drop excessively noisy apiserver buckets.
1465 regex: (etcd_request|apiserver_request_slo|apiserver_request_sli|apiserver_request)_duration_seconds_bucket;(0\.15|0\.2|0\.3|0\.35|0\.4|0\.45|0\.6|0\.7|0\.8|0\.9|1\.25|1\.5|1\.75|2|3|3\.5|4|4\.5|6|7|8|9|15|20|40|45|50)(\.0)?
1470 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1471 # sourceLabels: [__name__]
1473 ## RelabelConfigs to apply to samples before scraping
1474 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1478 # - __meta_kubernetes_namespace
1479 # - __meta_kubernetes_service_name
1480 # - __meta_kubernetes_endpoint_port_name
1482 # regex: default;kubernetes;https
1483 # - targetLabel: __address__
1484 # replacement: kubernetes.default.svc:443
1486 ## Additional labels
1488 additionalLabels: {}
1491 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1492 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1494 ## Override the job label used for the apiserver.
1495 ## This allows users who scrape apiserver metrics under a different job name (e.g. k3s-server via PushProx)
1496 ## to align the recording rules and alerts with their actual job label.
1498## Component scraping the kubelet and kubelet-hosted cAdvisor
1502 namespace: kube-system
1503 # Overrides the job selector in Grafana dashboards and Prometheus rules
1504 # For k3s clusters, change to k3s-server
1508 ## Enable scraping /metrics from kubelet's service
1510 ## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1514 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1517 ## If true, Prometheus use (respect) labels provided by exporter.
1520 ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1522 honorTimestamps: true
1523 ## If true, defines whether Prometheus tracks staleness of the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false.
1524 ## We recommend enabling this if you want the best possible accuracy for container_ metrics scraped from cadvisor.
1525 ## For more details see: https://github.com/prometheus-community/helm-charts/pull/5063#issuecomment-2545374849
1526 trackTimestampsStaleness: true
1527 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1530 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1533 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1536 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1538 labelNameLengthLimit: 0
1539 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1541 labelValueLengthLimit: 0
1542 ## proxyUrl: URL of a proxy that should be used for scraping.
1545 ## Enable scraping the kubelet over https. For requirements to enable this see
1546 ## https://github.com/prometheus-operator/prometheus-operator/issues/926
1549 ## Skip TLS certificate validation when scraping.
1550 ## This is enabled by default because kubelet serving certificate deployed by kubeadm is by default self-signed
1551 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
1553 insecureSkipVerify: true
1554 ## Enable scraping /metrics/probes from kubelet's service
1557 ## Enable scraping /metrics/resource from kubelet's service
1558 ## This is disabled by default because container metrics are already exposed by cAdvisor
1561 # From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1562 resourcePath: "/metrics/resource/v1alpha1"
1563 ## Configure the scrape interval for resource metrics. This is configured to the default Kubelet cAdvisor
1564 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1565 ## if kubelet.serviceMonitor.interval is not empty.
1566 resourceInterval: 10s
1567 ## Enable scraping /metrics/cadvisor from kubelet's service
1570 ## Configure the scrape interval for cAdvisor. This is configured to the default Kubelet cAdvisor
1571 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1572 ## if kubelet.serviceMonitor.interval is not empty.
1573 cAdvisorInterval: 10s
1574 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1575 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1577 cAdvisorMetricRelabelings:
1578 # Drop less useful container CPU metrics.
1579 - sourceLabels: [__name__]
1581 regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1582 # Drop less useful container / always zero filesystem metrics.
1583 - sourceLabels: [__name__]
1585 regex: 'container_fs_(io_current|io_time_seconds_total|io_time_weighted_seconds_total|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)'
1586 # Drop less useful / always zero container memory metrics.
1587 - sourceLabels: [__name__]
1589 regex: 'container_memory_(mapped_file|swap)'
1590 # Drop less useful container process metrics.
1591 - sourceLabels: [__name__]
1593 regex: 'container_(file_descriptors|tasks_state|threads_max)'
1594 # Drop container_memory_failures_total{scope="hierarchy"} metrics,
1595 # we only need the container scope.
1596 - sourceLabels: [__name__, scope]
1598 regex: 'container_memory_failures_total;hierarchy'
1599 # Drop container_network_... metrics that match various interfaces that
1600 # correspond to CNI and similar interfaces. This avoids capturing network
1601 # metrics for host network containers.
1602 - sourceLabels: [__name__, interface]
1604 regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*'
1605 # Drop container spec metrics that overlap with kube-state-metrics.
1606 - sourceLabels: [__name__]
1608 regex: 'container_spec.*'
1609 # Drop cgroup metrics with no pod.
1610 - sourceLabels: [id, pod]
1613 # - sourceLabels: [__name__, image]
1615 # regex: container_([a-z_]+);
1618 # - sourceLabels: [__name__]
1620 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1624 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1625 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1627 probesMetricRelabelings: []
1628 # - sourceLabels: [__name__, image]
1630 # regex: container_([a-z_]+);
1633 # - sourceLabels: [__name__]
1635 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1639 ## RelabelConfigs to apply to samples before scraping
1640 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1642 ## metrics_path is required to match upstream rules and charts
1643 cAdvisorRelabelings:
1645 sourceLabels: [__metrics_path__]
1646 targetLabel: metrics_path
1647 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1650 # targetLabel: nodename
1654 ## RelabelConfigs to apply to samples before scraping
1655 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1659 sourceLabels: [__metrics_path__]
1660 targetLabel: metrics_path
1661 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1664 # targetLabel: nodename
1668 ## RelabelConfigs to apply to samples before scraping
1669 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1671 resourceRelabelings:
1673 sourceLabels: [__metrics_path__]
1674 targetLabel: metrics_path
1675 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1678 # targetLabel: nodename
1682 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1683 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1686 # Reduce bucket cardinality of kubelet storage operations.
1688 sourceLabels: [__name__, le]
1689 regex: (csi_operations|storage_operation_duration)_seconds_bucket;(0.25|2.5|15|25|120|600)(\.0)?
1690 # - sourceLabels: [__name__, image]
1692 # regex: container_([a-z_]+);
1695 # - sourceLabels: [__name__]
1697 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1701 ## RelabelConfigs to apply to samples before scraping
1702 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1704 ## metrics_path is required to match upstream rules and charts
1707 sourceLabels: [__metrics_path__]
1708 targetLabel: metrics_path
1709 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1712 # targetLabel: nodename
1716 ## Additional labels
1718 additionalLabels: {}
1721 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1722 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1724## Component scraping the kube controller manager
1726kubeControllerManager:
1728 # Overrides the job selector in Grafana dashboards and Prometheus rules
1729 # For k3s clusters, change to k3s-server
1731 ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1738 ## If using kubeControllerManager.endpoints only the port and targetPort are used
1742 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1743 ## of default port in Kubernetes 1.22.
1749 ipFamilies: ["IPv6", "IPv4"]
1750 ipFamilyPolicy: "PreferDualStack"
1752 # component: kube-controller-manager
1755 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1758 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1761 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1764 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1767 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1769 labelNameLengthLimit: 0
1770 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1772 labelValueLengthLimit: 0
1773 ## proxyUrl: URL of a proxy that should be used for scraping.
1776 ## port: Name of the port the metrics will be scraped from
1782 # component: kube-controller-manager
1784 ## Enable scraping kube-controller-manager over https.
1785 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1786 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1789 # Skip TLS certificate validation when scraping
1790 insecureSkipVerify: null
1791 # Name of the server to use when validating TLS certificate
1793 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1794 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1796 metricRelabelings: []
1798 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1799 # sourceLabels: [__name__]
1801 ## RelabelConfigs to apply to samples before scraping
1802 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1805 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1808 # targetLabel: nodename
1812 ## Additional labels
1814 additionalLabels: {}
1817 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1818 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1820## Component scraping coreDns. Use either this or kubeDns
1830 ipFamilies: ["IPv6", "IPv4"]
1831 ipFamilyPolicy: "PreferDualStack"
1836 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1839 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1842 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1845 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1848 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1850 labelNameLengthLimit: 0
1851 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1853 labelValueLengthLimit: 0
1854 ## proxyUrl: URL of a proxy that should be used for scraping.
1857 ## port: Name of the port the metrics will be scraped from
1865 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1866 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1868 metricRelabelings: []
1870 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1871 # sourceLabels: [__name__]
1873 ## RelabelConfigs to apply to samples before scraping
1874 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1877 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1880 # targetLabel: nodename
1884 ## Additional labels
1886 additionalLabels: {}
1889 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1890 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1892 ## File containing bearer token to be used when scraping targets
1893 ## Empty value do not send any bearer token.
1895 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
1896## Component scraping kubeDns. Use either this or coreDns
1909 ipFamilies: ["IPv6", "IPv4"]
1910 ipFamilyPolicy: "PreferDualStack"
1914 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1917 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1920 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1923 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1926 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1928 labelNameLengthLimit: 0
1929 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1931 labelValueLengthLimit: 0
1932 ## proxyUrl: URL of a proxy that should be used for scraping.
1940 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1941 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1943 metricRelabelings: []
1945 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1946 # sourceLabels: [__name__]
1948 ## RelabelConfigs to apply to samples before scraping
1949 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1952 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1955 # targetLabel: nodename
1959 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1960 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1962 dnsmasqMetricRelabelings: []
1964 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1965 # sourceLabels: [__name__]
1967 ## RelabelConfigs to apply to samples before scraping
1968 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1970 dnsmasqRelabelings: []
1971 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1974 # targetLabel: nodename
1978 ## Additional labels
1980 additionalLabels: {}
1983 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1984 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1986 ## File containing bearer token to be used when scraping targets
1987 ## Empty value do not send any bearer token.
1989 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
1990## Component scraping etcd
1994 ## If your etcd is not deployed as a pod, specify IPs it can be found on
2001 ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
2009 ipFamilies: ["IPv6", "IPv4"]
2010 ipFamilyPolicy: "PreferDualStack"
2013 ## Configure secure access to the etcd cluster by loading a secret into prometheus and
2014 ## specifying security configuration below. For example, with a secret named etcd-client-cert
2018 ## insecureSkipVerify: false
2019 ## serverName: localhost
2020 ## caFile: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
2021 ## certFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client
2022 ## keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
2026 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2029 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2032 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2035 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2038 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2040 labelNameLengthLimit: 0
2041 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2043 labelValueLengthLimit: 0
2044 ## proxyUrl: URL of a proxy that should be used for scraping.
2048 insecureSkipVerify: false
2053 ## port: Name of the port the metrics will be scraped from
2061 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2062 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2064 metricRelabelings: []
2066 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2067 # sourceLabels: [__name__]
2069 ## RelabelConfigs to apply to samples before scraping
2070 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2073 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2076 # targetLabel: nodename
2080 ## Additional labels
2082 additionalLabels: {}
2085 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2086 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2088 ## File containing bearer token to be used when scraping targets
2089 ## Empty value do not send any bearer token.
2091 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
2092## Component scraping kube scheduler
2096 # Overrides the job selector in Grafana dashboards and Prometheus rules
2097 # For k3s clusters, change to k3s-server
2099 ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
2106 ## If using kubeScheduler.endpoints only the port and targetPort are used
2110 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
2111 ## of default port in Kubernetes 1.23.
2117 ipFamilies: ["IPv6", "IPv4"]
2118 ipFamilyPolicy: "PreferDualStack"
2120 # component: kube-scheduler
2123 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2126 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2129 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2132 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2135 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2137 labelNameLengthLimit: 0
2138 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2140 labelValueLengthLimit: 0
2141 ## proxyUrl: URL of a proxy that should be used for scraping.
2144 ## Enable scraping kube-scheduler over https.
2145 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
2146 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
2149 ## port: Name of the port the metrics will be scraped from
2155 # component: kube-scheduler
2157 ## Skip TLS certificate validation when scraping
2158 insecureSkipVerify: null
2159 ## Name of the server to use when validating TLS certificate
2161 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2162 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2164 metricRelabelings: []
2166 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2167 # sourceLabels: [__name__]
2169 ## RelabelConfigs to apply to samples before scraping
2170 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2173 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2176 # targetLabel: nodename
2180 ## Additional labels
2182 additionalLabels: {}
2185 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2186 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2188## Component scraping kube proxy
2192 # Overrides the job selector in Grafana dashboards and Prometheus rules
2193 # For k3s clusters, change to k3s-server
2195 ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
2208 ipFamilies: ["IPv6", "IPv4"]
2209 ipFamilyPolicy: "PreferDualStack"
2211 # k8s-app: kube-proxy
2214 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2217 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2220 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2223 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2226 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2228 labelNameLengthLimit: 0
2229 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2231 labelValueLengthLimit: 0
2232 ## proxyUrl: URL of a proxy that should be used for scraping.
2235 ## port: Name of the port the metrics will be scraped from
2241 # k8s-app: kube-proxy
2243 ## Enable scraping kube-proxy over https.
2244 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
2247 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2248 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2250 metricRelabelings: []
2252 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2253 # sourceLabels: [__name__]
2255 ## RelabelConfigs to apply to samples before scraping
2256 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2260 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2261 # sourceLabels: [__name__]
2263 ## Additional labels
2265 additionalLabels: {}
2268 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2269 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2271 ## File containing bearer token to be used when scraping targets
2272 ## Empty value do not send any bearer token.
2274 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
2275## Component scraping kube state metrics
2279## Configuration for kube-state-metrics subchart
2282 ## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
2284 ## Enable scraping via kubernetes-service-endpoints
2285 ## Disabled by default as we service monitor is enabled below
2287 prometheusScrape: false
2290 ## Enable scraping via service monitor
2291 ## Disable to prevent duplication if you enable prometheusScrape above
2293 ## kube-state-metrics endpoint
2295 ## Keep labels from scraped data, overriding server-side labels
2297 ## selfMonitor endpoint
2299 ## Keep labels from scraped data, overriding server-side labels
2301## Deploy node exporter as a daemonset to all nodes
2312 ## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2314 forceDeployDashboards: false
2315## Configuration for prometheus-node-exporter subchart
2317prometheus-node-exporter:
2318 namespaceOverride: ""
2320 ## Add the 'node-exporter' label to be used by serviceMonitor and podMonitor to match standard common usage in rules and grafana dashboards
2322 jobLabel: node-exporter
2325 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2326 - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|erofs)$
2328 portName: http-metrics
2331 ipFamilies: ["IPv6", "IPv4"]
2332 ipFamilyPolicy: "PreferDualStack"
2334 jobLabel: node-exporter
2341 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2344 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2347 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2350 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2353 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2355 labelNameLengthLimit: 0
2356 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2358 labelValueLengthLimit: 0
2359 ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2362 ## proxyUrl: URL of a proxy that should be used for scraping.
2365 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2366 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2368 metricRelabelings: []
2369 # - sourceLabels: [__name__]
2371 # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2375 ## RelabelConfigs to apply to samples before scraping
2376 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2379 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2382 # targetLabel: nodename
2385 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
2394 ## If true, create PSPs for node-exporter
2397## Manages Prometheus and Alertmanager components
2401 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2402 fullnameOverride: ""
2403 ## Number of old replicasets to retain ##
2404 ## The default value is 10, 0 will garbage-collect old replicasets ##
2405 revisionHistoryLimit: 10
2406 ## Strategy of the deployment
2409 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2413 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2414 tlsMinVersion: VersionTLS13
2415 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2417 ## Liveness probe for the prometheusOperator deployment
2422 initialDelaySeconds: 0
2426 ## Readiness probe for the prometheusOperator deployment
2431 initialDelaySeconds: 0
2435 ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2436 ## rules from making their way into prometheus and potentially preventing the container from starting
2438 ## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2439 ## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2441 ## The default timeoutSeconds is 10 and the maximum value is 30.
2444 ## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2445 ## If unspecified, system trust roots on the apiserver are used.
2447 ## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2448 ## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2449 ## certs ahead of time if you wish.
2452 # argocd.argoproj.io/hook: PreSync
2453 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2455 namespaceSelector: {}
2458 mutatingWebhookConfiguration:
2460 # argocd.argoproj.io/hook: PreSync
2461 validatingWebhookConfiguration:
2463 # argocd.argoproj.io/hook: PreSync
2466 ## Number of replicas
2469 ## Strategy of the deployment
2472 # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2473 podDisruptionBudget:
2476 # maxUnavailable: ""
2477 unhealthyPodEvictionPolicy: AlwaysAllow
2478 ## Number of old replicasets to retain ##
2479 ## The default value is 10, 0 will garbage-collect old replicasets ##
2480 revisionHistoryLimit: 10
2481 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2485 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2486 tlsMinVersion: VersionTLS13
2487 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2489 ## Service account for Prometheus Operator Webhook to use.
2490 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2494 automountServiceAccountToken: false
2497 ## Configuration for Prometheus operator Webhook service
2505 ipFamilies: ["IPv6", "IPv4"]
2506 ipFamilyPolicy: "PreferDualStack"
2507 ## Port to expose on each node
2508 ## Only used if service.type is 'NodePort'
2512 ## Additional ports to open for Prometheus operator Webhook service
2513 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2517 ## Only use if service.type is "LoadBalancer"
2520 loadBalancerSourceRanges: []
2521 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2523 externalTrafficPolicy: Cluster
2525 ## NodePort, ClusterIP, LoadBalancer
2528 ## List of IP addresses at which the Prometheus server service is available
2529 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2532 # ## Labels to add to the operator webhook deployment
2535 ## Annotations to add to the operator webhook deployment
2538 ## Labels to add to the operator webhook pod
2541 ## Annotations to add to the operator webhook pod
2544 ## Assign a PriorityClassName to pods if set
2545 # priorityClassName: ""
2547 ## Define Log Format
2548 # Use logfmt (default) or json logging
2551 ## Decrease log verbosity to errors only
2554 ## Prometheus-operator webhook image
2558 repository: chainguard-private/prometheus-admission-webhook
2559 # if not set appVersion field from Chart.yaml is used
2561 sha: sha256:63936b8a303678a137c158f04590b9fd9b5a31ed19e311c56a4fbe4dbf8e6b20
2562 pullPolicy: IfNotPresent
2563 ## Define Log Format
2564 # Use logfmt (default) or json logging
2567 ## Decrease log verbosity to errors only
2570 ## PromQL parser options to enable for the admission webhook when validating PrometheusRule resources.
2571 ## The options are passed to the prometheus-operator admission-webhook binary as a comma-separated --promql-options value.
2572 ## Requires prometheus-operator admission-webhook v0.91.0 or newer.
2573 ## Valid values: experimental-functions, duration-expression-parsing, extended-range-selectors, binop-fill-modifiers.
2581 initialDelaySeconds: 30
2590 initialDelaySeconds: 5
2594 ## Resource limits & requests
2604 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2605 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2608 ## Define which Nodes the Pods are scheduled on.
2609 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2612 ## Tolerations for use with node taints
2613 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2619 # effect: "NoSchedule"
2621 ## Assign custom affinity rules to the prometheus operator
2622 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2626 # requiredDuringSchedulingIgnoredDuringExecution:
2627 # nodeSelectorTerms:
2628 # - matchExpressions:
2629 # - key: kubernetes.io/e2e-az-name
2638 # - ns1.svc.cluster-domain.example
2639 # - my.dns.search.suffix
2650 type: RuntimeDefault
2651 ## Container-specific security context configuration
2652 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2654 containerSecurityContext:
2655 allowPrivilegeEscalation: false
2656 readOnlyRootFilesystem: true
2660 ## If false then the user will opt out of automounting API credentials.
2662 automountServiceAccountToken: true
2667 repository: chainguard-private/kube-webhook-certgen
2669 sha: sha256:75101c63ec22b85737bad95af855ac199f55619eadc402797531ab48d53e218f
2670 pullPolicy: IfNotPresent
2672 ## Provide a priority class name to the webhook patching job
2674 priorityClassName: ""
2675 ttlSecondsAfterFinished: 60
2677 # argocd.argoproj.io/hook: PreSync
2678 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2683 ## SecurityContext holds pod-level security attributes and common container settings.
2684 ## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2685 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2692 type: RuntimeDefault
2693 ## Service account for Prometheus Operator Webhook Job Patch to use.
2694 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2699 automountServiceAccountToken: true
2700 # Security context for create job container
2703 allowPrivilegeEscalation: false
2704 readOnlyRootFilesystem: true
2708 # Security context for patch job container
2711 allowPrivilegeEscalation: false
2712 readOnlyRootFilesystem: true
2716 # Use certmanager to generate webhook certs
2719 # self-signed root certificate
2721 duration: "" # default to be 5y
2722 # -- Set the revisionHistoryLimit on the Certificate. See
2723 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2725 revisionHistoryLimit:
2727 duration: "" # default to be 1y
2728 # -- Set the revisionHistoryLimit on the Certificate. See
2729 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2731 revisionHistoryLimit:
2734 # kind: "ClusterIssuer"
2735 ## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
2736 ## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
2739 # releaseNamespace: true
2743 ## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
2746 ## Filter namespaces to look for prometheus-operator custom resources
2748 alertmanagerInstanceNamespaces: []
2749 alertmanagerConfigNamespaces: []
2750 prometheusInstanceNamespaces: []
2751 thanosRulerInstanceNamespaces: []
2752 ## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
2753 ## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
2754 ## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
2756 # clusterDomain: "cluster.local"
2758 ## Enable creation of NetworkPolicy resources.
2761 ## Flavor of the network policy to use.
2763 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
2764 # * cilium for cilium.io/v2/CiliumNetworkPolicy
2769 ## match labels used in selector
2771 ## Service account for Prometheus Operator to use.
2772 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2777 automountServiceAccountToken: true
2779 # -- terminationGracePeriodSeconds for container lifecycle hook
2780 terminationGracePeriodSeconds: 30
2781 # -- Specify lifecycle hooks for the controller
2783 ## Configuration for Prometheus operator service
2791 ipFamilies: ["IPv6", "IPv4"]
2792 ipFamilyPolicy: "PreferDualStack"
2793 ## Port to expose on each node
2794 ## Only used if service.type is 'NodePort'
2798 ## Additional ports to open for Prometheus operator service
2799 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2803 ## Only use if service.type is "LoadBalancer"
2806 loadBalancerSourceRanges: []
2807 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2809 externalTrafficPolicy: Cluster
2811 ## NodePort, ClusterIP, LoadBalancer
2814 ## List of IP addresses at which the Prometheus server service is available
2815 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2818 # ## Labels to add to the operator deployment
2821 ## Annotations to add to the operator deployment
2824 ## Labels to add to the operator pod
2827 ## Annotations to add to the operator pod
2830 ## Assign a podDisruptionBudget to the operator
2832 podDisruptionBudget:
2835 # maxUnavailable: ""
2836 unhealthyPodEvictionPolicy: AlwaysAllow
2837 ## Assign a PriorityClassName to pods if set
2838 # priorityClassName: ""
2840 ## Define Log Format
2841 # Use logfmt (default) or json logging
2844 ## Decrease log verbosity to errors only
2847 ## If true, the operator will create and maintain a service for scraping kubelets
2848 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/helm/prometheus-operator/README.md
2851 namespace: kube-system
2853 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
2855 ## Create Endpoints objects for kubelet targets.
2856 kubeletEndpointsEnabled: true
2857 ## Create EndpointSlice objects for kubelet targets.
2858 kubeletEndpointSliceEnabled: false
2859 ## Extra arguments to pass to prometheusOperator
2860 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/operator.md
2862 # - --labels="cluster=talos-cluster"
2864 ## Create a servicemonitor for the operator
2867 ## If true, create a serviceMonitor for prometheus operator
2870 ## Labels for ServiceMonitor
2871 additionalLabels: {}
2872 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2875 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2878 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2881 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2884 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2886 labelNameLengthLimit: 0
2887 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2889 labelValueLengthLimit: 0
2890 ## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
2892 ## Metric relabel configs to apply to samples before ingestion.
2894 metricRelabelings: []
2896 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2897 # sourceLabels: [__name__]
2899 # relabel configs to apply to samples before ingestion.
2902 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2905 # targetLabel: nodename
2908 ## Resource limits & requests
2918 ## Operator Environment
2923 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2924 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2927 ## Define which Nodes the Pods are scheduled on.
2928 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2931 ## Tolerations for use with node taints
2932 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2938 # effect: "NoSchedule"
2940 ## Assign custom affinity rules to the prometheus operator
2941 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2945 # requiredDuringSchedulingIgnoredDuringExecution:
2946 # nodeSelectorTerms:
2947 # - matchExpressions:
2948 # - key: kubernetes.io/e2e-az-name
2957 # - ns1.svc.cluster-domain.example
2958 # - my.dns.search.suffix
2969 type: RuntimeDefault
2970 ## Setup hostUsers for prometheus-operator
2971 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/
2973 ## Container-specific security context configuration
2974 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2976 containerSecurityContext:
2977 allowPrivilegeEscalation: false
2978 readOnlyRootFilesystem: true
2982 # Enable vertical pod autoscaler support for prometheus-operator
2983 verticalPodAutoscaler:
2985 # Recommender responsible for generating recommendation for the object.
2986 # List should be empty (then the default recommender will generate the recommendation)
2987 # or contain exactly one recommender.
2989 # - name: custom-recommender-performance
2991 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
2992 controlledResources: []
2993 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
2994 # controlledValues: RequestsAndLimits
2996 # Define the max allowed resources for the pod
3000 # Define the min allowed resources for the pod
3006 # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
3008 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3009 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3010 updateMode: Recreate
3011 ## Prometheus-operator image
3015 repository: chainguard-private/prometheus-operator
3016 # if not set appVersion field from Chart.yaml is used
3018 sha: sha256:160665486be8525d30c439c47e09099c9884e69b94651ed66e266d432d96d9bd
3019 pullPolicy: IfNotPresent
3020 ## Prometheus image to use for prometheuses managed by the operator
3022 # prometheusDefaultBaseImage: prometheus/prometheus
3024 ## Prometheus image registry to use for prometheuses managed by the operator
3026 # prometheusDefaultBaseImageRegistry: quay.io
3028 ## Alertmanager image to use for alertmanagers managed by the operator
3030 # alertmanagerDefaultBaseImage: prometheus/alertmanager
3032 ## Alertmanager image registry to use for alertmanagers managed by the operator
3034 # alertmanagerDefaultBaseImageRegistry: quay.io
3036 ## Prometheus-config-reloader
3038 prometheusConfigReloader:
3041 repository: chainguard-private/prometheus-config-reloader
3042 # if not set appVersion field from Chart.yaml is used
3044 sha: sha256:101fbbbccedc1551ae0b96737686dac80e33cef55eed40324d653cc5c8619529
3045 # add prometheus config reloader liveness and readiness probe. Default: false
3047 # resource config for prometheusConfigReloader
3055 ## Thanos side-car image when configured
3059 repository: chainguard-private/thanos
3061 sha: sha256:bf12d37a4a537580deb922d6eda6744cff0a374ac40efc77e559febc22191b49
3062 ## Set a Label Selector to filter watched prometheus and prometheusAgent
3064 prometheusInstanceSelector: ""
3065 ## Set a Label Selector to filter watched alertmanager
3067 alertmanagerInstanceSelector: ""
3068 ## Set a Label Selector to filter watched thanosRuler
3069 thanosRulerInstanceSelector: ""
3070 ## Set a Field Selector to filter watched secrets
3072 secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=kubernetes.io/service-account-token,type!=helm.sh/release.v1"
3073 ## If false then the user will opt out of automounting API credentials.
3075 automountServiceAccountToken: true
3076 ## Additional volumes
3079 ## Additional volume mounts
3081 extraVolumeMounts: []
3082## Deploy a Prometheus instance
3086 ## Toggle prometheus into agent mode
3087 ## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
3088 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/prometheus-agent.md
3091 ## Annotations for Prometheus
3094 ## Additional labels for Prometheus
3096 additionalLabels: {}
3097 ## Configure network policy for the prometheus
3100 ## Flavor of the network policy to use.
3102 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3103 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3118 ## Service account for Prometheuses to use.
3119 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3125 automountServiceAccountToken: true
3126 # Service for thanos service discovery on sidecar
3127 # Enable this can make Thanos Query can use
3128 # `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
3129 # Thanos sidecar on prometheus nodes
3130 # (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
3135 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3137 externalTrafficPolicy: Cluster
3141 ## Service dual stack
3145 ipFamilies: ["IPv6", "IPv4"]
3146 ipFamilyPolicy: "PreferDualStack"
3151 ## HTTP port config (for metrics)
3154 targetHttpPort: "http"
3155 ## ClusterIP to assign
3156 # Default is to make this a headless service ("None")
3158 ## Port to expose on each node, if service type is NodePort
3162 # ServiceMonitor to scrape Sidecar metrics
3163 # Needs thanosService to be enabled as well
3164 thanosServiceMonitor:
3167 ## Additional labels
3169 additionalLabels: {}
3170 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3172 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3173 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3176 ## Metric relabel configs to apply to samples before ingestion.
3177 metricRelabelings: []
3178 ## relabel configs to apply to samples before ingestion.
3180 # Service for external access to sidecar
3181 # Enabling this creates a service to expose thanos-sidecar outside the cluster.
3182 thanosServiceExternal:
3187 loadBalancerSourceRanges: []
3192 ## HTTP port config (for metrics)
3195 targetHttpPort: "http"
3196 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3198 externalTrafficPolicy: Cluster
3202 ## Port to expose on each node
3206 ## Configuration for Prometheus service
3215 ipFamilies: ["IPv6", "IPv4"]
3216 ipFamilyPolicy: "PreferDualStack"
3217 ## Port for Prometheus Service to listen on
3220 ## To be used with a proxy extraContainer port
3222 ## Port for Prometheus Reloader to listen on
3224 reloaderWebPort: 8080
3225 ## Port to expose for Prometheus Reloader
3226 ## Only used if service.type is 'NodePort'
3228 reloaderWebNodePort: null
3229 ## List of IP addresses at which the Prometheus server service is available
3230 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3233 ## Port to expose on each node
3234 ## Only used if service.type is 'NodePort'
3238 ## Only use if service.type is "LoadBalancer"
3240 loadBalancerSourceRanges: []
3241 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3243 externalTrafficPolicy: Cluster
3247 ## Additional ports to open for Prometheus service
3251 # - name: oauth-proxy
3254 # - name: oauth-metrics
3258 ## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3259 ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3260 publishNotReadyAddresses: false
3261 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
3262 ## Accepts 'ClientIP' or 'None'
3264 sessionAffinity: None
3265 ## If you want to modify the ClientIP sessionAffinity timeout
3266 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3268 sessionAffinityConfig:
3270 timeoutSeconds: 10800
3271 ## Configuration for creating a separate Service for each statefulset Prometheus replica
3276 ## Port for Prometheus Service per replica to listen on
3279 ## To be used with a proxy extraContainer port
3281 ## Port to expose on each node
3282 ## Only used if servicePerReplica.type is 'NodePort'
3285 ## Loadbalancer source IP ranges
3286 ## Only used if servicePerReplica.type is "LoadBalancer"
3287 loadBalancerSourceRanges: []
3288 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3290 externalTrafficPolicy: Cluster
3294 ## Service dual stack
3298 ipFamilies: ["IPv6", "IPv4"]
3299 ipFamilyPolicy: "PreferDualStack"
3300 ## Configure pod disruption budgets for Prometheus
3301 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
3303 podDisruptionBudget:
3306 # maxUnavailable: ""
3307 unhealthyPodEvictionPolicy: AlwaysAllow
3308 ## Enable vertical pod autoscaler support for Prometheus
3309 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
3311 verticalPodAutoscaler:
3313 # Recommender responsible for generating recommendation for the object.
3314 # List should be empty (then the default recommender will generate the recommendation)
3315 # or contain exactly one recommender.
3317 # - name: custom-recommender-performance
3319 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3320 controlledResources: []
3321 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3322 # controlledValues: RequestsAndLimits
3324 # Define the max allowed resources for the pod
3328 # Define the min allowed resources for the pod
3334 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3335 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3336 updateMode: Recreate
3337 # Ingress exposes thanos sidecar outside the cluster
3340 ingressClassName: ""
3344 ## Port to expose on each node
3345 ## Only used if service.type is 'NodePort'
3348 ## Hosts must be provided if Ingress is enabled.
3351 # - thanos-gateway.domain.com
3353 ## Paths to use for ingress rules
3358 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3359 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3360 # pathType: ImplementationSpecific
3362 ## TLS configuration for Thanos Ingress
3363 ## Secret must be manually created in the namespace
3366 # - secretName: thanos-gateway-tls
3368 # - thanos-gateway.domain.com
3370 ## ExtraSecret can be used to store various data in an extra secret
3371 ## (use it for example to store hashed basic auth credentials)
3373 ## if not set, name will be auto generated
3378 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3379 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3383 ingressClassName: ""
3386 ## Redirect ingress to an additional defined port on the service
3390 ## Must be provided if Ingress is enabled.
3393 # - prometheus.domain.com
3395 ## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3400 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3401 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3402 # pathType: ImplementationSpecific
3404 ## TLS configuration for Prometheus Ingress
3405 ## Secret must be manually created in the namespace
3408 # - secretName: prometheus-general-tls
3410 # - prometheus.example.com
3411 # -- BETA: Configure the gateway routes for the chart here.
3412 # More routes can be added by adding a dictionary key like the 'main' route.
3413 # Be aware that this is an early beta of this feature,
3414 # kube-prometheus-stack does not guarantee this works and is subject to change.
3415 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
3416 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
3419 # -- Enables or disables the route
3421 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3422 apiVersion: gateway.networking.k8s.io/v1
3423 # -- Set the route kind
3424 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3429 # - my-filter.example.com
3433 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3434 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3435 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
3436 httpsRedirect: false
3441 ## Filters define the filters that are applied to requests that match this rule.
3443 ## Session persistence configuration for the route rule.
3444 sessionPersistence: {}
3445 # sessionName: route
3447 # absoluteTimeout: 12h
3449 # lifetimeType: Permanent
3451 ## Additional custom rules that can be added to the route
3453 ## Configuration for creating an Ingress that will map to each Prometheus replica service
3454 ## prometheus.servicePerReplica must be enabled
3458 ingressClassName: ""
3461 ## Final form of the hostname for each per replica ingress is
3462 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3464 ## Prefix for the per replica ingress that will have `-$replicaNumber`
3465 ## appended to the end
3467 ## Domain that will be used for the per replica ingress
3469 ## Paths to use for ingress rules
3474 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3475 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3476 # pathType: ImplementationSpecific
3478 ## Secret name containing the TLS certificate for Prometheus per replica ingress
3479 ## Secret must be manually created in the namespace
3481 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
3483 tlsSecretPerReplica:
3485 ## Final form of the secret for each per replica ingress is
3486 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3488 prefix: "prometheus"
3490 ## If true, create a serviceMonitor for prometheus
3493 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3496 ## Additional labels
3498 additionalLabels: {}
3499 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3502 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3505 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3508 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3510 labelNameLengthLimit: 0
3511 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3513 labelValueLengthLimit: 0
3514 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3516 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3517 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3520 ## Metric relabel configs to apply to samples before ingestion.
3522 metricRelabelings: []
3524 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3525 # sourceLabels: [__name__]
3527 # relabel configs to apply to samples before ingestion.
3530 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3533 # targetLabel: nodename
3537 ## Additional Endpoints
3539 additionalEndpoints: []
3540 # - port: oauth-metrics
3542 ## Settings affecting prometheusSpec
3543 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheusspec
3546 ## Statefulset's persistent volume claim retention policy
3547 ## whenDeleted and whenScaled determine whether
3548 ## statefulset's PVCs are deleted (true) or retained (false)
3549 ## on scaling down and deleting statefulset, respectively.
3550 ## Requires Kubernetes version 1.27.0+.
3551 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
3552 persistentVolumeClaimRetentionPolicy: {}
3553 # whenDeleted: Retain
3554 # whenScaled: Retain
3556 ## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3558 disableCompaction: false
3559 ## AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod,
3560 ## If the field isn't set, the operator mounts the service account token by default.
3561 ## Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery,
3562 ## It is possible to use strategic merge patch to project the service account token into the 'prometheus' container.
3563 automountServiceAccountToken: true
3565 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#apiserverconfig
3568 ## Allows setting additional arguments for the Prometheus container
3569 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3571 ## Convert all classic histograms to native histograms with custom buckets.
3572 ## This corresponds to the 'convert_classic_histograms_to_nhcb' field in Prometheus configuration.
3574 convertClassicHistogramsToNHCB: false
3575 ## Enable scraping of classic histograms that are also exposed as native histograms.
3576 ## This corresponds to the 'always_scrape_classic_histograms' field in Prometheus configuration.
3578 scrapeClassicHistograms: false
3579 ## Enable scraping of native histograms.
3580 ## This corresponds to the 'scrape_native_histograms' field in Prometheus configuration.
3582 scrapeNativeHistograms: false
3583 ## File to which scrape failures are logged.
3584 ## Reloading the configuration will reopen the file.
3585 ## Defaults to empty (disabled)
3586 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3588 scrapeFailureLogFile: ""
3589 ## Interval between consecutive scrapes.
3591 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
3594 ## Number of seconds to wait for target to respond before erroring
3597 ## List of scrape classes to expose to scraping objects such as
3598 ## PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.
3601 # - name: istio-mtls
3604 # caFile: /etc/prometheus/secrets/istio.default/root-cert.pem
3605 # certFile: /etc/prometheus/secrets/istio.default/cert-chain.pem
3607 ## PodTargetLabels are appended to the `spec.podTargetLabels` field of all PodMonitor and ServiceMonitor objects.
3612 ## Interval between consecutive evaluations.
3614 evaluationInterval: ""
3615 ## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
3618 ## enableOTLPReceiver enables the OTLP receiver for Prometheus.
3619 enableOTLPReceiver: false
3620 ## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
3621 ## This is disabled by default.
3622 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
3624 enableAdminAPI: false
3625 ## Sets version of Prometheus overriding the Prometheus version as derived
3626 ## from the image tag. Useful in cases where the tag does not follow semver v2.
3628 ## WebTLSConfig defines the TLS parameters for HTTPS
3629 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
3631 ## Exemplars related settings that are runtime reloadable.
3632 ## It requires to enable the exemplar storage feature to be effective.
3634 ## Maximum number of exemplars stored in memory for all series.
3635 ## If not set, Prometheus uses its default value.
3636 ## A value of zero or less than zero disables the storage.
3639 # EnableFeatures API enables access to Prometheus disabled features.
3640 # ref: https://prometheus.io/docs/prometheus/latest/feature_flags/
3642 # - exemplar-storage
3644 ## https://prometheus.io/docs/guides/opentelemetry
3647 # promoteResourceAttributes: []
3648 # keepIdentifyingResourceAttributes: false
3649 # translationStrategy: NoUTF8EscapingWithSuffixes
3650 # convertHistogramsToNHCB: false
3654 ## Image of Prometheus.
3658 repository: chainguard-private/prometheus
3660 sha: sha256:9823cfb14860fa97cedbb3d2a7c0ed148a1e93c4e846cac9297a219b074b9c9a
3661 pullPolicy: IfNotPresent
3662 ## Tolerations for use with node taints
3663 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3669 # effect: "NoSchedule"
3671 ## If specified, the pod's topology spread constraints.
3672 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
3674 topologySpreadConstraints: []
3676 # topologyKey: topology.kubernetes.io/zone
3677 # whenUnsatisfiable: DoNotSchedule
3684 disableAlerting: false
3685 ## Alertmanagers to which alerts will be sent
3686 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerendpoints
3688 ## Default configuration will connect to the alertmanager deployed as part of this release
3690 alertingEndpoints: []
3697 # bearerTokenFile: ""
3700 ## External labels to add to any time series or alerts when communicating with external systems
3703 ## enable --web.enable-remote-write-receiver flag on prometheus-server
3705 enableRemoteWriteReceiver: false
3706 ## Name of the external label used to denote replica name
3708 replicaExternalLabelName: ""
3709 ## If true, the Operator won't add the external label used to denote replica name
3711 replicaExternalLabelNameClear: false
3712 ## Name of the external label used to denote Prometheus instance name
3714 prometheusExternalLabelName: ""
3715 ## If true, the Operator won't add the external label used to denote Prometheus instance name
3717 prometheusExternalLabelNameClear: false
3718 ## External URL at which Prometheus will be reachable.
3721 ## Define which Nodes the Pods are scheduled on.
3722 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3725 ## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
3726 ## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
3727 ## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
3728 ## with the new list of secrets.
3731 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
3732 ## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
3735 ## QuerySpec defines the query command line flags when starting Prometheus.
3736 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#queryspec
3739 ## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
3740 ruleNamespaceSelector: {}
3741 ## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
3742 # ruleNamespaceSelector:
3744 # prometheus: somelabel
3746 ## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
3747 ## prometheus resource to be created with selectors based on values in the helm deployment,
3748 ## which will also match the PrometheusRule resources created
3750 ruleSelectorNilUsesHelmValues: true
3751 ## PrometheusRules to be selected for target discovery.
3752 ## If {}, select all PrometheusRules
3755 ## Example which select all PrometheusRules resources
3756 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
3765 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
3768 # role: example-rules
3770 ## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
3771 ## prometheus resource to be created with selectors based on values in the helm deployment,
3772 ## which will also match the servicemonitors created
3774 serviceMonitorSelectorNilUsesHelmValues: true
3775 ## ServiceMonitors to be selected for target discovery.
3776 ## If {}, select all ServiceMonitors
3778 serviceMonitorSelector: {}
3779 ## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
3780 # serviceMonitorSelector:
3782 # prometheus: somelabel
3784 ## Namespaces to be selected for ServiceMonitor discovery.
3786 serviceMonitorNamespaceSelector: {}
3787 ## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
3788 # serviceMonitorNamespaceSelector:
3790 # prometheus: somelabel
3792 ## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
3793 ## prometheus resource to be created with selectors based on values in the helm deployment,
3794 ## which will also match the podmonitors created
3796 podMonitorSelectorNilUsesHelmValues: true
3797 ## PodMonitors to be selected for target discovery.
3798 ## If {}, select all PodMonitors
3800 podMonitorSelector: {}
3801 ## Example which selects PodMonitors with label "prometheus" set to "somelabel"
3802 # podMonitorSelector:
3804 # prometheus: somelabel
3806 ## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
3807 podMonitorNamespaceSelector: {}
3808 ## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
3809 # podMonitorNamespaceSelector:
3811 # prometheus: somelabel
3813 ## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
3814 ## prometheus resource to be created with selectors based on values in the helm deployment,
3815 ## which will also match the probes created
3817 probeSelectorNilUsesHelmValues: true
3818 ## Probes to be selected for target discovery.
3819 ## If {}, select all Probes
3822 ## Example which selects Probes with label "prometheus" set to "somelabel"
3825 # prometheus: somelabel
3827 ## If nil, select own namespace. Namespaces to be selected for Probe discovery.
3828 probeNamespaceSelector: {}
3829 ## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
3830 # probeNamespaceSelector:
3832 # prometheus: somelabel
3834 ## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
3835 ## prometheus resource to be created with selectors based on values in the helm deployment,
3836 ## which will also match the scrapeConfigs created
3838 ## If null and scrapeConfigSelector is also null, exclude field from the prometheusSpec
3839 ## (keeping downward compatibility with older versions of CRD)
3841 scrapeConfigSelectorNilUsesHelmValues: true
3842 ## scrapeConfigs to be selected for target discovery.
3843 ## If {}, select all scrapeConfigs
3845 scrapeConfigSelector: {}
3846 ## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
3847 # scrapeConfigSelector:
3849 # prometheus: somelabel
3851 ## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
3852 ## If null, exclude the field from the prometheusSpec (keeping downward compatibility with older versions of CRD)
3853 scrapeConfigNamespaceSelector: {}
3854 ## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
3855 # scrapeConfigNamespaceSelector:
3857 # prometheus: somelabel
3859 ## How long to retain metrics
3862 ## Maximum size of metrics
3863 ## Unit format should be in the form of "50GiB"
3865 ## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
3866 ## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
3868 outOfOrderTimeWindow: 0s
3869 ## Enable compression of the write-ahead log using Snappy.
3871 walCompression: true
3872 ## If true, the Operator won't process any Prometheus configuration changes
3875 ## Number of replicas of each shard to deploy for a Prometheus deployment.
3876 ## Number of replicas multiplied by shards is the total number of Pods created.
3879 ## EXPERIMENTAL: Number of shards to distribute targets onto.
3880 ## Number of replicas multiplied by shards is the total number of Pods created.
3881 ## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
3882 ## Increasing shards will not reshard data either but it will continue to be available from the same instances.
3883 ## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
3884 ## Sharding is done on the content of the `__address__` target meta-label.
3887 ## Log level for Prometheus be configured in
3890 ## Log format for Prometheus be configured in
3893 ## Prefix used to register routes, overriding externalUrl route.
3894 ## Useful for proxies that rewrite URLs.
3897 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
3898 ## Metadata Labels and Annotations gets propagated to the prometheus pods.
3903 # k8s-app: prometheus
3905 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
3906 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
3907 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
3908 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
3909 podAntiAffinity: "soft"
3910 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
3911 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
3913 podAntiAffinityTopologyKey: kubernetes.io/hostname
3914 ## Assign custom affinity rules to the prometheus instance
3915 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3919 # requiredDuringSchedulingIgnoredDuringExecution:
3920 # nodeSelectorTerms:
3921 # - matchExpressions:
3922 # - key: kubernetes.io/e2e-az-name
3928 ## The remote_read spec configuration for Prometheus.
3929 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec
3931 # - url: http://remote1/read
3932 ## additionalRemoteRead is appended to remoteRead
3933 additionalRemoteRead: []
3934 ## The remote_write spec configuration for Prometheus.
3935 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec
3937 # - url: http://remote1/push
3938 ## additionalRemoteWrite is appended to remoteWrite
3939 additionalRemoteWrite: []
3940 ## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
3941 remoteWriteDashboards: false
3942 ## Resource limits & requests
3948 ## Prometheus StorageSpec for persistent data
3949 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
3952 ## Using PersistentVolumeClaim
3954 # volumeClaimTemplate:
3956 # storageClassName: gluster
3957 # accessModes: ["ReadWriteOnce"]
3963 ## Using tmpfs volume
3968 # Additional volumes on the output StatefulSet definition.
3970 # Additional VolumeMounts on the output StatefulSet definition.
3972 ## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
3973 ## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
3974 ## as specified in the official Prometheus documentation:
3975 ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
3976 ## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
3977 ## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
3978 ## scrape configs are going to break Prometheus after the upgrade.
3979 ## AdditionalScrapeConfigs can be defined as a list or as a templated string.
3981 ## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
3982 ## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
3984 additionalScrapeConfigs: []
3985 # - job_name: kube-etcd
3986 # kubernetes_sd_configs:
3990 # ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
3991 # cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
3992 # key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
3994 # - action: labelmap
3995 # regex: __meta_kubernetes_node_label_(.+)
3996 # - source_labels: [__address__]
3998 # target_label: __address__
3999 # regex: ([^:;]+):(\d+)
4000 # replacement: ${1}:2379
4001 # - source_labels: [__meta_kubernetes_node_name]
4004 # - source_labels: [__meta_kubernetes_node_name]
4006 # target_label: node
4009 # metric_relabel_configs:
4010 # - regex: (kubernetes_io_hostname|failure_domain_beta_kubernetes_io_region|beta_kubernetes_io_os|beta_kubernetes_io_arch|beta_kubernetes_io_instance_type|failure_domain_beta_kubernetes_io_zone)
4013 ## If scrape config contains a repetitive section, you may want to use a template.
4014 ## In the following example, you can see how to define `gce_sd_configs` for multiple zones
4015 # additionalScrapeConfigs: |
4016 # - job_name: "node-exporter"
4018 # {{range $zone := .Values.gcp_zones}}
4019 # - project: "project1"
4026 ## If additional scrape configurations are already deployed in a single secret file you can use this section.
4027 ## Expected values are the secret name and key
4028 ## Cannot be used with additionalScrapeConfigs
4029 additionalScrapeConfigsSecret: {}
4034 ## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
4035 ## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
4036 additionalPrometheusSecretsAnnotations: {}
4037 ## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
4038 ## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config.
4039 ## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
4040 ## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
4041 ## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
4042 ## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
4044 additionalAlertManagerConfigs: []
4045 # - consul_sd_configs:
4046 # - server: consul.dev.test:8500
4049 # tag_separator: ','
4051 # - metrics-prometheus-alertmanager
4053 ## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
4054 ## them separately from the helm deployment, you can use this section.
4055 ## Expected values are the secret name and key
4056 ## Cannot be used with additionalAlertManagerConfigs
4057 additionalAlertManagerConfigsSecret: {}
4062 ## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
4063 ## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
4064 ## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
4065 ## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
4066 ## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
4067 ## configs are going to break Prometheus after the upgrade.
4069 additionalAlertRelabelConfigs: []
4071 # regex: prometheus_replica
4075 ## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
4076 ## them separately from the helm deployment, you can use this section.
4077 ## Expected values are the secret name and key
4078 ## Cannot be used with additionalAlertRelabelConfigs
4079 additionalAlertRelabelConfigsSecret: {}
4083 ## SecurityContext holds pod-level security attributes and common container settings.
4084 ## This defaults to non root user with uid 1000 and gid 2000.
4085 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md
4093 type: RuntimeDefault
4094 ## DNS configuration for Prometheus.
4095 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
4097 ## DNS policy for Prometheus.
4098 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
4100 ## Priority class assigned to the Pods
4102 priorityClassName: ""
4103 ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
4104 ## This section is experimental, it may change significantly without deprecation notice in any release.
4105 ## This is experimental and may change significantly without backward compatibility in any release.
4106 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosspec
4109 # image: quay.io/thanos/thanos
4110 # secretProviderClass:
4114 # - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
4115 # fileName: "objstore.yaml"
4116 ## ObjectStorageConfig configures object storage in Thanos.
4117 # objectStorageConfig:
4118 # # use existing secret, if configured, objectStorageConfig.secret will not be used
4119 # existingSecret: {}
4122 # # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
4123 # # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
4124 # # https://thanos.io/tip/thanos/storage.md/#s3
4134 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
4135 ## if using proxy extraContainer update targetPort with proxy container port
4138 # - name: oauth-proxy
4139 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.2
4141 # - --upstream=http://127.0.0.1:9090
4142 # - --http-address=0.0.0.0:8081
4143 # - --metrics-address=0.0.0.0:8082
4146 # - containerPort: 8081
4149 # - containerPort: 8082
4150 # name: oauth-metrics
4154 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4155 ## (permissions, dir tree) on mounted volumes before starting prometheus
4157 ## PortName to use for Prometheus.
4159 portName: "http-web"
4160 ## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
4161 ## on the file system of the Prometheus container e.g. bearer token files.
4162 arbitraryFSAccessThroughSMs: false
4163 ## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
4164 ## or PodMonitor to true, this overrides honor_labels to false.
4165 overrideHonorLabels: false
4166 ## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
4167 overrideHonorTimestamps: false
4168 ## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
4169 ## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
4170 ## and servicemonitors will be installed in the default service namespace.
4171 ## Defaults to false.
4172 ignoreNamespaceSelectors: false
4173 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
4174 ## The label value will always be the namespace of the object that is being created.
4175 ## Disabled by default
4176 enforcedNamespaceLabel: ""
4177 ## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
4178 ## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
4179 ## Deprecated, use `excludedFromEnforcement` instead
4180 prometheusRulesExcludedFromEnforce: []
4181 ## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
4182 ## to be excluded from enforcing a namespace label of origin.
4183 ## Works only if enforcedNamespaceLabel set to true.
4184 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#objectreference
4185 excludedFromEnforcement: []
4186 ## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
4187 ## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
4188 ## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
4189 ## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
4191 # Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
4192 # Set to 'false' to disable global sample_limit. or set to a number to override the default value.
4194 # EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
4195 # The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
4196 # is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
4197 enforcedKeepDroppedTargets: 0
4198 ## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
4199 ## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
4200 ## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
4201 enforcedSampleLimit: false
4202 ## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
4203 ## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
4204 ## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
4205 ## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
4206 enforcedTargetLimit: false
4207 ## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
4208 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4209 ## 2.27.0 and newer.
4210 enforcedLabelLimit: false
4211 ## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
4212 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4213 ## 2.27.0 and newer.
4214 enforcedLabelNameLengthLimit: false
4215 ## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
4216 ## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
4217 ## versions 2.27.0 and newer.
4218 enforcedLabelValueLengthLimit: false
4219 ## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
4220 ## in Prometheus so it may change in any upcoming release.
4221 allowOverlappingBlocks: false
4222 ## Specifies the validation scheme for metric and label names.
4223 ## Supported values are: Legacy, UTF8
4224 nameValidationScheme: ""
4225 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
4226 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
4228 ## Duration in seconds the pod needs to terminate gracefully.
4229 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4230 terminationGracePeriodSeconds: ~
4231 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
4232 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
4233 # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
4234 # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
4236 ## Use the host's user namespace for Prometheus pods.
4237 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
4239 # HostAlias holds the mapping between IP and hostnames that will be injected
4240 # as an entry in the pod's hosts file.
4247 ## TracingConfig configures tracing in Prometheus.
4248 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheustracingconfig
4250 ## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
4251 ## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role.
4252 serviceDiscoveryRole: ""
4253 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4254 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4255 podManagementPolicy: ""
4256 ## Update strategy for the StatefulSet.
4257 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4259 # type: RollingUpdate
4263 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4264 additionalConfig: {}
4265 ## Additional configuration which is not covered by the properties above.
4266 ## Useful, if you need advanced templating inside alertmanagerSpec.
4267 ## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
4268 additionalConfigString: ""
4269 ## Defines the maximum time that the `prometheus` container's startup probe
4270 ## will wait before being considered failed. The startup probe will return
4271 ## success after the WAL replay is complete. If set, the value should be
4272 ## greater than 60 (seconds). Otherwise it will be equal to 900 seconds (15
4274 maximumStartupDurationSeconds: 0
4275 ## Set default scrapeProtocols for Prometheus instances
4276 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#scrapeprotocolstring-alias
4278 additionalRulesForClusterRole: []
4279 # - apiGroups: [ "" ]
4282 # verbs: [ "get", "list", "watch" ]
4284 additionalServiceMonitors: []
4285 ## Name of the ServiceMonitor to create
4289 ## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4292 # additionalLabels: {}
4294 ## Service label for use in assembling a job name of the form <label value>-<port>
4295 ## If no label is specified, the service name is used.
4299 ## labels to transfer from the kubernetes service to the target
4303 ## labels to transfer from the kubernetes pods to the target
4305 # podTargetLabels: []
4307 ## Label selector for services to which this ServiceMonitor applies
4310 ## Example which selects all services to be monitored
4311 ## with label "monitoredby" with values any of "example-service-1" or "example-service-2"
4313 # - key: "monitoredby"
4316 # - example-service-1
4317 # - example-service-2
4319 ## label selector for services
4323 ## Namespaces from which services are selected
4325 # namespaceSelector:
4326 ## Match any namespace
4330 ## Explicit list of namespace names to select
4334 ## Endpoints of the selected service to be monitored
4337 ## Name of the endpoint's service port
4338 ## Mutually exclusive with targetPort
4341 ## Name or number of the endpoint's target port
4342 ## Mutually exclusive with port
4345 ## File containing bearer token to be used when scraping targets
4347 # bearerTokenFile: ""
4349 ## Interval at which metrics should be scraped
4353 ## HTTP path to scrape for metrics
4357 ## HTTP scheme to use for scraping
4361 ## TLS configuration to use when scraping the endpoint
4365 ## Path to the CA file
4369 ## Path to client certificate file
4373 ## Skip certificate verification
4375 # insecureSkipVerify: false
4377 ## Path to client key file
4381 ## Server name used to verify host name
4385 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4386 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4388 # metricRelabelings: []
4390 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4391 # sourceLabels: [__name__]
4393 ## RelabelConfigs to apply to samples before scraping
4394 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4397 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4400 # targetLabel: nodename
4404 ## Fallback scrape protocol used by Prometheus for scraping metrics
4405 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4407 # fallbackScrapeProtocol: ""
4409 ## Attaches node metadata to the discovered targets
4410 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4414 additionalPodMonitors: []
4415 ## Name of the PodMonitor to create
4418## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4421# additionalLabels: {}
4423## Pod label for use in assembling a job name of the form <label value>-<port>
4424## If no label is specified, the pod endpoint name is used.
4428## Label selector for pods to which this PodMonitor applies
4431## Example which selects all Pods to be monitored
4432## with label "monitoredby" with values any of "example-pod-1" or "example-pod-2"
4434# - key: "monitoredby"
4440## label selector for pods
4444## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4446# podTargetLabels: {}
4448## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4452## Namespaces from which pods are selected
4455## Match any namespace
4459## Explicit list of namespace names to select
4463## Endpoints of the selected pods to be monitored
4464## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmetricsendpoint
4466# podMetricsEndpoints: []
4468## Fallback scrape protocol used by Prometheus for scraping metrics
4469## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4471# fallbackScrapeProtocol: ""
4473## Attaches node metadata to the discovered targets
4474## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4479## Configuration for thanosRuler
4480## ref: https://thanos.io/tip/components/rule.md/
4483 ## Deploy thanosRuler
4486 ## Annotations for ThanosRuler
4489 ## Service account for ThanosRuler to use.
4490 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
4496 ## Configure pod disruption budgets for ThanosRuler
4497 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
4499 podDisruptionBudget:
4502 # maxUnavailable: ""
4503 unhealthyPodEvictionPolicy: AlwaysAllow
4506 ingressClassName: ""
4509 ## Hosts must be provided if Ingress is enabled.
4512 # - thanosruler.domain.com
4514 ## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
4519 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
4520 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
4521 # pathType: ImplementationSpecific
4523 ## TLS configuration for ThanosRuler Ingress
4524 ## Secret must be manually created in the namespace
4527 # - secretName: thanosruler-general-tls
4529 # - thanosruler.example.com
4530 # -- BETA: Configure the gateway routes for the chart here.
4531 # More routes can be added by adding a dictionary key like the 'main' route.
4532 # Be aware that this is an early beta of this feature,
4533 # kube-prometheus-stack does not guarantee this works and is subject to change.
4534 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
4535 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
4538 # -- Enables or disables the route
4540 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
4541 apiVersion: gateway.networking.k8s.io/v1
4542 # -- Set the route kind
4543 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
4548 # - my-filter.example.com
4552 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
4553 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
4554 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
4555 httpsRedirect: false
4560 ## Filters define the filters that are applied to requests that match this rule.
4562 ## Session persistence configuration for the route rule.
4563 sessionPersistence: {}
4564 # sessionName: route
4566 # absoluteTimeout: 12h
4568 # lifetimeType: Permanent
4570 ## Additional custom rules that can be added to the route
4572 ## Configuration for ThanosRuler service
4581 ipFamilies: ["IPv6", "IPv4"]
4582 ipFamilyPolicy: "PreferDualStack"
4583 ## Port for ThanosRuler Service to listen on
4586 ## To be used with a proxy extraContainer port
4589 ## Port to expose on each node
4590 ## Only used if service.type is 'NodePort'
4593 ## List of IP addresses at which the Prometheus server service is available
4594 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
4597 ## Additional ports to open for ThanosRuler service
4601 loadBalancerSourceRanges: []
4602 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
4604 externalTrafficPolicy: Cluster
4608 ## Configuration for creating a ServiceMonitor for the ThanosRuler service
4611 ## If true, create a serviceMonitor for thanosRuler
4614 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
4617 ## Additional labels
4619 additionalLabels: {}
4620 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4623 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
4626 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4629 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4631 labelNameLengthLimit: 0
4632 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4634 labelValueLengthLimit: 0
4635 ## proxyUrl: URL of a proxy that should be used for scraping.
4638 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
4640 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
4641 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
4644 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4645 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4647 metricRelabelings: []
4649 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4650 # sourceLabels: [__name__]
4652 ## RelabelConfigs to apply to samples before scraping
4653 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4656 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4659 # targetLabel: nodename
4663 ## Additional Endpoints
4665 additionalEndpoints: []
4666 # - port: oauth-metrics
4668 ## Settings affecting thanosRulerpec
4669 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerspec
4672 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4673 ## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
4678 ## Image of ThanosRuler
4682 repository: chainguard-private/thanos
4684 sha: sha256:bf12d37a4a537580deb922d6eda6744cff0a374ac40efc77e559febc22191b49
4685 ## Namespaces to be selected for PrometheusRules discovery.
4686 ## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
4687 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage
4689 ruleNamespaceSelector: {}
4690 ## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
4691 ## prometheus resource to be created with selectors based on values in the helm deployment,
4692 ## which will also match the PrometheusRule resources created
4694 ruleSelectorNilUsesHelmValues: true
4695 ## PrometheusRules to be selected for target discovery.
4696 ## If {}, select all PrometheusRules
4699 ## Example which select all PrometheusRules resources
4700 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4709 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4712 # role: example-rules
4714 ## Define Log Format
4715 # Use logfmt (default) or json logging
4717 ## Log level for ThanosRuler to be configured with.
4720 ## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
4721 ## running cluster equal to the expected size.
4723 ## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
4724 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
4727 ## Interval between consecutive evaluations.
4729 evaluationInterval: ""
4730 ## Storage is the definition of how storage will be used by the ThanosRuler instances.
4731 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4734 # volumeClaimTemplate:
4736 # storageClassName: gluster
4737 # accessModes: ["ReadWriteOnce"]
4743 ## AlertmanagerConfig define configuration for connecting to alertmanager.
4744 ## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
4745 alertmanagersConfig:
4746 # use existing secret, if configured, alertmanagersConfig.secret will not be used
4750 # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
4751 # https://thanos.io/tip/components/rule.md/#alertmanager
4757 # username: some_user
4758 # password: some_pass
4760 # - alertmanager.thanos.io
4763 ## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
4764 ## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
4767 ## 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. string false
4770 ## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
4771 ## will be used as value for externalPrefix
4772 externalPrefixNilUsesHelmValues: true
4773 ## The route prefix ThanosRuler 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,
4774 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
4777 ## ObjectStorageConfig configures object storage in Thanos
4778 objectStorageConfig:
4779 # use existing secret, if configured, objectStorageConfig.secret will not be used
4783 # will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
4784 # https://thanos.io/tip/thanos/storage.md/#s3
4793 ## Labels by name to drop before sending to alertmanager
4794 ## Maps to the --alert.label-drop flag of thanos ruler.
4796 ## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
4797 ## Maps to the --query flag of thanos ruler.
4799 ## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
4800 ## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
4802 # use existing secret, if configured, queryConfig.secret will not be used
4806 # render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
4807 # https://thanos.io/tip/components/rule.md/#query-api
4811 # username: some_user
4812 # password: some_pass
4817 ## Labels configure the external label pairs to ThanosRuler. A default replica
4818 ## label `thanos_ruler_replica` will be always added as a label with the value
4819 ## of the pod's name and it will be dropped in the alerts.
4821 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
4824 ## Allows setting additional arguments for the ThanosRuler container
4825 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosruler
4828 # - name: remote-write.config
4831 # - "name": "receiver-0"
4832 # "remote_timeout": "30s"
4833 # "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
4835 ## Define which Nodes the Pods are scheduled on.
4836 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
4839 ## Define resources requests and limits for single Pods.
4840 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
4846 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4847 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
4848 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4849 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4851 podAntiAffinity: "soft"
4852 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4853 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4855 podAntiAffinityTopologyKey: kubernetes.io/hostname
4856 ## Assign custom affinity rules to the thanosRuler instance
4857 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
4861 # requiredDuringSchedulingIgnoredDuringExecution:
4862 # nodeSelectorTerms:
4863 # - matchExpressions:
4864 # - key: kubernetes.io/e2e-az-name
4870 ## If specified, the pod's tolerations.
4871 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
4877 # effect: "NoSchedule"
4879 ## If specified, the pod's topology spread constraints.
4880 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
4882 topologySpreadConstraints: []
4884 # topologyKey: topology.kubernetes.io/zone
4885 # whenUnsatisfiable: DoNotSchedule
4890 ## SecurityContext holds pod-level security attributes and common container settings.
4891 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
4892 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
4900 type: RuntimeDefault
4901 ## Use the host's user namespace for ThanosRuler pods.
4902 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
4904 ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
4905 ## Note this is only for the ThanosRuler UI, not the gossip communication.
4908 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
4911 ## Additional environment variables to set on the ThanosRuler container.
4912 ## This is rendered through the Prometheus Operator strategic merge patch.
4918 # Additional volumes on the output StatefulSet definition.
4920 # Additional VolumeMounts on the output StatefulSet definition.
4922 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4923 ## (permissions, dir tree) on mounted volumes before starting prometheus
4925 ## Priority class assigned to the Pods
4927 priorityClassName: ""
4928 ## PortName to use for ThanosRuler.
4931 ## Duration in seconds the pod needs to terminate gracefully.
4932 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4933 terminationGracePeriodSeconds: ~
4934 ## WebTLSConfig defines the TLS parameters for HTTPS
4935 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec
4937 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4938 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4939 podManagementPolicy: ""
4940 ## Update strategy for the StatefulSet.
4941 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4943 # type: RollingUpdate
4947 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4948 additionalConfig: {}
4949 ## Additional configuration which is not covered by the properties above.
4950 ## Useful, if you need advanced templating
4951 additionalConfigString: ""
4952 ## ExtraSecret can be used to store various data in an extra secret
4953 ## (use it for example to store hashed basic auth credentials)
4955 ## if not set, name will be auto generated
4960 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
4961 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
4962## Setting to true produces cleaner resource names, but requires a data migration because the name of the persistent volume changes. Therefore this should only be set once on initial installation.
4964cleanPrometheusOperatorObjectNames: false
4965## Extra manifests to deploy. Can be of type dict or list.
4966## If dict, keys are ignored and only values are used.
4967## Items contained within extraObjects can be defined as dict or string and are passed through tpl.
4973# name: prometheus-extra
4975# extra-data: "value"
4977# can also be defined as a string, useful for templating field names
4985# {{- range $key, $value := .Values.commonLabels }}
4986# {{ $key }}: {{ $value }}
4989# plaintext: Zm9vYmFy
4990# templated: '{{ print "foobar" | upper | b64enc }}'