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.
36 ## Force apply the CRDs, taking ownership from the manager that installed them (e.g. helm).
37 ## Required for the job to actually upgrade CRDs whose schema/version changed.
42 repository: chainguard-private/busybox
43 tag: glibc-1.38.0-r3@sha256:67425453f68e574e3efe8ea489f0df0eea09df0e12e7867dd88f1b6458324fac
45 pullPolicy: IfNotPresent
48 repository: chainguard-private/kubectl
50 sha: sha256:c55695bc149aac79ba709a3bd1367d7a9ddb639bc748a6afbbeba0105da90cc6
51 pullPolicy: IfNotPresent
53 ## Define resources requests and limits for single Pods.
54 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
60 ## Additional volume mounts
63 ## Define which Nodes the Pods are scheduled on.
64 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
67 kubernetes.io/os: linux
68 ## Assign custom affinity rules to the upgrade-crd job
69 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
73 # requiredDuringSchedulingIgnoredDuringExecution:
76 # - key: kubernetes.io/e2e-az-name
82 ## If specified, the pod's tolerations.
83 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
89 # effect: "NoSchedule"
91 ## If specified, the pod's topology spread constraints.
92 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
94 topologySpreadConstraints: []
96 # topologyKey: topology.kubernetes.io/zone
97 # whenUnsatisfiable: DoNotSchedule
102 # ## Labels to add to the upgrade-crd job
105 ## Annotations to add to the upgrade-crd job
108 ## Labels to add to the upgrade-crd pod
111 ## Annotations to add to the upgrade-crd pod
114 ## Service account for upgrade crd job to use.
115 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
122 automountServiceAccountToken: true
123 ## Automounting API credentials for upgrade crd job pod.
125 automountServiceAccountToken: true
126 ## Container-specific security context configuration
127 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
129 containerSecurityContext:
130 allowPrivilegeEscalation: false
131 readOnlyRootFilesystem: true
135 ## SecurityContext holds pod-level security attributes and common container settings.
136 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
137 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
146## Custom rules to override "for" and "severity" in defaultRules
149# AlertmanagerFailedReload:
151# AlertmanagerMembersInconsistent:
155## Create default rules for monitoring the cluster
162 configReloaders: true
164 k8sContainerCpuUsageSecondsTotal: true
165 k8sContainerMemoryCache: true
166 k8sContainerMemoryRss: true
167 k8sContainerMemorySwap: true
168 k8sContainerResource: true
169 k8sContainerMemoryWorkingSetBytes: true
171 kubeApiserverAvailability: true
172 kubeApiserverBurnrate: true
173 kubeApiserverHistogram: true
174 kubeApiserverSlos: true
175 kubeControllerManager: true
178 kubePrometheusGeneral: true
179 kubePrometheusNodeRecording: true
181 kubernetesResources: true
182 kubernetesStorage: true
183 kubernetesSystem: true
184 kubeSchedulerAlerting: true
185 kubeSchedulerRecording: true
186 kubeStateMetrics: true
189 nodeExporterAlerting: true
190 nodeExporterRecording: true
192 prometheusOperator: true
194 # Defines the operator for namespace selection in rules
195 # Use "=~" to include namespaces matching the pattern (default)
196 # Use "!~" to exclude namespaces matching the pattern
197 appNamespacesOperator: "=~"
198 ## Reduce app namespace alert scope
199 appNamespacesTarget: ".*"
200 ## Set keep_firing_for for all alerts
202 ## Labels for default rules
204 ## Annotations for default rules
206 ## Additional labels for PrometheusRule alerts
207 additionalRuleLabels: {}
208 ## Additional annotations for specific PrometheusRule alerts by alert name
209 additionalRuleAnnotations: {}
210 ## Additional labels for specific PrometheusRule alert groups
211 additionalRuleGroupLabels:
216 k8sContainerCpuUsageSecondsTotal: {}
217 k8sContainerMemoryCache: {}
218 k8sContainerMemoryRss: {}
219 k8sContainerMemorySwap: {}
220 k8sContainerResource: {}
222 kubeApiserverAvailability: {}
223 kubeApiserverBurnrate: {}
224 kubeApiserverHistogram: {}
225 kubeApiserverSlos: {}
226 kubeControllerManager: {}
229 kubePrometheusGeneral: {}
230 kubePrometheusNodeRecording: {}
232 kubernetesResources: {}
233 kubernetesStorage: {}
235 kubeSchedulerAlerting: {}
236 kubeSchedulerRecording: {}
240 nodeExporterAlerting: {}
241 nodeExporterRecording: {}
243 prometheusOperator: {}
244 ## Additional annotations for specific PrometheusRule alert groups
245 additionalRuleGroupAnnotations:
250 k8sContainerCpuUsageSecondsTotal: {}
251 k8sContainerMemoryCache: {}
252 k8sContainerMemoryRss: {}
253 k8sContainerMemorySwap: {}
254 k8sContainerResource: {}
256 kubeApiserverAvailability: {}
257 kubeApiserverBurnrate: {}
258 kubeApiserverHistogram: {}
259 kubeApiserverSlos: {}
260 kubeControllerManager: {}
263 kubePrometheusGeneral: {}
264 kubePrometheusNodeRecording: {}
266 kubernetesResources: {}
267 kubernetesStorage: {}
269 kubeSchedulerAlerting: {}
270 kubeSchedulerRecording: {}
274 nodeExporterAlerting: {}
275 nodeExporterRecording: {}
277 prometheusOperator: {}
278 additionalAggregationLabels: []
279 ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
280 runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
281 ## Thresholds for kubelet certificate expiration alerts (in seconds)
282 kubeletServerCertificateExpiration:
283 warning: 604800 # 7 days
284 critical: 86400 # 1 day
285 kubeletClientCertificateExpiration:
286 warning: 604800 # 7 days
287 critical: 86400 # 1 day
289 fsSelector: 'fstype!=""'
290 # fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
291 ## Disabled PrometheusRule alerts
294 # NodeRAIDDegraded: true
295## Deprecated way to provide custom recording or alerting rules to be deployed into the cluster.
297# additionalPrometheusRules: []
298# - name: my-rule-file
303# expr: 100 * my_record
305## Provide custom recording or alerting rules to be deployed into the cluster.
307additionalPrometheusRulesMap: {}
313# expr: 100 * my_record
319 ## Create ClusterRoles that extend the existing view, edit and admin ClusterRoles to interact with prometheus-operator CRDs
320 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
321 createAggregateClusterRoles: false
322 ## Global image registry to use if it needs to be overridden for some specific use cases (e.g. local registries, custom images, ...)
325 ## Reference to one or more secrets to be used when pulling images
326 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
329 # - name: "image-pull-secret"
331 # - "image-pull-secret"
333 ## Deploys the windows-exporter and Windows-specific dashboards and rules (job name must be 'windows-exporter')
335## Configuration for prometheus-windows-exporter
336## ref: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-windows-exporter
338prometheus-windows-exporter:
339 ## Enable ServiceMonitor and set Kubernetes label to use as a job label
346 ## Set job label to 'windows-exporter' as required by the default Prometheus rules and Grafana dashboards
349 jobLabel: windows-exporter
350 ## Enable memory and container metrics as required by the default Prometheus rules and Grafana dashboards
354 enabled: '[defaults],memory,container'
355## Configuration for alertmanager
356## ref: https://prometheus.io/docs/alerting/alertmanager/
359 ## Deploy alertmanager
362 # Optional: Override the namespace where Alertmanager will be deployed.
363 namespaceOverride: ""
364 ## Annotations for Alertmanager
367 ## Additional labels for Alertmanager
370 ## API that Prometheus will use to communicate with alertmanager. Possible values are v1, v2
373 ## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
376 ## Create dashboard configmap even if alertmanager deployment has been disabled
378 forceDeployDashboards: false
379 ## Network Policy configuration
382 # -- Enable network policy for Alertmanager
384 # -- Define policy types. If egress is enabled, both Ingress and Egress will be used
385 # Valid values are ["Ingress"] or ["Ingress", "Egress"]
389 # -- Gateway (formerly ingress controller) configuration
392 # -- Gateway namespace
395 # -- Gateway pod labels
398 # app.kubernetes.io/name: ingress-nginx
399 # -- Additional custom ingress rules
401 additionalIngress: []
403 # - namespaceSelector:
405 # name: another-namespace
412 # app.kubernetes.io/name: loki
417 # -- Configure egress rules
420 # -- Enable egress rules. When enabled, policyTypes will include Egress
423 # -- Custom egress rules
427 # - namespaceSelector: {}
434 # -- Enable rules for alertmanager cluster traffic
436 enableClusterRules: true
437 # -- Configure monitoring component rules
440 # -- Enable ingress from Prometheus
443 # -- Enable ingress for config reloader metrics
446 ## Service account for Alertmanager to use.
447 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
453 automountServiceAccountToken: true
454 ## Configure pod disruption budgets for Alertmanager
455 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
461 unhealthyPodEvictionPolicy: AlwaysAllow
462 ## Enable vertical pod autoscaler support for Alertmanager
463 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
465 verticalPodAutoscaler:
467 # Recommender responsible for generating recommendation for the object.
468 # List should be empty (then the default recommender will generate the recommendation)
469 # or contain exactly one recommender.
471 # - name: custom-recommender-performance
473 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
474 controlledResources: []
475 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
476 # controlledValues: RequestsAndLimits
478 # Define the max allowed resources for the pod
482 # Define the min allowed resources for the pod
488 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
489 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
491 ## Alertmanager configuration directives
492 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
493 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
500 - 'severity = critical'
502 - 'severity =~ warning|info'
507 - 'severity = warning'
514 - 'alertname = InfoInhibitor'
520 - 'alertname = InfoInhibitor'
522 group_by: ['namespace']
530 - alertname = "Watchdog"
534 - '/etc/alertmanager/config/*.tmpl'
535 ## Alertmanager configuration directives (as string type, preferred over the config hash map)
536 ## stringConfig will be used only if tplConfig is true
537 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
538 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
541 ## Pass the Alertmanager configuration directives through Helm's templating
542 ## engine. If the Alertmanager configuration contains Alertmanager templates,
543 ## they'll need to be properly escaped so that they are not interpreted by
545 ## ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function
546 ## https://prometheus.io/docs/alerting/configuration/#tmpl_string
547 ## https://prometheus.io/docs/alerting/notifications/
548 ## https://prometheus.io/docs/alerting/notification_examples/
550 ## Alertmanager template files to format alerts
551 ## By default, templateFiles are placed in /etc/alertmanager/config/ and if
552 ## they have a .tmpl file suffix will be loaded. See config.templates above
553 ## to change, add other suffixes. If adding other suffixes, be sure to update
554 ## config.templates above to include those suffixes.
555 ## ref: https://prometheus.io/docs/alerting/notifications/
556 ## https://prometheus.io/docs/alerting/notification_examples/
560 ## An example template:
561 # template_1.tmpl: |-
562 # {{ define "cluster" }}{{ .ExternalURL | reReplaceAll ".*alertmanager\\.(.*)" "$1" }}{{ end }}
564 # {{ define "slack.myorg.text" }}
566 # {{ range .Alerts }}
567 # *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
568 # *Cluster:* {{ template "cluster" $root }}
569 # *Description:* {{ .Annotations.description }}
570 # *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:>
571 # *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
573 # {{ range .Labels.SortedPairs }} - *{{ .Name }}:* `{{ .Value }}`
583 ## Override ingress to a different defined port on the service
585 ## Override ingress to a different service then the default, this is useful if you need to
586 ## point to a specific instance of the alertmanager (eg kube-prometheus-stack-alertmanager-0)
587 # serviceName: kube-prometheus-stack-alertmanager-0
589 ## Hosts must be provided if Ingress is enabled.
592 # - alertmanager.domain.com
594 ## Paths to use for ingress rules - one path should match the alertmanagerSpec.routePrefix
599 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
600 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
601 # pathType: ImplementationSpecific
603 ## TLS configuration for Alertmanager Ingress
604 ## Secret must be manually created in the namespace
607 # - secretName: alertmanager-general-tls
609 # - alertmanager.example.com
610 # -- BETA: Configure the gateway routes for the chart here.
611 # More routes can be added by adding a dictionary key like the 'main' route.
612 # Be aware that this is an early beta of this feature,
613 # kube-prometheus-stack does not guarantee this works and is subject to change.
614 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
615 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
618 # -- Enables or disables the route
620 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
621 apiVersion: gateway.networking.k8s.io/v1
622 # -- Set the route kind
623 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
628 # - my-filter.example.com
632 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
633 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
634 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
640 ## Filters define the filters that are applied to requests that match this rule.
642 ## Timeouts for the generated HTTPRoute backend rule.
643 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
646 # backendRequest: 60s
648 ## Session persistence configuration for the route rule.
649 sessionPersistence: {}
652 # absoluteTimeout: 12h
654 # lifetimeType: Permanent
656 ## Additional custom rules that can be added to the route
658 ## Configuration for Alertmanager secret
662 ## Configuration for creating an Ingress that will map to each Alertmanager replica service
663 ## alertmanager.servicePerReplica must be enabled
670 ## Final form of the hostname for each per replica ingress is
671 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
673 ## Prefix for the per replica ingress that will have `-$replicaNumber`
674 ## appended to the end
676 ## Domain that will be used for the per replica ingress
678 ## Paths to use for ingress rules
683 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
684 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
685 # pathType: ImplementationSpecific
687 ## Secret name containing the TLS certificate for alertmanager per replica ingress
688 ## Secret must be manually created in the namespace
690 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
694 ## Final form of the secret for each per replica ingress is
695 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
697 prefix: "alertmanager"
698 ## Configuration for creating a Gateway API route that will map to each Alertmanager replica service
699 ## alertmanager.servicePerReplica must be enabled
703 # -- Enables or disables the routePerReplica
705 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
706 apiVersion: gateway.networking.k8s.io/v1
707 # -- Set the route kind
708 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
712 ## Final form of the hostname for each per replica route is
713 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
715 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
717 ## Domain that will be used for the per replica route
722 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
723 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
724 ## matches, filters and additionalRules will be ignored if this is set to true.
726 ## Filters define the filters that are applied to requests that match this rule.
732 ## Timeouts for the generated HTTPRoute backend rule.
733 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
736 # backendRequest: 60s
738 ## Session persistence configuration for the route rule.
739 sessionPersistence: {}
742 # absoluteTimeout: 12h
744 # lifetimeType: Permanent
746 ## Additional custom rules that can be added to the route
748 ## Configuration for Alertmanager service
757 ipFamilies: ["IPv6", "IPv4"]
758 ipFamilyPolicy: "PreferDualStack"
759 ## Port for Alertmanager Service to listen on
762 ## Port for Alertmanager cluster communication
765 ## To be used with a proxy extraContainer port
768 ## Port to expose on each node
769 ## Only used if service.type is 'NodePort'
772 ## List of IP addresses at which the Prometheus server service is available
773 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
776 ## Additional ports to open for Alertmanager service
779 # - name: oauth-proxy
782 # - name: oauth-metrics
788 loadBalancerSourceRanges: []
789 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
791 externalTrafficPolicy: Cluster
792 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
793 ## Accepts 'ClientIP' or 'None'
795 sessionAffinity: None
796 ## If you want to modify the ClientIP sessionAffinity timeout
797 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
799 sessionAffinityConfig:
801 timeoutSeconds: 10800
805 ## Configuration for creating a separate Service for each statefulset Alertmanager replica
810 ## Port for Alertmanager Service per replica to listen on
813 ## To be used with a proxy extraContainer port
815 ## Port to expose on each node
816 ## Only used if servicePerReplica.type is 'NodePort'
819 ## Loadbalancer source IP ranges
820 ## Only used if servicePerReplica.type is "LoadBalancer"
821 loadBalancerSourceRanges: []
822 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
824 externalTrafficPolicy: Cluster
828 ## Configuration for creating a ServiceMonitor for AlertManager
831 ## If true, a ServiceMonitor will be created for the AlertManager service.
834 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
840 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
843 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
846 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
849 ## 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.
851 labelNameLengthLimit: 0
852 ## 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.
854 labelValueLengthLimit: 0
855 ## proxyUrl: URL of a proxy that should be used for scraping.
858 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
860 ## enableHttp2: Whether to enable HTTP2.
861 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#endpoint
863 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
864 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
867 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
868 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
870 metricRelabelings: []
872 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
873 # sourceLabels: [__name__]
875 ## RelabelConfigs to apply to samples before scraping
876 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
879 # - sourceLabels: [__meta_kubernetes_pod_node_name]
882 # targetLabel: nodename
886 ## Additional Endpoints
888 additionalEndpoints: []
889 # - port: oauth-metrics
891 ## Settings affecting alertmanagerSpec
892 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerspec
895 ## Statefulset's persistent volume claim retention policy
896 ## whenDeleted and whenScaled determine whether
897 ## statefulset's PVCs are deleted (true) or retained (false)
898 ## on scaling down and deleting statefulset, respectively.
899 ## Requires Kubernetes version 1.27.0+.
900 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
901 persistentVolumeClaimRetentionPolicy: {}
902 # whenDeleted: Retain
905 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
906 ## Metadata Labels and Annotations gets propagated to the Alertmanager pods.
911 ## Image of Alertmanager
915 repository: chainguard-private/prometheus-alertmanager
917 sha: sha256:391c7945d98cb49094249310e22974776142969ac4b19410ba27ccf4aed01958
918 pullPolicy: IfNotPresent
919 ## If true then the user will be responsible to provide a secret with alertmanager configuration
920 ## So when true the config part will be ignored (including templateFiles) and the one in the secret will be used
922 useExistingSecret: false
923 ## Secrets is a list of Secrets in the same namespace as the Alertmanager object, which shall be mounted into the
924 ## Alertmanager Pods. The Secrets are mounted into /etc/alertmanager/secrets/.
927 ## If false then the user will opt out of automounting API credentials.
929 automountServiceAccountToken: true
930 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.
931 ## The ConfigMaps are mounted into /etc/alertmanager/configmaps/.
934 ## ConfigSecret is the name of a Kubernetes Secret in the same namespace as the Alertmanager object, which contains configuration for
935 ## this Alertmanager instance. Defaults to 'alertmanager-' The secret is mounted into /etc/alertmanager/config.
939 ## WebTLSConfig defines the TLS parameters for HTTPS
940 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerwebspec
942 ## AlertmanagerConfigs to be selected to merge and configure Alertmanager with.
944 alertmanagerConfigSelector: {}
945 ## Example which selects all alertmanagerConfig resources
946 ## with label "alertconfig" with values any of "example-config" or "example-config-2"
947 # alertmanagerConfigSelector:
955 ## Example which selects all alertmanagerConfig resources with label "role" set to "example-config"
956 # alertmanagerConfigSelector:
958 # role: example-config
960 ## Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace.
962 alertmanagerConfigNamespaceSelector: {}
963 ## Example which selects all namespaces
964 ## with label "alertmanagerconfig" with values any of "example-namespace" or "example-namespace-2"
965 # alertmanagerConfigNamespaceSelector:
967 # - key: alertmanagerconfig
970 # - example-namespace
971 # - example-namespace-2
973 ## Example which selects all namespaces with label "alertmanagerconfig" set to "enabled"
974 # alertmanagerConfigNamespaceSelector:
976 # alertmanagerconfig: enabled
978 ## AlermanagerConfig to be used as top level configuration
980 alertmanagerConfiguration: {}
981 ## Example with select a global alertmanagerconfig
982 # alertmanagerConfiguration:
983 # name: global-alertmanager-Configuration
985 ## Defines the strategy used by AlertmanagerConfig objects to match alerts. eg:
987 alertmanagerConfigMatcherStrategy: {}
988 ## Example with use OnNamespace strategy
989 # alertmanagerConfigMatcherStrategy:
992 ## Additional command line arguments to pass to Alertmanager (in addition to those generated by the chart)
995 # Use logfmt (default) or json logging
997 ## Log level for Alertmanager to be configured with.
1000 ## Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the
1001 ## running cluster equal to the expected size.
1003 ## Time duration Alertmanager shall retain data for. Default is '120h', and must match the regular expression
1004 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
1007 ## Storage is the definition of how storage will be used by the Alertmanager instances.
1008 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
1011 # volumeClaimTemplate:
1013 # storageClassName: gluster
1014 # accessModes: ["ReadWriteOnce"]
1020 ## 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
1023 ## 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,
1024 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
1027 ## scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.
1029 ## tlsConfig: TLS configuration to use when connect to the endpoint. For example if using istio mTLS.
1030 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
1032 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
1035 ## Define which Nodes the Pods are scheduled on.
1036 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
1039 kubernetes.io/os: linux
1040 ## Define resources requests and limits for single Pods.
1041 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
1047 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
1048 ## 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.
1049 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
1050 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
1052 podAntiAffinity: "soft"
1053 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
1054 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
1056 podAntiAffinityTopologyKey: kubernetes.io/hostname
1057 ## Assign custom affinity rules to the alertmanager instance
1058 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1062 # requiredDuringSchedulingIgnoredDuringExecution:
1063 # nodeSelectorTerms:
1064 # - matchExpressions:
1065 # - key: kubernetes.io/e2e-az-name
1071 ## If specified, the pod's tolerations.
1072 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
1078 # effect: "NoSchedule"
1080 ## If specified, the pod's topology spread constraints.
1081 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1083 topologySpreadConstraints: []
1085 # topologyKey: topology.kubernetes.io/zone
1086 # whenUnsatisfiable: DoNotSchedule
1091 ## SecurityContext holds pod-level security attributes and common container settings.
1092 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
1093 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1101 type: RuntimeDefault
1102 ## Use the host's user namespace for Alertmanager pods.
1103 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
1105 ## DNS configuration for Alertmanager.
1106 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
1108 ## DNS policy for Alertmanager.
1109 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
1111 ## Enable hostNetwork for Alertmanager.
1113 ## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.
1114 ## Note this is only for the Alertmanager UI, not the gossip communication.
1117 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an Alertmanager pod.
1121 # - name: oauth-proxy
1122 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.5
1124 # - --upstream=http://127.0.0.1:9093
1125 # - --http-address=0.0.0.0:8081
1126 # - --metrics-address=0.0.0.0:8082
1129 # - containerPort: 8081
1132 # - containerPort: 8082
1133 # name: oauth-metrics
1137 # Additional volumes on the output StatefulSet definition.
1139 # Additional VolumeMounts on the output StatefulSet definition.
1141 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
1142 ## (permissions, dir tree) on mounted volumes before starting prometheus
1144 ## Priority class assigned to the Pods
1146 priorityClassName: ""
1147 ## AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.
1150 ## PortName to use for Alert Manager.
1152 portName: "http-web"
1153 ## 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
1155 clusterAdvertiseAddress: false
1156 ## clusterGossipInterval determines interval between gossip attempts.
1157 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1158 clusterGossipInterval: ""
1159 ## clusterPeerName defines the name this instance advertises to other cluster peers, defaulting to the pod name.
1160 ## Literal values and references to environment variables available in the container (e.g. "$(POD_NAME).$(NAMESPACE)") are both accepted.
1161 ## Requires Alertmanager >= v0.30.0.
1163 ## clusterPeerTimeout determines timeout for cluster peering.
1164 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1165 clusterPeerTimeout: ""
1166 ## clusterPushpullInterval determines interval between pushpull attempts.
1167 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1168 clusterPushpullInterval: ""
1169 ## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
1171 ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
1172 ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
1173 forceEnableClusterMode: false
1174 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
1175 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
1177 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
1178 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1179 podManagementPolicy: ""
1180 ## Update strategy for the StatefulSet.
1181 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1183 # type: RollingUpdate
1187 ## Duration in seconds the pod needs to terminate gracefully.
1188 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
1189 terminationGracePeriodSeconds: ~
1190 ## EnableServiceLinks indicates whether information about services should be injected into the
1191 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
1192 enableServiceLinks: ~
1193 ## Set the scheduler name to use for the Alertmanager pods.
1195 ## Pods' hostAliases configuration
1196 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1202 ## Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0.
1203 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec
1206 # maxPerSilenceBytes: 1MB
1208 ## ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol.
1209 ## Requires Alertmanager >= v0.24.0.
1210 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig
1212 ## Additional configuration which is not covered by the properties above. (passed through tpl)
1213 additionalConfig: {}
1214 ## Additional configuration which is not covered by the properties above.
1215 ## Useful, if you need advanced templating inside alertmanagerSpec.
1216 ## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
1217 additionalConfigString: ""
1218 ## ExtraSecret can be used to store various data in an extra secret
1219 ## (use it for example to store hashed basic auth credentials)
1221 ## if not set, name will be auto generated
1226 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
1227 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
1228## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
1232 namespaceOverride: ""
1233 ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
1235 forceDeployDatasources: false
1236 ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
1238 forceDeployDashboards: false
1239 ## Deploy default dashboards
1241 defaultDashboardsEnabled: true
1242 ## Deploy GrafanaDashboard CRDs that reference dashboards from ConfigMaps when grafana-operator is used
1243 ## These settings control how dashboards are integrated with the Grafana Operator
1244 ## Note: With operator.datasourcesEnabled disabled, end users still need to create their own
1245 ## kind: GrafanaDatasource for Prometheus
1247 ## apiVersion: grafana.integreatly.org/v1beta1
1248 ## kind: GrafanaDatasource
1253 ## allowCrossNamespaceImport: true
1254 ## instanceSelector:
1261 ## url: http://prometheus-operated.prometheus-stack.svc.cluster.local:9090
1264 ## "tlsSkipVerify": true
1265 ## "timeInterval": "5s"
1268 ## Enable references to ConfigMaps containing dashboards in GrafanaDashboard CRs
1269 ## Set to true to allow dashboards to be loaded from ConfigMap references
1270 dashboardsConfigMapRefEnabled: false
1271 ## Provision GrafanaDatasource CRs instead of a file-based datasource ConfigMap
1272 ## Covers the default Prometheus datasource, the per-replica Prometheus datasources, the
1273 ## Alertmanager datasource and every entry of grafana.additionalDataSources
1274 ## An entry of grafana.additionalDataSources may carry `valuesFrom` and `plugins`, both are
1275 ## moved from the datasource to the CR spec
1276 ## grafana.additionalDataSourcesString, grafana.deleteDatasources and grafana.prune have no CR
1277 ## equivalent and keep using the ConfigMap
1278 datasourcesEnabled: false
1279 ## Annotations for GrafanaDashboard Cr
1282 ## Labels that should be matched kind: Grafana instance
1283 ## Example: { app: grafana, category: dashboard }
1286 ## How frequently the operator should resync resources (in duration format)
1287 ## Controls how often dashboards are reconciled by the operator
1290 ## Which folder contains all dashboards in Grafana
1291 ## This folder will be created on the Root level
1292 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1295 ## Which UID of the target folder contains all dashboards in Grafana
1296 ## This allows you to use subfolder hierarchy
1297 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1300 ## Which GrafanaFolder reference contains all dashboards in Grafana
1301 ## This allows you to use subfolder hierarchy.
1302 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1305 ## Timezone for the default dashboards
1306 ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
1308 defaultDashboardsTimezone: utc
1309 ## Editable flag for the default dashboards
1311 defaultDashboardsEditable: true
1312 ## Default interval for Grafana dashboards
1314 defaultDashboardsInterval: 1m
1315 # Administrator credentials when not using an existing secret (see below)
1317 # adminPassword: strongpassword
1319 # Use an existing secret for the admin user.
1321 ## Name of the secret. Can be templated.
1324 passwordKey: admin-password
1326 ## If true, Grafana PSPs will be created
1330 ## If true, Grafana Ingress will be created
1333 ## IngressClassName for Grafana Ingress.
1334 ## Should be provided if Ingress is enable.
1336 # ingressClassName: nginx
1338 ## Annotations for Grafana Ingress
1341 # kubernetes.io/ingress.class: nginx
1342 # kubernetes.io/tls-acme: "true"
1344 ## Labels to be added to the Ingress
1348 ## Must be provided if Ingress is enable.
1351 # - grafana.domain.com
1353 ## Path for grafana ingress
1355 ## TLS configuration for grafana Ingress
1356 ## Secret must be manually created in the namespace
1359 # - secretName: grafana-general-tls
1361 # - grafana.example.com
1362 # # To make Grafana persistent (Using Statefulset)
1367 # storageClassName: "storageClassName"
1372 # - kubernetes.io/pvc-protection
1379 label: grafana_dashboard
1381 # Allow discovery in all namespaces for dashboards
1382 searchNamespace: ALL
1383 # Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1384 enableNewTablePanelSyntax: false
1385 ## Annotations for Grafana dashboard configmaps
1388 ## Annotation the sidecar reads to decide in which Grafana folder a dashboard
1389 ## is stored. Requires `provider.foldersFromFilesStructure` to be enabled.
1390 ## ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards
1392 # folderAnnotation: grafana_folder
1399 allowUiUpdates: false
1400 ## Let Grafana replicate the dashboard folder structure created by the sidecar,
1401 ## so dashboards are grouped into folders instead of the default one.
1402 ## Required when using `folderAnnotation` above.
1404 # foldersFromFilesStructure: true
1407 defaultDatasourceEnabled: true
1408 isDefaultDatasource: true
1411 ## Extra jsonData properties to add to the datasource
1413 # prometheusType: Prometheus
1415 ## URL of prometheus datasource
1417 # url: http://prometheus-stack-prometheus:9090/
1419 ## Prometheus request timeout in seconds
1422 ## Query parameters to add, as a URL-encoded string,
1423 ## to query Prometheus
1424 # customQueryParameters: ""
1426 # If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1427 # defaultDatasourceScrapeInterval: 15s
1429 ## Annotations for Grafana datasource configmaps
1432 ## Set method for HTTP to send query to datasource
1434 ## Create datasource for each Pod of Prometheus StatefulSet;
1435 ## this uses by default the headless service `prometheus-operated` which is
1436 ## created by Prometheus Operator. In case you deployed your own Service for your
1437 ## Prometheus instance, you can specify it with the field `prometheusServiceName`
1438 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1439 createPrometheusReplicasDatasources: false
1440 prometheusServiceName: prometheus-operated
1441 label: grafana_datasource
1443 ## Field with internal link pointing to existing data source in Grafana.
1444 ## Can be provisioned via additionalDataSources
1445 exemplarTraceIdDestinations: {}
1446 # datasourceUid: Jaeger
1447 # traceIdLabelName: trace_id
1448 # urlDisplayLabel: View traces
1453 handleGrafanaManagedAlerts: false
1454 implementation: prometheus
1455 extraConfigmapMounts: []
1456 # - name: certs-configmap
1457 # mountPath: /etc/grafana/ssl/
1458 # configMap: certs-configmap
1461 deleteDatasources: []
1462 # - name: example-datasource
1465 ## Configure additional grafana datasources (passed through tpl)
1466 ## ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
1467 additionalDataSources: []
1468 # - name: prometheus-sample
1472 # basicAuthPassword: pass
1473 # basicAuthUser: daco
1476 # tlsSkipVerify: true
1479 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1482 ## Configure additional grafana datasources as a templated string (passed through tpl)
1483 ## Useful when you need Helm flow control or templating inside the datasource definition
1484 additionalDataSourcesString: ""
1485 # Flag to mark provisioned data sources for deletion if they are no longer configured.
1486 # It takes no effect if data sources are already listed in the deleteDatasources section.
1487 # ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
1489 ## Passed to grafana subchart and used by servicemonitor below
1496 # If true, a ServiceMonitor CRD is created for a prometheus operator
1497 # https://github.com/prometheus-operator/prometheus-operator
1500 # Path to use for scraping metrics. Might be different if server.root_url is set
1504 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1506 # labels for the ServiceMonitor
1509 # Extra scrape settings.
1513 # scrapeTimeout: 30s
1515 ## RelabelConfigs to apply to samples before scraping
1516 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1519 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1522 # targetLabel: nodename
1525## Flag to disable all the kubernetes component scrapers
1527kubernetesServiceMonitors:
1529## Component scraping the kube api server
1533 ## TLS configuration of the ServiceMonitor endpoint. Rendered as-is, so any field of the
1534 ## Prometheus Operator SafeTLSConfig type can be set here.
1535 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1538 serverName: kubernetes
1539 insecureSkipVerify: false
1542 name: kube-root-ca.crt
1546 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1549 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1550 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1552 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1557 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1559 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1562 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1565 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1568 ## 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.
1570 labelNameLengthLimit: 0
1571 ## 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.
1573 labelValueLengthLimit: 0
1574 ## proxyUrl: URL of a proxy that should be used for scraping.
1580 component: apiserver
1581 provider: kubernetes
1582 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1583 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1586 # Drop excessively noisy apiserver buckets.
1588 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)?
1593 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1594 # sourceLabels: [__name__]
1596 ## RelabelConfigs to apply to samples before scraping
1597 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1601 # - __meta_kubernetes_namespace
1602 # - __meta_kubernetes_service_name
1603 # - __meta_kubernetes_endpoint_port_name
1605 # regex: default;kubernetes;https
1606 # - targetLabel: __address__
1607 # replacement: kubernetes.default.svc:443
1609 ## Additional labels
1611 additionalLabels: {}
1614 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1615 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1617 ## Override the job label used for the apiserver.
1618 ## This allows users who scrape apiserver metrics under a different job name (e.g. k3s-server via PushProx)
1619 ## to align the recording rules and alerts with their actual job label.
1621## Component scraping the kubelet and kubelet-hosted cAdvisor
1625 namespace: kube-system
1626 # Overrides the job selector in Grafana dashboards and Prometheus rules
1627 # For k3s clusters, change to k3s-server
1631 ## Enable scraping /metrics from kubelet's service
1633 ## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1637 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1640 ## If true, Prometheus use (respect) labels provided by exporter.
1643 ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1645 honorTimestamps: true
1646 ## 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.
1647 ## We recommend enabling this if you want the best possible accuracy for container_ metrics scraped from cadvisor.
1648 ## For more details see: https://github.com/prometheus-community/helm-charts/pull/5063#issuecomment-2545374849
1649 trackTimestampsStaleness: true
1650 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1653 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1656 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1659 ## 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.
1661 labelNameLengthLimit: 0
1662 ## 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.
1664 labelValueLengthLimit: 0
1665 ## proxyUrl: URL of a proxy that should be used for scraping.
1668 ## Enable scraping the kubelet over https. For requirements to enable this see
1669 ## https://github.com/prometheus-operator/prometheus-operator/issues/926
1672 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1673 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1675 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1680 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1682 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1683 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1684 ## insecureSkipVerify is enabled by default because the kubelet serving certificate deployed by
1685 ## kubeadm is self-signed.
1686 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
1687 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1690 insecureSkipVerify: true
1693 name: kube-root-ca.crt
1695 ## Enable scraping /metrics/probes from kubelet's service
1698 ## Enable scraping /metrics/resource from kubelet's service
1699 ## This is disabled by default because container metrics are already exposed by cAdvisor
1702 # From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1703 resourcePath: "/metrics/resource/v1alpha1"
1704 ## Configure the scrape interval for resource metrics. This is configured to the default Kubelet cAdvisor
1705 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1706 ## if kubelet.serviceMonitor.interval is not empty.
1707 resourceInterval: 10s
1708 ## Enable scraping /metrics/cadvisor from kubelet's service
1711 ## Configure the scrape interval for cAdvisor. This is configured to the default Kubelet cAdvisor
1712 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1713 ## if kubelet.serviceMonitor.interval is not empty.
1714 cAdvisorInterval: 10s
1715 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1716 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1718 cAdvisorMetricRelabelings:
1719 # Drop less useful container CPU metrics.
1720 - sourceLabels: [__name__]
1722 regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1723 # Drop less useful container / always zero filesystem metrics.
1724 - sourceLabels: [__name__]
1726 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)'
1727 # Drop less useful / always zero container memory metrics.
1728 - sourceLabels: [__name__]
1730 regex: 'container_memory_(mapped_file|swap)'
1731 # Drop less useful container process metrics.
1732 - sourceLabels: [__name__]
1734 regex: 'container_(file_descriptors|tasks_state|threads_max)'
1735 # Drop container_memory_failures_total{scope="hierarchy"} metrics,
1736 # we only need the container scope.
1737 - sourceLabels: [__name__, scope]
1739 regex: 'container_memory_failures_total;hierarchy'
1740 # Drop container_network_... metrics that match various interfaces that
1741 # correspond to CNI and similar interfaces. This avoids capturing network
1742 # metrics for host network containers.
1743 - sourceLabels: [__name__, interface]
1745 regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*'
1746 # Drop container spec metrics that overlap with kube-state-metrics.
1747 - sourceLabels: [__name__]
1749 regex: 'container_spec.*'
1750 # Drop cgroup metrics with no pod.
1751 - sourceLabels: [id, pod]
1754 # - sourceLabels: [__name__, image]
1756 # regex: container_([a-z_]+);
1759 # - sourceLabels: [__name__]
1761 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1765 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1766 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1768 probesMetricRelabelings: []
1769 # - sourceLabels: [__name__, image]
1771 # regex: container_([a-z_]+);
1774 # - sourceLabels: [__name__]
1776 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1780 ## RelabelConfigs to apply to samples before scraping
1781 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1783 ## metrics_path is required to match upstream rules and charts
1784 cAdvisorRelabelings:
1786 sourceLabels: [__metrics_path__]
1787 targetLabel: metrics_path
1788 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1791 # targetLabel: nodename
1795 ## RelabelConfigs to apply to samples before scraping
1796 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1800 sourceLabels: [__metrics_path__]
1801 targetLabel: metrics_path
1802 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1805 # targetLabel: nodename
1809 ## RelabelConfigs to apply to samples before scraping
1810 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1812 resourceRelabelings:
1814 sourceLabels: [__metrics_path__]
1815 targetLabel: metrics_path
1816 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1819 # targetLabel: nodename
1823 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1824 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1827 # Reduce bucket cardinality of kubelet storage operations.
1829 sourceLabels: [__name__, le]
1830 regex: (csi_operations|storage_operation_duration)_seconds_bucket;(0.25|2.5|15|25|120|600)(\.0)?
1831 # - sourceLabels: [__name__, image]
1833 # regex: container_([a-z_]+);
1836 # - sourceLabels: [__name__]
1838 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1842 ## RelabelConfigs to apply to samples before scraping
1843 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1845 ## metrics_path is required to match upstream rules and charts
1848 sourceLabels: [__metrics_path__]
1849 targetLabel: metrics_path
1850 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1853 # targetLabel: nodename
1857 ## Additional labels
1859 additionalLabels: {}
1862 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1863 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1865## Component scraping the kube controller manager
1867kubeControllerManager:
1869 # Overrides the job selector in Grafana dashboards and Prometheus rules
1870 # For k3s clusters, change to k3s-server
1872 ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1879 ## If using kubeControllerManager.endpoints only the port and targetPort are used
1883 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1884 ## of default port in Kubernetes 1.22.
1890 ipFamilies: ["IPv6", "IPv4"]
1891 ipFamilyPolicy: "PreferDualStack"
1893 # component: kube-controller-manager
1896 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1899 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1902 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1905 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1908 ## 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.
1910 labelNameLengthLimit: 0
1911 ## 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.
1913 labelValueLengthLimit: 0
1914 ## proxyUrl: URL of a proxy that should be used for scraping.
1917 ## port: Name of the port the metrics will be scraped from
1923 # component: kube-controller-manager
1925 ## Enable scraping kube-controller-manager over https.
1926 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1927 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1930 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1931 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1933 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1938 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1940 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1941 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1942 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1945 insecureSkipVerify: true
1948 name: kube-root-ca.crt
1950 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1951 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1953 metricRelabelings: []
1955 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1956 # sourceLabels: [__name__]
1958 ## RelabelConfigs to apply to samples before scraping
1959 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1962 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1965 # targetLabel: nodename
1969 ## Additional labels
1971 additionalLabels: {}
1974 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1975 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1977## Component scraping coreDns. Use either this or kubeDns
1987 ipFamilies: ["IPv6", "IPv4"]
1988 ipFamilyPolicy: "PreferDualStack"
1993 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1996 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1999 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2002 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2005 ## 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.
2007 labelNameLengthLimit: 0
2008 ## 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.
2010 labelValueLengthLimit: 0
2011 ## proxyUrl: URL of a proxy that should be used for scraping.
2014 ## port: Name of the port the metrics will be scraped from
2022 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2023 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2025 metricRelabelings: []
2027 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2028 # sourceLabels: [__name__]
2030 ## RelabelConfigs to apply to samples before scraping
2031 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2034 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2037 # targetLabel: nodename
2041 ## Additional labels
2043 additionalLabels: {}
2046 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2047 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2049 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2050 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2052 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2057 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2059## Component scraping kubeDns. Use either this or coreDns
2072 ipFamilies: ["IPv6", "IPv4"]
2073 ipFamilyPolicy: "PreferDualStack"
2077 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2080 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2083 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2086 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2089 ## 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.
2091 labelNameLengthLimit: 0
2092 ## 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.
2094 labelValueLengthLimit: 0
2095 ## proxyUrl: URL of a proxy that should be used for scraping.
2103 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2104 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2106 metricRelabelings: []
2108 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2109 # sourceLabels: [__name__]
2111 ## RelabelConfigs to apply to samples before scraping
2112 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2115 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2118 # targetLabel: nodename
2122 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2123 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2125 dnsmasqMetricRelabelings: []
2127 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2128 # sourceLabels: [__name__]
2130 ## RelabelConfigs to apply to samples before scraping
2131 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2133 dnsmasqRelabelings: []
2134 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2137 # targetLabel: nodename
2141 ## Additional labels
2143 additionalLabels: {}
2146 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2147 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2149 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2150 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2152 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2157 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2159## Component scraping etcd
2163 ## If your etcd is not deployed as a pod, specify IPs it can be found on
2170 ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
2178 ipFamilies: ["IPv6", "IPv4"]
2179 ipFamilyPolicy: "PreferDualStack"
2182 ## Configure secure access to the etcd cluster by referencing a secret holding the client
2183 ## certificate. For example, with a secret named etcd-client-cert
2188 ## insecureSkipVerify: false
2189 ## serverName: localhost
2192 ## name: etcd-client-cert
2196 ## name: etcd-client-cert
2199 ## name: etcd-client-cert
2200 ## key: etcd-client-key
2204 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2207 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2210 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2213 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2216 ## 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.
2218 labelNameLengthLimit: 0
2219 ## 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.
2221 labelValueLengthLimit: 0
2222 ## proxyUrl: URL of a proxy that should be used for scraping.
2226 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scheme is https.
2227 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2228 ## etcd requires client certificates, see the commented example above.
2229 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2232 insecureSkipVerify: false
2233 ## port: Name of the port the metrics will be scraped from
2241 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2242 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2244 metricRelabelings: []
2246 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2247 # sourceLabels: [__name__]
2249 ## RelabelConfigs to apply to samples before scraping
2250 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2253 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2256 # targetLabel: nodename
2260 ## Additional labels
2262 additionalLabels: {}
2265 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2266 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2268 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2269 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2271 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2276 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2278## Component scraping kube scheduler
2282 # Overrides the job selector in Grafana dashboards and Prometheus rules
2283 # For k3s clusters, change to k3s-server
2285 ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
2292 ## If using kubeScheduler.endpoints only the port and targetPort are used
2296 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
2297 ## of default port in Kubernetes 1.23.
2303 ipFamilies: ["IPv6", "IPv4"]
2304 ipFamilyPolicy: "PreferDualStack"
2306 # component: kube-scheduler
2309 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2312 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2315 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2318 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2321 ## 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.
2323 labelNameLengthLimit: 0
2324 ## 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.
2326 labelValueLengthLimit: 0
2327 ## proxyUrl: URL of a proxy that should be used for scraping.
2330 ## Enable scraping kube-scheduler over https.
2331 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
2332 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
2335 ## port: Name of the port the metrics will be scraped from
2341 # component: kube-scheduler
2343 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2344 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2346 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2351 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2353 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2354 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2355 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2358 insecureSkipVerify: true
2361 name: kube-root-ca.crt
2363 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2364 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2366 metricRelabelings: []
2368 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2369 # sourceLabels: [__name__]
2371 ## RelabelConfigs to apply to samples before scraping
2372 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2375 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2378 # targetLabel: nodename
2382 ## Additional labels
2384 additionalLabels: {}
2387 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2388 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2391 ## Enable scraping /metrics/resource from kube-scheduler
2392 ## https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics
2394 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2397 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2398 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2400 metricRelabelings: []
2402 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2403 # sourceLabels: [__name__]
2405 ## RelabelConfigs to apply to samples before scraping
2406 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2409 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2412 # targetLabel: nodename
2415## Component scraping kube proxy
2419 # Overrides the job selector in Grafana dashboards and Prometheus rules
2420 # For k3s clusters, change to k3s-server
2422 ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
2435 ipFamilies: ["IPv6", "IPv4"]
2436 ipFamilyPolicy: "PreferDualStack"
2438 # k8s-app: kube-proxy
2441 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2444 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2447 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2450 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2453 ## 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.
2455 labelNameLengthLimit: 0
2456 ## 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.
2458 labelValueLengthLimit: 0
2459 ## proxyUrl: URL of a proxy that should be used for scraping.
2462 ## port: Name of the port the metrics will be scraped from
2468 # k8s-app: kube-proxy
2470 ## Enable scraping kube-proxy over https.
2471 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
2474 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2475 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2476 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2481 name: kube-root-ca.crt
2483 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2484 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2486 metricRelabelings: []
2488 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2489 # sourceLabels: [__name__]
2491 ## RelabelConfigs to apply to samples before scraping
2492 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2496 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2497 # sourceLabels: [__name__]
2499 ## Additional labels
2501 additionalLabels: {}
2504 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2505 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2507 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2508 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2510 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2515 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2517## Component scraping kube state metrics
2521## Configuration for kube-state-metrics subchart
2524 ## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
2526 ## Enable scraping via kubernetes-service-endpoints
2527 ## Disabled by default as we service monitor is enabled below
2529 prometheusScrape: false
2532 ## Enable scraping via service monitor
2533 ## Disable to prevent duplication if you enable prometheusScrape above
2535 ## kube-state-metrics endpoint
2537 ## Keep labels from scraped data, overriding server-side labels
2539 ## selfMonitor endpoint
2541 ## Keep labels from scraped data, overriding server-side labels
2543## Deploy node exporter as a daemonset to all nodes
2554 ## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2556 forceDeployDashboards: false
2557## Configuration for prometheus-node-exporter subchart
2559prometheus-node-exporter:
2560 ## Enable scraping via kubernetes-service-endpoints
2561 ## Disabled by default as service monitor is enabled below
2563 prometheusScrape: false
2564 namespaceOverride: ""
2566 ## Add the 'node-exporter' label to be used by serviceMonitor and podMonitor to match standard common usage in rules and grafana dashboards
2568 jobLabel: node-exporter
2571 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2572 - --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)$
2574 portName: http-metrics
2577 ipFamilies: ["IPv6", "IPv4"]
2578 ipFamilyPolicy: "PreferDualStack"
2580 jobLabel: node-exporter
2585 ## Enable scraping via service monitor
2586 ## Disable to prevent duplication if you have enabled prometheusScrape above
2590 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2593 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2596 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2599 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2602 ## 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.
2604 labelNameLengthLimit: 0
2605 ## 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.
2607 labelValueLengthLimit: 0
2608 ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2611 ## proxyUrl: URL of a proxy that should be used for scraping.
2614 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2615 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2617 metricRelabelings: []
2618 # - sourceLabels: [__name__]
2620 # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2624 ## RelabelConfigs to apply to samples before scraping
2625 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2628 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2631 # targetLabel: nodename
2634 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
2643 ## If true, create PSPs for node-exporter
2646## Manages Prometheus and Alertmanager components
2650 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2651 fullnameOverride: ""
2652 ## Number of old replicasets to retain ##
2653 ## The default value is 10, 0 will garbage-collect old replicasets ##
2654 revisionHistoryLimit: 10
2655 ## Strategy of the deployment
2658 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2662 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2663 tlsMinVersion: VersionTLS13
2664 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2666 ## Liveness probe for the prometheusOperator deployment
2671 initialDelaySeconds: 0
2675 ## Readiness probe for the prometheusOperator deployment
2680 initialDelaySeconds: 0
2684 ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2685 ## rules from making their way into prometheus and potentially preventing the container from starting
2687 ## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2688 ## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2690 ## The default timeoutSeconds is 10 and the maximum value is 30.
2693 ## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2694 ## If unspecified, system trust roots on the apiserver are used.
2696 ## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2697 ## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2698 ## certs ahead of time if you wish.
2701 # argocd.argoproj.io/hook: PreSync
2702 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2704 namespaceSelector: {}
2706 # Match conditions for admission webhooks.
2707 # Must be a list, for example:
2708 # - name: exclude-leases
2709 # expression: '!(request.resource.group == "coordination.k8s.io" && request.resource.resource == "leases")'
2711 mutatingWebhookConfiguration:
2713 # argocd.argoproj.io/hook: PreSync
2714 validatingWebhookConfiguration:
2716 # argocd.argoproj.io/hook: PreSync
2719 ## Number of replicas
2722 ## Strategy of the deployment
2725 # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2726 podDisruptionBudget:
2729 # maxUnavailable: ""
2730 unhealthyPodEvictionPolicy: AlwaysAllow
2731 ## Number of old replicasets to retain ##
2732 ## The default value is 10, 0 will garbage-collect old replicasets ##
2733 revisionHistoryLimit: 10
2734 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2738 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2739 tlsMinVersion: VersionTLS13
2740 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2742 ## Service account for Prometheus Operator Webhook to use.
2743 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2747 automountServiceAccountToken: false
2750 ## Configuration for Prometheus operator Webhook service
2758 ipFamilies: ["IPv6", "IPv4"]
2759 ipFamilyPolicy: "PreferDualStack"
2760 ## Port to expose on each node
2761 ## Only used if service.type is 'NodePort'
2765 ## Additional ports to open for Prometheus operator Webhook service
2766 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2770 ## Only use if service.type is "LoadBalancer"
2773 loadBalancerSourceRanges: []
2774 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2776 externalTrafficPolicy: Cluster
2778 ## NodePort, ClusterIP, LoadBalancer
2781 ## List of IP addresses at which the Prometheus server service is available
2782 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2785 # ## Labels to add to the operator webhook deployment
2788 ## Annotations to add to the operator webhook deployment
2791 ## Labels to add to the operator webhook pod
2794 ## Annotations to add to the operator webhook pod
2797 ## Assign a PriorityClassName to pods if set
2798 # priorityClassName: ""
2800 ## Define Log Format
2801 # Use logfmt (default) or json logging
2804 ## Decrease log verbosity to errors only
2807 ## Prometheus-operator webhook image
2811 repository: chainguard-private/prometheus-admission-webhook
2812 # if not set appVersion field from Chart.yaml is used
2814 sha: sha256:823d77ff6cefe9c9e4c883465b70cf08399f039ede78757a50c7b9ec505ddc4c
2815 pullPolicy: IfNotPresent
2816 ## Define Log Format
2817 # Use logfmt (default) or json logging
2820 ## Decrease log verbosity to errors only
2823 ## PromQL parser options to enable for the admission webhook when validating PrometheusRule resources.
2824 ## The options are passed to the prometheus-operator admission-webhook binary as a comma-separated --promql-options value.
2825 ## Requires prometheus-operator admission-webhook v0.91.0 or newer.
2826 ## Valid values: experimental-functions, duration-expression-parsing, extended-range-selectors, binop-fill-modifiers.
2834 initialDelaySeconds: 30
2843 initialDelaySeconds: 5
2847 ## Resource limits & requests
2857 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2858 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2861 ## Define which Nodes the Pods are scheduled on.
2862 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2865 kubernetes.io/os: linux
2866 ## Tolerations for use with node taints
2867 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2873 # effect: "NoSchedule"
2875 ## Assign custom affinity rules to the prometheus operator
2876 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2880 # requiredDuringSchedulingIgnoredDuringExecution:
2881 # nodeSelectorTerms:
2882 # - matchExpressions:
2883 # - key: kubernetes.io/e2e-az-name
2892 # - ns1.svc.cluster-domain.example
2893 # - my.dns.search.suffix
2904 type: RuntimeDefault
2905 ## Container-specific security context configuration
2906 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2908 containerSecurityContext:
2909 allowPrivilegeEscalation: false
2910 readOnlyRootFilesystem: true
2914 ## If false then the user will opt out of automounting API credentials.
2916 automountServiceAccountToken: true
2921 repository: chainguard-private/kube-webhook-certgen
2923 sha: sha256:dd7710fb65f4350a41597924268bdc398f7b4e0d98b099d4943e7c5f9337460f
2924 pullPolicy: IfNotPresent
2926 ## Provide a priority class name to the webhook patching job
2928 priorityClassName: ""
2929 ttlSecondsAfterFinished: 60
2931 # argocd.argoproj.io/hook: PreSync
2932 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2935 kubernetes.io/os: linux
2938 ## SecurityContext holds pod-level security attributes and common container settings.
2939 ## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2940 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2947 type: RuntimeDefault
2948 ## Service account for Prometheus Operator Webhook Job Patch to use.
2949 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2954 automountServiceAccountToken: true
2955 # Security context for create job container
2958 allowPrivilegeEscalation: false
2959 readOnlyRootFilesystem: true
2963 # Security context for patch job container
2966 allowPrivilegeEscalation: false
2967 readOnlyRootFilesystem: true
2971 # Use certmanager to generate webhook certs
2974 # self-signed root certificate
2976 duration: "" # default to be 5y
2977 # -- Set the revisionHistoryLimit on the Certificate. See
2978 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2980 revisionHistoryLimit:
2982 duration: "" # default to be 1y
2983 # -- Set the revisionHistoryLimit on the Certificate. See
2984 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2986 revisionHistoryLimit:
2989 # kind: "ClusterIssuer"
2990 # -- Set the private key algorithm and size for the Certificate. See
2991 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
2992 # Defaults to RSA 2048
2997 ## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
2998 ## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
3001 # releaseNamespace: true
3005 ## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
3008 ## Filter namespaces to look for prometheus-operator custom resources
3010 alertmanagerInstanceNamespaces: []
3011 alertmanagerConfigNamespaces: []
3012 prometheusInstanceNamespaces: []
3013 thanosRulerInstanceNamespaces: []
3014 ## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
3015 ## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
3016 ## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
3018 # clusterDomain: "cluster.local"
3020 ## Enable creation of NetworkPolicy resources.
3023 ## Flavor of the network policy to use.
3025 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3026 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3031 ## match labels used in selector
3033 ## Service account for Prometheus Operator to use.
3034 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3039 automountServiceAccountToken: true
3041 # -- terminationGracePeriodSeconds for container lifecycle hook
3042 terminationGracePeriodSeconds: 30
3043 # -- Specify lifecycle hooks for the controller
3045 ## Configuration for Prometheus operator service
3053 ipFamilies: ["IPv6", "IPv4"]
3054 ipFamilyPolicy: "PreferDualStack"
3055 ## Port to expose on each node
3056 ## Only used if service.type is 'NodePort'
3060 ## Additional ports to open for Prometheus operator service
3061 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
3065 ## Only use if service.type is "LoadBalancer"
3068 loadBalancerSourceRanges: []
3069 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3071 externalTrafficPolicy: Cluster
3073 ## NodePort, ClusterIP, LoadBalancer
3076 ## List of IP addresses at which the Prometheus server service is available
3077 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3080 # ## Labels to add to the operator deployment
3083 ## Annotations to add to the operator deployment
3086 ## Labels to add to the operator pod
3089 ## Annotations to add to the operator pod
3092 ## Assign a podDisruptionBudget to the operator
3094 podDisruptionBudget:
3097 # maxUnavailable: ""
3098 unhealthyPodEvictionPolicy: AlwaysAllow
3099 ## Assign a PriorityClassName to pods if set
3100 # priorityClassName: ""
3102 ## Define Log Format
3103 # Use logfmt (default) or json logging
3106 ## Decrease log verbosity to errors only
3109 ## If true, the operator will create and maintain a service for scraping kubelets
3110 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/helm/prometheus-operator/README.md
3113 namespace: kube-system
3115 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
3117 ## Create Endpoints objects for kubelet targets.
3118 kubeletEndpointsEnabled: true
3119 ## Create EndpointSlice objects for kubelet targets.
3120 kubeletEndpointSliceEnabled: false
3121 ## Extra arguments to pass to prometheusOperator
3122 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/operator.md
3124 # - --labels="cluster=talos-cluster"
3126 ## Create a servicemonitor for the operator
3129 ## If true, create a serviceMonitor for prometheus operator
3132 ## Labels for ServiceMonitor
3133 additionalLabels: {}
3134 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3137 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3140 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3143 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3146 ## 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.
3148 labelNameLengthLimit: 0
3149 ## 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.
3151 labelValueLengthLimit: 0
3152 ## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
3154 ## Metric relabel configs to apply to samples before ingestion.
3156 metricRelabelings: []
3158 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3159 # sourceLabels: [__name__]
3161 # relabel configs to apply to samples before ingestion.
3164 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3167 # targetLabel: nodename
3170 ## Resource limits & requests
3180 ## Operator Environment
3185 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
3186 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
3189 ## Define which Nodes the Pods are scheduled on.
3190 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3193 kubernetes.io/os: linux
3194 ## Tolerations for use with node taints
3195 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3201 # effect: "NoSchedule"
3203 ## Assign custom affinity rules to the prometheus operator
3204 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3208 # requiredDuringSchedulingIgnoredDuringExecution:
3209 # nodeSelectorTerms:
3210 # - matchExpressions:
3211 # - key: kubernetes.io/e2e-az-name
3220 # - ns1.svc.cluster-domain.example
3221 # - my.dns.search.suffix
3232 type: RuntimeDefault
3233 ## Setup hostUsers for prometheus-operator
3234 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
3236 ## Container-specific security context configuration
3237 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3239 containerSecurityContext:
3240 allowPrivilegeEscalation: false
3241 readOnlyRootFilesystem: true
3245 # Enable vertical pod autoscaler support for prometheus-operator
3246 verticalPodAutoscaler:
3248 # Recommender responsible for generating recommendation for the object.
3249 # List should be empty (then the default recommender will generate the recommendation)
3250 # or contain exactly one recommender.
3252 # - name: custom-recommender-performance
3254 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3255 controlledResources: []
3256 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3257 # controlledValues: RequestsAndLimits
3259 # Define the max allowed resources for the pod
3263 # Define the min allowed resources for the pod
3269 # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
3271 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3272 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3273 updateMode: Recreate
3274 ## Prometheus-operator image
3278 repository: chainguard-private/prometheus-operator
3279 # if not set appVersion field from Chart.yaml is used
3281 sha: sha256:4df828332d4982158521508e9809d6bb3864913c8fd7dac358da52e9c4aafd2d
3282 pullPolicy: IfNotPresent
3283 ## Prometheus image to use for prometheuses managed by the operator
3285 # prometheusDefaultBaseImage: prometheus/prometheus
3287 ## Prometheus image registry to use for prometheuses managed by the operator
3289 # prometheusDefaultBaseImageRegistry: quay.io
3291 ## Alertmanager image to use for alertmanagers managed by the operator
3293 # alertmanagerDefaultBaseImage: prometheus/alertmanager
3295 ## Alertmanager image registry to use for alertmanagers managed by the operator
3297 # alertmanagerDefaultBaseImageRegistry: quay.io
3299 ## Prometheus-config-reloader
3301 prometheusConfigReloader:
3304 repository: chainguard-private/prometheus-config-reloader
3305 # if not set appVersion field from Chart.yaml is used
3307 sha: sha256:a08cb039a99ac0ce604f9cbe7fcdd5274f52ee16e70d16de79b64deb31e1e841
3308 # add prometheus config reloader liveness and readiness probe. Default: false
3310 # resource config for prometheusConfigReloader
3318 ## Thanos side-car image when configured
3322 repository: chainguard-private/thanos
3324 sha: sha256:c4533dd8411a0f1c7b5d0a67cad1d481243cd7d76f0c9a01a326cbdadb345740
3325 ## Set a Label Selector to filter watched prometheus and prometheusAgent
3327 prometheusInstanceSelector: ""
3328 ## Set a Label Selector to filter watched alertmanager
3330 alertmanagerInstanceSelector: ""
3331 ## Set a Label Selector to filter watched thanosRuler
3332 thanosRulerInstanceSelector: ""
3333 ## Set a Field Selector to filter watched secrets
3334 ## `kubernetes.io/service-account-token` secrets are no longer excluded, so that changes to the
3335 ## secret the control-plane ServiceMonitors authenticate with trigger a reconciliation.
3337 secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=helm.sh/release.v1"
3338 ## Feature gates to enable/disable operator features, rendered as --feature-gates=<key>=<value>.
3339 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md
3342 ## PrometheusAgentDaemonSet: true
3343 ## StatusForConfigurationResources: true
3345 ## If false then the user will opt out of automounting API credentials.
3347 automountServiceAccountToken: true
3348 ## Additional volumes
3351 ## Additional volume mounts
3353 extraVolumeMounts: []
3354## Deploy a Prometheus instance
3358 ## Toggle prometheus into agent mode
3359 ## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
3360 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/prometheus-agent.md
3363 ## Annotations for Prometheus
3366 ## Additional labels for Prometheus
3368 additionalLabels: {}
3369 ## Configure network policy for the prometheus
3372 ## Flavor of the network policy to use.
3374 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3375 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3390 ## Service account for Prometheuses to use.
3391 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3397 automountServiceAccountToken: true
3398 ## Create a `kubernetes.io/service-account-token` Secret for the Prometheus service account.
3399 ## The control-plane ServiceMonitors reference it by default, because ServiceMonitors can only
3400 ## authenticate through a Secret and Kubernetes no longer creates one automatically.
3401 ## The resulting token is long-lived and does not expire; disable this and set the
3402 ## `authorization` values of the control-plane components if you manage the credential yourself.
3403 ## Only rendered together with the service account, so it requires `prometheus.enabled` and
3404 ## `create` above. Leaving a control-plane component on the default `authorization` while the
3405 ## Secret is not rendered is a rendering error rather than a silently broken ServiceMonitor.
3406 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#manually-create-an-api-token-for-a-serviceaccount
3408 createTokenSecret: true
3409 # Service for thanos service discovery on sidecar
3410 # Enable this can make Thanos Query can use
3411 # `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
3412 # Thanos sidecar on prometheus nodes
3413 # (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
3418 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3420 externalTrafficPolicy: Cluster
3424 ## Service dual stack
3428 ipFamilies: ["IPv6", "IPv4"]
3429 ipFamilyPolicy: "PreferDualStack"
3434 ## HTTP port config (for metrics)
3437 targetHttpPort: "http"
3438 ## ClusterIP to assign
3439 # Default is to make this a headless service ("None")
3441 ## Port to expose on each node, if service type is NodePort
3445 # ServiceMonitor to scrape Sidecar metrics
3446 # Needs thanosService to be enabled as well
3447 thanosServiceMonitor:
3450 ## Additional labels
3452 additionalLabels: {}
3453 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3455 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3456 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3459 ## Metric relabel configs to apply to samples before ingestion.
3460 metricRelabelings: []
3461 ## relabel configs to apply to samples before ingestion.
3463 # Service for external access to sidecar
3464 # Enabling this creates a service to expose thanos-sidecar outside the cluster.
3465 thanosServiceExternal:
3470 loadBalancerSourceRanges: []
3475 ## HTTP port config (for metrics)
3478 targetHttpPort: "http"
3479 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3481 externalTrafficPolicy: Cluster
3485 ## Port to expose on each node
3489 ## Configuration for Prometheus service
3498 ipFamilies: ["IPv6", "IPv4"]
3499 ipFamilyPolicy: "PreferDualStack"
3500 ## Port for Prometheus Service to listen on
3503 ## To be used with a proxy extraContainer port
3505 ## Port for Prometheus Reloader to listen on
3507 reloaderWebPort: 8080
3508 ## Port to expose for Prometheus Reloader
3509 ## Only used if service.type is 'NodePort'
3511 reloaderWebNodePort: null
3512 ## List of IP addresses at which the Prometheus server service is available
3513 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3516 ## Port to expose on each node
3517 ## Only used if service.type is 'NodePort'
3521 ## Only use if service.type is "LoadBalancer"
3523 loadBalancerSourceRanges: []
3524 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3526 externalTrafficPolicy: Cluster
3530 ## Additional ports to open for Prometheus service
3534 # - name: oauth-proxy
3537 # - name: oauth-metrics
3541 ## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3542 ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3543 publishNotReadyAddresses: false
3544 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
3545 ## Accepts 'ClientIP' or 'None'
3547 sessionAffinity: None
3548 ## If you want to modify the ClientIP sessionAffinity timeout
3549 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3551 sessionAffinityConfig:
3553 timeoutSeconds: 10800
3554 ## Configuration for creating a separate Service for each statefulset Prometheus replica
3559 ## Port for Prometheus Service per replica to listen on
3562 ## To be used with a proxy extraContainer port
3564 ## Port to expose on each node
3565 ## Only used if servicePerReplica.type is 'NodePort'
3568 ## Loadbalancer source IP ranges
3569 ## Only used if servicePerReplica.type is "LoadBalancer"
3570 loadBalancerSourceRanges: []
3571 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3573 externalTrafficPolicy: Cluster
3577 ## Service dual stack
3581 ipFamilies: ["IPv6", "IPv4"]
3582 ipFamilyPolicy: "PreferDualStack"
3583 ## Configure pod disruption budgets for Prometheus
3584 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
3586 podDisruptionBudget:
3589 # maxUnavailable: ""
3590 unhealthyPodEvictionPolicy: AlwaysAllow
3591 ## Enable vertical pod autoscaler support for Prometheus
3592 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
3594 verticalPodAutoscaler:
3596 # Recommender responsible for generating recommendation for the object.
3597 # List should be empty (then the default recommender will generate the recommendation)
3598 # or contain exactly one recommender.
3600 # - name: custom-recommender-performance
3602 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3603 controlledResources: []
3604 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3605 # controlledValues: RequestsAndLimits
3607 # Define the max allowed resources for the pod
3611 # Define the min allowed resources for the pod
3617 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3618 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3619 updateMode: Recreate
3620 # Ingress exposes thanos sidecar outside the cluster
3623 ingressClassName: ""
3627 ## Port to expose on each node
3628 ## Only used if service.type is 'NodePort'
3631 ## Hosts must be provided if Ingress is enabled.
3634 # - thanos-gateway.domain.com
3636 ## Paths to use for ingress rules
3641 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3642 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3643 # pathType: ImplementationSpecific
3645 ## TLS configuration for Thanos Ingress
3646 ## Secret must be manually created in the namespace
3649 # - secretName: thanos-gateway-tls
3651 # - thanos-gateway.domain.com
3653 ## ExtraSecret can be used to store various data in an extra secret
3654 ## (use it for example to store hashed basic auth credentials)
3656 ## if not set, name will be auto generated
3661 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3662 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3666 ingressClassName: ""
3669 ## Redirect ingress to an additional defined port on the service
3673 ## Must be provided if Ingress is enabled.
3676 # - prometheus.domain.com
3678 ## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3683 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3684 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3685 # pathType: ImplementationSpecific
3687 ## TLS configuration for Prometheus Ingress
3688 ## Secret must be manually created in the namespace
3691 # - secretName: prometheus-general-tls
3693 # - prometheus.example.com
3694 # -- BETA: Configure the gateway routes for the chart here.
3695 # More routes can be added by adding a dictionary key like the 'main' route.
3696 # Be aware that this is an early beta of this feature,
3697 # kube-prometheus-stack does not guarantee this works and is subject to change.
3698 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
3699 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
3702 # -- Enables or disables the route
3704 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3705 apiVersion: gateway.networking.k8s.io/v1
3706 # -- Set the route kind
3707 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3712 # - my-filter.example.com
3716 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3717 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3718 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
3719 httpsRedirect: false
3724 ## Filters define the filters that are applied to requests that match this rule.
3726 ## Timeouts for the generated HTTPRoute backend rule.
3727 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3730 # backendRequest: 60s
3732 ## Session persistence configuration for the route rule.
3733 sessionPersistence: {}
3734 # sessionName: route
3736 # absoluteTimeout: 12h
3738 # lifetimeType: Permanent
3740 ## Additional custom rules that can be added to the route
3742 ## Configuration for creating an Ingress that will map to each Prometheus replica service
3743 ## prometheus.servicePerReplica must be enabled
3747 ingressClassName: ""
3750 ## Final form of the hostname for each per replica ingress is
3751 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3753 ## Prefix for the per replica ingress that will have `-$replicaNumber`
3754 ## appended to the end
3756 ## Domain that will be used for the per replica ingress
3758 ## Paths to use for ingress rules
3763 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3764 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3765 # pathType: ImplementationSpecific
3767 ## Secret name containing the TLS certificate for Prometheus per replica ingress
3768 ## Secret must be manually created in the namespace
3770 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
3772 tlsSecretPerReplica:
3774 ## Final form of the secret for each per replica ingress is
3775 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3777 prefix: "prometheus"
3778 ## Configuration for creating a Gateway API route that will map to each Prometheus replica service
3779 ## prometheus.servicePerReplica must be enabled
3783 # -- Enables or disables the routePerReplica
3785 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3786 apiVersion: gateway.networking.k8s.io/v1
3787 # -- Set the route kind
3788 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3792 ## Final form of the hostname for each per replica route is
3793 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
3795 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
3797 ## Domain that will be used for the per replica route
3802 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3803 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3804 ## matches, filters and additionalRules will be ignored if this is set to true.
3805 httpsRedirect: false
3806 ## Filters define the filters that are applied to requests that match this rule.
3812 ## Timeouts for the generated HTTPRoute backend rule.
3813 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3816 # backendRequest: 60s
3818 ## Session persistence configuration for the route rule.
3819 sessionPersistence: {}
3820 # sessionName: route
3822 # absoluteTimeout: 12h
3824 # lifetimeType: Permanent
3826 ## Additional custom rules that can be added to the route
3829 ## If true, create a serviceMonitor for prometheus
3832 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3835 ## Additional labels
3837 additionalLabels: {}
3838 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3841 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3844 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3847 ## 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.
3849 labelNameLengthLimit: 0
3850 ## 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.
3852 labelValueLengthLimit: 0
3853 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3855 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3856 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3859 ## Metric relabel configs to apply to samples before ingestion.
3861 metricRelabelings: []
3863 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3864 # sourceLabels: [__name__]
3866 # relabel configs to apply to samples before ingestion.
3869 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3872 # targetLabel: nodename
3876 ## Additional Endpoints
3878 additionalEndpoints: []
3879 # - port: oauth-metrics
3881 ## Settings affecting prometheusSpec
3882 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheusspec
3885 ## Statefulset's persistent volume claim retention policy
3886 ## whenDeleted and whenScaled determine whether
3887 ## statefulset's PVCs are deleted (true) or retained (false)
3888 ## on scaling down and deleting statefulset, respectively.
3889 ## Requires Kubernetes version 1.27.0+.
3890 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
3891 persistentVolumeClaimRetentionPolicy: {}
3892 # whenDeleted: Retain
3893 # whenScaled: Retain
3895 ## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3897 disableCompaction: false
3898 ## AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod,
3899 ## If the field isn't set, the operator mounts the service account token by default.
3900 ## Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery,
3901 ## It is possible to use strategic merge patch to project the service account token into the 'prometheus' container.
3902 automountServiceAccountToken: true
3904 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#apiserverconfig
3907 ## Allows setting additional arguments for the Prometheus container
3908 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3910 ## Convert all classic histograms to native histograms with custom buckets.
3911 ## This corresponds to the 'convert_classic_histograms_to_nhcb' field in Prometheus configuration.
3913 convertClassicHistogramsToNHCB: false
3914 ## Enable scraping of classic histograms that are also exposed as native histograms.
3915 ## This corresponds to the 'always_scrape_classic_histograms' field in Prometheus configuration.
3917 scrapeClassicHistograms: false
3918 ## Enable scraping of native histograms.
3919 ## This corresponds to the 'scrape_native_histograms' field in Prometheus configuration.
3921 scrapeNativeHistograms: false
3922 ## File to which scrape failures are logged.
3923 ## Reloading the configuration will reopen the file.
3924 ## Defaults to empty (disabled)
3925 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3927 scrapeFailureLogFile: ""
3928 ## Interval between consecutive scrapes.
3930 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
3933 ## Number of seconds to wait for target to respond before erroring
3936 ## List of scrape classes to expose to scraping objects such as
3937 ## PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.
3940 # - name: istio-mtls
3943 # caFile: /etc/prometheus/secrets/istio.default/root-cert.pem
3944 # certFile: /etc/prometheus/secrets/istio.default/cert-chain.pem
3946 ## PodTargetLabels are appended to the `spec.podTargetLabels` field of all PodMonitor and ServiceMonitor objects.
3951 ## Interval between consecutive evaluations.
3953 evaluationInterval: ""
3954 ## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
3957 ## enableOTLPReceiver enables the OTLP receiver for Prometheus.
3958 enableOTLPReceiver: false
3959 ## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
3960 ## This is disabled by default.
3961 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
3963 enableAdminAPI: false
3964 ## Sets version of Prometheus overriding the Prometheus version as derived
3965 ## from the image tag. Useful in cases where the tag does not follow semver v2.
3967 ## WebTLSConfig defines the TLS parameters for HTTPS
3968 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
3970 ## Exemplars related settings that are runtime reloadable.
3971 ## It requires to enable the exemplar storage feature to be effective.
3973 ## Maximum number of exemplars stored in memory for all series.
3974 ## If not set, Prometheus uses its default value.
3975 ## A value of zero or less than zero disables the storage.
3978 # EnableFeatures API enables access to Prometheus disabled features.
3979 # ref: https://prometheus.io/docs/prometheus/latest/feature_flags/
3981 # - exemplar-storage
3983 ## https://prometheus.io/docs/guides/opentelemetry
3986 # promoteResourceAttributes: []
3987 # keepIdentifyingResourceAttributes: false
3988 # translationStrategy: NoUTF8EscapingWithSuffixes
3989 # convertHistogramsToNHCB: false
3993 ## Image of Prometheus.
3997 repository: chainguard-private/prometheus
3999 sha: sha256:ec9b125b56124163becae74ba7dc55c7f2896fb32c408398f8f61e7a79d9b905
4000 pullPolicy: IfNotPresent
4001 ## Tolerations for use with node taints
4002 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
4008 # effect: "NoSchedule"
4010 ## If specified, the pod's topology spread constraints.
4011 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
4013 topologySpreadConstraints: []
4015 # topologyKey: topology.kubernetes.io/zone
4016 # whenUnsatisfiable: DoNotSchedule
4023 disableAlerting: false
4024 ## Alertmanagers to which alerts will be sent
4025 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerendpoints
4027 ## Default configuration will connect to the alertmanager deployed as part of this release
4029 alertingEndpoints: []
4036 # bearerTokenFile: ""
4039 ## External labels to add to any time series or alerts when communicating with external systems
4042 ## enable --web.enable-remote-write-receiver flag on prometheus-server
4044 enableRemoteWriteReceiver: false
4045 ## Name of the external label used to denote replica name
4047 replicaExternalLabelName: ""
4048 ## If true, the Operator won't add the external label used to denote replica name
4050 replicaExternalLabelNameClear: false
4051 ## Name of the external label used to denote Prometheus instance name
4053 prometheusExternalLabelName: ""
4054 ## If true, the Operator won't add the external label used to denote Prometheus instance name
4056 prometheusExternalLabelNameClear: false
4057 ## External URL at which Prometheus will be reachable.
4060 ## Define which Nodes the Pods are scheduled on.
4061 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
4064 kubernetes.io/os: linux
4065 ## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4066 ## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
4067 ## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
4068 ## with the new list of secrets.
4071 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4072 ## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
4075 ## QuerySpec defines the query command line flags when starting Prometheus.
4076 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#queryspec
4079 ## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
4080 ruleNamespaceSelector: {}
4081 ## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
4082 # ruleNamespaceSelector:
4084 # prometheus: somelabel
4086 ## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
4087 ## prometheus resource to be created with selectors based on values in the helm deployment,
4088 ## which will also match the PrometheusRule resources created
4090 ruleSelectorNilUsesHelmValues: true
4091 ## PrometheusRules to be selected for target discovery.
4092 ## If {}, select all PrometheusRules
4095 ## Example which select all PrometheusRules resources
4096 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4105 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4108 # role: example-rules
4110 ## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
4111 ## prometheus resource to be created with selectors based on values in the helm deployment,
4112 ## which will also match the servicemonitors created
4114 serviceMonitorSelectorNilUsesHelmValues: true
4115 ## ServiceMonitors to be selected for target discovery.
4116 ## If {}, select all ServiceMonitors
4118 serviceMonitorSelector: {}
4119 ## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
4120 # serviceMonitorSelector:
4122 # prometheus: somelabel
4124 ## Namespaces to be selected for ServiceMonitor discovery.
4126 serviceMonitorNamespaceSelector: {}
4127 ## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
4128 # serviceMonitorNamespaceSelector:
4130 # prometheus: somelabel
4132 ## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
4133 ## prometheus resource to be created with selectors based on values in the helm deployment,
4134 ## which will also match the podmonitors created
4136 podMonitorSelectorNilUsesHelmValues: true
4137 ## PodMonitors to be selected for target discovery.
4138 ## If {}, select all PodMonitors
4140 podMonitorSelector: {}
4141 ## Example which selects PodMonitors with label "prometheus" set to "somelabel"
4142 # podMonitorSelector:
4144 # prometheus: somelabel
4146 ## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
4147 podMonitorNamespaceSelector: {}
4148 ## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
4149 # podMonitorNamespaceSelector:
4151 # prometheus: somelabel
4153 ## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
4154 ## prometheus resource to be created with selectors based on values in the helm deployment,
4155 ## which will also match the probes created
4157 probeSelectorNilUsesHelmValues: true
4158 ## Probes to be selected for target discovery.
4159 ## If {}, select all Probes
4162 ## Example which selects Probes with label "prometheus" set to "somelabel"
4165 # prometheus: somelabel
4167 ## If nil, select own namespace. Namespaces to be selected for Probe discovery.
4168 probeNamespaceSelector: {}
4169 ## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
4170 # probeNamespaceSelector:
4172 # prometheus: somelabel
4174 ## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
4175 ## prometheus resource to be created with selectors based on values in the helm deployment,
4176 ## which will also match the scrapeConfigs created
4178 ## If null and scrapeConfigSelector is also null, exclude field from the prometheusSpec
4179 ## (keeping downward compatibility with older versions of CRD)
4181 scrapeConfigSelectorNilUsesHelmValues: true
4182 ## scrapeConfigs to be selected for target discovery.
4183 ## If {}, select all scrapeConfigs
4185 scrapeConfigSelector: {}
4186 ## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
4187 # scrapeConfigSelector:
4189 # prometheus: somelabel
4191 ## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
4192 ## If null, exclude the field from the prometheusSpec (keeping downward compatibility with older versions of CRD)
4193 scrapeConfigNamespaceSelector: {}
4194 ## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
4195 # scrapeConfigNamespaceSelector:
4197 # prometheus: somelabel
4199 ## How long to retain metrics
4202 ## Maximum size of metrics
4203 ## Unit format should be in the form of "50GiB"
4205 ## Maximum percentage of the data volume's capacity used by the metrics, between 0 and 100.
4206 ## Requires Prometheus >= v3.11.0, ignored by older versions.
4207 retentionPercentage: ""
4208 ## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
4209 ## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
4211 outOfOrderTimeWindow: 0s
4212 ## Per-chunk-type encoding overrides, requires Prometheus >= v3.13.0.
4216 ## Ratio of stale series in memory, between 0 and 1, at which stale series are compacted into persistent blocks.
4217 staleSeriesCompactionThreshold: ""
4218 ## Enable compression of the write-ahead log using Snappy.
4220 walCompression: true
4221 ## If true, the Operator won't process any Prometheus configuration changes
4224 ## Number of replicas of each shard to deploy for a Prometheus deployment.
4225 ## Number of replicas multiplied by shards is the total number of Pods created.
4228 ## EXPERIMENTAL: Number of shards to distribute targets onto.
4229 ## Number of replicas multiplied by shards is the total number of Pods created.
4230 ## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
4231 ## Increasing shards will not reshard data either but it will continue to be available from the same instances.
4232 ## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
4233 ## Sharding is done on the content of the `__address__` target meta-label.
4234 ## Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then
4235 ## defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA
4236 ## ScaledObject own spec.shards through the /scale subresource without Helm reverting it.
4239 ## Log level for Prometheus be configured in
4242 ## Log format for Prometheus be configured in
4245 ## Prefix used to register routes, overriding externalUrl route.
4246 ## Useful for proxies that rewrite URLs.
4249 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4250 ## Metadata Labels and Annotations gets propagated to the prometheus pods.
4255 # k8s-app: prometheus
4257 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4258 ## 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.
4259 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4260 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4261 podAntiAffinity: "soft"
4262 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4263 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4265 podAntiAffinityTopologyKey: kubernetes.io/hostname
4266 ## Assign custom affinity rules to the prometheus instance
4267 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
4271 # requiredDuringSchedulingIgnoredDuringExecution:
4272 # nodeSelectorTerms:
4273 # - matchExpressions:
4274 # - key: kubernetes.io/e2e-az-name
4280 ## The remote_read spec configuration for Prometheus.
4281 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec
4283 # - url: http://remote1/read
4284 ## additionalRemoteRead is appended to remoteRead
4285 additionalRemoteRead: []
4286 ## The remote_write spec configuration for Prometheus.
4287 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec
4289 # - url: http://remote1/push
4290 ## additionalRemoteWrite is appended to remoteWrite
4291 additionalRemoteWrite: []
4292 ## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
4293 remoteWriteDashboards: false
4294 ## Resource limits & requests
4300 ## Prometheus StorageSpec for persistent data
4301 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4304 ## Using PersistentVolumeClaim
4306 # volumeClaimTemplate:
4308 # storageClassName: gluster
4309 # accessModes: ["ReadWriteOnce"]
4315 ## Using tmpfs volume
4320 # Additional volumes on the output StatefulSet definition.
4322 # Additional VolumeMounts on the output StatefulSet definition.
4324 ## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
4325 ## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
4326 ## as specified in the official Prometheus documentation:
4327 ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
4328 ## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
4329 ## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
4330 ## scrape configs are going to break Prometheus after the upgrade.
4331 ## AdditionalScrapeConfigs can be defined as a list or as a templated string.
4333 ## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
4334 ## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
4336 additionalScrapeConfigs: []
4337 # - job_name: kube-etcd
4338 # kubernetes_sd_configs:
4342 # ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
4343 # cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
4344 # key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
4346 # - action: labelmap
4347 # regex: __meta_kubernetes_node_label_(.+)
4348 # - source_labels: [__address__]
4350 # target_label: __address__
4351 # regex: ([^:;]+):(\d+)
4352 # replacement: ${1}:2379
4353 # - source_labels: [__meta_kubernetes_node_name]
4356 # - source_labels: [__meta_kubernetes_node_name]
4358 # target_label: node
4361 # metric_relabel_configs:
4362 # - 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)
4365 ## If scrape config contains a repetitive section, you may want to use a template.
4366 ## In the following example, you can see how to define `gce_sd_configs` for multiple zones
4367 # additionalScrapeConfigs: |
4368 # - job_name: "node-exporter"
4370 # {{range $zone := .Values.gcp_zones}}
4371 # - project: "project1"
4378 ## If additional scrape configurations are already deployed in a single secret file you can use this section.
4379 ## Expected values are the secret name and key
4380 ## Cannot be used with additionalScrapeConfigs
4381 additionalScrapeConfigsSecret: {}
4386 ## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
4387 ## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
4388 additionalPrometheusSecretsAnnotations: {}
4389 ## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
4390 ## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config.
4391 ## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
4392 ## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
4393 ## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
4394 ## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
4396 additionalAlertManagerConfigs: []
4397 # - consul_sd_configs:
4398 # - server: consul.dev.test:8500
4401 # tag_separator: ','
4403 # - metrics-prometheus-alertmanager
4405 ## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
4406 ## them separately from the helm deployment, you can use this section.
4407 ## Expected values are the secret name and key
4408 ## Cannot be used with additionalAlertManagerConfigs
4409 additionalAlertManagerConfigsSecret: {}
4414 ## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
4415 ## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
4416 ## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
4417 ## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
4418 ## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
4419 ## configs are going to break Prometheus after the upgrade.
4421 additionalAlertRelabelConfigs: []
4423 # regex: prometheus_replica
4427 ## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
4428 ## them separately from the helm deployment, you can use this section.
4429 ## Expected values are the secret name and key
4430 ## Cannot be used with additionalAlertRelabelConfigs
4431 additionalAlertRelabelConfigsSecret: {}
4435 ## SecurityContext holds pod-level security attributes and common container settings.
4436 ## This defaults to non root user with uid 1000 and gid 2000.
4437 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md
4445 type: RuntimeDefault
4446 ## DNS configuration for Prometheus.
4447 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
4449 ## DNS policy for Prometheus.
4450 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
4452 ## Priority class assigned to the Pods
4454 priorityClassName: ""
4455 ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
4456 ## This section is experimental, it may change significantly without deprecation notice in any release.
4457 ## This is experimental and may change significantly without backward compatibility in any release.
4458 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosspec
4461 # image: quay.io/thanos/thanos
4462 # secretProviderClass:
4466 # - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
4467 # fileName: "objstore.yaml"
4468 ## ObjectStorageConfig configures object storage in Thanos.
4469 # objectStorageConfig:
4470 # # use existing secret, if configured, objectStorageConfig.secret will not be used
4471 # existingSecret: {}
4474 # # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
4475 # # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
4476 # # https://thanos.io/tip/thanos/storage.md/#s3
4486 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
4487 ## if using proxy extraContainer update targetPort with proxy container port
4490 # - name: oauth-proxy
4491 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.5
4493 # - --upstream=http://127.0.0.1:9090
4494 # - --http-address=0.0.0.0:8081
4495 # - --metrics-address=0.0.0.0:8082
4498 # - containerPort: 8081
4501 # - containerPort: 8082
4502 # name: oauth-metrics
4506 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4507 ## (permissions, dir tree) on mounted volumes before starting prometheus
4509 ## PortName to use for Prometheus.
4511 portName: "http-web"
4512 ## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
4513 ## on the file system of the Prometheus container e.g. bearer token files.
4514 arbitraryFSAccessThroughSMs: false
4515 ## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
4516 ## or PodMonitor to true, this overrides honor_labels to false.
4517 overrideHonorLabels: false
4518 ## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
4519 overrideHonorTimestamps: false
4520 ## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
4521 ## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
4522 ## and servicemonitors will be installed in the default service namespace.
4523 ## Defaults to false.
4524 ignoreNamespaceSelectors: false
4525 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
4526 ## The label value will always be the namespace of the object that is being created.
4527 ## Disabled by default
4528 enforcedNamespaceLabel: ""
4529 ## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
4530 ## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
4531 ## Deprecated, use `excludedFromEnforcement` instead
4532 prometheusRulesExcludedFromEnforce: []
4533 ## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
4534 ## to be excluded from enforcing a namespace label of origin.
4535 ## Works only if enforcedNamespaceLabel set to true.
4536 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#objectreference
4537 excludedFromEnforcement: []
4538 ## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
4539 ## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
4540 ## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
4541 ## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
4543 # Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
4544 # Set to 'false' to disable global sample_limit. or set to a number to override the default value.
4546 ## TargetLimit defines a global limit on the number of scraped targets. 0 means no limit.
4548 ## Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit.
4550 ## Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit.
4551 labelNameLengthLimit: 0
4552 ## Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit.
4553 labelValueLengthLimit: 0
4554 ## Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
4555 keepDroppedTargets: 0
4556 ## BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB.
4558 ## EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any
4559 ## value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit.
4560 enforcedBodySizeLimit: ""
4561 # EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
4562 # The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
4563 # is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
4564 enforcedKeepDroppedTargets: 0
4565 ## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
4566 ## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
4567 ## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
4568 enforcedSampleLimit: false
4569 ## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
4570 ## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
4571 ## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
4572 ## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
4573 enforcedTargetLimit: false
4574 ## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
4575 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4576 ## 2.27.0 and newer.
4577 enforcedLabelLimit: false
4578 ## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
4579 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4580 ## 2.27.0 and newer.
4581 enforcedLabelNameLengthLimit: false
4582 ## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
4583 ## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
4584 ## versions 2.27.0 and newer.
4585 enforcedLabelValueLengthLimit: false
4586 ## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
4587 ## in Prometheus so it may change in any upcoming release.
4588 allowOverlappingBlocks: false
4589 ## Specifies the validation scheme for metric and label names.
4590 ## Supported values are: Legacy, UTF8
4591 nameValidationScheme: ""
4592 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
4593 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
4595 ## Duration in seconds the pod needs to terminate gracefully.
4596 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4597 terminationGracePeriodSeconds: ~
4598 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
4599 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
4600 # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
4601 # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
4603 ## Use the host's user namespace for Prometheus pods.
4604 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
4606 # HostAlias holds the mapping between IP and hostnames that will be injected
4607 # as an entry in the pod's hosts file.
4614 ## TracingConfig configures tracing in Prometheus.
4615 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheustracingconfig
4617 ## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
4618 ## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role.
4619 serviceDiscoveryRole: ""
4620 ## EnableServiceLinks indicates whether information about services should be injected into the pod's environment
4621 ## variables. Uses the operator/Kubernetes default when left unset (~).
4622 enableServiceLinks: ~
4623 ## Set the scheduler name to use for the Prometheus pods.
4625 ## Specifies the character escaping scheme applied to metric and label names.
4626 ## Supported values are: AllowUTF8, Underscores, Dots, Values
4627 nameEscapingScheme: ""
4628 ## Defines the strategy used to reload the Prometheus configuration.
4629 ## Supported values are: HTTP, ProcessSignal
4631 ## Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards.
4632 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
4634 ## Configuration of the Prometheus rules' engine. Changing these triggers a restart of the pods.
4635 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Rules
4638 # forOutageTolerance: 1h
4639 # forGracePeriod: 10m
4642 ## RuntimeConfig configures the values for the Prometheus process behavior.
4646 ## Defines the sharding strategy applied by the operator.
4647 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy
4648 shardingStrategy: {}
4649 ## Defines the retention policy for the resources of stale shards after a scale-down.
4650 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy
4651 shardRetentionPolicy: {}
4652 ## List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0].
4653 remoteWriteReceiverMessageVersions: []
4654 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4655 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4656 podManagementPolicy: ""
4657 ## Update strategy for the StatefulSet.
4658 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4660 # type: RollingUpdate
4664 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4665 additionalConfig: {}
4666 ## Additional configuration which is not covered by the properties above.
4667 ## Useful, if you need advanced templating inside alertmanagerSpec.
4668 ## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
4669 additionalConfigString: ""
4670 ## Defines the maximum time that the `prometheus` container's startup probe
4671 ## will wait before being considered failed. The startup probe will return
4672 ## success after the WAL replay is complete. If set, the value should be
4673 ## greater than 60 (seconds). Otherwise it will be equal to 900 seconds (15
4675 maximumStartupDurationSeconds: 0
4676 ## Set default scrapeProtocols for Prometheus instances
4677 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#scrapeprotocolstring-alias
4679 additionalRulesForClusterRole: []
4680 # - apiGroups: [ "" ]
4683 # verbs: [ "get", "list", "watch" ]
4685 ## Additional ServiceMonitors to deploy as a list or map.
4686 ## Maps allow individual monitors and their fields to be merged across values files.
4687 ## Set a map entry to null to remove it when overriding values.
4688 ## The map key is used as the name unless an explicit name is set.
4689 ## Nested lists such as endpoints are replaced when overridden.
4691 additionalServiceMonitors: null
4696 # app: example-service
4700 ## List example and available fields:
4701 ## Name of the ServiceMonitor to create (required for list entries)
4705 ## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4708 # additionalLabels: {}
4710 ## Service label for use in assembling a job name of the form <label value>-<port>
4711 ## If no label is specified, the service name is used.
4715 ## labels to transfer from the kubernetes service to the target
4719 ## labels to transfer from the kubernetes pods to the target
4721 # podTargetLabels: []
4723 ## Label selector for services to which this ServiceMonitor applies
4726 ## Example which selects all services to be monitored
4727 ## with label "monitoredby" with values any of "example-service-1" or "example-service-2"
4729 # - key: "monitoredby"
4732 # - example-service-1
4733 # - example-service-2
4735 ## label selector for services
4739 ## Namespaces from which services are selected
4741 # namespaceSelector:
4742 ## Match any namespace
4746 ## Explicit list of namespace names to select
4750 ## Endpoints of the selected service to be monitored
4753 ## Name of the endpoint's service port
4754 ## Mutually exclusive with targetPort
4757 ## Name or number of the endpoint's target port
4758 ## Mutually exclusive with port
4761 ## File containing bearer token to be used when scraping targets
4763 # bearerTokenFile: ""
4765 ## Interval at which metrics should be scraped
4769 ## HTTP path to scrape for metrics
4773 ## HTTP scheme to use for scraping
4777 ## TLS configuration to use when scraping the endpoint
4781 ## Path to the CA file
4785 ## Path to client certificate file
4789 ## Skip certificate verification
4791 # insecureSkipVerify: false
4793 ## Path to client key file
4797 ## Server name used to verify host name
4801 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4802 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4804 # metricRelabelings: []
4806 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4807 # sourceLabels: [__name__]
4809 ## RelabelConfigs to apply to samples before scraping
4810 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4813 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4816 # targetLabel: nodename
4820 ## Fallback scrape protocol used by Prometheus for scraping metrics
4821 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4823 # fallbackScrapeProtocol: ""
4825 ## Attaches node metadata to the discovered targets
4826 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4831 ## Additional PodMonitors to deploy as a list or map.
4832 ## Maps allow individual monitors and their fields to be merged across values files.
4833 ## Set a map entry to null to remove it when overriding values.
4834 ## The map key is used as the name unless an explicit name is set.
4835 ## Nested lists such as podMetricsEndpoints are replaced when overridden.
4837 additionalPodMonitors: null
4843 # podMetricsEndpoints:
4845## List example and available fields:
4846## Name of the PodMonitor to create (required for list entries)
4850## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4853# additionalLabels: {}
4855## Pod label for use in assembling a job name of the form <label value>-<port>
4856## If no label is specified, the pod endpoint name is used.
4860## Label selector for pods to which this PodMonitor applies
4863## Example which selects all Pods to be monitored
4864## with label "monitoredby" with values any of "example-pod-1" or "example-pod-2"
4866# - key: "monitoredby"
4872## label selector for pods
4876## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4878# podTargetLabels: {}
4880## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4884## Namespaces from which pods are selected
4887## Match any namespace
4891## Explicit list of namespace names to select
4895## Endpoints of the selected pods to be monitored
4896## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmetricsendpoint
4898# podMetricsEndpoints: []
4900## Fallback scrape protocol used by Prometheus for scraping metrics
4901## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4903# fallbackScrapeProtocol: ""
4905## Attaches node metadata to the discovered targets
4906## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4911## Configuration for thanosRuler
4912## ref: https://thanos.io/tip/components/rule.md/
4915 ## Deploy thanosRuler
4918 ## Annotations for ThanosRuler
4921 ## Service account for ThanosRuler to use.
4922 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
4928 ## Configure pod disruption budgets for ThanosRuler
4929 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
4931 podDisruptionBudget:
4934 # maxUnavailable: ""
4935 unhealthyPodEvictionPolicy: AlwaysAllow
4938 ingressClassName: ""
4941 ## Hosts must be provided if Ingress is enabled.
4944 # - thanosruler.domain.com
4946 ## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
4951 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
4952 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
4953 # pathType: ImplementationSpecific
4955 ## TLS configuration for ThanosRuler Ingress
4956 ## Secret must be manually created in the namespace
4959 # - secretName: thanosruler-general-tls
4961 # - thanosruler.example.com
4962 # -- BETA: Configure the gateway routes for the chart here.
4963 # More routes can be added by adding a dictionary key like the 'main' route.
4964 # Be aware that this is an early beta of this feature,
4965 # kube-prometheus-stack does not guarantee this works and is subject to change.
4966 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
4967 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
4970 # -- Enables or disables the route
4972 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
4973 apiVersion: gateway.networking.k8s.io/v1
4974 # -- Set the route kind
4975 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
4980 # - my-filter.example.com
4984 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
4985 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
4986 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
4987 httpsRedirect: false
4992 ## Filters define the filters that are applied to requests that match this rule.
4994 ## Timeouts for the generated HTTPRoute backend rule.
4995 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
4998 # backendRequest: 60s
5000 ## Session persistence configuration for the route rule.
5001 sessionPersistence: {}
5002 # sessionName: route
5004 # absoluteTimeout: 12h
5006 # lifetimeType: Permanent
5008 ## Additional custom rules that can be added to the route
5010 ## Configuration for ThanosRuler service
5019 ipFamilies: ["IPv6", "IPv4"]
5020 ipFamilyPolicy: "PreferDualStack"
5021 ## Port for ThanosRuler Service to listen on
5024 ## To be used with a proxy extraContainer port
5027 ## Port to expose on each node
5028 ## Only used if service.type is 'NodePort'
5031 ## List of IP addresses at which the Prometheus server service is available
5032 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
5035 ## Additional ports to open for ThanosRuler service
5039 loadBalancerSourceRanges: []
5040 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
5042 externalTrafficPolicy: Cluster
5046 ## Configuration for creating a ServiceMonitor for the ThanosRuler service
5049 ## If true, create a serviceMonitor for thanosRuler
5052 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
5055 ## Additional labels
5057 additionalLabels: {}
5058 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
5061 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
5064 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
5067 ## 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.
5069 labelNameLengthLimit: 0
5070 ## 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.
5072 labelValueLengthLimit: 0
5073 ## proxyUrl: URL of a proxy that should be used for scraping.
5076 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
5078 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
5079 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
5082 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
5083 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5085 metricRelabelings: []
5087 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
5088 # sourceLabels: [__name__]
5090 ## RelabelConfigs to apply to samples before scraping
5091 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5094 # - sourceLabels: [__meta_kubernetes_pod_node_name]
5097 # targetLabel: nodename
5101 ## Additional Endpoints
5103 additionalEndpoints: []
5104 # - port: oauth-metrics
5106 ## Settings affecting thanosRulerpec
5107 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerspec
5110 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
5111 ## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
5116 ## Image of ThanosRuler
5120 repository: chainguard-private/thanos
5122 sha: sha256:c4533dd8411a0f1c7b5d0a67cad1d481243cd7d76f0c9a01a326cbdadb345740
5123 ## Namespaces to be selected for PrometheusRules discovery.
5124 ## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
5125 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage
5127 ruleNamespaceSelector: {}
5128 ## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
5129 ## prometheus resource to be created with selectors based on values in the helm deployment,
5130 ## which will also match the PrometheusRule resources created
5132 ruleSelectorNilUsesHelmValues: true
5133 ## PrometheusRules to be selected for target discovery.
5134 ## If {}, select all PrometheusRules
5137 ## Example which select all PrometheusRules resources
5138 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
5147 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
5150 # role: example-rules
5152 ## Define Log Format
5153 # Use logfmt (default) or json logging
5155 ## Log level for ThanosRuler to be configured with.
5158 ## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
5159 ## running cluster equal to the expected size.
5161 ## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
5162 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
5165 ## Interval between consecutive evaluations.
5167 evaluationInterval: ""
5168 ## Storage is the definition of how storage will be used by the ThanosRuler instances.
5169 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
5172 # volumeClaimTemplate:
5174 # storageClassName: gluster
5175 # accessModes: ["ReadWriteOnce"]
5181 ## AlertmanagerConfig define configuration for connecting to alertmanager.
5182 ## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
5183 alertmanagersConfig:
5184 # use existing secret, if configured, alertmanagersConfig.secret will not be used
5188 # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
5189 # https://thanos.io/tip/components/rule.md/#alertmanager
5195 # username: some_user
5196 # password: some_pass
5198 # - alertmanager.thanos.io
5201 ## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
5202 ## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
5205 ## 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
5208 ## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
5209 ## will be used as value for externalPrefix
5210 externalPrefixNilUsesHelmValues: true
5211 ## 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,
5212 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
5215 ## ObjectStorageConfig configures object storage in Thanos
5216 objectStorageConfig:
5217 # use existing secret, if configured, objectStorageConfig.secret will not be used
5221 # will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
5222 # https://thanos.io/tip/thanos/storage.md/#s3
5231 ## Labels by name to drop before sending to alertmanager
5232 ## Maps to the --alert.label-drop flag of thanos ruler.
5234 ## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
5235 ## Maps to the --query flag of thanos ruler.
5237 ## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
5238 ## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
5240 # use existing secret, if configured, queryConfig.secret will not be used
5244 # render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
5245 # https://thanos.io/tip/components/rule.md/#query-api
5249 # username: some_user
5250 # password: some_pass
5255 ## Labels configure the external label pairs to ThanosRuler. A default replica
5256 ## label `thanos_ruler_replica` will be always added as a label with the value
5257 ## of the pod's name and it will be dropped in the alerts.
5259 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
5262 ## Allows setting additional arguments for the ThanosRuler container
5263 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosruler
5266 # - name: remote-write.config
5269 # - "name": "receiver-0"
5270 # "remote_timeout": "30s"
5271 # "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
5273 ## Define which Nodes the Pods are scheduled on.
5274 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
5277 kubernetes.io/os: linux
5278 ## Define resources requests and limits for single Pods.
5279 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5285 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
5286 ## 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.
5287 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
5288 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
5290 podAntiAffinity: "soft"
5291 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
5292 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
5294 podAntiAffinityTopologyKey: kubernetes.io/hostname
5295 ## Assign custom affinity rules to the thanosRuler instance
5296 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
5300 # requiredDuringSchedulingIgnoredDuringExecution:
5301 # nodeSelectorTerms:
5302 # - matchExpressions:
5303 # - key: kubernetes.io/e2e-az-name
5309 ## If specified, the pod's tolerations.
5310 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
5316 # effect: "NoSchedule"
5318 ## If specified, the pod's topology spread constraints.
5319 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
5321 topologySpreadConstraints: []
5323 # topologyKey: topology.kubernetes.io/zone
5324 # whenUnsatisfiable: DoNotSchedule
5329 ## SecurityContext holds pod-level security attributes and common container settings.
5330 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
5331 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5339 type: RuntimeDefault
5340 ## Use the host's user namespace for ThanosRuler pods.
5341 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
5343 ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
5344 ## Note this is only for the ThanosRuler UI, not the gossip communication.
5347 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
5350 ## Additional environment variables to set on the ThanosRuler container.
5351 ## This is rendered through the Prometheus Operator strategic merge patch.
5357 # Additional volumes on the output StatefulSet definition.
5359 # Additional VolumeMounts on the output StatefulSet definition.
5361 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
5362 ## (permissions, dir tree) on mounted volumes before starting prometheus
5364 ## Priority class assigned to the Pods
5366 priorityClassName: ""
5367 ## PortName to use for ThanosRuler.
5370 ## Scheduler to use for Pod scheduling, defaulting to the Kubernetes default scheduler.
5373 ## Duration in seconds the pod needs to terminate gracefully.
5374 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
5375 terminationGracePeriodSeconds: ~
5376 ## WebTLSConfig defines the TLS parameters for HTTPS
5377 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec
5379 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
5380 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
5381 podManagementPolicy: ""
5382 ## Update strategy for the StatefulSet.
5383 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
5385 # type: RollingUpdate
5389 ## Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set.
5391 ## Image pull policy for the Thanos Ruler container.
5393 ## EnableFeatures API enables access to Thanos Ruler disabled features.
5395 ## EnableServiceLinks indicates whether information about services should be injected into the
5396 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
5397 enableServiceLinks: ~
5398 ## Minimum number of seconds for which a newly created pod should be ready without any of its
5399 ## containers crashing/restarting for it to be considered available.
5401 ## Defines the DNS configuration for the pods.
5406 # - ns1.svc.cluster-domain.example
5411 ## Defines the DNS policy for the pods.
5413 ## Pods' hostAliases configuration
5414 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
5420 ## Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode.
5421 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec
5423 ## Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument.
5425 # use existing secret, if configured, tracingConfig.secret will not be used
5429 # render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set
5431 ## Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig.
5432 tracingConfigFile: ""
5433 ## Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument.
5434 alertRelabelConfigs:
5435 # use existing secret, if configured, alertRelabelConfigs.secret will not be used
5439 # render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set
5441 ## Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs.
5442 alertRelabelConfigFile: ""
5443 ## Configures the gRPC server TLS for Thanos Ruler.
5444 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig
5445 grpcServerTlsConfig: {}
5446 ## Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig.
5447 objectStorageConfigFile: ""
5448 ## Number of concurrent rule evaluations.
5449 ruleConcurrentEval: ~
5450 ## Maximum time to tolerate outage for restoring "for" state of alert.
5451 ruleOutageTolerance: ""
5452 ## Minimum duration between alert and restored "for" state. Maintained only for alerts with a configured "for"
5453 ## time greater than the grace period.
5455 ## The default rule group's query offset duration to shift the evaluation time of rules backwards.
5456 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
5458 ## Minimum amount of time to wait before resending an alert to Alertmanager.
5460 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric.
5461 enforcedNamespaceLabel: ""
5462 ## List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel).
5463 ## Can be a list of objects, or a string that is passed through tpl.
5464 excludedFromEnforcement: []
5465 ## Additional configuration which is not covered by the properties above. (passed through tpl)
5466 additionalConfig: {}
5467 ## Additional configuration which is not covered by the properties above.
5468 ## Useful, if you need advanced templating
5469 additionalConfigString: ""
5470 ## ExtraSecret can be used to store various data in an extra secret
5471 ## (use it for example to store hashed basic auth credentials)
5473 ## if not set, name will be auto generated
5478 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
5479 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
5480## 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.
5482cleanPrometheusOperatorObjectNames: false
5483## Extra manifests to deploy. Can be of type dict or list.
5484## If dict, keys are ignored and only values are used.
5485## Items contained within extraObjects can be defined as dict or string and are passed through tpl.
5491# name: prometheus-extra
5493# extra-data: "value"
5495# can also be defined as a string, useful for templating field names
5503# {{- range $key, $value := .Values.commonLabels }}
5504# {{ $key }}: {{ $value }}
5507# plaintext: Zm9vYmFy
5508# templated: '{{ print "foobar" | upper | b64enc }}'