1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
16## @param global.imageRegistry Global Docker image registry
17## @param global.imagePullSecrets Global Docker registry secret names as an array
18## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
24 ## - myRegistryKeySecretName
27 defaultStorageClass: ""
28 ## Security parameters
31 ## @param global.security.allowInsecureImages Allows skipping image verification
32 allowInsecureImages: false
33 ## Compatibility adaptations for Kubernetes platforms
36 ## Compatibility adaptations for Openshift
39 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
41 adaptSecurityContext: auto
43## @section Common parameters
46## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
49## @param nameOverride String to partially override `kube-prometheus.name` template with a string (will prepend the release name)
52## @param fullnameOverride String to fully override `kube-prometheus.fullname` template with a string
55## @param namespaceOverride String to fully override common.names.namespace
58## @param commonAnnotations Annotations to add to all deployed objects
61## @param commonLabels Labels to add to all deployed objects
64## @param extraDeploy Array of extra objects to deploy with the release
67## @param clusterDomain Kubernetes cluster domain name
69clusterDomain: cluster.local
70## @section Prometheus Operator Parameters
73 ## @param operator.enabled Deploy Prometheus Operator to the cluster
76 ## Iamguarded Prometheus Operator image version
77 ## @param operator.image.registry [default: REGISTRY_NAME] Prometheus Operator image registry
78 ## @param operator.image.repository [default: REPOSITORY_NAME/prometheus-operator] Prometheus Operator image repository
79 ## @skip operator.image.tag Prometheus Operator image tag (immutable tags are recommended)
80 ## @param operator.image.digest Prometheus Operator image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
81 ## @param operator.image.pullPolicy Prometheus Operator image pull policy
82 ## @param operator.image.pullSecrets Specify docker-registry secret names as an array
86 repository: chainguard-private/prometheus-operator-iamguarded
89 ## Specify a imagePullPolicy
90 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
92 pullPolicy: IfNotPresent
93 ## Optionally specify an array of imagePullSecrets.
94 ## Secrets must be manually created in the namespace.
95 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
98 ## - myRegistryKeySecretName
101 ## @param operator.extraArgs Additional arguments passed to Prometheus Operator
104 ## - --namespaces={{ include "common.names.namespace" . }}
107 ## @param operator.command Override default container command (useful when using custom images)
110 ## @param operator.args Override default container args (useful when using custom images)
113 ## @param operator.lifecycleHooks for the Prometheus Operator container(s) to automate configuration before or after startup
116 ## @param operator.extraEnvVars Array with extra environment variables to add to Prometheus Operator nodes
123 ## @param operator.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Prometheus Operator nodes
126 ## @param operator.extraEnvVarsSecret Name of existing Secret containing extra env vars for Prometheus Operator nodes
128 extraEnvVarsSecret: ""
129 ## @param operator.extraVolumes Optionally specify extra list of additional volumes for the Prometheus Operator pod(s)
132 ## @param operator.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Prometheus Operator container(s)
134 extraVolumeMounts: []
135 ## @param operator.sidecars Add additional sidecar containers to the Prometheus Operator pod(s)
138 ## - name: your-image-name
140 ## imagePullPolicy: Always
143 ## containerPort: 1234
146 ## @param operator.initContainers Add additional init containers to the Prometheus Operator pod(s)
147 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
150 ## - name: your-image-name
152 ## imagePullPolicy: Always
153 ## command: ['sh', '-c', 'echo "hello world"']
156 ## @param operator.automountServiceAccountToken Mount Service Account token in pod
158 automountServiceAccountToken: true
159 ## @param operator.hostAliases Add deployment host aliases
160 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
163 ## Service account for Prometheus Operator to use.
164 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
167 ## @param operator.serviceAccount.create Specify whether to create a ServiceAccount for Prometheus Operator
170 ## @param operator.serviceAccount.name The name of the ServiceAccount to create
171 ## If not set and create is true, a name is generated using the kube-prometheus.operator.fullname template
174 ## @param operator.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
176 automountServiceAccountToken: false
177 ## @param operator.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
180 ## @param operator.schedulerName Name of the Kubernetess scheduler (other than default)
181 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
184 ## @param operator.terminationGracePeriodSeconds In seconds, time the given to the Prometheus Operator pod needs to terminate gracefully
185 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
187 terminationGracePeriodSeconds: ""
188 ## @param operator.topologySpreadConstraints Topology Spread Constraints for pod assignment
189 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
190 ## The value is evaluated as a template
192 topologySpreadConstraints: []
193 ## Prometheus Operator pods' Security Context
194 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
195 ## @param operator.podSecurityContext.enabled Enable pod security context
196 ## @param operator.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
197 ## @param operator.podSecurityContext.sysctls Set kernel settings using the sysctl interface
198 ## @param operator.podSecurityContext.supplementalGroups Set filesystem extra groups
199 ## @param operator.podSecurityContext.fsGroup Group ID for the container filesystem
203 fsGroupChangePolicy: Always
205 supplementalGroups: []
207 ## Prometheus Operator containers' Security Context (only main container)
208 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
209 ## @param operator.containerSecurityContext.enabled Enabled containers' Security Context
210 ## @param operator.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
211 ## @param operator.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
212 ## @param operator.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
213 ## @param operator.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
214 ## @param operator.containerSecurityContext.privileged Set container's Security Context privileged
215 ## @param operator.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
216 ## @param operator.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
217 ## @param operator.containerSecurityContext.capabilities.drop List of capabilities to be dropped
218 ## @param operator.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
220 containerSecurityContext:
227 readOnlyRootFilesystem: true
228 allowPrivilegeEscalation: false
232 type: "RuntimeDefault"
233 ## Prometheus Operator Service
236 ## @param operator.service.type Kubernetes service type
239 ## @param operator.service.ports.http Prometheus Operator service port
243 ## @param operator.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` for headless service
248 ## @param operator.service.nodePorts.http Kubernetes Service nodePort
249 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
255 ## @param operator.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
256 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
259 ## @param operator.service.loadBalancerClass Operator service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
260 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
262 loadBalancerClass: ""
263 ## @param operator.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
264 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
266 ## loadBalancerSourceRanges:
269 loadBalancerSourceRanges: []
270 ## @param operator.service.externalTrafficPolicy Enable client source IP preservation
271 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
272 ## There are two available options: Cluster (default) and Local.
273 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
275 externalTrafficPolicy: Cluster
276 ## @param operator.service.healthCheckNodePort Specifies the health check node port (numeric port number) for the service if `externalTrafficPolicy` is set to Local.
277 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
279 healthCheckNodePort: ""
280 ## @param operator.service.labels Additional labels for Prometheus Operator service
283 ## @param operator.service.annotations Additional annotations for Prometheus Operator service
286 ## @param operator.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
289 ## @param operator.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
290 ## If "ClientIP", consecutive client requests will be directed to the same Pod
291 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
293 sessionAffinity: None
294 ## @param operator.service.sessionAffinityConfig Additional settings for the sessionAffinity
295 ## sessionAffinityConfig:
297 ## timeoutSeconds: 300
299 sessionAffinityConfig: {}
301 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
304 ## @param operator.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
307 ## @param operator.networkPolicy.allowExternal Don't require server label for connections
308 ## The Policy model to apply. When set to false, only pods with the correct
309 ## server label will have network access to the ports server is listening
310 ## on. When true, server will accept connections from any source
311 ## (with the correct destination port).
314 ## @param operator.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
316 allowExternalEgress: true
317 ## @param operator.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
327 ## - matchExpressions:
333 ## @param operator.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
343 ## - matchExpressions:
350 ## @param operator.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
351 ## @param operator.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
353 ingressNSMatchLabels: {}
354 ingressNSPodMatchLabels: {}
355 ## Create a servicemonitor for the operator
358 ## @param operator.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus Operator
361 ## @param operator.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
364 ## @param operator.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
365 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
368 ## @param operator.serviceMonitor.metricRelabelings Metric relabeling
369 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
371 metricRelabelings: []
372 ## @param operator.serviceMonitor.relabelings Relabel configs
373 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
376 ## @param operator.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
377 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
380 ## @param operator.serviceMonitor.labels Extra labels for the ServiceMonitor
383 ## @param operator.serviceMonitor.annotations Extra annotations for the ServiceMonitor
386 ## @param operator.serviceMonitor.extraParameters Any extra parameter to be added to the endpoint configured in the ServiceMonitor
387 ## (e.g. tlsConfig for further customization of the HTTPS behavior)
388 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Endpoint
391 ## @param operator.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
394 ## @param operator.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if operator.resources is set (operator.resources is recommended for production).
396 resourcesPreset: "nano"
397 ## @param operator.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
406 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
409 ## @param operator.podAffinityPreset Pod affinity preset
410 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
412 podAffinityPreset: ""
413 ## @param operator.podAntiAffinityPreset Prometheus Operator Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
414 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
416 podAntiAffinityPreset: soft
417 ## Node affinity preset
418 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
421 ## @param operator.nodeAffinityPreset.type Prometheus Operator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
424 ## @param operator.nodeAffinityPreset.key Prometheus Operator Node label key to match Ignored if `affinity` is set.
426 ## key: "kubernetes.io/e2e-az-name"
429 ## @param operator.nodeAffinityPreset.values Prometheus Operator Node label values to match. Ignored if `affinity` is set.
436 ## @param operator.affinity Prometheus Operator Affinity for pod assignment
437 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
438 ## Note: operator.podAffinityPreset, operator.podAntiAffinityPreset, and operator.nodeAffinityPreset will be ignored when it's set
441 ## @param operator.nodeSelector Prometheus Operator Node labels for pod assignment
442 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
445 ## @param operator.tolerations Prometheus Operator Tolerations for pod assignment
446 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
449 ## @param operator.podAnnotations Annotations for Prometheus Operator pods
450 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
453 ## @param operator.podLabels Extra labels for Prometheus Operator pods
454 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
457 ## @param operator.priorityClassName Priority class assigned to the Pods
459 priorityClassName: ""
460 ## Configure extra options for liveness probe
461 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
462 ## @param operator.livenessProbe.enabled Turn on and off liveness probe
463 ## @param operator.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
464 ## @param operator.livenessProbe.periodSeconds How often to perform the probe
465 ## @param operator.livenessProbe.timeoutSeconds When the probe times out
466 ## @param operator.livenessProbe.failureThreshold Minimum consecutive failures for the probe
467 ## @param operator.livenessProbe.successThreshold Minimum consecutive successes for the probe
471 initialDelaySeconds: 120
476 ## Configure extra options for readiness probe
477 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
478 ## @param operator.readinessProbe.enabled Turn on and off readiness probe
479 ## @param operator.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
480 ## @param operator.readinessProbe.periodSeconds How often to perform the probe
481 ## @param operator.readinessProbe.timeoutSeconds When the probe times out
482 ## @param operator.readinessProbe.failureThreshold Minimum consecutive failures for the probe
483 ## @param operator.readinessProbe.successThreshold Minimum consecutive successes for the probe
487 initialDelaySeconds: 30
492 ## Configure extra options for startup probe
493 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
494 ## @param operator.startupProbe.enabled Turn on and off startup probe
495 ## @param operator.startupProbe.initialDelaySeconds Delay before startup probe is initiated
496 ## @param operator.startupProbe.periodSeconds How often to perform the probe
497 ## @param operator.startupProbe.timeoutSeconds When the probe times out
498 ## @param operator.startupProbe.failureThreshold Minimum consecutive failures for the probe
499 ## @param operator.startupProbe.successThreshold Minimum consecutive successes for the probe
503 initialDelaySeconds: 30
508 ## @param operator.customLivenessProbe Custom livenessProbe that overrides the default one
510 customLivenessProbe: {}
511 ## @param operator.customReadinessProbe Custom readinessProbe that overrides the default one
513 customReadinessProbe: {}
514 ## @param operator.customStartupProbe Custom startupProbe that overrides the default one
516 customStartupProbe: {}
517 ## @param operator.logLevel Log level for Prometheus Operator
520 ## @param operator.logFormat Log format for Prometheus Operator
523 ## @param operator.configReloaderResources Set the prometheus config reloader side-car CPU and memory requests and limits.
524 ## configReloaderResources:
532 configReloaderResources: {}
533 ## @param operator.kubeletService.enabled If true, the operator will create and maintain a service for scraping kubelets
534 ## @param operator.kubeletService.namespace Namespace to deploy the kubelet service
538 namespace: kube-system
539 ## Prometheus Configmap-reload image to use for reloading configmaps
541 prometheusConfigReloader:
542 ## @param operator.prometheusConfigReloader.image Prometheus Config Reloader image. If not set, the same as `operator.image.registry`
550 ## Prometheus config reload container's securityContext
551 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
552 ## @param operator.prometheusConfigReloader.containerSecurityContext.enabled Enabled containers' Security Context
553 ## @param operator.prometheusConfigReloader.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
554 ## @param operator.prometheusConfigReloader.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
555 ## @param operator.prometheusConfigReloader.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
556 ## @param operator.prometheusConfigReloader.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
557 ## @param operator.prometheusConfigReloader.containerSecurityContext.privileged Set container's Security Context privileged
558 ## @param operator.prometheusConfigReloader.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
559 ## @param operator.prometheusConfigReloader.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
560 ## @param operator.prometheusConfigReloader.containerSecurityContext.capabilities.drop List of capabilities to be dropped
561 ## @param operator.prometheusConfigReloader.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
563 containerSecurityContext:
570 readOnlyRootFilesystem: true
571 allowPrivilegeEscalation: false
575 type: "RuntimeDefault"
576 ## Configure extra options for liveness probe
577 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
578 ## @param operator.prometheusConfigReloader.livenessProbe.enabled Turn on and off liveness probe
579 ## @param operator.prometheusConfigReloader.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
580 ## @param operator.prometheusConfigReloader.livenessProbe.periodSeconds How often to perform the probe
581 ## @param operator.prometheusConfigReloader.livenessProbe.timeoutSeconds When the probe times out
582 ## @param operator.prometheusConfigReloader.livenessProbe.failureThreshold Minimum consecutive failures for the probe
583 ## @param operator.prometheusConfigReloader.livenessProbe.successThreshold Minimum consecutive successes for the probe
587 initialDelaySeconds: 10
592 ## Configure extra options for readiness probe
593 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
594 ## @param operator.prometheusConfigReloader.readinessProbe.enabled Turn on and off readiness probe
595 ## @param operator.prometheusConfigReloader.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
596 ## @param operator.prometheusConfigReloader.readinessProbe.periodSeconds How often to perform the probe
597 ## @param operator.prometheusConfigReloader.readinessProbe.timeoutSeconds When the probe times out
598 ## @param operator.prometheusConfigReloader.readinessProbe.failureThreshold Minimum consecutive failures for the probe
599 ## @param operator.prometheusConfigReloader.readinessProbe.successThreshold Minimum consecutive successes for the probe
603 initialDelaySeconds: 15
608 ## Restrict the namespaces that the operator watches
609 ## ref: `-namespaces` in https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/operator.md
610 ## @param operator.namespaces Optional comma-separated list of namespaces to watch (default=all).
613 ## Pod Disruption Budget configuration
614 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
615 ## @param operator.pdb.create Enable/disable a Pod Disruption Budget creation
616 ## @param operator.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
617 ## @param operator.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
623## @section Prometheus Parameters
626## Deploy a Prometheus instance
629 ## @param prometheus.enabled Deploy Prometheus to the cluster
632 ## Iamguarded Prometheus image version
633 ## @param prometheus.image.registry [default: REGISTRY_NAME] Prometheus image registry
634 ## @param prometheus.image.repository [default: REPOSITORY_NAME/prometheus] Prometheus image repository
635 ## @skip prometheus.image.tag Prometheus image tag (immutable tags are recommended)
636 ## @param prometheus.image.digest Prometheus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
637 ## @param prometheus.image.pullPolicy Prometheus image pull policy
638 ## @param prometheus.image.pullSecrets Specify docker-registry secret names as an array
642 repository: chainguard-private/prometheus-iamguarded
645 pullPolicy: IfNotPresent
646 ## Optionally specify an array of imagePullSecrets.
647 ## Secrets must be manually created in the namespace.
648 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
651 ## - myRegistryKeySecretName
654 ## @param prometheus.defaultRules.create Create default rules for Prometheus
655 ## @param prometheus.defaultRules.rules [object] Set of default rules for Prometheus that can be enabled/disabled
662 configReloaders: true
664 k8sContainerCpuUsageSecondsTotal: true
665 k8sContainerMemoryCache: true
666 k8sContainerMemoryRss: true
667 k8sContainerMemorySwap: true
668 k8sContainerResource: true
669 k8sContainerMemoryWorkingSetBytes: true
671 kubeApiserverAvailability: true
672 kubeApiserverBurnrate: true
673 kubeApiserverHistogram: true
674 kubeApiserverSlos: true
675 kubeControllerManager: true
678 kubePrometheusGeneral: true
679 kubePrometheusNodeRecording: true
681 kubernetesResources: true
682 kubernetesStorage: true
683 kubernetesSystem: true
684 kubeSchedulerAlerting: true
685 kubeSchedulerRecording: true
686 kubeStateMetrics: true
689 nodeExporterAlerting: true
690 nodeExporterRecording: true
692 prometheusOperator: true
693 ## Service account for Prometheus to use.
694 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
697 ## @param prometheus.serviceAccount.create Specify whether to create a ServiceAccount for Prometheus
700 ## @param prometheus.serviceAccount.name The name of the ServiceAccount to create
701 ## If not set and create is true, a name is generated using the kube-prometheus.prometheus.fullname template
704 ## @param prometheus.serviceAccount.annotations Additional annotations for created Prometheus ServiceAccount
706 ## eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/prometheus
709 ## @param prometheus.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
711 automountServiceAccountToken: false
712 ## Prometheus pods' Security Context
713 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
714 ## @param prometheus.podSecurityContext.enabled Enable security context
715 ## @param prometheus.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
716 ## @param prometheus.podSecurityContext.sysctls Set kernel settings using the sysctl interface
717 ## @param prometheus.podSecurityContext.supplementalGroups Set filesystem extra groups
718 ## @param prometheus.podSecurityContext.fsGroup Group ID for the container filesystem
722 fsGroupChangePolicy: Always
724 supplementalGroups: []
726 ## Prometheus containers' Security Context
727 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
728 ## @param prometheus.containerSecurityContext.enabled Enabled containers' Security Context
729 ## @param prometheus.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
730 ## @param prometheus.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
731 ## @param prometheus.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
732 ## @param prometheus.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
733 ## @param prometheus.containerSecurityContext.privileged Set container's Security Context privileged
734 ## @param prometheus.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
735 ## @param prometheus.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
736 ## @param prometheus.containerSecurityContext.capabilities.drop List of capabilities to be dropped
737 ## @param prometheus.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
739 containerSecurityContext:
746 readOnlyRootFilesystem: true
747 allowPrivilegeEscalation: false
751 type: "RuntimeDefault"
752 ## Configure pod disruption budgets for Prometheus
753 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
754 ## @param prometheus.pdb.create Create a pod disruption budget for Prometheus
755 ## @param prometheus.pdb.minAvailable Minimum number / percentage of pods that should remain scheduled
756 ## @param prometheus.pdb.maxUnavailable Maximum number / percentage of pods that may be made unavailable
763 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
766 ## @param prometheus.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
769 ## @param prometheus.networkPolicy.allowExternal Don't require server label for connections
770 ## The Policy model to apply. When set to false, only pods with the correct
771 ## server label will have network access to the ports server is listening
772 ## on. When true, server will accept connections from any source
773 ## (with the correct destination port).
776 ## @param prometheus.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
778 allowExternalEgress: true
779 ## @param prometheus.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
789 ## - matchExpressions:
795 ## @param prometheus.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
805 ## - matchExpressions:
812 ## @param prometheus.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
813 ## @param prometheus.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
815 ingressNSMatchLabels: {}
816 ingressNSPodMatchLabels: {}
817 ## Prometheus Service
820 ## @param prometheus.service.type Kubernetes service type
823 ## @param prometheus.service.ports.http Prometheus service port
827 ## @param prometheus.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` for headless service
828 ## e.g: clusterIP: None
831 ## @param prometheus.service.nodePorts.http Specify the nodePort value for the LoadBalancer and NodePort service types.
832 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
838 ## @param prometheus.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
839 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
842 ## @param prometheus.service.loadBalancerClass Prometheus service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
843 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
845 loadBalancerClass: ""
846 ## @param prometheus.service.loadBalancerSourceRanges Address that are allowed when service is `LoadBalancer`
847 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
849 ## loadBalancerSourceRanges:
852 loadBalancerSourceRanges: []
853 ## @param prometheus.service.externalTrafficPolicy Enable client source IP preservation
854 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
855 ## There are two available options: Cluster (default) and Local
856 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
858 externalTrafficPolicy: Cluster
859 ## @param prometheus.service.healthCheckNodePort Specifies the health check node port
860 ## if externalTrafficPolicy is set to Local.
861 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
863 healthCheckNodePort: ""
864 ## @param prometheus.service.labels Additional labels for Prometheus service (this value is evaluated as a template)
867 ## @param prometheus.service.annotations Additional annotations for Prometheus service (this value is evaluated as a template)
870 ## @param prometheus.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
871 ## If "ClientIP", consecutive client requests will be directed to the same Pod
872 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
874 sessionAffinity: None
875 ## @param prometheus.service.sessionAffinityConfig Additional settings for the sessionAffinity
876 ## sessionAffinityConfig:
878 ## timeoutSeconds: 300
880 sessionAffinityConfig: {}
882 ## @param prometheus.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus itself
885 ## @param prometheus.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
888 ## @param prometheus.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
889 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
892 ## @param prometheus.serviceMonitor.metricRelabelings Metric relabeling
893 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
895 metricRelabelings: []
896 ## @param prometheus.serviceMonitor.relabelings Relabel configs
897 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
900 ## @param prometheus.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
903 ## Configure the ingress resource that allows you to access the
904 ## Prometheus installation. Set up the URL
905 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
908 ## @param prometheus.ingress.enabled Enable ingress controller resource
911 ## @param prometheus.ingress.pathType Ingress Path type
913 pathType: ImplementationSpecific
914 ## @param prometheus.ingress.apiVersion Override API Version (automatically detected if not set)
917 ## @param prometheus.ingress.hostname Default host for the ingress resource
919 hostname: prometheus.local
920 ## @param prometheus.ingress.path The Path to Prometheus. You may need to set this to '/*' in order to use this with ALB ingress controllers
923 ## @param prometheus.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
924 ## For a full list of possible ingress annotations, please see
925 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
926 ## Use this parameter to set the required annotations for cert-manager, see
927 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
931 ## kubernetes.io/ingress.class: nginx
932 ## cert-manager.io/cluster-issuer: cluster-issuer-name
935 ## @param prometheus.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
936 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
937 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
940 ## @param prometheus.ingress.tls Enable TLS configuration for the hostname defined at prometheus.ingress.hostname parameter
941 ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.prometheus.ingress.hostname }}
942 ## You can use the prometheus.ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
945 ## @param prometheus.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
948 ## @param prometheus.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
949 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
951 ## - name: prometheus.local
955 ## @param prometheus.ingress.extraPaths Additional arbitrary path/backend objects
956 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
960 ## serviceName: ssl-redirect
961 ## servicePort: use-annotation
964 ## @param prometheus.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
965 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
968 ## - prometheus.local
969 ## secretName: prometheus.local-tls
972 ## @param prometheus.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
973 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
974 ## -----BEGIN RSA PRIVATE KEY-----
976 ## name should line up with a tlsSecret set further up
977 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
979 ## It is also possible to create and manage the certificates outside of this helm chart
980 ## Please see README.md for more information
983 ## - name: prometheus.local-tls
987 ## NOTE: the secret name MUST match {{ingress.hostname}}-tls to be used if selfSigned is false or no certManager is used
989 ## @param prometheus.ingress.extraRules Additional rules to be covered with this ingress record
990 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
993 ## - host: example.local
1003 ## @param prometheus.externalUrl External URL used to access Prometheus
1004 ## If not creating an ingress but still exposing the service some other way (like a proxy)
1005 ## let Prometheus know what its external URL is so that it can properly create links
1006 ## externalUrl: https://prometheus.example.com
1009 ## @param prometheus.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if prometheus.resources is set (prometheus.resources is recommended for production).
1011 resourcesPreset: "small"
1012 ## @param prometheus.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1021 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1024 ## @param prometheus.podAffinityPreset Prometheus Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1025 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1027 podAffinityPreset: ""
1028 ## @param prometheus.podAntiAffinityPreset Prometheus Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1029 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1031 podAntiAffinityPreset: soft
1032 ## Node affinity preset
1033 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1036 ## @param prometheus.nodeAffinityPreset.type Prometheus Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1039 ## @param prometheus.nodeAffinityPreset.key Prometheus Node label key to match Ignored if `affinity` is set.
1041 ## key: "kubernetes.io/e2e-az-name"
1044 ## @param prometheus.nodeAffinityPreset.values Prometheus Node label values to match. Ignored if `affinity` is set.
1051 ## @param prometheus.affinity Prometheus Affinity for pod assignment
1052 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1053 ## Note: prometheus.podAffinityPreset, prometheus.podAntiAffinityPreset, and prometheus.nodeAffinityPreset will be ignored when it's set
1056 ## @param prometheus.nodeSelector Prometheus Node labels for pod assignment
1057 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1060 ## @param prometheus.topologySpreadConstraints Prometheus Topology Spread Constraints for pod assignment
1061 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1062 ## The value is evaluated as a template
1064 topologySpreadConstraints: []
1065 ## @param prometheus.tolerations Prometheus Tolerations for pod assignment
1066 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1069 ## @param prometheus.scrapeInterval Interval between consecutive scrapes
1072 ## @param prometheus.evaluationInterval Interval between consecutive evaluations
1074 evaluationInterval: ""
1075 ## @param prometheus.scrapeTimeout Timeout after which the global scrape is ended
1076 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
1079 ## @param prometheus.sampleLimit Per-scrape max number of scraped samples. Requires Prometheus v2.45.0 and newer
1080 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
1082 ## @param prometheus.enforcedSampleLimit Override sampleLimits set by ServiceMonitor, PodMonitor or Probe objects
1083 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.PrometheusSpec
1084 enforcedSampleLimit: ""
1085 ## @param prometheus.keepDroppedTargets Limit per scrape config on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
1086 ## Requires Prometheus v2.47.0 and newer
1087 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
1088 keepDroppedTargets: ""
1089 ## @param prometheus.listenLocal ListenLocal makes the Prometheus server listen on loopback
1092 ## Configure extra options for liveness probe
1093 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1094 ## @param prometheus.livenessProbe.enabled Turn on and off liveness probe
1095 ## @param prometheus.livenessProbe.path Path of the HTTP service for checking the healthy state
1096 ## @param prometheus.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
1097 ## @param prometheus.livenessProbe.periodSeconds How often to perform the probe
1098 ## @param prometheus.livenessProbe.timeoutSeconds When the probe times out
1099 ## @param prometheus.livenessProbe.failureThreshold Minimum consecutive failures for the probe
1100 ## @param prometheus.livenessProbe.successThreshold Minimum consecutive successes for the probe
1105 initialDelaySeconds: 0
1106 failureThreshold: 10
1110 ## Configure extra options for readiness probe
1111 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1112 ## @param prometheus.readinessProbe.enabled Turn on and off readiness probe
1113 ## @param prometheus.readinessProbe.path Path of the HTTP service for checking the ready state
1114 ## @param prometheus.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
1115 ## @param prometheus.readinessProbe.periodSeconds How often to perform the probe
1116 ## @param prometheus.readinessProbe.timeoutSeconds When the probe times out
1117 ## @param prometheus.readinessProbe.failureThreshold Minimum consecutive failures for the probe
1118 ## @param prometheus.readinessProbe.successThreshold Minimum consecutive successes for the probe
1123 initialDelaySeconds: 0
1124 failureThreshold: 10
1128 ## Configure extra options for startup probe
1129 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1130 ## @param prometheus.startupProbe.enabled Turn on and off readiness probe
1131 ## @param prometheus.startupProbe.path Path of the HTTP service for checking the ready state
1132 ## @param prometheus.startupProbe.initialDelaySeconds Delay before readiness probe is initiated
1133 ## @param prometheus.startupProbe.periodSeconds How often to perform the probe
1134 ## @param prometheus.startupProbe.timeoutSeconds When the probe times out
1135 ## @param prometheus.startupProbe.failureThreshold Minimum consecutive failures for the probe
1136 ## @param prometheus.startupProbe.successThreshold Minimum consecutive successes for the probe
1141 initialDelaySeconds: 0
1142 failureThreshold: 60
1146 ## @param prometheus.enableAdminAPI Enable Prometheus adminitrative API
1147 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
1149 enableAdminAPI: false
1150 ## @param prometheus.enableFeatures Enable access to Prometheus disabled features.
1151 ## ref: https://prometheus.io/docs/prometheus/latest/disabled_features/
1154 ## @param prometheus.alertingEndpoints Alertmanagers to which alerts will be sent
1155 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#alertmanagerendpoints
1157 alertingEndpoints: []
1158 ## @param prometheus.externalLabels External labels to add to any time series or alerts when communicating with external systems
1161 ## @param prometheus.replicaExternalLabelName Name of the external label used to denote replica name
1163 replicaExternalLabelName: ""
1164 ## @param prometheus.replicaExternalLabelNameClear Clear external label used to denote replica name
1166 replicaExternalLabelNameClear: false
1167 ## @param prometheus.routePrefix Prefix used to register routes, overriding externalUrl route
1168 ## Useful for proxies that rewrite URLs.
1171 ## @param prometheus.prometheusExternalLabelName Name of the external label used to denote Prometheus instance name
1173 prometheusExternalLabelName: ""
1174 ## @param prometheus.prometheusExternalLabelNameClear Clear external label used to denote Prometheus instance name
1176 prometheusExternalLabelNameClear: false
1177 ## @param prometheus.secrets Secrets that should be mounted into the Prometheus Pods
1180 ## @param prometheus.configMaps ConfigMaps that should be mounted into the Prometheus Pods
1183 ## @param prometheus.querySpec The query command line flags when starting Prometheus
1184 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#queryspec
1187 ## @param prometheus.ruleNamespaceSelector Namespaces to be selected for PrometheusRules discovery
1188 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1190 ruleNamespaceSelector: {}
1191 ## @param prometheus.ruleSelector PrometheusRules to be selected for target discovery
1192 ## If {}, select all ServiceMonitors
1195 ## @param prometheus.serviceMonitorSelector ServiceMonitors to be selected for target discovery
1196 ## If {}, select all ServiceMonitors
1198 serviceMonitorSelector: {}
1199 ## @param prometheus.serviceMonitorNamespaceSelector Namespaces to be selected for ServiceMonitor discovery
1200 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1202 serviceMonitorNamespaceSelector: {}
1203 ## @param prometheus.podMonitorSelector PodMonitors to be selected for target discovery.
1204 ## If {}, select all PodMonitors
1206 podMonitorSelector: {}
1207 ## @param prometheus.podMonitorNamespaceSelector Namespaces to be selected for PodMonitor discovery
1208 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1210 podMonitorNamespaceSelector: {}
1211 ## @param prometheus.probeSelector Probes to be selected for target discovery.
1212 ## If {}, select all Probes
1215 ## @param prometheus.probeNamespaceSelector Namespaces to be selected for Probe discovery
1216 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1218 probeNamespaceSelector: {}
1219 ## @param prometheus.scrapeConfigSelector ScrapeConfig to be selected for target discovery.
1220 ## If {}, select all ScrapeConfig
1222 scrapeConfigSelector: {}
1223 ## @param prometheus.scrapeConfigNamespaceSelector Namespaces to be selected for ScrapeConfig discovery
1224 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1226 scrapeConfigNamespaceSelector: {}
1227 ## @param prometheus.scrapeClasses List of scrape classes to expose to scraping objects
1228 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#scrapeclass for usage
1231 ## @param prometheus.retention Metrics retention days
1234 ## @param prometheus.retentionSize Maximum size of metrics
1237 ## @param prometheus.disableCompaction Disable the compaction of the Prometheus TSDB
1238 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1239 ## ref: https://prometheus.io/docs/prometheus/latest/storage/#compaction
1241 disableCompaction: false
1242 ## @param prometheus.walCompression Enable compression of the write-ahead log using Snappy
1244 walCompression: false
1245 ## @param prometheus.paused If true, the Operator won't process any Prometheus configuration changes
1248 ## @param prometheus.replicaCount Number of Prometheus replicas desired
1251 ## @param prometheus.shards Number of Prometheus shards desired
1254 ## @param prometheus.logLevel Log level for Prometheus
1257 ## @param prometheus.logFormat Log format for Prometheus
1260 ## @param prometheus.nameValidationScheme Specifies the validation scheme for metric and label names
1261 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.NameValidationSchemeOptions
1263 nameValidationScheme: "UTF8"
1264 ## @param prometheus.podMetadata [object] Standard object's metadata
1265 ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
1270 ## k8s-app: prometheus
1274 ## @param prometheus.remoteRead The remote_read spec configuration for Prometheus
1275 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#remotereadspec
1277 ## - url: http://remote1/read
1280 ## @param prometheus.remoteWrite The remote_write spec configuration for Prometheus
1281 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#remotewritespec
1283 ## - url: http://remote1/push
1286 ## @param prometheus.enableRemoteWriteReceiver Enable Prometheus to be used as a receiver for the Prometheus remote write protocol.
1288 enableRemoteWriteReceiver: false
1289 ## @param prometheus.storageSpec Prometheus StorageSpec for persistent data
1290 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md
1293 ## Prometheus persistence parameters
1296 ## @param prometheus.persistence.enabled Use PVCs to persist data. If the storageSpec is provided this will not take effect.
1299 ## @param prometheus.persistence.storageClass Persistent Volume Storage Class
1300 ## If defined, storageClassName: <storageClass>
1301 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1302 ## If undefined (the default) or set to null, no storageClassName spec is
1303 ## set, choosing the default provisioner.
1306 ## @param prometheus.persistence.accessModes Persistent Volume Access Modes
1310 ## @param prometheus.persistence.size Persistent Volume Size
1313 ## @param prometheus.persistence.annotations Persistent Volume Claim annotations
1316 ## @param prometheus.priorityClassName Priority class assigned to the Pods
1318 priorityClassName: ""
1319 ## @param prometheus.containers Containers allows injecting additional containers
1322 ## @param prometheus.initContainers Add additional init containers to the prometheus pod(s)
1323 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1326 ## - name: your-image-name
1327 ## image: your-image
1328 ## imagePullPolicy: Always
1329 ## command: ['sh', '-c', 'echo "hello world"']
1332 ## @param prometheus.volumes Volumes allows configuration of additional volumes
1333 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1336 ## @param prometheus.volumeMounts VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template
1337 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1340 ## @param prometheus.additionalPrometheusRules PrometheusRule defines recording and alerting rules for a Prometheus instance.
1341 ## - name: custom-recording-rules
1343 ## - name: sum_node_by_job
1345 ## - record: job:kube_node_labels:sum
1346 ## expr: sum(kube_node_labels) by (job)
1347 ## - name: sum_prometheus_config_reload_by_pod
1349 ## - record: job:prometheus_config_last_reload_successful:sum
1350 ## expr: sum(prometheus_config_last_reload_successful) by (pod)
1351 ## - name: custom-alerting-rules
1353 ## - name: prometheus-config
1355 ## - alert: PrometheusConfigurationReload
1356 ## expr: prometheus_config_last_reload_successful > 0
1361 ## summary: "Prometheus configuration reload (instance {{ $labels.instance }})"
1362 ## description: "Prometheus configuration reload error\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
1363 ## - name: custom-node-exporter-alerting-rules
1365 ## - alert: PhysicalComponentTooHot
1366 ## expr: node_hwmon_temp_celsius > 75
1369 ## severity: warning
1371 ## summary: "Physical component too hot (instance {{ $labels.instance }})"
1372 ## description: "Physical hardware component too hot\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
1373 ## - alert: NodeOvertemperatureAlarm
1374 ## expr: node_hwmon_temp_alarm == 1
1377 ## severity: critical
1379 ## summary: "Node overtemperature alarm (instance {{ $labels.instance }})"
1380 ## description: "Physical node temperature alarm triggered\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
1382 ## @param prometheus.additionalArgs Allows setting additional arguments for the Prometheus container
1383 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Prometheus
1386 additionalPrometheusRules: []
1387 ## Note that the prometheus will fail to provision if the correct secret does not exist.
1388 ## @param prometheus.additionalScrapeConfigs.enabled Enable additional scrape configs
1389 ## @param prometheus.additionalScrapeConfigs.type Indicates if the cart should use external additional scrape configs or internal configs
1390 ## @param prometheus.additionalScrapeConfigs.external.name Name of the secret that Prometheus should use for the additional external scrape configuration
1391 ## @param prometheus.additionalScrapeConfigs.external.key Name of the key inside the secret to be used for the additional external scrape configuration
1392 ## @param prometheus.additionalScrapeConfigs.internal.jobList A list of Prometheus scrape jobs
1394 additionalScrapeConfigs:
1398 ## Name of the secret that Prometheus should use for the additional scrape configuration
1401 ## Name of the key inside the secret to be used for the additional scrape configuration.
1406 ## Enable additional Prometheus alert relabel configs that are managed externally to this chart
1407 ## Note that the prometheus will fail to provision if the correct secret does not exist.
1408 ## @param prometheus.additionalAlertRelabelConfigsExternal.enabled Enable additional Prometheus alert relabel configs that are managed externally to this chart
1409 ## @param prometheus.additionalAlertRelabelConfigsExternal.name Name of the secret that Prometheus should use for the additional Prometheus alert relabel configuration
1410 ## @param prometheus.additionalAlertRelabelConfigsExternal.key Name of the key inside the secret to be used for the additional Prometheus alert relabel configuration
1412 additionalAlertRelabelConfigsExternal:
1416 ## Enable additional Prometheus AlertManager configs that are managed externally to this chart
1417 ## Note that the prometheus will fail to provision if the correct secret does not exist.
1418 ## @param prometheus.additionalAlertManagerExternal.enabled Enable additional Prometheus AlertManager configs that are managed externally to this chart
1419 ## @param prometheus.additionalAlertManagerExternal.name Name of the secret that Prometheus should use for the additional Prometheus AlertManager configuration
1420 ## @param prometheus.additionalAlertManagerExternal.key Name of the key inside the secret to be used for the additional Prometheus AlertManager configuration
1422 additionalAlertManagerExternal:
1426 ## Thanos sidecar container configuration
1429 ## @param prometheus.thanos.create Create a Thanos sidecar container
1432 ## Iamguarded Thanos image
1433 ## @param prometheus.thanos.image.registry [default: REGISTRY_NAME] Thanos image registry
1434 ## @param prometheus.thanos.image.repository [default: REPOSITORY_NAME/thanos] Thanos image name
1435 ## @skip prometheus.thanos.image.tag Thanos image tag
1436 ## @param prometheus.thanos.image.digest Thanos image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1437 ## @param prometheus.thanos.image.pullPolicy Thanos image pull policy
1438 ## @param prometheus.thanos.image.pullSecrets Specify docker-registry secret names as an array
1442 repository: chainguard-private/thanos-iamguarded
1445 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1447 pullPolicy: IfNotPresent
1448 ## Optionally specify an array of imagePullSecrets.
1449 ## Secrets must be manually created in the namespace.
1450 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1453 ## - myRegistryKeySecretName
1456 ## Thanos Sidecar container's securityContext
1457 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1458 ## @param prometheus.thanos.containerSecurityContext.enabled Enabled containers' Security Context
1459 ## @param prometheus.thanos.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1460 ## @param prometheus.thanos.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1461 ## @param prometheus.thanos.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1462 ## @param prometheus.thanos.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1463 ## @param prometheus.thanos.containerSecurityContext.privileged Set container's Security Context privileged
1464 ## @param prometheus.thanos.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1465 ## @param prometheus.thanos.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1466 ## @param prometheus.thanos.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1467 ## @param prometheus.thanos.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1469 containerSecurityContext:
1476 readOnlyRootFilesystem: true
1477 allowPrivilegeEscalation: false
1481 type: "RuntimeDefault"
1482 ## @param prometheus.thanos.containerPorts.grpc Thanos grpc port
1483 ## @param prometheus.thanos.containerPorts.http Thanos http port
1488 ## @param prometheus.thanos.prometheusUrl Override default prometheus url `http://localhost:9090`
1491 ## @param prometheus.thanos.extraArgs Additional arguments passed to the thanos sidecar container
1493 ## - --log.level=debug
1494 ## - --tsdb.path=/data/
1497 ## @param prometheus.thanos.objectStorageConfig.secretName Support mounting a Secret for the objectStorageConfig of the sideCar container.
1498 ## @param prometheus.thanos.objectStorageConfig.secretKey Secret key with the configuration file.
1499 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/thanos.md
1500 ## objectStorageConfig:
1501 ## secretName: thanos-objstore-config
1502 ## secretKey: thanos.yaml
1504 objectStorageConfig:
1506 secretKey: thanos.yaml
1507 ## @param prometheus.thanos.extraEnvVars Array with extra environment variables to add to the thanos sidecar container
1510 ## - name: REQUEST_LOGGING_CONFIG
1513 ## name: thanos-request-logging-config
1514 ## key: request-logging-config.yml
1517 ## @param prometheus.thanos.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for the thanos sidecar container
1520 ## @param prometheus.thanos.extraEnvVarsSecret Name of existing Secret containing extra env vars for the thanos sidecar container
1522 extraEnvVarsSecret: ""
1523 ## ref: https://github.com/thanos-io/thanos/blob/main/docs/components/sidecar.md
1524 ## @param prometheus.thanos.extraVolumeMounts Additional volumeMounts from `prometheus.volumes` for thanos sidecar container
1525 ## extraVolumeMounts:
1526 ## - name: my-secret-volume
1527 ## mountPath: /etc/thanos/secrets/my-secret
1529 extraVolumeMounts: []
1530 ## Thanos sidecar container resource requests and limits.
1531 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1532 ## We usually recommend not to specify default resources and to leave this as a conscious
1533 ## choice for the user. This also increases chances charts run on environments with little
1534 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1535 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1536 ## @param prometheus.thanos.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if prometheus.thanos.resources is set (prometheus.thanos.resources is recommended for production).
1538 resourcesPreset: "nano"
1539 ## @param prometheus.thanos.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1550 ## Configure extra options for liveness probe
1551 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1552 ## @param prometheus.thanos.livenessProbe.enabled Turn on and off liveness probe
1553 ## @param prometheus.thanos.livenessProbe.path Path of the HTTP service for checking the healthy state
1554 ## @param prometheus.thanos.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
1555 ## @param prometheus.thanos.livenessProbe.periodSeconds How often to perform the probe
1556 ## @param prometheus.thanos.livenessProbe.timeoutSeconds When the probe times out
1557 ## @param prometheus.thanos.livenessProbe.failureThreshold Minimum consecutive failures for the probe
1558 ## @param prometheus.thanos.livenessProbe.successThreshold Minimum consecutive successes for the probe
1563 initialDelaySeconds: 0
1566 failureThreshold: 120
1568 ## Configure extra options for readiness probe
1569 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1570 ## @param prometheus.thanos.readinessProbe.enabled Turn on and off readiness probe
1571 ## @param prometheus.thanos.readinessProbe.path Path of the HTTP service for checking the ready state
1572 ## @param prometheus.thanos.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
1573 ## @param prometheus.thanos.readinessProbe.periodSeconds How often to perform the probe
1574 ## @param prometheus.thanos.readinessProbe.timeoutSeconds When the probe times out
1575 ## @param prometheus.thanos.readinessProbe.failureThreshold Minimum consecutive failures for the probe
1576 ## @param prometheus.thanos.readinessProbe.successThreshold Minimum consecutive successes for the probe
1581 initialDelaySeconds: 0
1584 failureThreshold: 120
1586 ## Thanos Sidecar Service
1589 ## @param prometheus.thanos.service.type Kubernetes service type
1592 ## @param prometheus.thanos.service.ports.grpc Thanos service port
1593 ## @param prometheus.thanos.service.ports.http Thanos service port
1598 ## @param prometheus.thanos.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` to create headless service by default.
1599 ## Use a "headless" service by default so it returns every pod's IP instead of loadbalancing requests.
1602 ## @param prometheus.thanos.service.nodePorts.grpc Specify the nodePort value for the LoadBalancer and NodePort service types.
1603 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1609 ## @param prometheus.thanos.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
1610 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1613 ## @param prometheus.thanos.service.loadBalancerClass Thanos service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1614 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1616 loadBalancerClass: ""
1617 ## @param prometheus.thanos.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
1618 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1620 ## loadBalancerSourceRanges:
1623 loadBalancerSourceRanges: []
1624 ## @param prometheus.thanos.service.labels Additional labels for Thanos service
1627 ## @param prometheus.thanos.service.annotations Additional annotations for Thanos service
1630 ## @param prometheus.thanos.service.extraPorts Additional ports to expose from the Thanos sidecar container
1638 ## @param prometheus.thanos.service.externalTrafficPolicy Prometheus service external traffic policy
1639 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1641 externalTrafficPolicy: Cluster
1642 ## @param prometheus.thanos.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1643 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1644 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1646 sessionAffinity: None
1647 ## @param prometheus.thanos.service.sessionAffinityConfig Additional settings for the sessionAffinity
1648 ## sessionAffinityConfig:
1650 ## timeoutSeconds: 300
1652 sessionAffinityConfig: {}
1653 ## Configure the ingress resource that allows you to access the
1654 ## Thanos Sidecar installation. Set up the URL
1655 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
1658 ## @param prometheus.thanos.ingress.enabled Enable ingress controller resource
1661 ## @param prometheus.thanos.ingress.pathType Ingress path type
1663 pathType: ImplementationSpecific
1664 ## @param prometheus.thanos.ingress.apiVersion Force Ingress API version (automatically detected if not set)
1667 ## @param prometheus.thanos.ingress.hostname Default host for the ingress record
1669 hostname: thanos.prometheus.local
1670 ## @param prometheus.thanos.ingress.path Default path for the ingress record
1671 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
1674 ## @param prometheus.thanos.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1675 ## For a full list of possible ingress annotations, please see
1676 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
1677 ## Use this parameter to set the required annotations for cert-manager, see
1678 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1681 ## kubernetes.io/ingress.class: nginx
1682 ## cert-manager.io/cluster-issuer: cluster-issuer-name
1685 ## @param prometheus.thanos.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1686 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
1687 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1689 ingressClassName: ""
1690 ## @param prometheus.thanos.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
1691 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
1693 ## - Use the `ingress.secrets` parameter to create this TLS secret
1694 ## - Relay on cert-manager to create it by setting `ingress.certManager=true`
1695 ## - Relay on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
1698 ## @param prometheus.thanos.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
1701 ## @param prometheus.thanos.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
1704 ## - name: thanos.prometheus.local
1708 ## @param prometheus.thanos.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
1713 ## serviceName: ssl-redirect
1714 ## servicePort: use-annotation
1717 ## @param prometheus.thanos.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
1718 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1722 ## - thanos.prometheus.local
1723 ## secretName: thanos.prometheus.local-tls
1726 ## @param prometheus.thanos.ingress.secrets Custom TLS certificates as secrets
1727 ## NOTE: 'key' and 'certificate' are expected in PEM format
1728 ## NOTE: 'name' should line up with a 'secretName' set further up
1729 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
1730 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
1731 ## It is also possible to create and manage the certificates outside of this helm chart
1732 ## Please see README.md for more information
1735 ## - name: thanos.prometheus.local-tls
1737 ## -----BEGIN RSA PRIVATE KEY-----
1739 ## -----END RSA PRIVATE KEY-----
1741 ## -----BEGIN CERTIFICATE-----
1743 ## -----END CERTIFICATE-----
1746 ## @param prometheus.thanos.ingress.extraRules The list of additional rules to be added to this ingress record. Evaluated as a template
1747 ## Useful when looking for additional customization, such as using different backend
1750 ## Create a ServiceMonitor to monitor Prometheus thanos sidecar
1753 ## @param prometheus.thanos.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus thanos sidecar
1756 ## @param prometheus.thanos.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
1757 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
1760 ## @param prometheus.thanos.serviceMonitor.path HTTP path to scrape for metrics
1763 ## @param prometheus.thanos.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1766 ## @param prometheus.thanos.serviceMonitor.metricRelabelings Metric relabeling
1767 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
1769 metricRelabelings: []
1770 ## @param prometheus.thanos.serviceMonitor.relabelings Relabel configs
1771 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
1774 ## @param prometheus.thanos.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
1777 ## config-reloader sidecar container configuration
1780 ## config-reloader sidecar Service
1783 ## @param prometheus.configReloader.service.enabled Enable config-reloader sidecar service
1786 ## @param prometheus.configReloader.service.type Kubernetes service type
1789 ## @param prometheus.configReloader.service.ports.http config-reloader sidecar container service port
1793 ## @param prometheus.configReloader.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` to create headless service by default.
1794 ## Use a "headless" service by default so it returns every pod's IP instead of loadbalancing requests.
1797 ## @param prometheus.configReloader.service.nodePorts.http Specify the nodePort value for the LoadBalancer and NodePort service types.
1798 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1804 ## @param prometheus.configReloader.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
1805 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1808 ## @param prometheus.configReloader.service.loadBalancerClass Prometheus Config Reloader service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1809 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1811 loadBalancerClass: ""
1812 ## @param prometheus.configReloader.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
1813 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1815 ## loadBalancerSourceRanges:
1818 loadBalancerSourceRanges: []
1819 ## @param prometheus.configReloader.service.labels Additional labels for Prometheus service
1822 ## @param prometheus.configReloader.service.annotations Additional annotations for Prometheus service
1825 ## @param prometheus.configReloader.service.extraPorts Additional ports to expose from the config-reloader sidecar container
1833 ## @param prometheus.configReloader.service.externalTrafficPolicy Prometheus service external traffic policy
1834 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1836 externalTrafficPolicy: Cluster
1837 ## @param prometheus.configReloader.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1838 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1839 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1841 sessionAffinity: None
1842 ## @param prometheus.configReloader.service.sessionAffinityConfig Additional settings for the sessionAffinity
1843 ## sessionAffinityConfig:
1845 ## timeoutSeconds: 300
1847 sessionAffinityConfig: {}
1848 ## Create a ServiceMonitor to monitor Prometheus config-reloader sidecar
1851 ## @param prometheus.configReloader.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus config-reloader sidecar
1854 ## @param prometheus.configReloader.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
1855 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
1858 ## @param prometheus.configReloader.serviceMonitor.path HTTP path to scrape for metrics
1861 ## @param prometheus.configReloader.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1864 ## @param prometheus.configReloader.serviceMonitor.metricRelabelings Metric relabeling
1865 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
1867 metricRelabelings: []
1868 ## @param prometheus.configReloader.serviceMonitor.relabelings Relabel configs
1869 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
1872 ## @param prometheus.configReloader.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
1875 ## @param prometheus.portName Port name used for the pods and governing service. This defaults to web
1878## @section Alertmanager Parameters
1881## Configuration for alertmanager
1882## ref: https://prometheus.io/docs/alerting/alertmanager/
1885 ## @param alertmanager.enabled Deploy Alertmanager to the cluster
1888 ## Iamguarded Alertmanager image version
1889 ## @param alertmanager.image.registry [default: REGISTRY_NAME] Alertmanager image registry
1890 ## @param alertmanager.image.repository [default: REPOSITORY_NAME/alertmanager] Alertmanager image repository
1891 ## @skip alertmanager.image.tag Alertmanager image tag (immutable tags are recommended)
1892 ## @param alertmanager.image.digest Alertmanager image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1893 ## @param alertmanager.image.pullPolicy Alertmanager image pull policy
1894 ## @param alertmanager.image.pullSecrets Specify docker-registry secret names as an array
1898 repository: chainguard-private/prometheus-alertmanager-iamguarded
1901 pullPolicy: IfNotPresent
1902 ## Optionally specify an array of imagePullSecrets.
1903 ## Secrets must be manually created in the namespace.
1904 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1907 ## - myRegistryKeySecretName
1910 ## Service account for Alertmanager to use.
1911 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1914 ## @param alertmanager.serviceAccount.create Specify whether to create a ServiceAccount for Alertmanager
1917 ## @param alertmanager.serviceAccount.name The name of the ServiceAccount to create
1918 ## If not set and create is true, a name is generated using the kube-prometheus.alertmanager.fullname template
1921 ## @param alertmanager.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1923 automountServiceAccountToken: false
1924 ## @param alertmanager.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1927 ## Prometheus Alertmanager pods' Security Context
1928 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1929 ## @param alertmanager.podSecurityContext.enabled Enable security context
1930 ## @param alertmanager.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1931 ## @param alertmanager.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1932 ## @param alertmanager.podSecurityContext.supplementalGroups Set filesystem extra groups
1933 ## @param alertmanager.podSecurityContext.fsGroup Group ID for the container filesystem
1937 fsGroupChangePolicy: Always
1939 supplementalGroups: []
1941 ## Prometheus Alertmanager container's securityContext
1942 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1943 ## @param alertmanager.containerSecurityContext.enabled Enabled containers' Security Context
1944 ## @param alertmanager.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1945 ## @param alertmanager.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1946 ## @param alertmanager.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1947 ## @param alertmanager.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1948 ## @param alertmanager.containerSecurityContext.privileged Set container's Security Context privileged
1949 ## @param alertmanager.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1950 ## @param alertmanager.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1951 ## @param alertmanager.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1952 ## @param alertmanager.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1954 containerSecurityContext:
1961 readOnlyRootFilesystem: true
1962 allowPrivilegeEscalation: false
1966 type: "RuntimeDefault"
1967 ## Configure pod disruption budgets for Alertmanager
1968 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
1969 ## @param alertmanager.pdb.create Create a pod disruption budget for Alertmanager
1970 ## @param alertmanager.pdb.minAvailable Minimum number / percentage of pods that should remain scheduled
1971 ## @param alertmanager.pdb.maxUnavailable Maximum number / percentage of pods that may be made unavailable
1977 ## Alertmanager Service
1980 ## @param alertmanager.service.type Kubernetes service type
1983 ## @param alertmanager.service.ports.http Alertmanager service port
1987 ## @param alertmanager.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` for headless service
1992 ## @param alertmanager.service.nodePorts.http Specify the nodePort value for the LoadBalancer and NodePort service types.
1993 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1999 ## @param alertmanager.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
2000 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
2003 ## @param alertmanager.service.loadBalancerClass Alertmanager service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
2004 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2006 loadBalancerClass: ""
2007 ## @param alertmanager.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
2008 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2010 ## loadBalancerSourceRanges:
2013 loadBalancerSourceRanges: []
2014 ## @param alertmanager.service.externalTrafficPolicy Enable client source IP preservation
2015 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2016 ## There are two available options: Cluster (default) and Local.
2017 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2019 externalTrafficPolicy: Cluster
2020 ## @param alertmanager.service.healthCheckNodePort Specifies the health check node port
2021 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2023 healthCheckNodePort: ""
2024 ## @param alertmanager.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2027 ## @param alertmanager.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
2028 ## If "ClientIP", consecutive client requests will be directed to the same Pod
2029 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2031 sessionAffinity: None
2032 ## @param alertmanager.service.sessionAffinityConfig Additional settings for the sessionAffinity
2033 ## sessionAffinityConfig:
2035 ## timeoutSeconds: 300
2037 sessionAffinityConfig: {}
2038 ## @param alertmanager.service.annotations Additional annotations for Alertmanager service (this value is evaluated as a template)
2042 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2045 ## @param alertmanager.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2048 ## @param alertmanager.networkPolicy.allowExternal Don't require server label for connections
2049 ## The Policy model to apply. When set to false, only pods with the correct
2050 ## server label will have network access to the ports server is listening
2051 ## on. When true, server will accept connections from any source
2052 ## (with the correct destination port).
2055 ## @param alertmanager.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2057 allowExternalEgress: true
2058 ## @param alertmanager.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2068 ## - matchExpressions:
2074 ## @param alertmanager.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2084 ## - matchExpressions:
2091 ## @param alertmanager.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2092 ## @param alertmanager.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2094 ingressNSMatchLabels: {}
2095 ingressNSPodMatchLabels: {}
2096 ## If true, create a serviceMonitor for alertmanager
2099 ## @param alertmanager.serviceMonitor.enabled Creates a ServiceMonitor to monitor Alertmanager
2102 ## @param alertmanager.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used.
2103 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
2106 ## @param alertmanager.serviceMonitor.metricRelabelings Metric relabeling
2107 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2109 metricRelabelings: []
2110 ## @param alertmanager.serviceMonitor.relabelings Relabel configs
2111 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
2114 ## @param alertmanager.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2117 ## @param alertmanager.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2118 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2121 ## @param alertmanager.serviceMonitor.selector ServiceMonitor selector labels
2124 ## prometheus: my-prometheus
2127 ## @param alertmanager.serviceMonitor.labels Extra labels for the ServiceMonitor
2130 ## @param alertmanager.serviceMonitor.annotations Extra annotations for the ServiceMonitor
2133 ## @param alertmanager.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2136 ## @param alertmanager.serviceMonitor.extraParameters Any extra parameter to be added to the endpoint configured in the ServiceMonitor
2137 ## (e.g. tlsConfig for further customization of the HTTPS behavior)
2138 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Endpoint
2141 ## @param alertmanager.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
2144 ## Configure the ingress resource that allows you to access the
2145 ## Alertmanager installation. Set up the URL
2146 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
2149 ## @param alertmanager.ingress.enabled Enable ingress controller resource
2152 ## @param alertmanager.ingress.pathType Ingress Path type
2154 pathType: ImplementationSpecific
2155 ## @param alertmanager.ingress.apiVersion Override API Version (automatically detected if not set)
2158 ## @param alertmanager.ingress.hostname Default host for the ingress resource
2160 hostname: alertmanager.local
2161 ## @param alertmanager.ingress.path The Path to Alert Manager. You may need to set this to '/*' in order to use this with ALB ingress controllers.
2164 ## @param alertmanager.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2165 ## For a full list of possible ingress annotations, please see
2166 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
2167 ## Use this parameter to set the required annotations for cert-manager, see
2168 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2172 ## kubernetes.io/ingress.class: nginx
2173 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2176 ## @param alertmanager.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2177 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2178 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2180 ingressClassName: ""
2181 ## @param alertmanager.ingress.tls Enable TLS configuration for the hostname defined at alertmanager.ingress.hostname parameter
2182 ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.alertmanager.ingress.hostname }}
2183 ## You can use the alertmanager.ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
2186 ## @param alertmanager.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2189 ## @param alertmanager.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
2190 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
2192 ## - name: alertmanager.local
2196 ## @param alertmanager.ingress.extraPaths Additional arbitrary path/backend objects
2197 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
2201 ## serviceName: ssl-redirect
2202 ## servicePort: use-annotation
2205 ## @param alertmanager.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
2206 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2209 ## - alertmanager.local
2210 ## secretName: alertmanager.local-tls
2213 ## @param alertmanager.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
2214 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
2215 ## -----BEGIN RSA PRIVATE KEY-----
2217 ## name should line up with a tlsSecret set further up
2218 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
2220 ## It is also possible to create and manage the certificates outside of this helm chart
2221 ## Please see README.md for more information
2223 ## - name: alertmanager.local-tls
2228 ## @param alertmanager.ingress.extraRules Additional rules to be covered with this ingress record
2229 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2232 ## - host: example.local
2237 ## name: example-svc
2242 ## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
2245 ## @param alertmanager.externalUrl External URL used to access Alertmanager
2247 ## externalUrl: https://alertmanager.example.com
2250 ## @param alertmanager.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if alertmanager.resources is set (alertmanager.resources is recommended for production).
2252 resourcesPreset: "nano"
2253 ## @param alertmanager.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2262 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2265 ## @param alertmanager.podAffinityPreset Alertmanager Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2266 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2268 podAffinityPreset: ""
2269 ## @param alertmanager.podAntiAffinityPreset Alertmanager Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2270 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2272 podAntiAffinityPreset: soft
2273 ## Node affinity preset
2274 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2277 ## @param alertmanager.nodeAffinityPreset.type Alertmanager Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2280 ## @param alertmanager.nodeAffinityPreset.key Alertmanager Node label key to match Ignored if `affinity` is set.
2282 ## key: "kubernetes.io/e2e-az-name"
2285 ## @param alertmanager.nodeAffinityPreset.values Alertmanager Node label values to match. Ignored if `affinity` is set.
2292 ## @param alertmanager.affinity Alertmanager Affinity for pod assignment
2293 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2294 ## Note: alertmanager.podAffinityPreset, alertmanager.podAntiAffinityPreset, and alertmanager.nodeAffinityPreset will be ignored when it's set
2297 ## @param alertmanager.nodeSelector Alertmanager Node labels for pod assignment
2298 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2301 ## @param alertmanager.tolerations Alertmanager Tolerations for pod assignment
2302 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2305 ## Alertmanager configuration
2306 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
2307 ## @param alertmanager.config [object] Alertmanager configuration directive
2308 ## @skip alertmanager.config.route.group_by
2309 ## @skip alertmanager.config.route.routes
2310 ## @skip alertmanager.config.receivers
2319 repeat_interval: 12h
2327 ## @param alertmanager.templateFiles Extra files to be added inside the `alertmanager-{{ template "kube-prometheus.alertmanager.fullname" . }}` secret.
2330 ## @param alertmanager.externalConfig Alertmanager configuration is created externally. If true, `alertmanager.config` is ignored, and a secret will not be created.
2331 ## Alertmanager requires a secret named `alertmanager-{{ template "kube-prometheus.alertmanager.fullname" . }}`
2333 ## alertmanager.yaml: <config>
2334 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/alerting.md#alerting
2336 externalConfig: false
2337 ## @param alertmanager.replicaCount Number of Alertmanager replicas desired
2340 ## Configure extra options for liveness probe
2341 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2342 ## @param alertmanager.livenessProbe.enabled Turn on and off liveness probe
2343 ## @param alertmanager.livenessProbe.path Path of the HTTP service for checking the healthy state
2344 ## @param alertmanager.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
2345 ## @param alertmanager.livenessProbe.periodSeconds How often to perform the probe
2346 ## @param alertmanager.livenessProbe.timeoutSeconds When the probe times out
2347 ## @param alertmanager.livenessProbe.failureThreshold Minimum consecutive failures for the probe
2348 ## @param alertmanager.livenessProbe.successThreshold Minimum consecutive successes for the probe
2353 initialDelaySeconds: 0
2356 failureThreshold: 120
2358 ## Configure extra options for readiness probe
2359 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2360 ## @param alertmanager.readinessProbe.enabled Turn on and off readiness probe
2361 ## @param alertmanager.readinessProbe.path Path of the HTTP service for checking the ready state
2362 ## @param alertmanager.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
2363 ## @param alertmanager.readinessProbe.periodSeconds How often to perform the probe
2364 ## @param alertmanager.readinessProbe.timeoutSeconds When the probe times out
2365 ## @param alertmanager.readinessProbe.failureThreshold Minimum consecutive failures for the probe
2366 ## @param alertmanager.readinessProbe.successThreshold Minimum consecutive successes for the probe
2371 initialDelaySeconds: 0
2374 failureThreshold: 120
2376 ## @param alertmanager.logLevel Log level for Alertmanager
2379 ## @param alertmanager.logFormat Log format for Alertmanager
2382 ## @param alertmanager.podMetadata [object] Standard object's metadata.
2383 ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
2388 ## @param alertmanager.secrets Secrets that should be mounted into the Alertmanager Pods
2391 ## @param alertmanager.configMaps ConfigMaps that should be mounted into the Alertmanager Pods
2394 ## @param alertmanager.retention Metrics retention days
2397 ## @param alertmanager.storageSpec Alertmanager StorageSpec for persistent data
2398 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md
2401 ## Alertmanager persistence parameters
2404 ## @param alertmanager.persistence.enabled Use PVCs to persist data. If the storageSpec is provided this will not take effect.
2405 ## If you want to use this configuration make sure the storageSpec is not provided.
2408 ## @param alertmanager.persistence.storageClass Persistent Volume Storage Class
2409 ## If defined, storageClassName: <storageClass>
2410 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2411 ## If undefined (the default) or set to null, no storageClassName spec is
2412 ## set, choosing the default provisioner.
2415 ## @param alertmanager.persistence.accessModes Persistent Volume Access Modes
2419 ## @param alertmanager.persistence.size Persistent Volume Size
2422 ## @param alertmanager.persistence.annotations Persistent Volume Claim annotations
2425 ## @param alertmanager.paused If true, the Operator won't process any Alertmanager configuration changes
2428 ## @param alertmanager.listenLocal ListenLocal makes the Alertmanager server listen on loopback
2431 ## @param alertmanager.containers Containers allows injecting additional containers
2434 ## @param alertmanager.volumes Volumes allows configuration of additional volumes. Evaluated as a template
2435 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec
2438 ## @param alertmanager.volumeMounts VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template
2439 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/pi.md#alertmanagerspec
2442 ## @param alertmanager.priorityClassName Priority class assigned to the Pods
2444 priorityClassName: ""
2445 ## @param alertmanager.additionalPeers AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster
2448 ## @param alertmanager.routePrefix Prefix used to register routes, overriding externalUrl route
2449 ## Useful for proxies that rewrite URLs.
2452 ## @param alertmanager.portName Port name used for the pods and governing service. This defaults to web
2455 ## @param alertmanager.configNamespaceSelector Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace. This defaults to {}
2457 configNamespaceSelector: {}
2458 ## @param alertmanager.configSelector AlertmanagerConfigs to be selected for to merge and configure Alertmanager with. This defaults to {}
2461 ## @param alertmanager.configuration EXPERIMENTAL: alertmanagerConfiguration specifies the global Alertmanager configuration. If defined, it takes precedence over the `configSecret` field. This field may change in future releases. The specified global alertmanager config will not force add a namespace label in routes and inhibitRules
2464 ## @param alertmanager.configMatcherStrategy alertmanagerConfigMatcherStrategy defines how AlertmanagerConfig objects match the alerts.
2466 ## configMatcherStrategy:
2467 ## type: OnNamespace
2468 ## If type set to `OnNamespace`, the operator injects a label matcher matching the
2469 ## namespace of the AlertmanagerConfig object for all its routes and inhibition
2470 ## rules. `None` will not add any additional matchers other than the ones
2471 ## specified in the AlertmanagerConfig. Default is `OnNamespace`.
2472 configMatcherStrategy: {}
2473## @section Exporters
2480 ## @param exporters.node-exporter.enabled Enable node-exporter
2484 ## @param exporters.kube-state-metrics.enabled Enable kube-state-metrics
2487## @param node-exporter [object] Node Exporter deployment configuration
2492 repository: chainguard-private/prometheus-node-exporter-iamguarded
2497 jobLabel: node-exporter
2502 collector.filesystem.mount-points-exclude: "^/(dev|proc|sys|var/lib/docker/.+)($|/)"
2503 collector.filesystem.fs-types-exclude: "^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$"
2504## @param kube-state-metrics [object] Kube State Metrics deployment configuration
2509 repository: chainguard-private/kube-state-metrics-iamguarded
2515## Component scraping for kubelet and kubelet hosted cAdvisor
2518 ## @param kubelet.enabled Create a ServiceMonitor to scrape kubelet service
2521 ## @param kubelet.namespace Namespace where kubelet service is deployed. Related configuration `operator.kubeletService.namespace`
2523 namespace: kube-system
2525 ## @param kubelet.serviceMonitor.https Enable scraping of the kubelet over HTTPS
2528 ## @param kubelet.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
2529 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
2532 ## @param kubelet.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2535 ## @param kubelet.serviceMonitor.resource Enable scraping /metrics/resource from kubelet's service
2538 ## @param kubelet.serviceMonitor.resourcePath From kubernetes 1.18, /metrics/resource/v1alpha1 was renamed to /metrics/resource
2540 resourcePath: "/metrics/resource/v1alpha1"
2541 ## @param kubelet.serviceMonitor.resourceRelabelings Metric relabeling
2542 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
2544 resourceRelabelings: []
2545 ## @param kubelet.serviceMonitor.resourceMetricRelabelings Metric relabeling
2546 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2548 resourceMetricRelabelings: []
2549 ## @param kubelet.serviceMonitor.metricRelabelings Metric relabeling
2550 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2552 metricRelabelings: []
2553 ## @param kubelet.serviceMonitor.relabelings Relabel configs
2554 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
2557 ## @param kubelet.serviceMonitor.cAdvisor Enable scraping /metrics/cadvisor from kubelet's service
2558 ## ref: https://prometheus.io/docs/guides/cadvisor/#exploring-metrics-in-the-expression-browser
2561 ## @param kubelet.serviceMonitor.cAdvisorMetricRelabelings Metric relabeling for scraping cAdvisor
2562 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2564 cAdvisorMetricRelabelings: []
2565 ## @param kubelet.serviceMonitor.cAdvisorRelabelings Relabel configs for scraping cAdvisor
2566 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2568 cAdvisorRelabelings: []
2569 ## @param kubelet.serviceMonitor.labels Extra labels for the ServiceMonitor
2572 ## @param kubelet.serviceMonitor.annotations Extra annotations for the ServiceMonitor
2575 ## @param kubelet.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
2578## @section Blackbox Exporter Deployment Parameters
2581 ## @param blackboxExporter.enabled Enable Blackbox Exporter deployment
2584 ## Iamguarded Alertmanager image version
2585 ## @param blackboxExporter.image.registry [default: REGISTRY_NAME] Blackbox Exporter image registry
2586 ## @param blackboxExporter.image.repository [default: REPOSITORY_NAME/blackbox-exporter] Blackbox Exporter image repository
2587 ## @param blackboxExporter.image.pullPolicy Blackbox Exporter image pull policy
2588 ## @skip blackboxExporter.image.tag Blackbox Exporter image tag (immutable tags are recommended)
2589 ## @param blackboxExporter.image.digest Blackbox Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2590 ## @param blackboxExporter.image.pullSecrets Specify docker-registry secret names as an array
2594 repository: chainguard-private/prometheus-blackbox-exporter-iamguarded
2597 pullPolicy: IfNotPresent
2598 ## Optionally specify an array of imagePullSecrets.
2599 ## Secrets must be manually created in the namespace.
2600 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2603 ## - myRegistryKeySecretName
2606 ## @param blackboxExporter.extraEnvVars Array with extra environment variables to add to blackboxExporter nodes
2613 ## @param blackboxExporter.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for blackboxExporter nodes
2616 ## @param blackboxExporter.extraEnvVarsSecret Name of existing Secret containing extra env vars for blackboxExporter nodes
2618 extraEnvVarsSecret: ""
2619 ## @param blackboxExporter.command Override default container command (useful when using custom images)
2622 ## @param blackboxExporter.args Override default container args (useful when using custom images)
2625 ## @param blackboxExporter.replicaCount Number of Blackbox Exporter replicas to deploy
2628 ## Configure extra options for Blackbox Exporter container liveness, readiness and startup probes
2629 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
2630 ## @param blackboxExporter.livenessProbe.enabled Enable livenessProbe on Blackbox Exporter nodes
2631 ## @param blackboxExporter.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2632 ## @param blackboxExporter.livenessProbe.periodSeconds Period seconds for livenessProbe
2633 ## @param blackboxExporter.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2634 ## @param blackboxExporter.livenessProbe.failureThreshold Failure threshold for livenessProbe
2635 ## @param blackboxExporter.livenessProbe.successThreshold Success threshold for livenessProbe
2640 initialDelaySeconds: 30
2644 ## @param blackboxExporter.readinessProbe.enabled Enable readinessProbe on Blackbox Exporter nodes
2645 ## @param blackboxExporter.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2646 ## @param blackboxExporter.readinessProbe.periodSeconds Period seconds for readinessProbe
2647 ## @param blackboxExporter.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2648 ## @param blackboxExporter.readinessProbe.failureThreshold Failure threshold for readinessProbe
2649 ## @param blackboxExporter.readinessProbe.successThreshold Success threshold for readinessProbe
2654 initialDelaySeconds: 60
2658 ## @param blackboxExporter.startupProbe.enabled Enable startupProbe on Blackbox Exporter containers
2659 ## @param blackboxExporter.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2660 ## @param blackboxExporter.startupProbe.periodSeconds Period seconds for startupProbe
2661 ## @param blackboxExporter.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2662 ## @param blackboxExporter.startupProbe.failureThreshold Failure threshold for startupProbe
2663 ## @param blackboxExporter.startupProbe.successThreshold Success threshold for startupProbe
2667 initialDelaySeconds: 30
2670 failureThreshold: 15
2672 ## @param blackboxExporter.customLivenessProbe Custom livenessProbe that overrides the default one
2674 customLivenessProbe: {}
2675 ## @param blackboxExporter.customReadinessProbe Custom readinessProbe that overrides the default one
2677 customReadinessProbe: {}
2678 ## @param blackboxExporter.customStartupProbe Custom startupProbe that overrides the default one
2680 customStartupProbe: {}
2681 ## @param blackboxExporter.configuration [object] Blackbox Exporter configuration
2687 "preferred_ip_protocol": "ip4"
2692 "preferred_ip_protocol": "ip4"
2697 "preferred_ip_protocol": "ip4"
2699 - "send": "NICK prober"
2700 - "send": "USER prober prober prober :prober"
2701 - "expect": "PING :([^ ]+)"
2703 - "expect": "^:[^ ]+ 001"
2707 "preferred_ip_protocol": "ip4"
2712 "insecure_skip_verify": false
2716 "preferred_ip_protocol": "ip4"
2718 - "expect": "^SSH-2.0-"
2722 "preferred_ip_protocol": "ip4"
2723 ## @param blackboxExporter.existingConfigMap ConfigMap pointing to the Blackbox Exporter configuration
2725 existingConfigMap: ""
2726 ## @param blackboxExporter.containerPorts.http Blackbox Exporter HTTP container port
2731 ## @param blackboxExporter.serviceAccount.create Enable creation of ServiceAccount for Prometheus Operator pod
2734 ## @param blackboxExporter.serviceAccount.name The name of the ServiceAccount to use.
2735 ## If not set and create is true, a name is generated using the common.names.fullname template
2738 ## @param blackboxExporter.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
2739 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
2741 automountServiceAccountToken: false
2742 ## @param blackboxExporter.serviceAccount.annotations Additional custom annotations for the ServiceAccount
2745 ## Blackbox Exporter resource requests and limits
2746 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2747 ## @param blackboxExporter.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if blackboxExporter.resources is set (blackboxExporter.resources is recommended for production).
2749 resourcesPreset: "nano"
2750 ## @param blackboxExporter.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2761 ## Configure Pods Security Context
2762 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2763 ## @param blackboxExporter.podSecurityContext.enabled Enabled Blackbox Exporter pods' Security Context
2764 ## @param blackboxExporter.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2765 ## @param blackboxExporter.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2766 ## @param blackboxExporter.podSecurityContext.supplementalGroups Set filesystem extra groups
2767 ## @param blackboxExporter.podSecurityContext.fsGroup Set Blackbox Exporter pod's Security Context fsGroup
2771 fsGroupChangePolicy: Always
2773 supplementalGroups: []
2775 ## Configure Container Security Context
2776 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2777 ## @param blackboxExporter.containerSecurityContext.enabled Enabled containers' Security Context
2778 ## @param blackboxExporter.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2779 ## @param blackboxExporter.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
2780 ## @param blackboxExporter.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
2781 ## @param blackboxExporter.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
2782 ## @param blackboxExporter.containerSecurityContext.privileged Set container's Security Context privileged
2783 ## @param blackboxExporter.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
2784 ## @param blackboxExporter.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
2785 ## @param blackboxExporter.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2786 ## @param blackboxExporter.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2788 containerSecurityContext:
2795 readOnlyRootFilesystem: true
2796 allowPrivilegeEscalation: false
2800 type: "RuntimeDefault"
2801 ## @param blackboxExporter.lifecycleHooks for the blackboxExporter container(s) to automate configuration before or after startup
2804 ## @param blackboxExporter.automountServiceAccountToken Mount Service Account token in pod
2806 automountServiceAccountToken: false
2807 ## @param blackboxExporter.hostAliases blackboxExporter pods host aliases
2808 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2811 ## @param blackboxExporter.podLabels Extra labels for blackboxExporter pods
2812 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2815 ## @param blackboxExporter.podAnnotations Annotations for blackboxExporter pods
2816 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2819 ## @param blackboxExporter.podAffinityPreset Pod affinity preset. Ignored if `blackboxExporter.affinity` is set. Allowed values: `soft` or `hard`
2820 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2822 podAffinityPreset: ""
2823 ## @param blackboxExporter.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `blackboxExporter.affinity` is set. Allowed values: `soft` or `hard`
2824 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2826 podAntiAffinityPreset: soft
2827 ## Node blackboxExporter.affinity preset
2828 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2831 ## @param blackboxExporter.nodeAffinityPreset.type Node affinity preset type. Ignored if `blackboxExporter.affinity` is set. Allowed values: `soft` or `hard`
2834 ## @param blackboxExporter.nodeAffinityPreset.key Node label key to match. Ignored if `blackboxExporter.affinity` is set
2837 ## @param blackboxExporter.nodeAffinityPreset.values Node label values to match. Ignored if `blackboxExporter.affinity` is set
2844 ## @param blackboxExporter.affinity Affinity for Blackbox Exporter pods assignment
2845 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2846 ## NOTE: `blackboxExporter.podAffinityPreset`, `blackboxExporter.podAntiAffinityPreset`, and `blackboxExporter.nodeAffinityPreset` will be ignored when it's set
2849 ## @param blackboxExporter.nodeSelector Node labels for Blackbox Exporter pods assignment
2850 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2853 ## @param blackboxExporter.tolerations Tolerations for Blackbox Exporter pods assignment
2854 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2857 ## @param blackboxExporter.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains
2858 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2860 topologySpreadConstraints: []
2861 ## @param blackboxExporter.priorityClassName Blackbox Exporter pods' priorityClassName
2863 priorityClassName: ""
2864 ## @param blackboxExporter.schedulerName Kubernetes pod scheduler registry
2865 ## https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2868 ## @param blackboxExporter.terminationGracePeriodSeconds In seconds, time the given to the Blackbox Exporter pod needs to terminate gracefully
2869 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2871 terminationGracePeriodSeconds: ""
2872 ## @param blackboxExporter.updateStrategy.type Blackbox Exporter statefulset strategy type
2873 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2877 ## @param blackboxExporter.extraVolumes Optionally specify extra list of additional volumes for the Blackbox Exporter pod(s)
2880 ## @param blackboxExporter.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Blackbox Exporter container(s)
2882 extraVolumeMounts: []
2883 ## @param blackboxExporter.sidecars Add additional sidecar containers to the Blackbox Exporter pod(s)
2886 ## - name: your-image-name
2887 ## image: your-image
2888 ## imagePullPolicy: Always
2891 ## containerPort: 1234
2894 ## @param blackboxExporter.initContainers Add additional init containers to the Blackbox Exporter pod(s)
2895 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2898 ## - name: your-image-name
2899 ## image: your-image
2900 ## imagePullPolicy: Always
2901 ## command: ['sh', '-c', 'echo "hello world"']
2904 ## @section Blackbox Exporter Traffic Exposure Parameters
2907 ## blackboxExporter service parameters
2910 ## @param blackboxExporter.service.type Blackbox Exporter service type
2913 ## @param blackboxExporter.service.ports.http Blackbox Exporter HTTP service port
2917 ## Node ports to expose
2918 ## NOTE: choose port between <30000-32767>
2919 ## @param blackboxExporter.service.nodePorts.http Node port for HTTP
2923 ## @param blackboxExporter.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2924 ## Values: ClientIP or None
2925 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2927 sessionAffinity: None
2928 ## @param blackboxExporter.service.sessionAffinityConfig Additional settings for the sessionAffinity
2929 ## sessionAffinityConfig:
2931 ## timeoutSeconds: 300
2933 sessionAffinityConfig: {}
2934 ## @param blackboxExporter.service.clusterIP Blackbox Exporter service Cluster IP
2939 ## @param blackboxExporter.service.loadBalancerIP Blackbox Exporter service Load Balancer IP
2940 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2943 ## @param blackboxExporter.service.loadBalancerClass Blackbox Exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
2944 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2946 loadBalancerClass: ""
2947 ## @param blackboxExporter.service.loadBalancerSourceRanges Blackbox Exporter service Load Balancer sources
2948 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2950 ## loadBalancerSourceRanges:
2953 loadBalancerSourceRanges: []
2954 ## @param blackboxExporter.service.externalTrafficPolicy Blackbox Exporter service external traffic policy
2955 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2957 externalTrafficPolicy: Cluster
2958 ## @param blackboxExporter.service.annotations Additional custom annotations for Blackbox Exporter service
2961 ## @param blackboxExporter.service.extraPorts Extra ports to expose in the Blackbox Exporter service
2965 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2968 ## @param blackboxExporter.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2971 ## @param blackboxExporter.networkPolicy.allowExternal Don't require server label for connections
2972 ## The Policy model to apply. When set to false, only pods with the correct
2973 ## server label will have network access to the ports server is listening
2974 ## on. When true, server will accept connections from any source
2975 ## (with the correct destination port).
2978 ## @param blackboxExporter.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2980 allowExternalEgress: true
2981 ## @param blackboxExporter.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2991 ## - matchExpressions:
2997 ## @param blackboxExporter.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
3007 ## - matchExpressions:
3014 ## @param blackboxExporter.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3015 ## @param blackboxExporter.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3017 ingressNSMatchLabels: {}
3018 ingressNSPodMatchLabels: {}
3019 ## Pod Disruption Budget configuration
3020 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3021 ## @param blackboxExporter.pdb.create Enable/disable a Pod Disruption Budget creation
3022 ## @param blackboxExporter.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3023 ## @param blackboxExporter.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
3029## Component scraping the kube-apiserver
3032 ## @param kubeApiServer.enabled Create a ServiceMonitor to scrape kube-apiserver service
3036 ## @param kubeApiServer.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used.
3037 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3040 ## @param kubeApiServer.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3043 ## @param kubeApiServer.serviceMonitor.metricRelabelings Metric relabeling
3044 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3046 metricRelabelings: []
3047 ## @param kubeApiServer.serviceMonitor.relabelings Relabel configs
3048 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3051 ## @param kubeApiServer.serviceMonitor.labels Extra labels for the ServiceMonitor
3054 ## @param kubeApiServer.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3057 ## @param kubeApiServer.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3060## Component scraping the kube-controller-manager
3062kubeControllerManager:
3063 ## @param kubeControllerManager.enabled Create a ServiceMonitor to scrape kube-controller-manager service
3066 ## @param kubeControllerManager.endpoints If your kube controller manager is not deployed as a pod, specify IPs it can be found on
3073 ## @param kubeControllerManager.namespace Namespace where kube-controller-manager service is deployed.
3075 namespace: kube-system
3076 ## Service ports and selector information
3077 ## @param kubeControllerManager.service.enabled Whether or not to create a Service object for kube-controller-manager
3078 ## @param kubeControllerManager.service.ports.http Listening port of the kube-controller-manager Service object
3079 ## @param kubeControllerManager.service.targetPorts.http Port to target on the kube-controller-manager Pods. This should be the port that kube-controller-manager is exposing metrics on
3080 ## @param kubeControllerManager.service.selector Optional PODs Label selector for the service
3089 ## component: kube-controller-manager
3092 ## @param kubeControllerManager.service.labels Additional labels for kube-controller-manaer service
3096 ## @param kubeControllerManager.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3097 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3100 ## @param kubeControllerManager.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3103 ## @param kubeControllerManager.serviceMonitor.https Enable scraping kube-controller-manager over https
3104 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3107 ## @param kubeControllerManager.serviceMonitor.insecureSkipVerify Skip TLS certificate validation when scraping
3109 insecureSkipVerify: ""
3110 ## @param kubeControllerManager.serviceMonitor.serverName Name of the server to use when validating TLS certificate
3113 ## @param kubeControllerManager.serviceMonitor.metricRelabelings Metric relabeling
3114 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3116 metricRelabelings: []
3117 ## @param kubeControllerManager.serviceMonitor.relabelings Relabel configs
3118 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3121 ## @param kubeControllerManager.serviceMonitor.labels Extra labels for the ServiceMonitor
3124 ## @param kubeControllerManager.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3127 ## @param kubeControllerManager.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3130## Component scraping kube scheduler
3133 ## @param kubeScheduler.enabled Create a ServiceMonitor to scrape kube-scheduler service
3136 ## @param kubeScheduler.endpoints If your kube scheduler is not deployed as a pod, specify IPs it can be found on
3143 ## @param kubeScheduler.namespace Namespace where kube-scheduler service is deployed.
3145 namespace: kube-system
3146 ## If using kubeScheduler.endpoints only the port and targetPort are used
3147 ## @param kubeScheduler.service.enabled Whether or not to create a Service object for kube-scheduler
3148 ## @param kubeScheduler.service.ports.http Listening port of the kube scheduler Service object
3149 ## @param kubeScheduler.service.targetPorts.http Port to target on the kube scheduler Pods. This should be the port that kube scheduler is exposing metrics on
3150 ## @param kubeScheduler.service.selector Optional PODs Label selector for the service
3159 ## component: kube-scheduler
3162 ## @param kubeScheduler.service.labels Additional labels for kube-scheduler service
3166 ## @param kubeScheduler.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3169 ## @param kubeScheduler.serviceMonitor.https Enable scraping kube-scheduler over https
3170 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3173 ## @param kubeScheduler.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3176 ## @param kubeScheduler.serviceMonitor.insecureSkipVerify Skip TLS certificate validation when scraping
3178 insecureSkipVerify: ""
3179 ## @param kubeScheduler.serviceMonitor.serverName Name of the server to use when validating TLS certificate
3182 ## @param kubeScheduler.serviceMonitor.metricRelabelings Metric relabeling
3183 ## metricRelabelings:
3185 ## regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3186 ## sourceLabels: [__name__]
3188 metricRelabelings: []
3189 ## @param kubeScheduler.serviceMonitor.relabelings Relabel configs
3191 ## - sourceLabels: [__meta_kubernetes_pod_node_name]
3194 ## targetLabel: nodename
3199 ## @param kubeScheduler.serviceMonitor.labels Extra labels for the ServiceMonitor
3202 ## @param kubeScheduler.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3205 ## @param kubeScheduler.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3208## Component scraping coreDns
3211 ## @param coreDns.enabled Create a ServiceMonitor to scrape coredns service
3214 ## @param coreDns.namespace Namespace where core dns service is deployed.
3216 namespace: kube-system
3217 ## Create a ServiceMonitor to scrape coredns service
3218 ## @param coreDns.service.enabled Whether or not to create a Service object for coredns
3219 ## @param coreDns.service.ports.http Listening port of the coredns Service object
3220 ## @param coreDns.service.targetPorts.http Port to target on the coredns Pods. This should be the port that coredns is exposing metrics on
3221 ## @param coreDns.service.selector Optional PODs Label selector for the service
3230 ## component: kube-dns
3233 ## @param coreDns.service.labels Additional labels for coredns service
3237 ## @param coreDns.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used.
3240 ## @param coreDns.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3243 ## @param coreDns.serviceMonitor.metricRelabelings Metric relabel configs to apply to samples before ingestion.
3244 ## metricRelabelings:
3246 ## regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3247 ## sourceLabels: [__name__]
3249 metricRelabelings: []
3250 ## @param coreDns.serviceMonitor.relabelings Relabel configs to apply to samples before ingestion.
3252 ## - sourceLabels: [__meta_kubernetes_pod_node_name]
3255 ## targetLabel: nodename
3260 ## @param coreDns.serviceMonitor.labels Extra labels for the ServiceMonitor
3263 ## @param coreDns.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3266 ## @param coreDns.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3269## Component scraping the kube-proxy
3272 ## @param kubeProxy.enabled Create a ServiceMonitor to scrape the kube-proxy Service
3275 ## @param kubeProxy.endpoints If your kube-proxy is not deployed as a pod, specify IPs it can be found on
3282 ## @param kubeProxy.namespace Namespace where kube-proxy service is deployed.
3284 namespace: kube-system
3285 ## @param kubeProxy.service.enabled Whether or not to create a Service object for kube-proxy
3286 ## @param kubeProxy.service.ports.http Listening port of the kube-proxy Service object
3287 ## @param kubeProxy.service.targetPorts.http Port to target on the kube-proxy Pods. This should be the port that kube-proxy is exposing metrics on
3288 ## @param kubeProxy.service.selector Optional PODs Label selector for the service
3297 ## k8s-app: kube-proxy
3300 ## @param kubeProxy.service.labels Additional labels for kube-proxy service
3304 ## @param kubeProxy.serviceMonitor.https Enable scraping kube-proxy over https.
3305 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3308 ## @param kubeProxy.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3309 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3312 ## @param kubeProxy.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3315 ## @param kubeProxy.serviceMonitor.metricRelabelings Metric relabeling
3316 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3318 metricRelabelings: []
3319 ## @param kubeProxy.serviceMonitor.relabelings Relabel configs
3320 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3323 ## @param kubeProxy.serviceMonitor.labels Extra labels for the ServiceMonitor
3326 ## @param kubeProxy.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3329 ## @param kubeProxy.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3332## @section RBAC parameters
3336## ref: https://kubernetes.io/docs/admin/authorization/rbac/
3337## @param rbac.create Whether to create and use RBAC resources or not
3338## @param rbac.pspEnabled Whether to create a PodSecurityPolicy and bound it with RBAC. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
3342 ## @param rbac.rules.operator Custom RBAC rules to set on Prometheus Operator ClusterRole
3343 ## @param rbac.rules.prometheus Custom RBAC rules to set on Prometheus ClusterRole
3360## @section Thanos Ruler Parameters
3363 ## @param thanosRuler.enabled Enable/disable Thanos Ruler component
3366 ## Iamguarded Thanos image
3367 ## @param thanosRuler.image.registry [default: REGISTRY_NAME] Thanos image registry
3368 ## @param thanosRuler.image.repository Thanos image repository
3369 ## @skip thanosRuler.image.tag Thanos image tag
3370 ## @param thanosRuler.image.digest Thanos image digest
3371 ## @param thanosRuler.image.pullPolicy Thanos image pull policy
3372 ## @param thanosRuler.image.pullSecrets Specify docker-registry secret names as an array
3376 repository: chainguard-private/thanos-iamguarded
3379 pullPolicy: IfNotPresent
3381 ## @param thanosRuler.replicaCount Number of Thanos Ruler replicas to deploy
3384 ## @param thanosRuler.paused When a ThanosRuler deployment is paused, no actions except for deletion will be performed on the underlying objects
3387 ## @param thanosRuler.logFormat Log format for Thanos Ruler
3390 ## @param thanosRuler.logLevel Log level for Thanos ruler
3393 ## @param thanosRuler.retention Time duration ThanosRuler shall retain data for
3394 ## Must match the regular expression [0-9]+(ms|s|m|h|d|w|y) (milliseconds seconds minutes hours days weeks years)
3395 ## The field has no effect when remote-write is configured since the Ruler operates in stateless mode
3398 ## @param thanosRuler.evaluationInterval Interval between consecutive evaluations
3400 evaluationInterval: ""
3401 ## @param thanosRuler.labels Configures the external label pairs of the ThanosRuler resource
3402 ## A default replica label 'thanos_ruler_replica' will always be added as a label with the value of the pod’s name
3405 ## @param thanosRuler.storage Storage spec to specify how storage shall be used.
3406 ## ref: https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.StorageSpec
3408 ## @param thanosRuler.volumes Additional volumes on the output StatefulSet definition
3409 ## Volumes specified will be appended to other volumes that are generated as a result of thanosRuler.storage configuration
3412 ## @param thanosRuler.volumeMounts Additional VolumeMounts on the output StatefulSet definition.
3413 ## VolumeMounts specified will be appended to other VolumeMounts that are generated as a result of thanosRuler.storage configuration
3416 ## @param thanosRuler.listenLocal Makes Thanos Ruler listen on loopback, so that it does not bind against the Pod IP
3419 ## @param thanosRuler.externalPrefix The external URL the Thanos Ruler instances will be available under. Maps to --web.external-prefix on Thanos Ruler
3422 ## Service parameters
3425 ## @param thanosRuler.service.type Kubernetes service type
3428 ## @param thanosRuler.service.ports.http Thanos Ruler service HTTP port
3429 ## @param thanosRuler.service.ports.grpc Thanos Ruler service GRPC port
3434 ## @param thanosRuler.service.nodePorts.http Specify the Thanos Ruler HTTP nodePort value for the LoadBalancer and NodePort service types
3435 ## @param thanosRuler.service.nodePorts.grpc Specify the Thanos Ruler GRPC nodePort value for the LoadBalancer and NodePort service types
3436 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
3441 ## @param thanosRuler.service.clusterIP Thanos Ruler service clusterIP IP
3446 ## @param thanosRuler.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
3447 ## Set the LoadBalancer service type to internal only
3448 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
3451 ## @param thanosRuler.service.loadBalancerSourceRanges Address that are allowed when service is LoadBalancer
3452 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
3454 ## loadBalancerSourceRanges:
3457 loadBalancerSourceRanges: []
3458 ## @param thanosRuler.service.externalTrafficPolicy Thanos Ruler service externalTrafficPolicy
3459 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3461 externalTrafficPolicy: Cluster
3462 ## @param thanosRuler.service.labels Extra labels for Thanos Ruler service
3465 ## @param thanosRuler.service.annotations Annotations for Thanos Ruler service
3468 ## @param thanosRuler.service.extraPorts Extra ports to expose in the Thanos Ruler service
3471 ## @param thanosRuler.service.labelSelectorsOverride Selector for Thanos Query service
3473 labelSelectorsOverride: {}
3474 ## @param thanosRuler.service.additionalHeadless Additional Headless service
3476 additionalHeadless: false
3477 ## Headless service properties
3480 ## @param thanosRuler.service.headless.annotations Annotations for the headless service.
3484 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3487 ## @param thanosRuler.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
3490 ## @param thanosRuler.networkPolicy.allowExternal Don't require client label for connections
3491 ## The Policy model to apply. When set to false, only pods with the correct
3492 ## client label will have network access to the ports the application is listening
3493 ## on. When true, the app will accept connections from any source (with the correct destination port).
3496 ## @param thanosRuler.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
3497 ## If set to 'false', set 'extraEgress' to allow communicating to your Thanos Query/Frontend Query services.
3499 allowExternalEgress: true
3500 ## @param thanosRuler.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3510 ## - matchExpressions:
3516 ## @param thanosRuler.networkPolicy.extraEgress [array] Add extra egress rules to the NetworkPolicy
3526 ## - matchExpressions:
3533 ## @param thanosRuler.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3534 ## @param thanosRuler.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3536 ingressNSMatchLabels: {}
3537 ingressNSPodMatchLabels: {}
3538 ## @param thanosRuler.routePrefix Prefix used to register routes. Useful for proxies that rewrite URLs.
3541 ## Configure the ingress resource that allows you to access Thanos Ruler
3542 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
3545 ## @param thanosRuler.ingress.enabled Enable ingress controller resource
3548 ## @param thanosRuler.ingress.hostname Default host for the ingress resource
3550 hostname: thanos-ruler.local
3551 ## @param thanosRuler.ingress.ingressClassName IngressClass that will be used to implement the Ingress (Kubernetes 1.18+)
3552 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
3553 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
3555 ingressClassName: ""
3556 ## @param thanosRuler.ingress.labels Additional label for the Ingress resource.
3557 ## Use this parameter to set the required labels for your needs
3560 ## dns-managed-by-external-dns: 'true'
3563 ## @param thanosRuler.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
3564 ## For a full list of possible ingress annotations, please see
3565 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
3566 ## Use this parameter to set the required annotations for cert-manager, see
3567 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
3571 ## kubernetes.io/ingress.class: nginx
3572 ## cert-manager.io/cluster-issuer: cluster-issuer-name
3575 ## @param thanosRuler.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
3576 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
3578 ## - name: thanos.local
3580 ## pathType: ImplementationSpecific
3583 ## @param thanosRuler.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
3584 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
3588 ## secretName: thanos.local-tls
3591 ## @param thanosRuler.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
3592 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
3593 ## -----BEGIN RSA PRIVATE KEY-----
3595 ## name should line up with a tlsSecret set further up
3596 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
3598 ## It is also possible to create and manage the certificates outside of this helm chart
3599 ## Please see README.md for more information
3601 ## - name: thanos.local-tls
3606 ## @param thanosRuler.ingress.extraRules Additional rules to be covered with this ingress record
3607 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
3610 ## - host: example.local
3615 ## name: example-svc
3620 ## @param thanosRuler.ingress.apiVersion Force Ingress API version (automatically detected if not set)
3623 ## @param thanosRuler.ingress.path Ingress path
3626 ## @param thanosRuler.ingress.pathType Ingress path type
3628 pathType: ImplementationSpecific
3629 ## @param thanosRuler.ingress.tls Enable TLS configuration for the hostname defined at `thanosRuler.ingress.hostname` parameter
3630 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.thanosRuler.ingress.hostname }}`
3632 ## - Use the `thanosRuler.ingress.secrets` parameter to create this TLS secret
3633 ## - Rely on cert-manager to create it by setting the corresponding annotations
3634 ## - Rely on Helm to create self-signed certificates by setting `thanosRuler.ingress.selfSigned=true`
3637 ## @param thanosRuler.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
3640 ## Service account for Thanos Ruler to use
3641 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3644 ## @param thanosRuler.serviceAccount.create Specify whether to create a ServiceAccount for Thanos Ruler
3647 ## @param thanosRuler.serviceAccount.name The name of the ServiceAccount to create
3648 ## If not set and create is true, a name is generated using the kube-prometheus.thanosRuler.fullname template
3651 ## @param thanosRuler.serviceAccount.annotations Additional annotations for the ServiceAccount
3653 ## eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/thanosruler
3656 ## @param thanosRuler.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
3658 automountServiceAccountToken: false
3659 ## Thanos Ruler pods' Security Context
3660 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3661 ## @param thanosRuler.podSecurityContext.enabled Enable security context
3662 ## @param thanosRuler.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
3663 ## @param thanosRuler.podSecurityContext.sysctls Set kernel settings using the sysctl interface
3664 ## @param thanosRuler.podSecurityContext.supplementalGroups Set filesystem extra groups
3665 ## @param thanosRuler.podSecurityContext.fsGroup Group ID for the container filesystem
3669 fsGroupChangePolicy: Always
3671 supplementalGroups: []
3673 ## @param thanosRuler.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge).
3674 ## This is ignored if operator.resources is set (operator.resources is recommended for production).
3676 resourcesPreset: "nano"
3677 ## @param thanosRuler.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3686 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3689 ## @param thanosRuler.containerPorts.http HTTP container port
3690 ## @param thanosRuler.containerPorts.grpc GRPC container port
3695 ## @param thanosRuler.alertQueryUrl The external Query URL the Thanos Ruler will set in the ‘Source’ field of all alerts
3696 ## Maps to the ‘–alert.query-url’ CLI arg
3699 ## Configuration for connecting to alertmanager
3700 ## Maps to --alertmanagers.config Thanos Ruler argument
3701 ## NOTE: This field takes precedence over alertmanagersUrl.
3703 alertmanagersConfig:
3704 ## @param thanosRuler.alertmanagersConfig.existingSecret.name Name of an existing secret to use for Alert Manager config
3705 ## If configured, thanosRuler.alertmanagersConfig.config will not be used
3706 ## @param thanosRuler.alertmanagersConfig.existingSecret.key Name of a key in the existing secret to use for Alert Manager config
3711 ## @param thanosRuler.alertmanagersConfig.config Alert Manager configuration
3712 ## Unused if thanosRuler.alertmanagersConfig.existingSecret.name is configured
3713 ## If empty, Thanos Ruler will use this chart's Alertmanager when 'alertmanager.enabled' is 'true'
3714 ## ref: https://thanos.io/tip/components/rule.md/#alertmanager
3719 ## username: some_user
3720 ## password: some_pass
3722 ## - alertmanager.thanos.io
3728 ## @param thanosRuler.alertDropLabels Configures the label names which should be dropped in Thanos Ruler alerts
3729 ## The replica label `thanos_ruler_replica` will always be dropped from the alerts.
3732 ## Configures the list of Thanos Query endpoints from which to query metrics.
3733 ## Maps to --query.config Thanos Ruler argument
3734 ## The configuration format is defined at https://thanos.io/tip/components/rule.md/#query-api
3736 ## @param thanosRuler.queryConfig.existingSecret.name Name of an existing secret to use for Alert Manager config
3737 ## If configured, thanosRuler.queryConfig.config will not be used
3738 ## @param thanosRuler.queryConfig.existingSecret.key Key in the existing secret to use for Query config
3742 key: "query-config.yaml"
3743 ## @param thanosRuler.queryConfig.config
3744 ## Unused if thanosRuler.queryConfig.existingSecret.name is configured
3748 ## - static_configs:
3749 ## - "dnssrv+_http._tcp.thanos-query.thanos.svc.cluster.local"
3751 ## Configures object storage
3752 ## Maps to --objstore.config Thanos Ruler argument
3753 ## ref: https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage
3755 objectStorageConfig:
3756 ## @param thanosRuler.objectStorageConfig.existingSecret.name Name of an existing secret to use for Object Storage config
3757 ## If configured, thanosRuler.objectStorageConfig.config will not be used
3758 ## @param thanosRuler.objectStorageConfig.existingSecret.key Key in the existing secret to use for Object Storage config
3763 ## @param thanosRuler.objectStorageConfig.config
3764 ## Unused if thanosRuler.objectStorageConfig.existingSecret.name is configured
3767 ## @param thanosRuler.ruleNamespaceSelector Namespaces to be selected for PrometheusRules discovery
3768 ## If nil, select own namespace
3770 ruleNamespaceSelector: {}
3771 ## @param thanosRuler.ruleSelector PrometheusRule selector labels
3772 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md
3773 ## If nil, select all PrometheusRules
3776 ## @param thanosRuler.evalInterval How frequently to evaluate rules
3779 ## @param thanosRuler.clusterName Used to set the 'ruler_cluster' label
3782 ## @param thanosRuler.additionalArgs [array] Additional arguments for the ThanosRuler container.
3783 ## It is intended for e.g. activating hidden flags which are not supported by the dedicated configuration options yet.
3786 - name: grpc-address
3787 value: "0.0.0.0:{{ .Values.thanosRuler.containerPorts.grpc }}"
3788 - name: http-address
3789 value: "0.0.0.0:{{ .Values.thanosRuler.containerPorts.http }}"
3790 ## Thanos Ruler Pod Disruption Budget configuration
3791 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3792 ## @param thanosRuler.pdb.create Enable/disable a Pod Disruption Budget creation for Thanos Ruler
3793 ## @param thanosRuler.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3794 ## @param thanosRuler.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
3800 ## @param thanosRuler.nodeSelector Node labels for Thanos Ruler pods assignment
3801 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3804 ## Create a servicemonitor for Thanos ruler
3807 ## @param thanosRuler.serviceMonitor.enabled Creates a ServiceMonitor to monitor Thanos Ruler
3810 ## @param thanosRuler.serviceMonitor.https Enable scraping Thanos Ruler over https.
3811 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3814 ## @param thanosRuler.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3817 ## @param thanosRuler.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3818 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3821 ## @param thanosRuler.serviceMonitor.metricRelabelings Metric relabeling
3822 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3824 metricRelabelings: []
3825 ## @param thanosRuler.serviceMonitor.relabelings Relabel configs
3826 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3829 ## @param thanosRuler.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
3830 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
3833 ## @param thanosRuler.serviceMonitor.labels Extra labels for the ServiceMonitor
3836 ## @param thanosRuler.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3839 ## @param thanosRuler.serviceMonitor.extraParameters Any extra parameter to be added to the endpoint configured in the ServiceMonitor
3840 ## (e.g. tlsConfig for further customization of the HTTPS behavior)
3841 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Endpoint
3844 ## @param thanosRuler.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3847 ## @param thanosRuler.podAffinityPreset Prometheus Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
3848 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3850 podAffinityPreset: ""
3851 ## @param thanosRuler.podAntiAffinityPreset Thanos Ruler Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
3852 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3854 podAntiAffinityPreset: soft
3855 ## Node affinity preset
3856 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3859 ## @param thanosRuler.nodeAffinityPreset.type Thanos Ruler Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
3862 ## @param thanosRuler.nodeAffinityPreset.key Thanos Ruler Node label key to match. Ignored if `affinity` is set
3864 ## key: "kubernetes.io/e2e-az-name"
3867 ## @param thanosRuler.nodeAffinityPreset.values Thanos Ruler Node label values to match. Ignored if `affinity` is set
3874 ## @param thanosRuler.affinity Thanos Ruler Affinity for pod assignment
3875 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3876 ## Note: thanosRuler.podAffinityPreset, thanosRuler.podAntiAffinityPreset, and thanosRuler.nodeAffinityPreset will be ignored when it's set
3879 ## @param thanosRuler.podMetadata [object] Standard object's metadata
3880 ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
3885 ## @param thanosRuler.tolerations Thanos Ruler Tolerations for pod assignment
3886 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3889 ## @param thanosRuler.topologySpreadConstraints Topology Spread Constraints for pod assignment
3890 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
3891 ## The value is evaluated as a template
3893 topologySpreadConstraints: []
3894 ## @param thanosRuler.containers Containers allows injecting additional containers or modifying operator generated containers
3895 ## The current container names are: thanos-ruler and config-reloader
3898 ## @param thanosRuler.initContainers InitContainers allows adding initContainers to the pod definition
3899 ## Those can be used to e.g. fetch secrets for injection into the ThanosRuler configuration from external sources.
3902 ## @param thanosRuler.priorityClassName Priority class assigned to the Pods
3904 priorityClassName: ""
3905 ## @param thanosRuler.portName Port name used for the pods and governing service
3908 ## @param thanosRuler.web Defines the configuration of the ThanosRuler web server
3911 ## @param thanosRuler.remoteWrite Defines the list of remote write configurations
3912 ## When the list isn’t empty, the ruler is configured with stateless mode
3913 ## ref: https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.RemoteWriteSpec