x509-certificate-exporter#

x509-certificate-exporter - Prometheus-экспортер метрик, предназначенный для мониторинга сроков действия TLS-сертификатов в Kubernetes. Он сканирует файлы, каталоги, Kubeconfig и секреты с сертификатами, извлекает данные об их жизненном цикле и предоставляет метрики для оповещения и визуализации.

Основные задачи и возможности
  • Мониторинг различных источников сертификатов. Поддерживает:

    • PEM-файлы по указанным путям;

    • Каталоги с автоматическим сканированием;

    • Kubeconfig-файлы (встроенные или ссылающиеся на файлы);

    • TLS-секреты Kubernetes (kubernetes.io/tls).

  • Экспорт метрик в Prometheus. Предоставляет метрики:

    • x509_cert_not_after - дата окончания срока действия;

    • x509_cert_expired - статус окончания срока действия;

    • x509_read_errors - ошибки чтения файлов или API;

    • Опционально: x509_cert_expires_in_seconds, x509_cert_valid_since_seconds.

  • Гибкая фильтрация и настройка. Позволяет:

    • Включать/исключать пространства имен и секреты по меткам;

    • Управлять кешированием;

    • Обрезать пути в метках.

  • Преднастроенные правила оповещений (например, за 28 дней до истечения срока) и готовая панель Grafana для визуализации.

Примечание

x509-certificate-exporter устанавливается по умолчанию в процессе установки всего кластера DropApp.

Настройка#

По умолчанию инструмент x509-certificate-exporter сконфигурирован на запуск в трех режимах:

  • Deployment с именем x509-certificate-exporter следит за секретами в кластере с типом kubernetes.io/tls;

  • Daemonset с именем x509-certificate-exporter-cp следит за сертификатами в файловой системе control-plane узлов;

  • Daemonset с именем x509-certificate-exporter-worker следит за сертификатами в файловой системе обычных рабочих узлов (не выделенных).

При наличии выделенных рабочих узлов с определенным nodePool, например ingress, infra, storage и т.п., и есть необходимость следить за сертификатами и на них, добавьте для работы с ними в конфигурацию x509-certificate-exporter:

apiVersion: config.dropapp.ru/v1alpha1
kind: Tool
metadata:
  name: x509-certificate-exporter
spec:
  values:       
    hostPathsExporter:
      daemonSets:
        infra: # пример для рабочих узлов с меткой node-role.kubernetes.io/infra: ""
          nodeSelector:
            node-role.kubernetes.io/infra: ""
          watchFiles:
            - /var/lib/kubelet/pki/kubelet-client-current.pem
            - /etc/kubernetes/pki/ca.crt

Конфигурация values#

Параметры x509-certificate-exporter можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».

nameOverride — частичное переопределение имени шаблона fullname#

Параметр

Описание

Значение по умолчанию

nameOverride

Частичное переопределение базового имени чарта: добавляется к имени релиза при генерации имен ресурсов

""

fullnameOverride — полное переопределение имени для всех ресурсов#

Параметр

Описание

Значение по умолчанию

fullnameOverride

Полное переопределение имени для всех создаваемых ресурсов, игнорируя имя релиза и чарта

""

namespaceOverride — переопределение пространства имен для развертывания#

Параметр

Описание

Значение по умолчанию

namespaceOverride

Явное указание пространства имен для установки ресурсов чарта, переопределяет пространство имен релиза Helm

""

extraDeploy — дополнительные объекты Kubernetes для развертывания с релизом#

Параметр

Описание

Значение по умолчанию

extraDeploy

Список дополнительных Kubernetes-манифестов (YAML), которые будут обработаны шаблоном Helm и развернуты с релизом

[]

extraDeployVerbatim — дополнительные объекты без обработки шаблоном Helm#

Параметр

Описание

Значение по умолчанию

extraDeployVerbatim

Список манифестов, которые будут развернуты «как есть», без обработки Helm-шаблонами

[]

imagePullSecrets — секреты для доступа к приватным реестрам образов#

