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 ## ref: https://hub.docker.com/r/iamguarded/prometheus-operator/tags/
78 ## @param operator.image.registry [default: REGISTRY_NAME] Prometheus Operator image registry
79 ## @param operator.image.repository [default: REPOSITORY_NAME/prometheus-operator] Prometheus Operator image repository
80 ## @skip operator.image.tag Prometheus Operator image tag (immutable tags are recommended)
81 ## @param operator.image.digest Prometheus Operator image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
82 ## @param operator.image.pullPolicy Prometheus Operator image pull policy
83 ## @param operator.image.pullSecrets Specify docker-registry secret names as an array
87 repository: chainguard-private/prometheus-operator-iamguarded
90 ## Specify a imagePullPolicy
91 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
93 pullPolicy: IfNotPresent
94 ## Optionally specify an array of imagePullSecrets.
95 ## Secrets must be manually created in the namespace.
96 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
99 ## - myRegistryKeySecretName
102 ## @param operator.extraArgs Additional arguments passed to Prometheus Operator
105 ## - --namespaces={{ include "common.names.namespace" . }}
108 ## @param operator.command Override default container command (useful when using custom images)
111 ## @param operator.args Override default container args (useful when using custom images)
114 ## @param operator.lifecycleHooks for the Prometheus Operator container(s) to automate configuration before or after startup
117 ## @param operator.extraEnvVars Array with extra environment variables to add to Prometheus Operator nodes
124 ## @param operator.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Prometheus Operator nodes
127 ## @param operator.extraEnvVarsSecret Name of existing Secret containing extra env vars for Prometheus Operator nodes
129 extraEnvVarsSecret: ""
130 ## @param operator.extraVolumes Optionally specify extra list of additional volumes for the Prometheus Operator pod(s)
133 ## @param operator.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Prometheus Operator container(s)
135 extraVolumeMounts: []
136 ## @param operator.sidecars Add additional sidecar containers to the Prometheus Operator pod(s)
139 ## - name: your-image-name
141 ## imagePullPolicy: Always
144 ## containerPort: 1234
147 ## @param operator.initContainers Add additional init containers to the Prometheus Operator pod(s)
148 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
151 ## - name: your-image-name
153 ## imagePullPolicy: Always
154 ## command: ['sh', '-c', 'echo "hello world"']
157 ## @param operator.automountServiceAccountToken Mount Service Account token in pod
159 automountServiceAccountToken: true
160 ## @param operator.hostAliases Add deployment host aliases
161 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
164 ## Service account for Prometheus Operator to use.
165 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
168 ## @param operator.serviceAccount.create Specify whether to create a ServiceAccount for Prometheus Operator
171 ## @param operator.serviceAccount.name The name of the ServiceAccount to create
172 ## If not set and create is true, a name is generated using the kube-prometheus.operator.fullname template
175 ## @param operator.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
177 automountServiceAccountToken: false
178 ## @param operator.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
181 ## @param operator.schedulerName Name of the Kubernetess scheduler (other than default)
182 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
185 ## @param operator.terminationGracePeriodSeconds In seconds, time the given to the Prometheus Operator pod needs to terminate gracefully
186 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
188 terminationGracePeriodSeconds: ""
189 ## @param operator.topologySpreadConstraints Topology Spread Constraints for pod assignment
190 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
191 ## The value is evaluated as a template
193 topologySpreadConstraints: []
194 ## Prometheus Operator pods' Security Context
195 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
196 ## @param operator.podSecurityContext.enabled Enable pod security context
197 ## @param operator.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
198 ## @param operator.podSecurityContext.sysctls Set kernel settings using the sysctl interface
199 ## @param operator.podSecurityContext.supplementalGroups Set filesystem extra groups
200 ## @param operator.podSecurityContext.fsGroup Group ID for the container filesystem
204 fsGroupChangePolicy: Always
206 supplementalGroups: []
208 ## Prometheus Operator containers' Security Context (only main container)
209 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
210 ## @param operator.containerSecurityContext.enabled Enabled containers' Security Context
211 ## @param operator.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
212 ## @param operator.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
213 ## @param operator.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
214 ## @param operator.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
215 ## @param operator.containerSecurityContext.privileged Set container's Security Context privileged
216 ## @param operator.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
217 ## @param operator.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
218 ## @param operator.containerSecurityContext.capabilities.drop List of capabilities to be dropped
219 ## @param operator.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
221 containerSecurityContext:
228 readOnlyRootFilesystem: true
229 allowPrivilegeEscalation: false
233 type: "RuntimeDefault"
234 ## Prometheus Operator Service
237 ## @param operator.service.type Kubernetes service type
240 ## @param operator.service.ports.http Prometheus Operator service port
244 ## @param operator.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` for headless service
249 ## @param operator.service.nodePorts.http Kubernetes Service nodePort
250 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
256 ## @param operator.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
257 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
260 ## @param operator.service.loadBalancerClass Operator service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
261 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
263 loadBalancerClass: ""
264 ## @param operator.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
265 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
267 ## loadBalancerSourceRanges:
270 loadBalancerSourceRanges: []
271 ## @param operator.service.externalTrafficPolicy Enable client source IP preservation
272 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
273 ## There are two available options: Cluster (default) and Local.
274 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
276 externalTrafficPolicy: Cluster
277 ## @param operator.service.healthCheckNodePort Specifies the health check node port (numeric port number) for the service if `externalTrafficPolicy` is set to Local.
278 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
280 healthCheckNodePort: ""
281 ## @param operator.service.labels Additional labels for Prometheus Operator service
284 ## @param operator.service.annotations Additional annotations for Prometheus Operator service
287 ## @param operator.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
290 ## @param operator.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
291 ## If "ClientIP", consecutive client requests will be directed to the same Pod
292 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
294 sessionAffinity: None
295 ## @param operator.service.sessionAffinityConfig Additional settings for the sessionAffinity
296 ## sessionAffinityConfig:
298 ## timeoutSeconds: 300
300 sessionAffinityConfig: {}
302 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
305 ## @param operator.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
308 ## @param operator.networkPolicy.allowExternal Don't require server label for connections
309 ## The Policy model to apply. When set to false, only pods with the correct
310 ## server label will have network access to the ports server is listening
311 ## on. When true, server will accept connections from any source
312 ## (with the correct destination port).
315 ## @param operator.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
317 allowExternalEgress: true
318 ## @param operator.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
328 ## - matchExpressions:
334 ## @param operator.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
344 ## - matchExpressions:
351 ## @param operator.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
352 ## @param operator.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
354 ingressNSMatchLabels: {}
355 ingressNSPodMatchLabels: {}
356 ## Create a servicemonitor for the operator
359 ## @param operator.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus Operator
362 ## @param operator.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
365 ## @param operator.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
366 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
369 ## @param operator.serviceMonitor.metricRelabelings Metric relabeling
370 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
372 metricRelabelings: []
373 ## @param operator.serviceMonitor.relabelings Relabel configs
374 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
377 ## @param operator.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
378 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
381 ## @param operator.serviceMonitor.labels Extra labels for the ServiceMonitor
384 ## @param operator.serviceMonitor.annotations Extra annotations for the ServiceMonitor
387 ## @param operator.serviceMonitor.extraParameters Any extra parameter to be added to the endpoint configured in the ServiceMonitor
388 ## (e.g. tlsConfig for further customization of the HTTPS behavior)
389 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Endpoint
392 ## @param operator.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
395 ## @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 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
398 resourcesPreset: "nano"
399 ## @param operator.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
408 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
411 ## @param operator.podAffinityPreset Pod affinity preset
412 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
414 podAffinityPreset: ""
415 ## @param operator.podAntiAffinityPreset Prometheus Operator Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
416 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
418 podAntiAffinityPreset: soft
419 ## Node affinity preset
420 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
423 ## @param operator.nodeAffinityPreset.type Prometheus Operator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
426 ## @param operator.nodeAffinityPreset.key Prometheus Operator Node label key to match Ignored if `affinity` is set.
428 ## key: "kubernetes.io/e2e-az-name"
431 ## @param operator.nodeAffinityPreset.values Prometheus Operator Node label values to match. Ignored if `affinity` is set.
438 ## @param operator.affinity Prometheus Operator Affinity for pod assignment
439 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
440 ## Note: operator.podAffinityPreset, operator.podAntiAffinityPreset, and operator.nodeAffinityPreset will be ignored when it's set
443 ## @param operator.nodeSelector Prometheus Operator Node labels for pod assignment
444 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
447 ## @param operator.tolerations Prometheus Operator Tolerations for pod assignment
448 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
451 ## @param operator.podAnnotations Annotations for Prometheus Operator pods
452 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
455 ## @param operator.podLabels Extra labels for Prometheus Operator pods
456 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
459 ## @param operator.priorityClassName Priority class assigned to the Pods
461 priorityClassName: ""
462 ## Configure extra options for liveness probe
463 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
464 ## @param operator.livenessProbe.enabled Turn on and off liveness probe
465 ## @param operator.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
466 ## @param operator.livenessProbe.periodSeconds How often to perform the probe
467 ## @param operator.livenessProbe.timeoutSeconds When the probe times out
468 ## @param operator.livenessProbe.failureThreshold Minimum consecutive failures for the probe
469 ## @param operator.livenessProbe.successThreshold Minimum consecutive successes for the probe
473 initialDelaySeconds: 120
478 ## Configure extra options for readiness probe
479 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
480 ## @param operator.readinessProbe.enabled Turn on and off readiness probe
481 ## @param operator.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
482 ## @param operator.readinessProbe.periodSeconds How often to perform the probe
483 ## @param operator.readinessProbe.timeoutSeconds When the probe times out
484 ## @param operator.readinessProbe.failureThreshold Minimum consecutive failures for the probe
485 ## @param operator.readinessProbe.successThreshold Minimum consecutive successes for the probe
489 initialDelaySeconds: 30
494 ## Configure extra options for startup probe
495 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
496 ## @param operator.startupProbe.enabled Turn on and off startup probe
497 ## @param operator.startupProbe.initialDelaySeconds Delay before startup probe is initiated
498 ## @param operator.startupProbe.periodSeconds How often to perform the probe
499 ## @param operator.startupProbe.timeoutSeconds When the probe times out
500 ## @param operator.startupProbe.failureThreshold Minimum consecutive failures for the probe
501 ## @param operator.startupProbe.successThreshold Minimum consecutive successes for the probe
505 initialDelaySeconds: 30
510 ## @param operator.customLivenessProbe Custom livenessProbe that overrides the default one
512 customLivenessProbe: {}
513 ## @param operator.customReadinessProbe Custom readinessProbe that overrides the default one
515 customReadinessProbe: {}
516 ## @param operator.customStartupProbe Custom startupProbe that overrides the default one
518 customStartupProbe: {}
519 ## @param operator.logLevel Log level for Prometheus Operator
522 ## @param operator.logFormat Log format for Prometheus Operator
525 ## @param operator.configReloaderResources Set the prometheus config reloader side-car CPU and memory requests and limits.
526 ## configReloaderResources:
534 configReloaderResources: {}
535 ## @param operator.kubeletService.enabled If true, the operator will create and maintain a service for scraping kubelets
536 ## @param operator.kubeletService.namespace Namespace to deploy the kubelet service
540 namespace: kube-system
541 ## Prometheus Configmap-reload image to use for reloading configmaps
542 ## defaults to Iamguarded Prometheus Operator (ref: https://hub.docker.com/r/iamguarded/prometheus-operator/tags/)
544 prometheusConfigReloader:
545 ## @param operator.prometheusConfigReloader.image Prometheus Config Reloader image. If not set, the same as `operator.image.registry`
553 ## Prometheus config reload container's securityContext
554 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
555 ## @param operator.prometheusConfigReloader.containerSecurityContext.enabled Enabled containers' Security Context
556 ## @param operator.prometheusConfigReloader.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
557 ## @param operator.prometheusConfigReloader.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
558 ## @param operator.prometheusConfigReloader.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
559 ## @param operator.prometheusConfigReloader.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
560 ## @param operator.prometheusConfigReloader.containerSecurityContext.privileged Set container's Security Context privileged
561 ## @param operator.prometheusConfigReloader.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
562 ## @param operator.prometheusConfigReloader.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
563 ## @param operator.prometheusConfigReloader.containerSecurityContext.capabilities.drop List of capabilities to be dropped
564 ## @param operator.prometheusConfigReloader.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
566 containerSecurityContext:
573 readOnlyRootFilesystem: true
574 allowPrivilegeEscalation: false
578 type: "RuntimeDefault"
579 ## Configure extra options for liveness probe
580 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
581 ## @param operator.prometheusConfigReloader.livenessProbe.enabled Turn on and off liveness probe
582 ## @param operator.prometheusConfigReloader.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
583 ## @param operator.prometheusConfigReloader.livenessProbe.periodSeconds How often to perform the probe
584 ## @param operator.prometheusConfigReloader.livenessProbe.timeoutSeconds When the probe times out
585 ## @param operator.prometheusConfigReloader.livenessProbe.failureThreshold Minimum consecutive failures for the probe
586 ## @param operator.prometheusConfigReloader.livenessProbe.successThreshold Minimum consecutive successes for the probe
590 initialDelaySeconds: 10
595 ## Configure extra options for readiness probe
596 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
597 ## @param operator.prometheusConfigReloader.readinessProbe.enabled Turn on and off readiness probe
598 ## @param operator.prometheusConfigReloader.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
599 ## @param operator.prometheusConfigReloader.readinessProbe.periodSeconds How often to perform the probe
600 ## @param operator.prometheusConfigReloader.readinessProbe.timeoutSeconds When the probe times out
601 ## @param operator.prometheusConfigReloader.readinessProbe.failureThreshold Minimum consecutive failures for the probe
602 ## @param operator.prometheusConfigReloader.readinessProbe.successThreshold Minimum consecutive successes for the probe
606 initialDelaySeconds: 15
611 ## Restrict the namespaces that the operator watches
612 ## ref: `-namespaces` in https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/operator.md
613 ## @param operator.namespaces Optional comma-separated list of namespaces to watch (default=all).
616 ## Pod Disruption Budget configuration
617 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
618 ## @param operator.pdb.create Enable/disable a Pod Disruption Budget creation
619 ## @param operator.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
620 ## @param operator.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
626## @section Prometheus Parameters
629## Deploy a Prometheus instance
632 ## @param prometheus.enabled Deploy Prometheus to the cluster
635 ## Iamguarded Prometheus image version
636 ## ref: https://hub.docker.com/r/iamguarded/prometheus/tags/
637 ## @param prometheus.image.registry [default: REGISTRY_NAME] Prometheus image registry
638 ## @param prometheus.image.repository [default: REPOSITORY_NAME/prometheus] Prometheus image repository
639 ## @skip prometheus.image.tag Prometheus image tag (immutable tags are recommended)
640 ## @param prometheus.image.digest Prometheus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
641 ## @param prometheus.image.pullPolicy Prometheus image pull policy
642 ## @param prometheus.image.pullSecrets Specify docker-registry secret names as an array
646 repository: chainguard-private/prometheus-iamguarded
649 pullPolicy: IfNotPresent
650 ## Optionally specify an array of imagePullSecrets.
651 ## Secrets must be manually created in the namespace.
652 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
655 ## - myRegistryKeySecretName
658 ## @param prometheus.defaultRules.create Create default rules for Prometheus
659 ## @param prometheus.defaultRules.rules [object] Set of default rules for Prometheus that can be enabled/disabled
666 configReloaders: true
668 k8sContainerCpuUsageSecondsTotal: true
669 k8sContainerMemoryCache: true
670 k8sContainerMemoryRss: true
671 k8sContainerMemorySwap: true
672 k8sContainerResource: true
673 k8sContainerMemoryWorkingSetBytes: true
675 kubeApiserverAvailability: true
676 kubeApiserverBurnrate: true
677 kubeApiserverHistogram: true
678 kubeApiserverSlos: true
679 kubeControllerManager: true
682 kubePrometheusGeneral: true
683 kubePrometheusNodeRecording: true
685 kubernetesResources: true
686 kubernetesStorage: true
687 kubernetesSystem: true
688 kubeSchedulerAlerting: true
689 kubeSchedulerRecording: true
690 kubeStateMetrics: true
693 nodeExporterAlerting: true
694 nodeExporterRecording: true
696 prometheusOperator: true
697 ## Service account for Prometheus to use.
698 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
701 ## @param prometheus.serviceAccount.create Specify whether to create a ServiceAccount for Prometheus
704 ## @param prometheus.serviceAccount.name The name of the ServiceAccount to create
705 ## If not set and create is true, a name is generated using the kube-prometheus.prometheus.fullname template
708 ## @param prometheus.serviceAccount.annotations Additional annotations for created Prometheus ServiceAccount
710 ## eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/prometheus
713 ## @param prometheus.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
715 automountServiceAccountToken: false
716 ## Prometheus pods' Security Context
717 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
718 ## @param prometheus.podSecurityContext.enabled Enable security context
719 ## @param prometheus.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
720 ## @param prometheus.podSecurityContext.sysctls Set kernel settings using the sysctl interface
721 ## @param prometheus.podSecurityContext.supplementalGroups Set filesystem extra groups
722 ## @param prometheus.podSecurityContext.fsGroup Group ID for the container filesystem
726 fsGroupChangePolicy: Always
728 supplementalGroups: []
730 ## Prometheus containers' Security Context
731 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
732 ## @param prometheus.containerSecurityContext.enabled Enabled containers' Security Context
733 ## @param prometheus.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
734 ## @param prometheus.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
735 ## @param prometheus.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
736 ## @param prometheus.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
737 ## @param prometheus.containerSecurityContext.privileged Set container's Security Context privileged
738 ## @param prometheus.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
739 ## @param prometheus.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
740 ## @param prometheus.containerSecurityContext.capabilities.drop List of capabilities to be dropped
741 ## @param prometheus.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
743 containerSecurityContext:
750 readOnlyRootFilesystem: true
751 allowPrivilegeEscalation: false
755 type: "RuntimeDefault"
756 ## Configure pod disruption budgets for Prometheus
757 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
758 ## @param prometheus.pdb.create Create a pod disruption budget for Prometheus
759 ## @param prometheus.pdb.minAvailable Minimum number / percentage of pods that should remain scheduled
760 ## @param prometheus.pdb.maxUnavailable Maximum number / percentage of pods that may be made unavailable
767 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
770 ## @param prometheus.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
773 ## @param prometheus.networkPolicy.allowExternal Don't require server label for connections
774 ## The Policy model to apply. When set to false, only pods with the correct
775 ## server label will have network access to the ports server is listening
776 ## on. When true, server will accept connections from any source
777 ## (with the correct destination port).
780 ## @param prometheus.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
782 allowExternalEgress: true
783 ## @param prometheus.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
793 ## - matchExpressions:
799 ## @param prometheus.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
809 ## - matchExpressions:
816 ## @param prometheus.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
817 ## @param prometheus.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
819 ingressNSMatchLabels: {}
820 ingressNSPodMatchLabels: {}
821 ## Prometheus Service
824 ## @param prometheus.service.type Kubernetes service type
827 ## @param prometheus.service.ports.http Prometheus service port
831 ## @param prometheus.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` for headless service
832 ## e.g: clusterIP: None
835 ## @param prometheus.service.nodePorts.http Specify the nodePort value for the LoadBalancer and NodePort service types.
836 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
842 ## @param prometheus.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
843 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
846 ## @param prometheus.service.loadBalancerClass Prometheus service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
847 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
849 loadBalancerClass: ""
850 ## @param prometheus.service.loadBalancerSourceRanges Address that are allowed when service is `LoadBalancer`
851 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
853 ## loadBalancerSourceRanges:
856 loadBalancerSourceRanges: []
857 ## @param prometheus.service.externalTrafficPolicy Enable client source IP preservation
858 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
859 ## There are two available options: Cluster (default) and Local
860 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
862 externalTrafficPolicy: Cluster
863 ## @param prometheus.service.healthCheckNodePort Specifies the health check node port
864 ## if externalTrafficPolicy is set to Local.
865 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
867 healthCheckNodePort: ""
868 ## @param prometheus.service.labels Additional labels for Prometheus service (this value is evaluated as a template)
871 ## @param prometheus.service.annotations Additional annotations for Prometheus service (this value is evaluated as a template)
874 ## @param prometheus.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
875 ## If "ClientIP", consecutive client requests will be directed to the same Pod
876 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
878 sessionAffinity: None
879 ## @param prometheus.service.sessionAffinityConfig Additional settings for the sessionAffinity
880 ## sessionAffinityConfig:
882 ## timeoutSeconds: 300
884 sessionAffinityConfig: {}
886 ## @param prometheus.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus itself
889 ## @param prometheus.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
892 ## @param prometheus.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
893 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
896 ## @param prometheus.serviceMonitor.metricRelabelings Metric relabeling
897 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
899 metricRelabelings: []
900 ## @param prometheus.serviceMonitor.relabelings Relabel configs
901 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
904 ## @param prometheus.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
907 ## Configure the ingress resource that allows you to access the
908 ## Prometheus installation. Set up the URL
909 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
912 ## @param prometheus.ingress.enabled Enable ingress controller resource
915 ## @param prometheus.ingress.pathType Ingress Path type
917 pathType: ImplementationSpecific
918 ## @param prometheus.ingress.apiVersion Override API Version (automatically detected if not set)
921 ## @param prometheus.ingress.hostname Default host for the ingress resource
923 hostname: prometheus.local
924 ## @param prometheus.ingress.path The Path to Prometheus. You may need to set this to '/*' in order to use this with ALB ingress controllers
927 ## @param prometheus.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
928 ## For a full list of possible ingress annotations, please see
929 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
930 ## Use this parameter to set the required annotations for cert-manager, see
931 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
935 ## kubernetes.io/ingress.class: nginx
936 ## cert-manager.io/cluster-issuer: cluster-issuer-name
939 ## @param prometheus.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
940 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
941 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
944 ## @param prometheus.ingress.tls Enable TLS configuration for the hostname defined at prometheus.ingress.hostname parameter
945 ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.prometheus.ingress.hostname }}
946 ## You can use the prometheus.ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
949 ## @param prometheus.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
952 ## @param prometheus.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
953 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
955 ## - name: prometheus.local
959 ## @param prometheus.ingress.extraPaths Additional arbitrary path/backend objects
960 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
964 ## serviceName: ssl-redirect
965 ## servicePort: use-annotation
968 ## @param prometheus.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
969 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
972 ## - prometheus.local
973 ## secretName: prometheus.local-tls
976 ## @param prometheus.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
977 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
978 ## -----BEGIN RSA PRIVATE KEY-----
980 ## name should line up with a tlsSecret set further up
981 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
983 ## It is also possible to create and manage the certificates outside of this helm chart
984 ## Please see README.md for more information
987 ## - name: prometheus.local-tls
991 ## NOTE: the secret name MUST match {{ingress.hostname}}-tls to be used if selfSigned is false or no certManager is used
993 ## @param prometheus.ingress.extraRules Additional rules to be covered with this ingress record
994 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
997 ## - host: example.local
1002 ## name: example-svc
1007 ## @param prometheus.externalUrl External URL used to access Prometheus
1008 ## If not creating an ingress but still exposing the service some other way (like a proxy)
1009 ## let Prometheus know what its external URL is so that it can properly create links
1010 ## externalUrl: https://prometheus.example.com
1013 ## @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).
1014 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1016 resourcesPreset: "small"
1017 ## @param prometheus.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1026 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1029 ## @param prometheus.podAffinityPreset Prometheus Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1030 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1032 podAffinityPreset: ""
1033 ## @param prometheus.podAntiAffinityPreset Prometheus Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1034 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1036 podAntiAffinityPreset: soft
1037 ## Node affinity preset
1038 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1041 ## @param prometheus.nodeAffinityPreset.type Prometheus Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1044 ## @param prometheus.nodeAffinityPreset.key Prometheus Node label key to match Ignored if `affinity` is set.
1046 ## key: "kubernetes.io/e2e-az-name"
1049 ## @param prometheus.nodeAffinityPreset.values Prometheus Node label values to match. Ignored if `affinity` is set.
1056 ## @param prometheus.affinity Prometheus Affinity for pod assignment
1057 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1058 ## Note: prometheus.podAffinityPreset, prometheus.podAntiAffinityPreset, and prometheus.nodeAffinityPreset will be ignored when it's set
1061 ## @param prometheus.nodeSelector Prometheus Node labels for pod assignment
1062 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1065 ## @param prometheus.topologySpreadConstraints Prometheus Topology Spread Constraints for pod assignment
1066 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1067 ## The value is evaluated as a template
1069 topologySpreadConstraints: []
1070 ## @param prometheus.tolerations Prometheus Tolerations for pod assignment
1071 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1074 ## @param prometheus.scrapeInterval Interval between consecutive scrapes
1077 ## @param prometheus.evaluationInterval Interval between consecutive evaluations
1079 evaluationInterval: ""
1080 ## @param prometheus.scrapeTimeout Timeout after which the global scrape is ended
1081 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
1084 ## @param prometheus.sampleLimit Per-scrape max number of scraped samples. Requires Prometheus v2.45.0 and newer
1085 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
1087 ## @param prometheus.enforcedSampleLimit Override sampleLimits set by ServiceMonitor, PodMonitor or Probe objects
1088 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.PrometheusSpec
1089 enforcedSampleLimit: ""
1090 ## @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.
1091 ## Requires Prometheus v2.47.0 and newer
1092 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
1093 keepDroppedTargets: ""
1094 ## @param prometheus.listenLocal ListenLocal makes the Prometheus server listen on loopback
1097 ## Configure extra options for liveness probe
1098 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1099 ## @param prometheus.livenessProbe.enabled Turn on and off liveness probe
1100 ## @param prometheus.livenessProbe.path Path of the HTTP service for checking the healthy state
1101 ## @param prometheus.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
1102 ## @param prometheus.livenessProbe.periodSeconds How often to perform the probe
1103 ## @param prometheus.livenessProbe.timeoutSeconds When the probe times out
1104 ## @param prometheus.livenessProbe.failureThreshold Minimum consecutive failures for the probe
1105 ## @param prometheus.livenessProbe.successThreshold Minimum consecutive successes for the probe
1110 initialDelaySeconds: 0
1111 failureThreshold: 10
1115 ## Configure extra options for readiness probe
1116 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1117 ## @param prometheus.readinessProbe.enabled Turn on and off readiness probe
1118 ## @param prometheus.readinessProbe.path Path of the HTTP service for checking the ready state
1119 ## @param prometheus.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
1120 ## @param prometheus.readinessProbe.periodSeconds How often to perform the probe
1121 ## @param prometheus.readinessProbe.timeoutSeconds When the probe times out
1122 ## @param prometheus.readinessProbe.failureThreshold Minimum consecutive failures for the probe
1123 ## @param prometheus.readinessProbe.successThreshold Minimum consecutive successes for the probe
1128 initialDelaySeconds: 0
1129 failureThreshold: 10
1133 ## Configure extra options for startup probe
1134 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1135 ## @param prometheus.startupProbe.enabled Turn on and off readiness probe
1136 ## @param prometheus.startupProbe.path Path of the HTTP service for checking the ready state
1137 ## @param prometheus.startupProbe.initialDelaySeconds Delay before readiness probe is initiated
1138 ## @param prometheus.startupProbe.periodSeconds How often to perform the probe
1139 ## @param prometheus.startupProbe.timeoutSeconds When the probe times out
1140 ## @param prometheus.startupProbe.failureThreshold Minimum consecutive failures for the probe
1141 ## @param prometheus.startupProbe.successThreshold Minimum consecutive successes for the probe
1146 initialDelaySeconds: 0
1147 failureThreshold: 60
1151 ## @param prometheus.enableAdminAPI Enable Prometheus adminitrative API
1152 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
1154 enableAdminAPI: false
1155 ## @param prometheus.enableFeatures Enable access to Prometheus disabled features.
1156 ## ref: https://prometheus.io/docs/prometheus/latest/disabled_features/
1159 ## @param prometheus.alertingEndpoints Alertmanagers to which alerts will be sent
1160 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#alertmanagerendpoints
1162 alertingEndpoints: []
1163 ## @param prometheus.externalLabels External labels to add to any time series or alerts when communicating with external systems
1166 ## @param prometheus.replicaExternalLabelName Name of the external label used to denote replica name
1168 replicaExternalLabelName: ""
1169 ## @param prometheus.replicaExternalLabelNameClear Clear external label used to denote replica name
1171 replicaExternalLabelNameClear: false
1172 ## @param prometheus.routePrefix Prefix used to register routes, overriding externalUrl route
1173 ## Useful for proxies that rewrite URLs.
1176 ## @param prometheus.prometheusExternalLabelName Name of the external label used to denote Prometheus instance name
1178 prometheusExternalLabelName: ""
1179 ## @param prometheus.prometheusExternalLabelNameClear Clear external label used to denote Prometheus instance name
1181 prometheusExternalLabelNameClear: false
1182 ## @param prometheus.secrets Secrets that should be mounted into the Prometheus Pods
1185 ## @param prometheus.configMaps ConfigMaps that should be mounted into the Prometheus Pods
1188 ## @param prometheus.querySpec The query command line flags when starting Prometheus
1189 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#queryspec
1192 ## @param prometheus.ruleNamespaceSelector Namespaces to be selected for PrometheusRules discovery
1193 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1195 ruleNamespaceSelector: {}
1196 ## @param prometheus.ruleSelector PrometheusRules to be selected for target discovery
1197 ## If {}, select all ServiceMonitors
1200 ## @param prometheus.serviceMonitorSelector ServiceMonitors to be selected for target discovery
1201 ## If {}, select all ServiceMonitors
1203 serviceMonitorSelector: {}
1204 ## @param prometheus.serviceMonitorNamespaceSelector Namespaces to be selected for ServiceMonitor discovery
1205 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1207 serviceMonitorNamespaceSelector: {}
1208 ## @param prometheus.podMonitorSelector PodMonitors to be selected for target discovery.
1209 ## If {}, select all PodMonitors
1211 podMonitorSelector: {}
1212 ## @param prometheus.podMonitorNamespaceSelector Namespaces to be selected for PodMonitor discovery
1213 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1215 podMonitorNamespaceSelector: {}
1216 ## @param prometheus.probeSelector Probes to be selected for target discovery.
1217 ## If {}, select all Probes
1220 ## @param prometheus.probeNamespaceSelector Namespaces to be selected for Probe discovery
1221 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1223 probeNamespaceSelector: {}
1224 ## @param prometheus.scrapeConfigSelector ScrapeConfig to be selected for target discovery.
1225 ## If {}, select all ScrapeConfig
1227 scrapeConfigSelector: {}
1228 ## @param prometheus.scrapeConfigNamespaceSelector Namespaces to be selected for ScrapeConfig discovery
1229 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector for usage
1231 scrapeConfigNamespaceSelector: {}
1232 ## @param prometheus.scrapeClasses List of scrape classes to expose to scraping objects
1233 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#scrapeclass for usage
1236 ## @param prometheus.retention Metrics retention days
1239 ## @param prometheus.retentionSize Maximum size of metrics
1242 ## @param prometheus.disableCompaction Disable the compaction of the Prometheus TSDB
1243 ## See https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1244 ## ref: https://prometheus.io/docs/prometheus/latest/storage/#compaction
1246 disableCompaction: false
1247 ## @param prometheus.walCompression Enable compression of the write-ahead log using Snappy
1249 walCompression: false
1250 ## @param prometheus.paused If true, the Operator won't process any Prometheus configuration changes
1253 ## @param prometheus.replicaCount Number of Prometheus replicas desired
1256 ## @param prometheus.shards Number of Prometheus shards desired
1259 ## @param prometheus.logLevel Log level for Prometheus
1262 ## @param prometheus.logFormat Log format for Prometheus
1265 ## @param prometheus.nameValidationScheme Specifies the validation scheme for metric and label names
1266 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.NameValidationSchemeOptions
1268 nameValidationScheme: "UTF8"
1269 ## @param prometheus.podMetadata [object] Standard object's metadata
1270 ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
1275 ## k8s-app: prometheus
1279 ## @param prometheus.remoteRead The remote_read spec configuration for Prometheus
1280 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#remotereadspec
1282 ## - url: http://remote1/read
1285 ## @param prometheus.remoteWrite The remote_write spec configuration for Prometheus
1286 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#remotewritespec
1288 ## - url: http://remote1/push
1291 ## @param prometheus.enableRemoteWriteReceiver Enable Prometheus to be used as a receiver for the Prometheus remote write protocol.
1293 enableRemoteWriteReceiver: false
1294 ## @param prometheus.storageSpec Prometheus StorageSpec for persistent data
1295 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md
1298 ## Prometheus persistence parameters
1301 ## @param prometheus.persistence.enabled Use PVCs to persist data. If the storageSpec is provided this will not take effect.
1304 ## @param prometheus.persistence.storageClass Persistent Volume Storage Class
1305 ## If defined, storageClassName: <storageClass>
1306 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1307 ## If undefined (the default) or set to null, no storageClassName spec is
1308 ## set, choosing the default provisioner.
1311 ## @param prometheus.persistence.accessModes Persistent Volume Access Modes
1315 ## @param prometheus.persistence.size Persistent Volume Size
1318 ## @param prometheus.persistence.annotations Persistent Volume Claim annotations
1321 ## @param prometheus.priorityClassName Priority class assigned to the Pods
1323 priorityClassName: ""
1324 ## @param prometheus.containers Containers allows injecting additional containers
1327 ## @param prometheus.initContainers Add additional init containers to the prometheus pod(s)
1328 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1331 ## - name: your-image-name
1332 ## image: your-image
1333 ## imagePullPolicy: Always
1334 ## command: ['sh', '-c', 'echo "hello world"']
1337 ## @param prometheus.volumes Volumes allows configuration of additional volumes
1338 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1341 ## @param prometheus.volumeMounts VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template
1342 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1345 ## @param prometheus.additionalPrometheusRules PrometheusRule defines recording and alerting rules for a Prometheus instance.
1346 ## - name: custom-recording-rules
1348 ## - name: sum_node_by_job
1350 ## - record: job:kube_node_labels:sum
1351 ## expr: sum(kube_node_labels) by (job)
1352 ## - name: sum_prometheus_config_reload_by_pod
1354 ## - record: job:prometheus_config_last_reload_successful:sum
1355 ## expr: sum(prometheus_config_last_reload_successful) by (pod)
1356 ## - name: custom-alerting-rules
1358 ## - name: prometheus-config
1360 ## - alert: PrometheusConfigurationReload
1361 ## expr: prometheus_config_last_reload_successful > 0
1366 ## summary: "Prometheus configuration reload (instance {{ $labels.instance }})"
1367 ## description: "Prometheus configuration reload error\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
1368 ## - name: custom-node-exporter-alerting-rules
1370 ## - alert: PhysicalComponentTooHot
1371 ## expr: node_hwmon_temp_celsius > 75
1374 ## severity: warning
1376 ## summary: "Physical component too hot (instance {{ $labels.instance }})"
1377 ## description: "Physical hardware component too hot\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
1378 ## - alert: NodeOvertemperatureAlarm
1379 ## expr: node_hwmon_temp_alarm == 1
1382 ## severity: critical
1384 ## summary: "Node overtemperature alarm (instance {{ $labels.instance }})"
1385 ## description: "Physical node temperature alarm triggered\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
1387 ## @param prometheus.additionalArgs Allows setting additional arguments for the Prometheus container
1388 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Prometheus
1391 additionalPrometheusRules: []
1392 ## Note that the prometheus will fail to provision if the correct secret does not exist.
1393 ## @param prometheus.additionalScrapeConfigs.enabled Enable additional scrape configs
1394 ## @param prometheus.additionalScrapeConfigs.type Indicates if the cart should use external additional scrape configs or internal configs
1395 ## @param prometheus.additionalScrapeConfigs.external.name Name of the secret that Prometheus should use for the additional external scrape configuration
1396 ## @param prometheus.additionalScrapeConfigs.external.key Name of the key inside the secret to be used for the additional external scrape configuration
1397 ## @param prometheus.additionalScrapeConfigs.internal.jobList A list of Prometheus scrape jobs
1399 additionalScrapeConfigs:
1403 ## Name of the secret that Prometheus should use for the additional scrape configuration
1406 ## Name of the key inside the secret to be used for the additional scrape configuration.
1411 ## Enable additional Prometheus alert relabel configs that are managed externally to this chart
1412 ## Note that the prometheus will fail to provision if the correct secret does not exist.
1413 ## @param prometheus.additionalAlertRelabelConfigsExternal.enabled Enable additional Prometheus alert relabel configs that are managed externally to this chart
1414 ## @param prometheus.additionalAlertRelabelConfigsExternal.name Name of the secret that Prometheus should use for the additional Prometheus alert relabel configuration
1415 ## @param prometheus.additionalAlertRelabelConfigsExternal.key Name of the key inside the secret to be used for the additional Prometheus alert relabel configuration
1417 additionalAlertRelabelConfigsExternal:
1421 ## Enable additional Prometheus AlertManager configs that are managed externally to this chart
1422 ## Note that the prometheus will fail to provision if the correct secret does not exist.
1423 ## @param prometheus.additionalAlertManagerExternal.enabled Enable additional Prometheus AlertManager configs that are managed externally to this chart
1424 ## @param prometheus.additionalAlertManagerExternal.name Name of the secret that Prometheus should use for the additional Prometheus AlertManager configuration
1425 ## @param prometheus.additionalAlertManagerExternal.key Name of the key inside the secret to be used for the additional Prometheus AlertManager configuration
1427 additionalAlertManagerExternal:
1431 ## Thanos sidecar container configuration
1434 ## @param prometheus.thanos.create Create a Thanos sidecar container
1437 ## Iamguarded Thanos image
1438 ## ref: https://hub.docker.com/r/iamguarded/thanos/tags/
1439 ## @param prometheus.thanos.image.registry [default: REGISTRY_NAME] Thanos image registry
1440 ## @param prometheus.thanos.image.repository [default: REPOSITORY_NAME/thanos] Thanos image name
1441 ## @skip prometheus.thanos.image.tag Thanos image tag
1442 ## @param prometheus.thanos.image.digest Thanos image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1443 ## @param prometheus.thanos.image.pullPolicy Thanos image pull policy
1444 ## @param prometheus.thanos.image.pullSecrets Specify docker-registry secret names as an array
1448 repository: chainguard-private/thanos-iamguarded
1451 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1453 pullPolicy: IfNotPresent
1454 ## Optionally specify an array of imagePullSecrets.
1455 ## Secrets must be manually created in the namespace.
1456 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1459 ## - myRegistryKeySecretName
1462 ## Thanos Sidecar container's securityContext
1463 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1464 ## @param prometheus.thanos.containerSecurityContext.enabled Enabled containers' Security Context
1465 ## @param prometheus.thanos.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1466 ## @param prometheus.thanos.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1467 ## @param prometheus.thanos.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1468 ## @param prometheus.thanos.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1469 ## @param prometheus.thanos.containerSecurityContext.privileged Set container's Security Context privileged
1470 ## @param prometheus.thanos.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1471 ## @param prometheus.thanos.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1472 ## @param prometheus.thanos.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1473 ## @param prometheus.thanos.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1475 containerSecurityContext:
1482 readOnlyRootFilesystem: true
1483 allowPrivilegeEscalation: false
1487 type: "RuntimeDefault"
1488 ## @param prometheus.thanos.containerPorts.grpc Thanos grpc port
1489 ## @param prometheus.thanos.containerPorts.http Thanos http port
1494 ## @param prometheus.thanos.prometheusUrl Override default prometheus url `http://localhost:9090`
1497 ## @param prometheus.thanos.extraArgs Additional arguments passed to the thanos sidecar container
1499 ## - --log.level=debug
1500 ## - --tsdb.path=/data/
1503 ## @param prometheus.thanos.objectStorageConfig.secretName Support mounting a Secret for the objectStorageConfig of the sideCar container.
1504 ## @param prometheus.thanos.objectStorageConfig.secretKey Secret key with the configuration file.
1505 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/thanos.md
1506 ## objectStorageConfig:
1507 ## secretName: thanos-objstore-config
1508 ## secretKey: thanos.yaml
1510 objectStorageConfig:
1512 secretKey: thanos.yaml
1513 ## @param prometheus.thanos.extraEnvVars Array with extra environment variables to add to the thanos sidecar container
1516 ## - name: REQUEST_LOGGING_CONFIG
1519 ## name: thanos-request-logging-config
1520 ## key: request-logging-config.yml
1523 ## @param prometheus.thanos.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for the thanos sidecar container
1526 ## @param prometheus.thanos.extraEnvVarsSecret Name of existing Secret containing extra env vars for the thanos sidecar container
1528 extraEnvVarsSecret: ""
1529 ## ref: https://github.com/thanos-io/thanos/blob/main/docs/components/sidecar.md
1530 ## @param prometheus.thanos.extraVolumeMounts Additional volumeMounts from `prometheus.volumes` for thanos sidecar container
1531 ## extraVolumeMounts:
1532 ## - name: my-secret-volume
1533 ## mountPath: /etc/thanos/secrets/my-secret
1535 extraVolumeMounts: []
1536 ## Thanos sidecar container resource requests and limits.
1537 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1538 ## We usually recommend not to specify default resources and to leave this as a conscious
1539 ## choice for the user. This also increases chances charts run on environments with little
1540 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1541 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1542 ## @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).
1543 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1545 resourcesPreset: "nano"
1546 ## @param prometheus.thanos.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1557 ## Configure extra options for liveness probe
1558 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1559 ## @param prometheus.thanos.livenessProbe.enabled Turn on and off liveness probe
1560 ## @param prometheus.thanos.livenessProbe.path Path of the HTTP service for checking the healthy state
1561 ## @param prometheus.thanos.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
1562 ## @param prometheus.thanos.livenessProbe.periodSeconds How often to perform the probe
1563 ## @param prometheus.thanos.livenessProbe.timeoutSeconds When the probe times out
1564 ## @param prometheus.thanos.livenessProbe.failureThreshold Minimum consecutive failures for the probe
1565 ## @param prometheus.thanos.livenessProbe.successThreshold Minimum consecutive successes for the probe
1570 initialDelaySeconds: 0
1573 failureThreshold: 120
1575 ## Configure extra options for readiness probe
1576 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1577 ## @param prometheus.thanos.readinessProbe.enabled Turn on and off readiness probe
1578 ## @param prometheus.thanos.readinessProbe.path Path of the HTTP service for checking the ready state
1579 ## @param prometheus.thanos.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
1580 ## @param prometheus.thanos.readinessProbe.periodSeconds How often to perform the probe
1581 ## @param prometheus.thanos.readinessProbe.timeoutSeconds When the probe times out
1582 ## @param prometheus.thanos.readinessProbe.failureThreshold Minimum consecutive failures for the probe
1583 ## @param prometheus.thanos.readinessProbe.successThreshold Minimum consecutive successes for the probe
1588 initialDelaySeconds: 0
1591 failureThreshold: 120
1593 ## Thanos Sidecar Service
1596 ## @param prometheus.thanos.service.type Kubernetes service type
1599 ## @param prometheus.thanos.service.ports.grpc Thanos service port
1600 ## @param prometheus.thanos.service.ports.http Thanos service port
1605 ## @param prometheus.thanos.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` to create headless service by default.
1606 ## Use a "headless" service by default so it returns every pod's IP instead of loadbalancing requests.
1609 ## @param prometheus.thanos.service.nodePorts.grpc Specify the nodePort value for the LoadBalancer and NodePort service types.
1610 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1616 ## @param prometheus.thanos.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
1617 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1620 ## @param prometheus.thanos.service.loadBalancerClass Thanos service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1621 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1623 loadBalancerClass: ""
1624 ## @param prometheus.thanos.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
1625 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1627 ## loadBalancerSourceRanges:
1630 loadBalancerSourceRanges: []
1631 ## @param prometheus.thanos.service.labels Additional labels for Thanos service
1634 ## @param prometheus.thanos.service.annotations Additional annotations for Thanos service
1637 ## @param prometheus.thanos.service.extraPorts Additional ports to expose from the Thanos sidecar container
1645 ## @param prometheus.thanos.service.externalTrafficPolicy Prometheus service external traffic policy
1646 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1648 externalTrafficPolicy: Cluster
1649 ## @param prometheus.thanos.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1650 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1651 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1653 sessionAffinity: None
1654 ## @param prometheus.thanos.service.sessionAffinityConfig Additional settings for the sessionAffinity
1655 ## sessionAffinityConfig:
1657 ## timeoutSeconds: 300
1659 sessionAffinityConfig: {}
1660 ## Configure the ingress resource that allows you to access the
1661 ## Thanos Sidecar installation. Set up the URL
1662 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
1665 ## @param prometheus.thanos.ingress.enabled Enable ingress controller resource
1668 ## @param prometheus.thanos.ingress.pathType Ingress path type
1670 pathType: ImplementationSpecific
1671 ## @param prometheus.thanos.ingress.apiVersion Force Ingress API version (automatically detected if not set)
1674 ## @param prometheus.thanos.ingress.hostname Default host for the ingress record
1676 hostname: thanos.prometheus.local
1677 ## @param prometheus.thanos.ingress.path Default path for the ingress record
1678 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
1681 ## @param prometheus.thanos.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1682 ## For a full list of possible ingress annotations, please see
1683 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
1684 ## Use this parameter to set the required annotations for cert-manager, see
1685 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1688 ## kubernetes.io/ingress.class: nginx
1689 ## cert-manager.io/cluster-issuer: cluster-issuer-name
1692 ## @param prometheus.thanos.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1693 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
1694 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1696 ingressClassName: ""
1697 ## @param prometheus.thanos.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
1698 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
1700 ## - Use the `ingress.secrets` parameter to create this TLS secret
1701 ## - Relay on cert-manager to create it by setting `ingress.certManager=true`
1702 ## - Relay on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
1705 ## @param prometheus.thanos.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
1708 ## @param prometheus.thanos.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
1711 ## - name: thanos.prometheus.local
1715 ## @param prometheus.thanos.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
1720 ## serviceName: ssl-redirect
1721 ## servicePort: use-annotation
1724 ## @param prometheus.thanos.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
1725 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1729 ## - thanos.prometheus.local
1730 ## secretName: thanos.prometheus.local-tls
1733 ## @param prometheus.thanos.ingress.secrets Custom TLS certificates as secrets
1734 ## NOTE: 'key' and 'certificate' are expected in PEM format
1735 ## NOTE: 'name' should line up with a 'secretName' set further up
1736 ## 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
1737 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
1738 ## It is also possible to create and manage the certificates outside of this helm chart
1739 ## Please see README.md for more information
1742 ## - name: thanos.prometheus.local-tls
1744 ## -----BEGIN RSA PRIVATE KEY-----
1746 ## -----END RSA PRIVATE KEY-----
1748 ## -----BEGIN CERTIFICATE-----
1750 ## -----END CERTIFICATE-----
1753 ## @param prometheus.thanos.ingress.extraRules The list of additional rules to be added to this ingress record. Evaluated as a template
1754 ## Useful when looking for additional customization, such as using different backend
1757 ## Create a ServiceMonitor to monitor Prometheus thanos sidecar
1760 ## @param prometheus.thanos.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus thanos sidecar
1763 ## @param prometheus.thanos.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
1764 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
1767 ## @param prometheus.thanos.serviceMonitor.path HTTP path to scrape for metrics
1770 ## @param prometheus.thanos.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1773 ## @param prometheus.thanos.serviceMonitor.metricRelabelings Metric relabeling
1774 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
1776 metricRelabelings: []
1777 ## @param prometheus.thanos.serviceMonitor.relabelings Relabel configs
1778 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
1781 ## @param prometheus.thanos.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
1784 ## config-reloader sidecar container configuration
1787 ## config-reloader sidecar Service
1790 ## @param prometheus.configReloader.service.enabled Enable config-reloader sidecar service
1793 ## @param prometheus.configReloader.service.type Kubernetes service type
1796 ## @param prometheus.configReloader.service.ports.http config-reloader sidecar container service port
1800 ## @param prometheus.configReloader.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` to create headless service by default.
1801 ## Use a "headless" service by default so it returns every pod's IP instead of loadbalancing requests.
1804 ## @param prometheus.configReloader.service.nodePorts.http Specify the nodePort value for the LoadBalancer and NodePort service types.
1805 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1811 ## @param prometheus.configReloader.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
1812 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1815 ## @param prometheus.configReloader.service.loadBalancerClass Prometheus Config Reloader service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1816 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1818 loadBalancerClass: ""
1819 ## @param prometheus.configReloader.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
1820 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1822 ## loadBalancerSourceRanges:
1825 loadBalancerSourceRanges: []
1826 ## @param prometheus.configReloader.service.labels Additional labels for Prometheus service
1829 ## @param prometheus.configReloader.service.annotations Additional annotations for Prometheus service
1832 ## @param prometheus.configReloader.service.extraPorts Additional ports to expose from the config-reloader sidecar container
1840 ## @param prometheus.configReloader.service.externalTrafficPolicy Prometheus service external traffic policy
1841 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1843 externalTrafficPolicy: Cluster
1844 ## @param prometheus.configReloader.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1845 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1846 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1848 sessionAffinity: None
1849 ## @param prometheus.configReloader.service.sessionAffinityConfig Additional settings for the sessionAffinity
1850 ## sessionAffinityConfig:
1852 ## timeoutSeconds: 300
1854 sessionAffinityConfig: {}
1855 ## Create a ServiceMonitor to monitor Prometheus config-reloader sidecar
1858 ## @param prometheus.configReloader.serviceMonitor.enabled Creates a ServiceMonitor to monitor Prometheus config-reloader sidecar
1861 ## @param prometheus.configReloader.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
1862 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
1865 ## @param prometheus.configReloader.serviceMonitor.path HTTP path to scrape for metrics
1868 ## @param prometheus.configReloader.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1871 ## @param prometheus.configReloader.serviceMonitor.metricRelabelings Metric relabeling
1872 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
1874 metricRelabelings: []
1875 ## @param prometheus.configReloader.serviceMonitor.relabelings Relabel configs
1876 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
1879 ## @param prometheus.configReloader.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
1882 ## @param prometheus.portName Port name used for the pods and governing service. This defaults to web
1885## @section Alertmanager Parameters
1888## Configuration for alertmanager
1889## ref: https://prometheus.io/docs/alerting/alertmanager/
1892 ## @param alertmanager.enabled Deploy Alertmanager to the cluster
1895 ## Iamguarded Alertmanager image version
1896 ## ref: https://hub.docker.com/r/iamguarded/alertmanager/tags/
1897 ## @param alertmanager.image.registry [default: REGISTRY_NAME] Alertmanager image registry
1898 ## @param alertmanager.image.repository [default: REPOSITORY_NAME/alertmanager] Alertmanager image repository
1899 ## @skip alertmanager.image.tag Alertmanager image tag (immutable tags are recommended)
1900 ## @param alertmanager.image.digest Alertmanager image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1901 ## @param alertmanager.image.pullPolicy Alertmanager image pull policy
1902 ## @param alertmanager.image.pullSecrets Specify docker-registry secret names as an array
1906 repository: chainguard-private/prometheus-alertmanager-iamguarded
1909 pullPolicy: IfNotPresent
1910 ## Optionally specify an array of imagePullSecrets.
1911 ## Secrets must be manually created in the namespace.
1912 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1915 ## - myRegistryKeySecretName
1918 ## Service account for Alertmanager to use.
1919 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1922 ## @param alertmanager.serviceAccount.create Specify whether to create a ServiceAccount for Alertmanager
1925 ## @param alertmanager.serviceAccount.name The name of the ServiceAccount to create
1926 ## If not set and create is true, a name is generated using the kube-prometheus.alertmanager.fullname template
1929 ## @param alertmanager.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1931 automountServiceAccountToken: false
1932 ## @param alertmanager.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1935 ## Prometheus Alertmanager pods' Security Context
1936 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1937 ## @param alertmanager.podSecurityContext.enabled Enable security context
1938 ## @param alertmanager.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1939 ## @param alertmanager.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1940 ## @param alertmanager.podSecurityContext.supplementalGroups Set filesystem extra groups
1941 ## @param alertmanager.podSecurityContext.fsGroup Group ID for the container filesystem
1945 fsGroupChangePolicy: Always
1947 supplementalGroups: []
1949 ## Prometheus Alertmanager container's securityContext
1950 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1951 ## @param alertmanager.containerSecurityContext.enabled Enabled containers' Security Context
1952 ## @param alertmanager.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1953 ## @param alertmanager.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1954 ## @param alertmanager.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1955 ## @param alertmanager.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1956 ## @param alertmanager.containerSecurityContext.privileged Set container's Security Context privileged
1957 ## @param alertmanager.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1958 ## @param alertmanager.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1959 ## @param alertmanager.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1960 ## @param alertmanager.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1962 containerSecurityContext:
1969 readOnlyRootFilesystem: true
1970 allowPrivilegeEscalation: false
1974 type: "RuntimeDefault"
1975 ## Configure pod disruption budgets for Alertmanager
1976 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
1977 ## @param alertmanager.pdb.create Create a pod disruption budget for Alertmanager
1978 ## @param alertmanager.pdb.minAvailable Minimum number / percentage of pods that should remain scheduled
1979 ## @param alertmanager.pdb.maxUnavailable Maximum number / percentage of pods that may be made unavailable
1985 ## Alertmanager Service
1988 ## @param alertmanager.service.type Kubernetes service type
1991 ## @param alertmanager.service.ports.http Alertmanager service port
1995 ## @param alertmanager.service.clusterIP Specific cluster IP when service type is cluster IP. Use `None` for headless service
2000 ## @param alertmanager.service.nodePorts.http Specify the nodePort value for the LoadBalancer and NodePort service types.
2001 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
2007 ## @param alertmanager.service.loadBalancerIP `loadBalancerIP` if service type is `LoadBalancer`
2008 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
2011 ## @param alertmanager.service.loadBalancerClass Alertmanager service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
2012 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2014 loadBalancerClass: ""
2015 ## @param alertmanager.service.loadBalancerSourceRanges Address that are allowed when svc is `LoadBalancer`
2016 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2018 ## loadBalancerSourceRanges:
2021 loadBalancerSourceRanges: []
2022 ## @param alertmanager.service.externalTrafficPolicy Enable client source IP preservation
2023 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2024 ## There are two available options: Cluster (default) and Local.
2025 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2027 externalTrafficPolicy: Cluster
2028 ## @param alertmanager.service.healthCheckNodePort Specifies the health check node port
2029 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2031 healthCheckNodePort: ""
2032 ## @param alertmanager.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2035 ## @param alertmanager.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
2036 ## If "ClientIP", consecutive client requests will be directed to the same Pod
2037 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2039 sessionAffinity: None
2040 ## @param alertmanager.service.sessionAffinityConfig Additional settings for the sessionAffinity
2041 ## sessionAffinityConfig:
2043 ## timeoutSeconds: 300
2045 sessionAffinityConfig: {}
2046 ## @param alertmanager.service.annotations Additional annotations for Alertmanager service (this value is evaluated as a template)
2050 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2053 ## @param alertmanager.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2056 ## @param alertmanager.networkPolicy.allowExternal Don't require server label for connections
2057 ## The Policy model to apply. When set to false, only pods with the correct
2058 ## server label will have network access to the ports server is listening
2059 ## on. When true, server will accept connections from any source
2060 ## (with the correct destination port).
2063 ## @param alertmanager.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2065 allowExternalEgress: true
2066 ## @param alertmanager.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2076 ## - matchExpressions:
2082 ## @param alertmanager.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2092 ## - matchExpressions:
2099 ## @param alertmanager.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2100 ## @param alertmanager.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2102 ingressNSMatchLabels: {}
2103 ingressNSPodMatchLabels: {}
2104 ## If true, create a serviceMonitor for alertmanager
2107 ## @param alertmanager.serviceMonitor.enabled Creates a ServiceMonitor to monitor Alertmanager
2110 ## @param alertmanager.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used.
2111 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
2114 ## @param alertmanager.serviceMonitor.metricRelabelings Metric relabeling
2115 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2117 metricRelabelings: []
2118 ## @param alertmanager.serviceMonitor.relabelings Relabel configs
2119 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
2122 ## @param alertmanager.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2125 ## @param alertmanager.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2126 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2129 ## @param alertmanager.serviceMonitor.selector ServiceMonitor selector labels
2130 ## ref: https://github.com/iamguarded/charts/tree/main/iamguarded/prometheus-operator#prometheus-configuration
2133 ## prometheus: my-prometheus
2136 ## @param alertmanager.serviceMonitor.labels Extra labels for the ServiceMonitor
2139 ## @param alertmanager.serviceMonitor.annotations Extra annotations for the ServiceMonitor
2142 ## @param alertmanager.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2145 ## @param alertmanager.serviceMonitor.extraParameters Any extra parameter to be added to the endpoint configured in the ServiceMonitor
2146 ## (e.g. tlsConfig for further customization of the HTTPS behavior)
2147 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Endpoint
2150 ## @param alertmanager.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
2153 ## Configure the ingress resource that allows you to access the
2154 ## Alertmanager installation. Set up the URL
2155 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
2158 ## @param alertmanager.ingress.enabled Enable ingress controller resource
2161 ## @param alertmanager.ingress.pathType Ingress Path type
2163 pathType: ImplementationSpecific
2164 ## @param alertmanager.ingress.apiVersion Override API Version (automatically detected if not set)
2167 ## @param alertmanager.ingress.hostname Default host for the ingress resource
2169 hostname: alertmanager.local
2170 ## @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.
2173 ## @param alertmanager.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2174 ## For a full list of possible ingress annotations, please see
2175 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
2176 ## Use this parameter to set the required annotations for cert-manager, see
2177 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2181 ## kubernetes.io/ingress.class: nginx
2182 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2185 ## @param alertmanager.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2186 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2187 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2189 ingressClassName: ""
2190 ## @param alertmanager.ingress.tls Enable TLS configuration for the hostname defined at alertmanager.ingress.hostname parameter
2191 ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.alertmanager.ingress.hostname }}
2192 ## You can use the alertmanager.ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
2195 ## @param alertmanager.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2198 ## @param alertmanager.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
2199 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
2201 ## - name: alertmanager.local
2205 ## @param alertmanager.ingress.extraPaths Additional arbitrary path/backend objects
2206 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
2210 ## serviceName: ssl-redirect
2211 ## servicePort: use-annotation
2214 ## @param alertmanager.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
2215 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2218 ## - alertmanager.local
2219 ## secretName: alertmanager.local-tls
2222 ## @param alertmanager.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
2223 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
2224 ## -----BEGIN RSA PRIVATE KEY-----
2226 ## name should line up with a tlsSecret set further up
2227 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
2229 ## It is also possible to create and manage the certificates outside of this helm chart
2230 ## Please see README.md for more information
2232 ## - name: alertmanager.local-tls
2237 ## @param alertmanager.ingress.extraRules Additional rules to be covered with this ingress record
2238 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2241 ## - host: example.local
2246 ## name: example-svc
2251 ## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
2254 ## @param alertmanager.externalUrl External URL used to access Alertmanager
2256 ## externalUrl: https://alertmanager.example.com
2259 ## @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).
2260 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
2262 resourcesPreset: "nano"
2263 ## @param alertmanager.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2272 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2275 ## @param alertmanager.podAffinityPreset Alertmanager Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2276 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2278 podAffinityPreset: ""
2279 ## @param alertmanager.podAntiAffinityPreset Alertmanager Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2280 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2282 podAntiAffinityPreset: soft
2283 ## Node affinity preset
2284 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2287 ## @param alertmanager.nodeAffinityPreset.type Alertmanager Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2290 ## @param alertmanager.nodeAffinityPreset.key Alertmanager Node label key to match Ignored if `affinity` is set.
2292 ## key: "kubernetes.io/e2e-az-name"
2295 ## @param alertmanager.nodeAffinityPreset.values Alertmanager Node label values to match. Ignored if `affinity` is set.
2302 ## @param alertmanager.affinity Alertmanager Affinity for pod assignment
2303 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2304 ## Note: alertmanager.podAffinityPreset, alertmanager.podAntiAffinityPreset, and alertmanager.nodeAffinityPreset will be ignored when it's set
2307 ## @param alertmanager.nodeSelector Alertmanager Node labels for pod assignment
2308 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2311 ## @param alertmanager.tolerations Alertmanager Tolerations for pod assignment
2312 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2315 ## Alertmanager configuration
2316 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
2317 ## @param alertmanager.config [object] Alertmanager configuration directive
2318 ## @skip alertmanager.config.route.group_by
2319 ## @skip alertmanager.config.route.routes
2320 ## @skip alertmanager.config.receivers
2329 repeat_interval: 12h
2337 ## @param alertmanager.templateFiles Extra files to be added inside the `alertmanager-{{ template "kube-prometheus.alertmanager.fullname" . }}` secret.
2340 ## @param alertmanager.externalConfig Alertmanager configuration is created externally. If true, `alertmanager.config` is ignored, and a secret will not be created.
2341 ## Alertmanager requires a secret named `alertmanager-{{ template "kube-prometheus.alertmanager.fullname" . }}`
2343 ## alertmanager.yaml: <config>
2344 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/alerting.md#alerting
2346 externalConfig: false
2347 ## @param alertmanager.replicaCount Number of Alertmanager replicas desired
2350 ## Configure extra options for liveness probe
2351 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2352 ## @param alertmanager.livenessProbe.enabled Turn on and off liveness probe
2353 ## @param alertmanager.livenessProbe.path Path of the HTTP service for checking the healthy state
2354 ## @param alertmanager.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
2355 ## @param alertmanager.livenessProbe.periodSeconds How often to perform the probe
2356 ## @param alertmanager.livenessProbe.timeoutSeconds When the probe times out
2357 ## @param alertmanager.livenessProbe.failureThreshold Minimum consecutive failures for the probe
2358 ## @param alertmanager.livenessProbe.successThreshold Minimum consecutive successes for the probe
2363 initialDelaySeconds: 0
2366 failureThreshold: 120
2368 ## Configure extra options for readiness probe
2369 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2370 ## @param alertmanager.readinessProbe.enabled Turn on and off readiness probe
2371 ## @param alertmanager.readinessProbe.path Path of the HTTP service for checking the ready state
2372 ## @param alertmanager.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
2373 ## @param alertmanager.readinessProbe.periodSeconds How often to perform the probe
2374 ## @param alertmanager.readinessProbe.timeoutSeconds When the probe times out
2375 ## @param alertmanager.readinessProbe.failureThreshold Minimum consecutive failures for the probe
2376 ## @param alertmanager.readinessProbe.successThreshold Minimum consecutive successes for the probe
2381 initialDelaySeconds: 0
2384 failureThreshold: 120
2386 ## @param alertmanager.logLevel Log level for Alertmanager
2389 ## @param alertmanager.logFormat Log format for Alertmanager
2392 ## @param alertmanager.podMetadata [object] Standard object's metadata.
2393 ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
2398 ## @param alertmanager.secrets Secrets that should be mounted into the Alertmanager Pods
2401 ## @param alertmanager.configMaps ConfigMaps that should be mounted into the Alertmanager Pods
2404 ## @param alertmanager.retention Metrics retention days
2407 ## @param alertmanager.storageSpec Alertmanager StorageSpec for persistent data
2408 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md
2411 ## Alertmanager persistence parameters
2414 ## @param alertmanager.persistence.enabled Use PVCs to persist data. If the storageSpec is provided this will not take effect.
2415 ## If you want to use this configuration make sure the storageSpec is not provided.
2418 ## @param alertmanager.persistence.storageClass Persistent Volume Storage Class
2419 ## If defined, storageClassName: <storageClass>
2420 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2421 ## If undefined (the default) or set to null, no storageClassName spec is
2422 ## set, choosing the default provisioner.
2425 ## @param alertmanager.persistence.accessModes Persistent Volume Access Modes
2429 ## @param alertmanager.persistence.size Persistent Volume Size
2432 ## @param alertmanager.persistence.annotations Persistent Volume Claim annotations
2435 ## @param alertmanager.paused If true, the Operator won't process any Alertmanager configuration changes
2438 ## @param alertmanager.listenLocal ListenLocal makes the Alertmanager server listen on loopback
2441 ## @param alertmanager.containers Containers allows injecting additional containers
2444 ## @param alertmanager.volumes Volumes allows configuration of additional volumes. Evaluated as a template
2445 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec
2448 ## @param alertmanager.volumeMounts VolumeMounts allows configuration of additional VolumeMounts. Evaluated as a template
2449 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/pi.md#alertmanagerspec
2452 ## @param alertmanager.priorityClassName Priority class assigned to the Pods
2454 priorityClassName: ""
2455 ## @param alertmanager.additionalPeers AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster
2458 ## @param alertmanager.routePrefix Prefix used to register routes, overriding externalUrl route
2459 ## Useful for proxies that rewrite URLs.
2462 ## @param alertmanager.portName Port name used for the pods and governing service. This defaults to web
2465 ## @param alertmanager.configNamespaceSelector Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace. This defaults to {}
2467 configNamespaceSelector: {}
2468 ## @param alertmanager.configSelector AlertmanagerConfigs to be selected for to merge and configure Alertmanager with. This defaults to {}
2471 ## @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
2474 ## @param alertmanager.configMatcherStrategy alertmanagerConfigMatcherStrategy defines how AlertmanagerConfig objects match the alerts.
2476 ## configMatcherStrategy:
2477 ## type: OnNamespace
2478 ## If type set to `OnNamespace`, the operator injects a label matcher matching the
2479 ## namespace of the AlertmanagerConfig object for all its routes and inhibition
2480 ## rules. `None` will not add any additional matchers other than the ones
2481 ## specified in the AlertmanagerConfig. Default is `OnNamespace`.
2482 configMatcherStrategy: {}
2483## @section Exporters
2490 ## @param exporters.node-exporter.enabled Enable node-exporter
2494 ## @param exporters.kube-state-metrics.enabled Enable kube-state-metrics
2497## @param node-exporter [object] Node Exporter deployment configuration
2502 repository: chainguard-private/prometheus-node-exporter-iamguarded
2507 jobLabel: node-exporter
2512 collector.filesystem.mount-points-exclude: "^/(dev|proc|sys|var/lib/docker/.+)($|/)"
2513 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)$"
2514## @param kube-state-metrics [object] Kube State Metrics deployment configuration
2519 repository: chainguard-private/kube-state-metrics-iamguarded
2525## Component scraping for kubelet and kubelet hosted cAdvisor
2528 ## @param kubelet.enabled Create a ServiceMonitor to scrape kubelet service
2531 ## @param kubelet.namespace Namespace where kubelet service is deployed. Related configuration `operator.kubeletService.namespace`
2533 namespace: kube-system
2535 ## @param kubelet.serviceMonitor.https Enable scraping of the kubelet over HTTPS
2538 ## @param kubelet.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
2539 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
2542 ## @param kubelet.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2545 ## @param kubelet.serviceMonitor.resource Enable scraping /metrics/resource from kubelet's service
2548 ## @param kubelet.serviceMonitor.resourcePath From kubernetes 1.18, /metrics/resource/v1alpha1 was renamed to /metrics/resource
2550 resourcePath: "/metrics/resource/v1alpha1"
2551 ## @param kubelet.serviceMonitor.resourceRelabelings Metric relabeling
2552 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
2554 resourceRelabelings: []
2555 ## @param kubelet.serviceMonitor.resourceMetricRelabelings Metric relabeling
2556 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2558 resourceMetricRelabelings: []
2559 ## @param kubelet.serviceMonitor.metricRelabelings Metric relabeling
2560 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2562 metricRelabelings: []
2563 ## @param kubelet.serviceMonitor.relabelings Relabel configs
2564 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
2567 ## @param kubelet.serviceMonitor.cAdvisor Enable scraping /metrics/cadvisor from kubelet's service
2568 ## ref: https://prometheus.io/docs/guides/cadvisor/#exploring-metrics-in-the-expression-browser
2571 ## @param kubelet.serviceMonitor.cAdvisorMetricRelabelings Metric relabeling for scraping cAdvisor
2572 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2574 cAdvisorMetricRelabelings: []
2575 ## @param kubelet.serviceMonitor.cAdvisorRelabelings Relabel configs for scraping cAdvisor
2576 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
2578 cAdvisorRelabelings: []
2579 ## @param kubelet.serviceMonitor.labels Extra labels for the ServiceMonitor
2582 ## @param kubelet.serviceMonitor.annotations Extra annotations for the ServiceMonitor
2585 ## @param kubelet.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
2588## @section Blackbox Exporter Deployment Parameters
2591 ## @param blackboxExporter.enabled Enable Blackbox Exporter deployment
2594 ## Iamguarded Alertmanager image version
2595 ## ref: https://hub.docker.com/r/iamguarded/prometheus-operator/tags/
2596 ## @param blackboxExporter.image.registry [default: REGISTRY_NAME] Blackbox Exporter image registry
2597 ## @param blackboxExporter.image.repository [default: REPOSITORY_NAME/blackbox-exporter] Blackbox Exporter image repository
2598 ## @param blackboxExporter.image.pullPolicy Blackbox Exporter image pull policy
2599 ## @skip blackboxExporter.image.tag Blackbox Exporter image tag (immutable tags are recommended)
2600 ## @param blackboxExporter.image.digest Blackbox Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2601 ## @param blackboxExporter.image.pullSecrets Specify docker-registry secret names as an array
2605 repository: chainguard-private/prometheus-blackbox-exporter-iamguarded
2608 pullPolicy: IfNotPresent
2609 ## Optionally specify an array of imagePullSecrets.
2610 ## Secrets must be manually created in the namespace.
2611 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2614 ## - myRegistryKeySecretName
2617 ## @param blackboxExporter.extraEnvVars Array with extra environment variables to add to blackboxExporter nodes
2624 ## @param blackboxExporter.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for blackboxExporter nodes
2627 ## @param blackboxExporter.extraEnvVarsSecret Name of existing Secret containing extra env vars for blackboxExporter nodes
2629 extraEnvVarsSecret: ""
2630 ## @param blackboxExporter.command Override default container command (useful when using custom images)
2633 ## @param blackboxExporter.args Override default container args (useful when using custom images)
2636 ## @param blackboxExporter.replicaCount Number of Blackbox Exporter replicas to deploy
2639 ## Configure extra options for Blackbox Exporter container liveness, readiness and startup probes
2640 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
2641 ## @param blackboxExporter.livenessProbe.enabled Enable livenessProbe on Blackbox Exporter nodes
2642 ## @param blackboxExporter.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2643 ## @param blackboxExporter.livenessProbe.periodSeconds Period seconds for livenessProbe
2644 ## @param blackboxExporter.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2645 ## @param blackboxExporter.livenessProbe.failureThreshold Failure threshold for livenessProbe
2646 ## @param blackboxExporter.livenessProbe.successThreshold Success threshold for livenessProbe
2651 initialDelaySeconds: 30
2655 ## @param blackboxExporter.readinessProbe.enabled Enable readinessProbe on Blackbox Exporter nodes
2656 ## @param blackboxExporter.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2657 ## @param blackboxExporter.readinessProbe.periodSeconds Period seconds for readinessProbe
2658 ## @param blackboxExporter.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2659 ## @param blackboxExporter.readinessProbe.failureThreshold Failure threshold for readinessProbe
2660 ## @param blackboxExporter.readinessProbe.successThreshold Success threshold for readinessProbe
2665 initialDelaySeconds: 60
2669 ## @param blackboxExporter.startupProbe.enabled Enable startupProbe on Blackbox Exporter containers
2670 ## @param blackboxExporter.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2671 ## @param blackboxExporter.startupProbe.periodSeconds Period seconds for startupProbe
2672 ## @param blackboxExporter.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2673 ## @param blackboxExporter.startupProbe.failureThreshold Failure threshold for startupProbe
2674 ## @param blackboxExporter.startupProbe.successThreshold Success threshold for startupProbe
2678 initialDelaySeconds: 30
2681 failureThreshold: 15
2683 ## @param blackboxExporter.customLivenessProbe Custom livenessProbe that overrides the default one
2685 customLivenessProbe: {}
2686 ## @param blackboxExporter.customReadinessProbe Custom readinessProbe that overrides the default one
2688 customReadinessProbe: {}
2689 ## @param blackboxExporter.customStartupProbe Custom startupProbe that overrides the default one
2691 customStartupProbe: {}
2692 ## @param blackboxExporter.configuration [object] Blackbox Exporter configuration
2698 "preferred_ip_protocol": "ip4"
2703 "preferred_ip_protocol": "ip4"
2708 "preferred_ip_protocol": "ip4"
2710 - "send": "NICK prober"
2711 - "send": "USER prober prober prober :prober"
2712 - "expect": "PING :([^ ]+)"
2714 - "expect": "^:[^ ]+ 001"
2718 "preferred_ip_protocol": "ip4"
2723 "insecure_skip_verify": false
2727 "preferred_ip_protocol": "ip4"
2729 - "expect": "^SSH-2.0-"
2733 "preferred_ip_protocol": "ip4"
2734 ## @param blackboxExporter.existingConfigMap ConfigMap pointing to the Blackbox Exporter configuration
2736 existingConfigMap: ""
2737 ## @param blackboxExporter.containerPorts.http Blackbox Exporter HTTP container port
2742 ## @param blackboxExporter.serviceAccount.create Enable creation of ServiceAccount for Prometheus Operator pod
2745 ## @param blackboxExporter.serviceAccount.name The name of the ServiceAccount to use.
2746 ## If not set and create is true, a name is generated using the common.names.fullname template
2749 ## @param blackboxExporter.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
2750 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
2752 automountServiceAccountToken: false
2753 ## @param blackboxExporter.serviceAccount.annotations Additional custom annotations for the ServiceAccount
2756 ## Blackbox Exporter resource requests and limits
2757 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2758 ## @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).
2759 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
2761 resourcesPreset: "nano"
2762 ## @param blackboxExporter.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2773 ## Configure Pods Security Context
2774 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2775 ## @param blackboxExporter.podSecurityContext.enabled Enabled Blackbox Exporter pods' Security Context
2776 ## @param blackboxExporter.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2777 ## @param blackboxExporter.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2778 ## @param blackboxExporter.podSecurityContext.supplementalGroups Set filesystem extra groups
2779 ## @param blackboxExporter.podSecurityContext.fsGroup Set Blackbox Exporter pod's Security Context fsGroup
2783 fsGroupChangePolicy: Always
2785 supplementalGroups: []
2787 ## Configure Container Security Context
2788 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2789 ## @param blackboxExporter.containerSecurityContext.enabled Enabled containers' Security Context
2790 ## @param blackboxExporter.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2791 ## @param blackboxExporter.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
2792 ## @param blackboxExporter.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
2793 ## @param blackboxExporter.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
2794 ## @param blackboxExporter.containerSecurityContext.privileged Set container's Security Context privileged
2795 ## @param blackboxExporter.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
2796 ## @param blackboxExporter.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
2797 ## @param blackboxExporter.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2798 ## @param blackboxExporter.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2800 containerSecurityContext:
2807 readOnlyRootFilesystem: true
2808 allowPrivilegeEscalation: false
2812 type: "RuntimeDefault"
2813 ## @param blackboxExporter.lifecycleHooks for the blackboxExporter container(s) to automate configuration before or after startup
2816 ## @param blackboxExporter.automountServiceAccountToken Mount Service Account token in pod
2818 automountServiceAccountToken: false
2819 ## @param blackboxExporter.hostAliases blackboxExporter pods host aliases
2820 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2823 ## @param blackboxExporter.podLabels Extra labels for blackboxExporter pods
2824 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2827 ## @param blackboxExporter.podAnnotations Annotations for blackboxExporter pods
2828 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2831 ## @param blackboxExporter.podAffinityPreset Pod affinity preset. Ignored if `blackboxExporter.affinity` is set. Allowed values: `soft` or `hard`
2832 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2834 podAffinityPreset: ""
2835 ## @param blackboxExporter.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `blackboxExporter.affinity` is set. Allowed values: `soft` or `hard`
2836 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2838 podAntiAffinityPreset: soft
2839 ## Node blackboxExporter.affinity preset
2840 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2843 ## @param blackboxExporter.nodeAffinityPreset.type Node affinity preset type. Ignored if `blackboxExporter.affinity` is set. Allowed values: `soft` or `hard`
2846 ## @param blackboxExporter.nodeAffinityPreset.key Node label key to match. Ignored if `blackboxExporter.affinity` is set
2849 ## @param blackboxExporter.nodeAffinityPreset.values Node label values to match. Ignored if `blackboxExporter.affinity` is set
2856 ## @param blackboxExporter.affinity Affinity for Blackbox Exporter pods assignment
2857 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2858 ## NOTE: `blackboxExporter.podAffinityPreset`, `blackboxExporter.podAntiAffinityPreset`, and `blackboxExporter.nodeAffinityPreset` will be ignored when it's set
2861 ## @param blackboxExporter.nodeSelector Node labels for Blackbox Exporter pods assignment
2862 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2865 ## @param blackboxExporter.tolerations Tolerations for Blackbox Exporter pods assignment
2866 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2869 ## @param blackboxExporter.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains
2870 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2872 topologySpreadConstraints: []
2873 ## @param blackboxExporter.priorityClassName Blackbox Exporter pods' priorityClassName
2875 priorityClassName: ""
2876 ## @param blackboxExporter.schedulerName Kubernetes pod scheduler registry
2877 ## https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2880 ## @param blackboxExporter.terminationGracePeriodSeconds In seconds, time the given to the Blackbox Exporter pod needs to terminate gracefully
2881 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2883 terminationGracePeriodSeconds: ""
2884 ## @param blackboxExporter.updateStrategy.type Blackbox Exporter statefulset strategy type
2885 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2889 ## @param blackboxExporter.extraVolumes Optionally specify extra list of additional volumes for the Blackbox Exporter pod(s)
2892 ## @param blackboxExporter.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Blackbox Exporter container(s)
2894 extraVolumeMounts: []
2895 ## @param blackboxExporter.sidecars Add additional sidecar containers to the Blackbox Exporter pod(s)
2898 ## - name: your-image-name
2899 ## image: your-image
2900 ## imagePullPolicy: Always
2903 ## containerPort: 1234
2906 ## @param blackboxExporter.initContainers Add additional init containers to the Blackbox Exporter pod(s)
2907 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2910 ## - name: your-image-name
2911 ## image: your-image
2912 ## imagePullPolicy: Always
2913 ## command: ['sh', '-c', 'echo "hello world"']
2916 ## @section Blackbox Exporter Traffic Exposure Parameters
2919 ## blackboxExporter service parameters
2922 ## @param blackboxExporter.service.type Blackbox Exporter service type
2925 ## @param blackboxExporter.service.ports.http Blackbox Exporter HTTP service port
2929 ## Node ports to expose
2930 ## NOTE: choose port between <30000-32767>
2931 ## @param blackboxExporter.service.nodePorts.http Node port for HTTP
2935 ## @param blackboxExporter.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2936 ## Values: ClientIP or None
2937 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2939 sessionAffinity: None
2940 ## @param blackboxExporter.service.sessionAffinityConfig Additional settings for the sessionAffinity
2941 ## sessionAffinityConfig:
2943 ## timeoutSeconds: 300
2945 sessionAffinityConfig: {}
2946 ## @param blackboxExporter.service.clusterIP Blackbox Exporter service Cluster IP
2951 ## @param blackboxExporter.service.loadBalancerIP Blackbox Exporter service Load Balancer IP
2952 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2955 ## @param blackboxExporter.service.loadBalancerClass Blackbox Exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
2956 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2958 loadBalancerClass: ""
2959 ## @param blackboxExporter.service.loadBalancerSourceRanges Blackbox Exporter service Load Balancer sources
2960 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2962 ## loadBalancerSourceRanges:
2965 loadBalancerSourceRanges: []
2966 ## @param blackboxExporter.service.externalTrafficPolicy Blackbox Exporter service external traffic policy
2967 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2969 externalTrafficPolicy: Cluster
2970 ## @param blackboxExporter.service.annotations Additional custom annotations for Blackbox Exporter service
2973 ## @param blackboxExporter.service.extraPorts Extra ports to expose in the Blackbox Exporter service
2977 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2980 ## @param blackboxExporter.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2983 ## @param blackboxExporter.networkPolicy.allowExternal Don't require server label for connections
2984 ## The Policy model to apply. When set to false, only pods with the correct
2985 ## server label will have network access to the ports server is listening
2986 ## on. When true, server will accept connections from any source
2987 ## (with the correct destination port).
2990 ## @param blackboxExporter.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2992 allowExternalEgress: true
2993 ## @param blackboxExporter.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3003 ## - matchExpressions:
3009 ## @param blackboxExporter.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
3019 ## - matchExpressions:
3026 ## @param blackboxExporter.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3027 ## @param blackboxExporter.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3029 ingressNSMatchLabels: {}
3030 ingressNSPodMatchLabels: {}
3031 ## Pod Disruption Budget configuration
3032 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3033 ## @param blackboxExporter.pdb.create Enable/disable a Pod Disruption Budget creation
3034 ## @param blackboxExporter.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3035 ## @param blackboxExporter.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
3041## Component scraping the kube-apiserver
3044 ## @param kubeApiServer.enabled Create a ServiceMonitor to scrape kube-apiserver service
3048 ## @param kubeApiServer.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used.
3049 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3052 ## @param kubeApiServer.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3055 ## @param kubeApiServer.serviceMonitor.metricRelabelings Metric relabeling
3056 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3058 metricRelabelings: []
3059 ## @param kubeApiServer.serviceMonitor.relabelings Relabel configs
3060 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3063 ## @param kubeApiServer.serviceMonitor.labels Extra labels for the ServiceMonitor
3066 ## @param kubeApiServer.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3069 ## @param kubeApiServer.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3072## Component scraping the kube-controller-manager
3074kubeControllerManager:
3075 ## @param kubeControllerManager.enabled Create a ServiceMonitor to scrape kube-controller-manager service
3078 ## @param kubeControllerManager.endpoints If your kube controller manager is not deployed as a pod, specify IPs it can be found on
3085 ## @param kubeControllerManager.namespace Namespace where kube-controller-manager service is deployed.
3087 namespace: kube-system
3088 ## Service ports and selector information
3089 ## @param kubeControllerManager.service.enabled Whether or not to create a Service object for kube-controller-manager
3090 ## @param kubeControllerManager.service.ports.http Listening port of the kube-controller-manager Service object
3091 ## @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
3092 ## @param kubeControllerManager.service.selector Optional PODs Label selector for the service
3101 ## component: kube-controller-manager
3104 ## @param kubeControllerManager.service.labels Additional labels for kube-controller-manaer service
3108 ## @param kubeControllerManager.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3109 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3112 ## @param kubeControllerManager.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3115 ## @param kubeControllerManager.serviceMonitor.https Enable scraping kube-controller-manager over https
3116 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3119 ## @param kubeControllerManager.serviceMonitor.insecureSkipVerify Skip TLS certificate validation when scraping
3121 insecureSkipVerify: ""
3122 ## @param kubeControllerManager.serviceMonitor.serverName Name of the server to use when validating TLS certificate
3125 ## @param kubeControllerManager.serviceMonitor.metricRelabelings Metric relabeling
3126 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3128 metricRelabelings: []
3129 ## @param kubeControllerManager.serviceMonitor.relabelings Relabel configs
3130 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3133 ## @param kubeControllerManager.serviceMonitor.labels Extra labels for the ServiceMonitor
3136 ## @param kubeControllerManager.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3139 ## @param kubeControllerManager.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3142## Component scraping kube scheduler
3145 ## @param kubeScheduler.enabled Create a ServiceMonitor to scrape kube-scheduler service
3148 ## @param kubeScheduler.endpoints If your kube scheduler is not deployed as a pod, specify IPs it can be found on
3155 ## @param kubeScheduler.namespace Namespace where kube-scheduler service is deployed.
3157 namespace: kube-system
3158 ## If using kubeScheduler.endpoints only the port and targetPort are used
3159 ## @param kubeScheduler.service.enabled Whether or not to create a Service object for kube-scheduler
3160 ## @param kubeScheduler.service.ports.http Listening port of the kube scheduler Service object
3161 ## @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
3162 ## @param kubeScheduler.service.selector Optional PODs Label selector for the service
3171 ## component: kube-scheduler
3174 ## @param kubeScheduler.service.labels Additional labels for kube-scheduler service
3178 ## @param kubeScheduler.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3181 ## @param kubeScheduler.serviceMonitor.https Enable scraping kube-scheduler over https
3182 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3185 ## @param kubeScheduler.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3188 ## @param kubeScheduler.serviceMonitor.insecureSkipVerify Skip TLS certificate validation when scraping
3190 insecureSkipVerify: ""
3191 ## @param kubeScheduler.serviceMonitor.serverName Name of the server to use when validating TLS certificate
3194 ## @param kubeScheduler.serviceMonitor.metricRelabelings Metric relabeling
3195 ## metricRelabelings:
3197 ## regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3198 ## sourceLabels: [__name__]
3200 metricRelabelings: []
3201 ## @param kubeScheduler.serviceMonitor.relabelings Relabel configs
3203 ## - sourceLabels: [__meta_kubernetes_pod_node_name]
3206 ## targetLabel: nodename
3211 ## @param kubeScheduler.serviceMonitor.labels Extra labels for the ServiceMonitor
3214 ## @param kubeScheduler.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3217 ## @param kubeScheduler.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3220## Component scraping coreDns
3223 ## @param coreDns.enabled Create a ServiceMonitor to scrape coredns service
3226 ## @param coreDns.namespace Namespace where core dns service is deployed.
3228 namespace: kube-system
3229 ## Create a ServiceMonitor to scrape coredns service
3230 ## @param coreDns.service.enabled Whether or not to create a Service object for coredns
3231 ## @param coreDns.service.ports.http Listening port of the coredns Service object
3232 ## @param coreDns.service.targetPorts.http Port to target on the coredns Pods. This should be the port that coredns is exposing metrics on
3233 ## @param coreDns.service.selector Optional PODs Label selector for the service
3242 ## component: kube-dns
3245 ## @param coreDns.service.labels Additional labels for coredns service
3249 ## @param coreDns.serviceMonitor.interval Scrape interval. If not set, the Prometheus default scrape interval is used.
3252 ## @param coreDns.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3255 ## @param coreDns.serviceMonitor.metricRelabelings Metric relabel configs to apply to samples before ingestion.
3256 ## metricRelabelings:
3258 ## regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3259 ## sourceLabels: [__name__]
3261 metricRelabelings: []
3262 ## @param coreDns.serviceMonitor.relabelings Relabel configs to apply to samples before ingestion.
3264 ## - sourceLabels: [__meta_kubernetes_pod_node_name]
3267 ## targetLabel: nodename
3272 ## @param coreDns.serviceMonitor.labels Extra labels for the ServiceMonitor
3275 ## @param coreDns.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3278 ## @param coreDns.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3281## Component scraping the kube-proxy
3284 ## @param kubeProxy.enabled Create a ServiceMonitor to scrape the kube-proxy Service
3287 ## @param kubeProxy.endpoints If your kube-proxy is not deployed as a pod, specify IPs it can be found on
3294 ## @param kubeProxy.namespace Namespace where kube-proxy service is deployed.
3296 namespace: kube-system
3297 ## @param kubeProxy.service.enabled Whether or not to create a Service object for kube-proxy
3298 ## @param kubeProxy.service.ports.http Listening port of the kube-proxy Service object
3299 ## @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
3300 ## @param kubeProxy.service.selector Optional PODs Label selector for the service
3309 ## k8s-app: kube-proxy
3312 ## @param kubeProxy.service.labels Additional labels for kube-proxy service
3316 ## @param kubeProxy.serviceMonitor.https Enable scraping kube-proxy over https.
3317 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3320 ## @param kubeProxy.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3321 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3324 ## @param kubeProxy.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3327 ## @param kubeProxy.serviceMonitor.metricRelabelings Metric relabeling
3328 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3330 metricRelabelings: []
3331 ## @param kubeProxy.serviceMonitor.relabelings Relabel configs
3332 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3335 ## @param kubeProxy.serviceMonitor.labels Extra labels for the ServiceMonitor
3338 ## @param kubeProxy.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3341 ## @param kubeProxy.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3344## @section RBAC parameters
3348## ref: https://kubernetes.io/docs/admin/authorization/rbac/
3349## @param rbac.create Whether to create and use RBAC resources or not
3350## @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
3354 ## @param rbac.rules.operator Custom RBAC rules to set on Prometheus Operator ClusterRole
3355 ## @param rbac.rules.prometheus Custom RBAC rules to set on Prometheus ClusterRole
3372## @section Thanos Ruler Parameters
3375 ## @param thanosRuler.enabled Enable/disable Thanos Ruler component
3378 ## Iamguarded Thanos image
3379 ## ref: https://hub.docker.com/r/iamguarded/thanos/tags/
3380 ## @param thanosRuler.image.registry [default: REGISTRY_NAME] Thanos image registry
3381 ## @param thanosRuler.image.repository Thanos image repository
3382 ## @skip thanosRuler.image.tag Thanos image tag
3383 ## @param thanosRuler.image.digest Thanos image digest
3384 ## @param thanosRuler.image.pullPolicy Thanos image pull policy
3385 ## @param thanosRuler.image.pullSecrets Specify docker-registry secret names as an array
3389 repository: chainguard-private/thanos-iamguarded
3392 pullPolicy: IfNotPresent
3394 ## @param thanosRuler.replicaCount Number of Thanos Ruler replicas to deploy
3397 ## @param thanosRuler.paused When a ThanosRuler deployment is paused, no actions except for deletion will be performed on the underlying objects
3400 ## @param thanosRuler.logFormat Log format for Thanos Ruler
3403 ## @param thanosRuler.logLevel Log level for Thanos ruler
3406 ## @param thanosRuler.retention Time duration ThanosRuler shall retain data for
3407 ## Must match the regular expression [0-9]+(ms|s|m|h|d|w|y) (milliseconds seconds minutes hours days weeks years)
3408 ## The field has no effect when remote-write is configured since the Ruler operates in stateless mode
3411 ## @param thanosRuler.evaluationInterval Interval between consecutive evaluations
3413 evaluationInterval: ""
3414 ## @param thanosRuler.labels Configures the external label pairs of the ThanosRuler resource
3415 ## A default replica label 'thanos_ruler_replica' will always be added as a label with the value of the pod’s name
3418 ## @param thanosRuler.storage Storage spec to specify how storage shall be used.
3419 ## ref: https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.StorageSpec
3421 ## @param thanosRuler.volumes Additional volumes on the output StatefulSet definition
3422 ## Volumes specified will be appended to other volumes that are generated as a result of thanosRuler.storage configuration
3425 ## @param thanosRuler.volumeMounts Additional VolumeMounts on the output StatefulSet definition.
3426 ## VolumeMounts specified will be appended to other VolumeMounts that are generated as a result of thanosRuler.storage configuration
3429 ## @param thanosRuler.listenLocal Makes Thanos Ruler listen on loopback, so that it does not bind against the Pod IP
3432 ## @param thanosRuler.externalPrefix The external URL the Thanos Ruler instances will be available under. Maps to --web.external-prefix on Thanos Ruler
3435 ## Service parameters
3438 ## @param thanosRuler.service.type Kubernetes service type
3441 ## @param thanosRuler.service.ports.http Thanos Ruler service HTTP port
3442 ## @param thanosRuler.service.ports.grpc Thanos Ruler service GRPC port
3447 ## @param thanosRuler.service.nodePorts.http Specify the Thanos Ruler HTTP nodePort value for the LoadBalancer and NodePort service types
3448 ## @param thanosRuler.service.nodePorts.grpc Specify the Thanos Ruler GRPC nodePort value for the LoadBalancer and NodePort service types
3449 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
3454 ## @param thanosRuler.service.clusterIP Thanos Ruler service clusterIP IP
3459 ## @param thanosRuler.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
3460 ## Set the LoadBalancer service type to internal only
3461 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
3464 ## @param thanosRuler.service.loadBalancerSourceRanges Address that are allowed when service is LoadBalancer
3465 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
3467 ## loadBalancerSourceRanges:
3470 loadBalancerSourceRanges: []
3471 ## @param thanosRuler.service.externalTrafficPolicy Thanos Ruler service externalTrafficPolicy
3472 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3474 externalTrafficPolicy: Cluster
3475 ## @param thanosRuler.service.labels Extra labels for Thanos Ruler service
3478 ## @param thanosRuler.service.annotations Annotations for Thanos Ruler service
3481 ## @param thanosRuler.service.extraPorts Extra ports to expose in the Thanos Ruler service
3484 ## @param thanosRuler.service.labelSelectorsOverride Selector for Thanos Query service
3486 labelSelectorsOverride: {}
3487 ## @param thanosRuler.service.additionalHeadless Additional Headless service
3489 additionalHeadless: false
3490 ## Headless service properties
3493 ## @param thanosRuler.service.headless.annotations Annotations for the headless service.
3497 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3500 ## @param thanosRuler.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
3503 ## @param thanosRuler.networkPolicy.allowExternal Don't require client label for connections
3504 ## The Policy model to apply. When set to false, only pods with the correct
3505 ## client label will have network access to the ports the application is listening
3506 ## on. When true, the app will accept connections from any source (with the correct destination port).
3509 ## @param thanosRuler.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
3510 ## If set to 'false', set 'extraEgress' to allow communicating to your Thanos Query/Frontend Query services.
3512 allowExternalEgress: true
3513 ## @param thanosRuler.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3523 ## - matchExpressions:
3529 ## @param thanosRuler.networkPolicy.extraEgress [array] Add extra egress rules to the NetworkPolicy
3539 ## - matchExpressions:
3546 ## @param thanosRuler.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3547 ## @param thanosRuler.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3549 ingressNSMatchLabels: {}
3550 ingressNSPodMatchLabels: {}
3551 ## @param thanosRuler.routePrefix Prefix used to register routes. Useful for proxies that rewrite URLs.
3554 ## Configure the ingress resource that allows you to access Thanos Ruler
3555 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
3558 ## @param thanosRuler.ingress.enabled Enable ingress controller resource
3561 ## @param thanosRuler.ingress.hostname Default host for the ingress resource
3563 hostname: thanos-ruler.local
3564 ## @param thanosRuler.ingress.ingressClassName IngressClass that will be used to implement the Ingress (Kubernetes 1.18+)
3565 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
3566 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
3568 ingressClassName: ""
3569 ## @param thanosRuler.ingress.labels Additional label for the Ingress resource.
3570 ## Use this parameter to set the required labels for your needs
3573 ## dns-managed-by-external-dns: 'true'
3576 ## @param thanosRuler.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
3577 ## For a full list of possible ingress annotations, please see
3578 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
3579 ## Use this parameter to set the required annotations for cert-manager, see
3580 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
3584 ## kubernetes.io/ingress.class: nginx
3585 ## cert-manager.io/cluster-issuer: cluster-issuer-name
3588 ## @param thanosRuler.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
3589 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
3591 ## - name: thanos.local
3593 ## pathType: ImplementationSpecific
3596 ## @param thanosRuler.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
3597 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
3601 ## secretName: thanos.local-tls
3604 ## @param thanosRuler.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
3605 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
3606 ## -----BEGIN RSA PRIVATE KEY-----
3608 ## name should line up with a tlsSecret set further up
3609 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
3611 ## It is also possible to create and manage the certificates outside of this helm chart
3612 ## Please see README.md for more information
3614 ## - name: thanos.local-tls
3619 ## @param thanosRuler.ingress.extraRules Additional rules to be covered with this ingress record
3620 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
3623 ## - host: example.local
3628 ## name: example-svc
3633 ## @param thanosRuler.ingress.apiVersion Force Ingress API version (automatically detected if not set)
3636 ## @param thanosRuler.ingress.path Ingress path
3639 ## @param thanosRuler.ingress.pathType Ingress path type
3641 pathType: ImplementationSpecific
3642 ## @param thanosRuler.ingress.tls Enable TLS configuration for the hostname defined at `thanosRuler.ingress.hostname` parameter
3643 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.thanosRuler.ingress.hostname }}`
3645 ## - Use the `thanosRuler.ingress.secrets` parameter to create this TLS secret
3646 ## - Rely on cert-manager to create it by setting the corresponding annotations
3647 ## - Rely on Helm to create self-signed certificates by setting `thanosRuler.ingress.selfSigned=true`
3650 ## @param thanosRuler.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
3653 ## Service account for Thanos Ruler to use
3654 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3657 ## @param thanosRuler.serviceAccount.create Specify whether to create a ServiceAccount for Thanos Ruler
3660 ## @param thanosRuler.serviceAccount.name The name of the ServiceAccount to create
3661 ## If not set and create is true, a name is generated using the kube-prometheus.thanosRuler.fullname template
3664 ## @param thanosRuler.serviceAccount.annotations Additional annotations for the ServiceAccount
3666 ## eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/thanosruler
3669 ## @param thanosRuler.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
3671 automountServiceAccountToken: false
3672 ## Thanos Ruler pods' Security Context
3673 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3674 ## @param thanosRuler.podSecurityContext.enabled Enable security context
3675 ## @param thanosRuler.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
3676 ## @param thanosRuler.podSecurityContext.sysctls Set kernel settings using the sysctl interface
3677 ## @param thanosRuler.podSecurityContext.supplementalGroups Set filesystem extra groups
3678 ## @param thanosRuler.podSecurityContext.fsGroup Group ID for the container filesystem
3682 fsGroupChangePolicy: Always
3684 supplementalGroups: []
3686 ## @param thanosRuler.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge).
3687 ## This is ignored if operator.resources is set (operator.resources is recommended for production).
3688 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
3690 resourcesPreset: "nano"
3691 ## @param thanosRuler.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3700 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3703 ## @param thanosRuler.containerPorts.http HTTP container port
3704 ## @param thanosRuler.containerPorts.grpc GRPC container port
3709 ## @param thanosRuler.alertQueryUrl The external Query URL the Thanos Ruler will set in the ‘Source’ field of all alerts
3710 ## Maps to the ‘–alert.query-url’ CLI arg
3713 ## Configuration for connecting to alertmanager
3714 ## Maps to --alertmanagers.config Thanos Ruler argument
3715 ## NOTE: This field takes precedence over alertmanagersUrl.
3717 alertmanagersConfig:
3718 ## @param thanosRuler.alertmanagersConfig.existingSecret.name Name of an existing secret to use for Alert Manager config
3719 ## If configured, thanosRuler.alertmanagersConfig.config will not be used
3720 ## @param thanosRuler.alertmanagersConfig.existingSecret.key Name of a key in the existing secret to use for Alert Manager config
3725 ## @param thanosRuler.alertmanagersConfig.config Alert Manager configuration
3726 ## Unused if thanosRuler.alertmanagersConfig.existingSecret.name is configured
3727 ## If empty, Thanos Ruler will use this chart's Alertmanager when 'alertmanager.enabled' is 'true'
3728 ## ref: https://thanos.io/tip/components/rule.md/#alertmanager
3733 ## username: some_user
3734 ## password: some_pass
3736 ## - alertmanager.thanos.io
3742 ## @param thanosRuler.alertDropLabels Configures the label names which should be dropped in Thanos Ruler alerts
3743 ## The replica label `thanos_ruler_replica` will always be dropped from the alerts.
3746 ## Configures the list of Thanos Query endpoints from which to query metrics.
3747 ## Maps to --query.config Thanos Ruler argument
3748 ## The configuration format is defined at https://thanos.io/tip/components/rule.md/#query-api
3750 ## @param thanosRuler.queryConfig.existingSecret.name Name of an existing secret to use for Alert Manager config
3751 ## If configured, thanosRuler.queryConfig.config will not be used
3752 ## @param thanosRuler.queryConfig.existingSecret.key Key in the existing secret to use for Query config
3756 key: "query-config.yaml"
3757 ## @param thanosRuler.queryConfig.config
3758 ## Unused if thanosRuler.queryConfig.existingSecret.name is configured
3762 ## - static_configs:
3763 ## - "dnssrv+_http._tcp.thanos-query.thanos.svc.cluster.local"
3765 ## Configures object storage
3766 ## Maps to --objstore.config Thanos Ruler argument
3767 ## ref: https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage
3769 objectStorageConfig:
3770 ## @param thanosRuler.objectStorageConfig.existingSecret.name Name of an existing secret to use for Object Storage config
3771 ## If configured, thanosRuler.objectStorageConfig.config will not be used
3772 ## @param thanosRuler.objectStorageConfig.existingSecret.key Key in the existing secret to use for Object Storage config
3777 ## @param thanosRuler.objectStorageConfig.config
3778 ## Unused if thanosRuler.objectStorageConfig.existingSecret.name is configured
3781 ## @param thanosRuler.ruleNamespaceSelector Namespaces to be selected for PrometheusRules discovery
3782 ## If nil, select own namespace
3784 ruleNamespaceSelector: {}
3785 ## @param thanosRuler.ruleSelector PrometheusRule selector labels
3786 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md
3787 ## If nil, select all PrometheusRules
3790 ## @param thanosRuler.evalInterval How frequently to evaluate rules
3793 ## @param thanosRuler.clusterName Used to set the 'ruler_cluster' label
3796 ## @param thanosRuler.additionalArgs [array] Additional arguments for the ThanosRuler container.
3797 ## It is intended for e.g. activating hidden flags which are not supported by the dedicated configuration options yet.
3800 - name: grpc-address
3801 value: "0.0.0.0:{{ .Values.thanosRuler.containerPorts.grpc }}"
3802 - name: http-address
3803 value: "0.0.0.0:{{ .Values.thanosRuler.containerPorts.http }}"
3804 ## Thanos Ruler Pod Disruption Budget configuration
3805 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3806 ## @param thanosRuler.pdb.create Enable/disable a Pod Disruption Budget creation for Thanos Ruler
3807 ## @param thanosRuler.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3808 ## @param thanosRuler.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
3814 ## @param thanosRuler.nodeSelector Node labels for Thanos Ruler pods assignment
3815 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3818 ## Create a servicemonitor for Thanos ruler
3821 ## @param thanosRuler.serviceMonitor.enabled Creates a ServiceMonitor to monitor Thanos Ruler
3824 ## @param thanosRuler.serviceMonitor.https Enable scraping Thanos Ruler over https.
3825 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
3828 ## @param thanosRuler.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3831 ## @param thanosRuler.serviceMonitor.interval Scrape interval (use by default, falling back to Prometheus' default)
3832 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint
3835 ## @param thanosRuler.serviceMonitor.metricRelabelings Metric relabeling
3836 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
3838 metricRelabelings: []
3839 ## @param thanosRuler.serviceMonitor.relabelings Relabel configs
3840 ## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
3843 ## @param thanosRuler.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
3844 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
3847 ## @param thanosRuler.serviceMonitor.labels Extra labels for the ServiceMonitor
3850 ## @param thanosRuler.serviceMonitor.annotations Extra annotations for the ServiceMonitor
3853 ## @param thanosRuler.serviceMonitor.extraParameters Any extra parameter to be added to the endpoint configured in the ServiceMonitor
3854 ## (e.g. tlsConfig for further customization of the HTTPS behavior)
3855 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Endpoint
3858 ## @param thanosRuler.serviceMonitor.sampleLimit Per-scrape limit on number of scraped samples that will be accepted.
3861 ## @param thanosRuler.podAffinityPreset Prometheus Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
3862 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3864 podAffinityPreset: ""
3865 ## @param thanosRuler.podAntiAffinityPreset Thanos Ruler Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
3866 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3868 podAntiAffinityPreset: soft
3869 ## Node affinity preset
3870 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3873 ## @param thanosRuler.nodeAffinityPreset.type Thanos Ruler Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
3876 ## @param thanosRuler.nodeAffinityPreset.key Thanos Ruler Node label key to match. Ignored if `affinity` is set
3878 ## key: "kubernetes.io/e2e-az-name"
3881 ## @param thanosRuler.nodeAffinityPreset.values Thanos Ruler Node label values to match. Ignored if `affinity` is set
3888 ## @param thanosRuler.affinity Thanos Ruler Affinity for pod assignment
3889 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3890 ## Note: thanosRuler.podAffinityPreset, thanosRuler.podAntiAffinityPreset, and thanosRuler.nodeAffinityPreset will be ignored when it's set
3893 ## @param thanosRuler.podMetadata [object] Standard object's metadata
3894 ## ref: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
3899 ## @param thanosRuler.tolerations Thanos Ruler Tolerations for pod assignment
3900 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3903 ## @param thanosRuler.topologySpreadConstraints Topology Spread Constraints for pod assignment
3904 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
3905 ## The value is evaluated as a template
3907 topologySpreadConstraints: []
3908 ## @param thanosRuler.containers Containers allows injecting additional containers or modifying operator generated containers
3909 ## The current container names are: thanos-ruler and config-reloader
3912 ## @param thanosRuler.initContainers InitContainers allows adding initContainers to the pod definition
3913 ## Those can be used to e.g. fetch secrets for injection into the ThanosRuler configuration from external sources.
3916 ## @param thanosRuler.priorityClassName Priority class assigned to the Pods
3918 priorityClassName: ""
3919 ## @param thanosRuler.portName Port name used for the pods and governing service
3922 ## @param thanosRuler.web Defines the configuration of the ThanosRuler web server
3925 ## @param thanosRuler.remoteWrite Defines the list of remote write configurations
3926 ## When the list isn’t empty, the ruler is configured with stateless mode
3927 ## ref: https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.RemoteWriteSpec