Параметр

Описание

Значение по умолчанию

imagePullSecrets

Список имен секретов для аутентификации в приватных container registry при загрузке образов экспортера

[]

image — конфигурация контейнерного образа x509-certificate-exporter#

Параметр

Описание

Значение по умолчанию

image.registry

Реестр контейнеров для образа экспортера, поддерживает глобальные настройки через Helm-шаблоны

{{ .Values.global.image.registry }}

image.repository

Путь к репозиторию образа с поддержкой глобальных переменных для централизованного управления источниками образов

{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-x509-certificate-exporter/x509-certificate-exporter

image.tag

Тег образа экспортера. По умолчанию используется версия из Chart.AppVersion, если не задано явно

3.20.1

image.tagSuffix

Суффикс для выбора варианта образа: -busybox, -alpine или -scratch для разных сценариев безопасности и размера

""

image.pullPolicy

Политика загрузки образа: IfNotPresent для кеширования, Always для гарантированного обновления

IfNotPresent

migration — настройки миграционных Helm hook Jobs для совместимости версий#

Параметр

Описание

Значение по умолчанию

migration.image.repository

Репозиторий образа Kubectl для выполнения миграционных задач в рамках Helm hooks

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-kubernetes/kubectl

migration.image.tag

Тег образа Kubectl. При задании переопределяет автоопределение версии кластера

v1.29.15

migration.image.digest

Digest образа Kubectl. При задании имеет приоритет над тегом и автоопределением версии

""

migration.annotations

Аннотации для pod миграционных Jobs, полезные для интеграции с системами аудита или управления

{}

migration.extraLabels

Дополнительные метки для pod миграционных задач для селекции и мониторинга

{}

migration.resources.limits.cpu

Максимальное использование CPU для контейнеров миграционных Jobs

1

migration.resources.limits.memory

Лимит памяти для миграционных задач, предотвращающий исчерпание ресурсов узла

150Mi

migration.resources.requests.cpu

Гарантированное выделение CPU для запуска миграционных pod

20m

migration.resources.requests.memory

Гарантированный объем памяти для стабильного выполнения миграционных задач

20Mi

migration.podSecurityContext.runAsNonRoot

Требование запуска миграционных pod от не root-пользователя для соответствия политикам безопасности

true

migration.securityContext.runAsUser

UID пользователя для запуска контейнеров миграционных Jobs

65534

migration.securityContext.runAsGroup

GID группы для контейнеров миграционных задач

65534

migration.securityContext.readOnlyRootFilesystem

Монтирование корневой ФС в режим только для чтения для повышения безопасности

true

migration.securityContext.capabilities.drop

Список Linux capabilities для удаления из процесса, минимизирующий поверхность атаки

["ALL"]

exposePerCertificateErrorMetrics — включение метрик ошибок на уровень каждого сертификата#

Параметр

Описание

Значение по умолчанию

exposePerCertificateErrorMetrics

Экспорт отдельных метрик ошибок для каждого сертификата: помогает диагностировать проблемы чтения без анализа логов, но увеличивает кардинальность метрик в Prometheus

false

exposeRelativeMetrics — включение метрик с относительными временными интервалами#

Параметр

Описание

Значение по умолчанию

exposeRelativeMetrics

Экспорт метрик с относительными длительностями вместо абсолютных таймстемпов: не рекомендуется для Prometheus из-за особенностей хранения временных рядов

false

metricLabelsFilterList — фильтрация меток метрик для снижения кардинальности#

Параметр

Описание

Значение по умолчанию

metricLabelsFilterList

Список разрешенных меток для метрик. Снижение кардинальности может привести к коллизиям метрик и игнорированию сертификатов. Минимум должен включать filepath, secret_namespace, secret_name; subject_CN рекомендуется для файлов с несколькими сертификатами

null

grafana — конфигурация панели Grafana как ConfigMap#

Параметр

Описание

Значение по умолчанию

grafana.createDashboard

Создание ConfigMap с панелью Grafana для автоматического обнаружения через sidecar (требуется grafana-sidecar)

false

grafana.sidecarLabel

Имя метки для обнаружения ConfigMap Grafana sidecar

grafana_dashboard

grafana.sidecarLabelValue

Значение метки для фильтрации ConfigMap Grafana sidecar

1

grafana.annotations

Аннотации для ConfigMap панели, например для указания каталога загрузки в sidecar

{}

grafana.extraLabels

Дополнительные метки для ConfigMap панели для селекции и управления

{}

secretsExporter — настройки экспортера для мониторинга TLS-Secrets в Kubernetes#

Параметр

Описание

Значение по умолчанию

secretsExporter.enabled

Включение Deployment для экспортера, сканирующего TLS-секреты кластера на предмет истекающих сертификатов

true

secretsExporter.annotations

Дополнительные аннотации для Deployment экспортера секретов

{}

secretsExporter.debugMode

Включение отладочного вывода логов для диагностики проблем сканирования секретов

false

secretsExporter.replicas

Количество реплик pod экспортера секретов. Обычно достаточно 1, т.к. сканирование идемпотентно

1

secretsExporter.restartPolicy

Политика перезапуска pod экспортера: Always для гарантированного восстановления при сбоях

Always

secretsExporter.strategy

Стратегия обновления Deployment: RollingUpdate или Recreate для контроля доступности при обновлении

{}

secretsExporter.revisionHistoryLimit

Количество старых ReplicaSets для отката изменений. Если не заполнено, используется значение по умолчанию Kubernetes

""

secretsExporter.resources.limits.cpu

Максимальное использование CPU для контейнера экспортера секретов

1

secretsExporter.resources.limits.memory

Лимит памяти для экспортера, предотвращающий OOM при сканировании большого количества секретов

150Mi

secretsExporter.resources.requests.cpu

Гарантированное выделение CPU для планирования pod экспортера

20m

secretsExporter.resources.requests.memory

Гарантированный объем памяти для стабильной работы экспортера

20Mi

secretsExporter.readinessProbe.initialDelaySeconds

Задержка перед первой проверкой готовности экспортера

5

secretsExporter.readinessProbe.periodSeconds

Интервал между повторными проверками readiness

3

secretsExporter.livenessProbe.initialDelaySeconds

Задержка перед первой проверкой жизнеспособности процесса

5

secretsExporter.livenessProbe.periodSeconds

Интервал между проверками liveness

3

secretsExporter.nodeSelector

Селектор узлов для размещения pod экспортера секретов

{}

secretsExporter.tolerations

Допуски для размещения экспортера на узлах с taint

[]

secretsExporter.affinity

Правила аффинити для оптимизации размещения pod экспортера

{}

secretsExporter.priorityClassName

Класс приоритета для pod экспортера секретов

""

secretsExporter.podExtraLabels

Дополнительные метки для pod экспортера для селекции и мониторинга

{}

secretsExporter.podAnnotations

Аннотации для pod экспортера, например для интеграции с Prometheus

{}

secretsExporter.podSecurityContext.runAsNonRoot

Требование запуска pod от не root-пользователя для соответствия политикам безопасности

true

secretsExporter.securityContext.runAsUser

UID пользователя для запуска контейнера экспортера

65534

secretsExporter.securityContext.runAsGroup

GID группы для контейнера экспортера

65534

secretsExporter.securityContext.readOnlyRootFilesystem

Монтирование корневой ФС в режим только для чтения

true

secretsExporter.securityContext.capabilities.drop

Удаление всех Linux capabilities для минимизации поверхности атаки

["ALL"]

secretsExporter.extraVolumes

Дополнительные тома для монтирования в pod экспортера (комбинируются с глобальными extraVolumes)

[]

secretsExporter.extraVolumeMounts

Дополнительные точки монтирования для контейнеров экспортера

[]

secretsExporter.secretTypes

Типы секретов и ключи данных для сканирования: по умолчанию kubernetes.io/tls с ключом tls.crt

[
{ «type»: «kubernetes.io/tls», «key»: «tls.crt» }
]

secretsExporter.configMapKeys

Список ключей в ConfigMaps для сканирования на наличие сертификатов (например, ["tls.crt"])

[]

secretsExporter.includeNamespaces

Список пространств имен для сканирования. Если не заполнено, используется список со всеми пространствами имен

[]

secretsExporter.excludeNamespaces

Список исключаемых пространств имен (применяется после includeNamespaces)

[]

secretsExporter.includeNamespaceLabels

Фильтрация пространств имен по меткам: ключи или «ключ=значение» для включения только определенных окружений

[]

secretsExporter.excludeNamespaceLabels

Исключение пространств имен по меткам для тонкой настройки области сканирования

[]

secretsExporter.includeLabels

Фильтрация TLS-Secrets по меткам для сканирования только определенных ресурсов

[]

secretsExporter.excludeLabels

Исключение TLS-Secrets по меткам для исключения служебных или тестовых ресурсов

[]

secretsExporter.exposeSecretLabels

Список меток из секретов Kubernetes для экспорта как Prometheus-меток (обогащение метрик)

[]

secretsExporter.extraArgs

Дополнительные аргументы командной строки экспортера, например --watch-file для мониторинга файлов

[]

secretsExporter.cache.enabled

Включение кеширования Kubernetes-объектов для предотвращения тайм-аутов при скрейпинге метрик

true

secretsExporter.cache.maxDuration

Максимальное время жизни объекта в кеше без обновления (секунды), минимум половина этого значения

300

secretsExporter.kubeApiRateLimits.enabled

Включение ограничение на количество запросов (rate limiting) к Kubernetes API для предотвращения троттлинга

false

secretsExporter.kubeApiRateLimits.queriesPerSecond

Максимальная частота запросов к API серверу (в секунду)

5

secretsExporter.kubeApiRateLimits.burstQueries

Размер burst-буфера для запросов к API серверу

10

secretsExporter.env

Дополнительные переменные окружения для контейнера экспортера, например GOMAXPROCS для контроля параллелизма

[]

hostPathsExporter — настройки DaemonSet для сканирования сертификатов на хост-файловой системе#

Параметр

Описание

Значение по умолчанию

hostPathsExporter.annotations

Дополнительные аннотации для DaemonSet экспортера хост-путей

{}

hostPathsExporter.debugMode

Включение отладочного вывода для всех DaemonSet экспортеров хост-путей по умолчанию

false

hostPathsExporter.skipSymlinks

Пропуск символических ссылок при сканировании файлов и каталогов (не применяется к секретам Kubernetes`)

false

hostPathsExporter.restartPolicy

Политика перезапуска pod для всех DaemonSet экспортеров хост-путей

Always

hostPathsExporter.updateStrategy

Стратегия обновления DaemonSet: RollingUpdate с контролем доступности при апдейте

{}

hostPathsExporter.revisionHistoryLimit

Количество старых версий DaemonSet для отката изменений

""

hostPathsExporter.resources.limits.cpu

Максимальное использование CPU для контейнеров экспортера хост-путей

1

hostPathsExporter.resources.limits.memory

Лимит памяти для экспортера, работающего на каждом узле

40Mi

hostPathsExporter.resources.requests.cpu

Гарантированное выделение CPU для планирования pod экспортера

10m

hostPathsExporter.resources.requests.memory

Гарантированный объем памяти для стабильной работы экспортера на узле

20Mi

hostPathsExporter.readinessProbe.initialDelaySeconds

Задержка перед первой проверкой готовности экспортера хост-путей

5

hostPathsExporter.readinessProbe.periodSeconds

Интервал между проверками readiness

3

hostPathsExporter.livenessProbe.initialDelaySeconds

Задержка перед первой проверкой жизнеспособности процесса

5

hostPathsExporter.livenessProbe.periodSeconds

Интервал между проверками liveness

3

hostPathsExporter.nodeSelector

Селектор узлов для размещения pod экспортера хост-путей (по умолчанию для всех DaemonSet)

{}

hostPathsExporter.tolerations

Допуски для размещения экспортера на узлах с taint (по умолчанию для всех DaemonSet)

[]

hostPathsExporter.affinity

Правила аффинити для оптимизации размещения pod (по умолчанию для всех DaemonSet)

{}

hostPathsExporter.priorityClassName

Класс приоритета для pod экспортера хост-путей

""

hostPathsExporter.podExtraLabels

Дополнительные метки для pod экспортера (по умолчанию для всех DaemonSet)

{}

hostPathsExporter.podAnnotations

Аннотации для pod экспортера (по умолчанию для всех DaemonSet)

{}

hostPathsExporter.podSecurityContext

Контекст безопасности на уровне pod для экспортера хост-путей

{}

hostPathsExporter.securityContext.privileged

Запуск контейнера в привилегированном режиме для доступа к хост-файловой системе

true

hostPathsExporter.securityContext.readOnlyRootFilesystem

Монтирование корневой ФС в режим только для чтения, несмотря на привилегированный режим

true

hostPathsExporter.securityContext.capabilities.add

Добавление SYS_ADMIN capability для монтирования и доступа к системным путям

["SYS_ADMIN"]

hostPathsExporter.extraVolumes

Дополнительные тома для pod экспортера (по умолчанию для всех DaemonSet, комбинируются с глобальными)

[]

hostPathsExporter.extraVolumeMounts

Дополнительные точки монтирования для контейнеров экспортера (по умолчанию для всех DaemonSet)

[]

hostPathsExporter.hostPathVolumeType

Тип HostPath volume: Directory (по умолчанию) или пустое значение для значения по умолчанию Kubernetes. Может требоваться для RKE

Directory

hostPathsExporter.watchDirectories

Список каталогов хоста для сканирования PEM-сертификатов (одноуровневое сканирование)

[]

hostPathsExporter.watchSpecificExtensionDirectories

Список каталогов для сканирования файлов с определенными расширениями (одноуровневое)

[]

hostPathsExporter.watchFiles

Список конкретных файлов хоста с PEM-сертификатами для мониторинга (одноуровневое)

[]

hostPathsExporter.watchKubeconfFiles

Список kubeconfig-файлов хоста для извлечения и мониторинга встроенных сертификатов

[]

hostPathsExporter.env

Дополнительные переменные окружения для контейнеров экспортера хост-путей

[]

hostPathsExporter.daemonSets.cp.nodeSelector

Селектор для размещения DaemonSet на control-plane узлах

{ "node-role.kubernetes.io/control-plane": "" }

hostPathsExporter.daemonSets.cp.tolerations

Допуски для размещения на мастер/control-plane узлах с taint

[
{ «effect»: «NoSchedule», «key»: «node-role.kubernetes.io/master», «operator»: «Exists» },
{ «effect»: «NoSchedule», «key»: «node-role.kubernetes.io/control-plane», «operator»: «Exists» }
]

hostPathsExporter.daemonSets.cp.watchFiles

Список файлов сертификатов для мониторинга на control-plane узлах (API server, etcd, front-proxy и др.)

[
«/var/lib/kubelet/pki/kubelet-client-current.pem»,
«/etc/kubernetes/pki/apiserver.crt»,
«/etc/kubernetes/pki/apiserver-etcd-client.crt»,
«/etc/kubernetes/pki/apiserver-kubelet-client.crt»,
«/etc/kubernetes/pki/ca.crt»,
«/etc/kubernetes/pki/ingress-ca.crt»,
«/etc/kubernetes/pki/front-proxy-ca.crt»,
«/etc/kubernetes/pki/front-proxy-client.crt»,
«/etc/kubernetes/pki/etcd/ca.crt»,
«/etc/kubernetes/pki/etcd/healthcheck-client.crt»,
«/etc/kubernetes/pki/etcd/peer.crt»,
«/etc/kubernetes/pki/etcd/server.crt»
]

hostPathsExporter.daemonSets.cp.watchKubeconfFiles

Kubeconfig-файлы для мониторинга на control-plane узлах

[
«/etc/kubernetes/admin.conf»,
«/etc/kubernetes/controller-manager.conf»,
«/etc/kubernetes/scheduler.conf»
]

hostPathsExporter.daemonSets.workers.nodeSelector

Селектор для размещения DaemonSet на рабочих узлах

{«node-role.kubernetes.io/worker»:»»}

hostPathsExporter.daemonSets.workers.watchFiles

Список файлов сертификатов для мониторинга на рабочих узлах (kubelet, CA)

[
«/var/lib/kubelet/pki/kubelet-client-current.pem»,
«/etc/kubernetes/pki/ca.crt»
]

podListenPort — TCP-порт для экспорта метрик из pod#

Параметр

Описание

Значение по умолчанию

podListenPort

Порт, на котором экспортер слушает запросы метрик внутри pod (независимо от включения Kube-rbac-proxy)

9793

hostNetwork — включение hostNetwork режима для pod экспортера#

Параметр

Описание

Значение по умолчанию

hostNetwork

Использование сетевого пространства имен хоста: рекомендуется в случаях, когда Prometheus развернут вне кластера Kubernetes

false

webConfiguration — конфигурация HTTP-сервера для TLS и аутентификации#

Параметр

Описание

Значение по умолчанию

webConfiguration

Конфигурация веб-сервера в формате Exporter Toolkit: TLS, базовая аутентификация, mTLS

""

webConfigurationExistingSecret — загрузка конфигурации веб-сервера из секрета#

Параметр

Описание

Значение по умолчанию

webConfigurationExistingSecret

Имя секрета с конфигурацией веб-сервера (ключ webconfig.yaml). Приоритет над inline webConfiguration

""

service — настройки Kubernetes Service для экспортера#

Параметр

Описание

Значение по умолчанию

service.create

Создание Service для агрегации трафика ко всем экземплярам экспортера (требуется для ServiceMonitor)

true

service.headless

Создание headless Service (clusterIP: None) для прямого доступа к pod через DNS

false

service.port

Порт сервиса для доступа к метрикам экспортера

9793

service.annotations

Аннотации для Service, полезные для интеграции с service mesh или балансировщиками

{}

service.extraLabels

Дополнительные метки для Service для селекции и управления

{}

prometheusServiceMonitor — конфигурация ServiceMonitor для Prometheus Operator#

Параметр

Описание

Значение по умолчанию

prometheusServiceMonitor.create

Создание ServiceMonitor ресурса для автоматического скрейпинга метрик экспортера Prometheus Operator

true

prometheusServiceMonitor.scrapeInterval

Интервал сбора метрик экспортера

60s

prometheusServiceMonitor.scrapeTimeout

Тайм-аут одной попытки сбора метрик

30s

prometheusServiceMonitor.extraLabels

Дополнительные метки для ServiceMonitor для селекции Prometheus

{}

prometheusServiceMonitor.extraAnnotations

Аннотации для ServiceMonitor для интеграции с внешними системами

{}

prometheusServiceMonitor.metricRelabelings

Правила переименования/фильтрации метрик на этапе сбора (Prometheus relabel config)

[]

prometheusServiceMonitor.relabelings

Правила преобразования меток целевых объектов перед скрейпингом

[]

prometheusServiceMonitor.scheme

Схема подключения к экспортеру: http или https

http

prometheusServiceMonitor.tlsConfig

Пользовательская TLS-конфигурация для безопасного соединения с экспортером

{}

prometheusPodMonitor — конфигурация PodMonitor для скрейпинга напрямую с pod#

Параметр

Описание

Значение по умолчанию

prometheusPodMonitor.create

Создание PodMonitor-ресурса для скрейпинга метрик напрямую с pod (альтернатива ServiceMonitor)

false

prometheusPodMonitor.scrapeInterval

Интервал сбора метрик с pod экспортера

60s

prometheusPodMonitor.scrapeTimeout

Тайм-аут одной попытки сбора метрик с pod

30s

prometheusPodMonitor.extraLabels

Дополнительные метки для PodMonitor

{}

prometheusPodMonitor.metricRelabelings

Правила преобразования метрик на этапе сбора

[]

prometheusPodMonitor.relabelings

Правила преобразования меток целевых pod

[]

prometheusPodMonitor.scheme

Схема подключения к экспортеру на уровне pod

http

prometheusPodMonitor.tlsConfig

TLS-конфигурация для безопасного скрейпинга с pod

{}

prometheusRules — конфигурация правил оповещений Prometheus для уведомления об истечении сертификатов#

Параметр

Описание

Значение по умолчанию

prometheusRules.create

Создание PrometheusRule-ресурса с правилами оповещений для Prometheus Operator

true

prometheusRules.alertOnReadErrors

Включение оповещений X509ExporterReadErrors для уведомления о проблемах чтения файлов или аутентификации с API

true

prometheusRules.readErrorsSeverity

Уровень серьезности оповещений о ошибках чтения: warning или critical

warning

prometheusRules.alertOnCertificateErrors

Включение оповещений CertificateError для уведомления о проблемах декодирования/обработки сертификатов (требует exposePerCertificateErrorMetrics)

true

prometheusRules.certificateErrorsSeverity

Уровень серьезности оповещений об ошибках сертификатов

warning

prometheusRules.certificateRenewalsSeverity

Уровень серьезности оповещений о необходимости обновления сертификата

warning

prometheusRules.certificateExpirationsSeverity

Уровень серьезности оповещений о скором истечении срока действия сертификата

critical

prometheusRules.warningDaysLeft

Количество дней до истечения для предупреждающего оповещений (28 дней — стандарт для Let's Encrypt через Cert-manager)

28

prometheusRules.criticalDaysLeft

Количество дней до истечения для критического оповещений (14 дней — запас для обхода ограничения на количество запросов (rate limiting) ACME)

14

prometheusRules.extraLabels

Дополнительные метки для PrometheusRule объекта для интеграции с мониторингом

{
«app.kubernetes.io/part-of»: «dropapp-monitoring»,
«prometheus»: «k8s»
}

prometheusRules.alertExtraLabels

Дополнительные метки для самих правил оповещений

{
«prometheus»: «dropapp-monitoring/k8s»
}

prometheusRules.alertExtraAnnotations

Аннотации для правил оповещений, полезные для интеграции с Alertmanager или внешними системами

{}

prometheusRules.rulePrefix

Префикс для имен правил оповещений для избежания коллизий в multi-chart-окружениях

""

prometheusRules.disableBuiltinAlertGroup

Отключение встроенной группы оповещений при использовании custom extraAlertGroups

false

prometheusRules.extraAlertGroups

Дополнительные группы правил оповещений для пользовательской конфигурации

[]

extraLabels — дополнительные метки для всех объектов чарта#

Параметр

Описание

Значение по умолчанию

extraLabels

Глобальные метки, добавляемые ко всем создаваемым ресурсам чарта для единой селекции и управления

{}

podExtraLabels — дополнительные метки для всех pod#

Параметр

Описание

Значение по умолчанию

podExtraLabels

Метки, добавляемые ко всем pod экспортера для интеграции с мониторингом или сетевыми политиками

{}

podAnnotations — аннотации для всех pod#

Параметр

Описание

Значение по умолчанию

podAnnotations

Аннотации для всех pod, например prometheus.io/scrape для автообнаружения метрик

{}

priorityClassName — класс приоритета для всех pod#

Параметр

Описание

Значение по умолчанию

priorityClassName

Класс приоритета по умолчанию для всех pod экспортера (может быть переопределен в secretsExporter/hostPathsExporter)

""

extraVolumes — дополнительные volumes для всех pod#

Параметр

Описание

Значение по умолчанию

extraVolumes

Глобальные дополнительные тома для монтирования во все pod экспортера

[]

extraVolumeMounts — дополнительные точки монтирования для всех контейнеров pod#

Параметр

Описание

Значение по умолчанию

extraVolumeMounts

Глобальные дополнительные volumeMounts для всех контейнеров pod экспортера

[]

psp — настройки Pod Security Policy (устаревшая функциональность)#

Параметр

Описание

Значение по умолчанию

psp.create

Создание PodSecurityPolicy объектов. Устарело в Kubernetes 1.25+, используйте Pod Security Admission

false

rbac — настройки RBAC для контроля доступа экспортера#

Параметр

Описание

Значение по умолчанию

rbac.create

Создание RBAC-объектов (ServiceAccount, ClusterRole, ClusterRoleBinding) для экспортера

true

rbac.secretsExporter.serviceAccountName

Имя ServiceAccount для экспортера секретов (требуется при rbac.create=false)

""

rbac.secretsExporter.serviceAccountAnnotations

Аннотации для ServiceAccount экспортера секретов

{}

rbac.secretsExporter.clusterRoleAnnotations

Аннотации для ClusterRole экспортера секретов

{}

rbac.secretsExporter.clusterRoleBindingAnnotations

Аннотации для ClusterRoleBinding экспортера секретов

{}

rbac.hostPathsExporter.serviceAccountName

Имя ServiceAccount для экспортера хост-путей (требуется при rbac.create=false)

""

rbac.hostPathsExporter.serviceAccountAnnotations

Аннотации для ServiceAccount экспортера хост-путей

{}

rbac.hostPathsExporter.clusterRoleAnnotations

Аннотации для ClusterRole экспортера хост-путей

{}

rbac.hostPathsExporter.clusterRoleBindingAnnotations

Аннотации для ClusterRoleBinding экспортера хост-путей

{}

rbacProxy — настройки kube-rbac-proxy для безопасного экспорта метрик#

Параметр

Описание

Значение по умолчанию

rbacProxy.enabled

Включение Kube-rbac-proxy sidecar для аутентификации и авторизации запросов к метрикам экспортера

false

rbacProxy.image.repository

Репозиторий образа Kube-rbac-proxy с поддержкой глобальных настроек

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-kube-rbac-proxy/kube-rbac-proxy

rbacProxy.image.tag

Версия образа Kube-rbac-proxy

v0.21.0

rbacProxy.image.pullPolicy

Политика загрузки образа Kube-rbac-proxy

IfNotPresent

rbacProxy.upstreamListenPort

Порт, на котором экспортер слушает внутри pod (до Kube-rbac-proxy), Kube-rbac-proxy перенаправляет на podListenPort

9091

rbacProxy.resources.limits.cpu

Максимальное использование CPU для контейнера kube-rbac-proxy

100m

rbacProxy.resources.limits.memory

Лимит памяти для Kube-rbac-proxy sidecar

40Mi

rbacProxy.resources.requests.cpu

Гарантированное выделение CPU для Kube-rbac-proxy

10m

rbacProxy.resources.requests.memory

Гарантированный объем памяти для Kube-rbac-proxy

20Mi

rbacProxy.securityContext.runAsUser

UID пользователя для запуска контейнера Kube-rbac-proxy

65534

rbacProxy.securityContext.runAsGroup

GID группы для контейнера Kube-rbac-proxy

65534

rbacProxy.securityContext.runAsNonRoot

Требование запуска Kube-rbac-proxy от не root-пользователя

true

rbacProxy.securityContext.readOnlyRootFilesystem

Монтирование корневой ФС прокси в режим только для чтения

true

rbacProxy.securityContext.capabilities.drop

Удаление всех Linux capabilities для минимизации поверхности атаки Kube-rbac-proxy

["ALL"]

kubeVersion — переопределение версии Kubernetes для шаблонизации#

Параметр

Описание

Значение по умолчанию

kubeVersion

Явное указание версии Kubernetes для корректной шаблонизации при использовании Helm-шаблонов без подключения к кластеру

Отсутствует