Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Параметры Helm

Чарт гибко настраивается с помощью значений конфигурации Helm. Каждое значение по умолчанию настроено для обеспечения оптимального запуска StarVault. Перед запуском в боевой среде проверьте приведенные далее параметры.

1. Блок global

  • global - это общие значения, влияющие на многие компоненты чарта.

    • enabled (bool: true) - главный конфигурационный параметр, включающий/выключающий установку компонентов. Если параметр установлен в значение true, большинство компонентов будет установлено по умолчанию. Если значение false, то никакие компоненты не будут установлены по умолчанию, и их придется выбирать вручную, например, установив параметр server.enabled в значение true.

    • namespace (string: helm) - пространство имен для развертывания.

    • imagePullSecrets (array: []) - ссылка на секреты, которые используются при извлечении образов из частных реестров. Может быть указана как массив записей с сопоставлением имен или как массив имен:

      imagePullSecrets:
        - name: image-pull-secret
      # или
      imagePullSecrets:
        - image-pull-secret
    • tlsDisable (bool: true) - установка параметра в значение true меняет URL-адреса с https на http (например, переменная окружения STARVAULT_ADDR=http://127.0.0.1:8200, заданная на подах StarVault).

    • externalVaultAddr (string: "") - адрес внешнего сервера StarVault, который используют Injector и провайдер интерфейса хранилища контейнеров (CSI-провайдер). Эта настройка отключит развертывание сервера StarVault. Сервисная учетная запись с правами на просмотр токенов создается автоматически, если параметр server.serviceAccount.create=true задан для использования внешним сервером StarVault.

    • openshift (bool: false) - установка параметра в значение true активирует конфигурацию, специально заточенную под OpenShift, например, NetworkPolicy, SecurityContext и Route.

    • psp - Значения для настройки Политики безопасности подов.

      • enable (bool: false) - установка параметра в значение true активирует Политики безопасности подов для StarVault и StarVault Agent Injector.

      • annotations (dictionary: {}) - это значение задает дополнительные аннотации, которые нужно добавить к Политикам безопасности подов. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

        annotations:
          seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default,runtime/default
          apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
          seccomp.security.alpha.kubernetes.io/defaultProfileName:  runtime/default
          apparmor.security.beta.kubernetes.io/defaultProfileName:  runtime/default
        # или
        annotations:
          seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default,runtime/default
          apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
          seccomp.security.alpha.kubernetes.io/defaultProfileName:  runtime/default
          apparmor.security.beta.kubernetes.io/defaultProfileName:  runtime/default
    • serverTelemetry - значения для настройки метрик и телеметрии

      • prometheusOperator (bool: false) - установка параметра в значение true активирует интеграцию с Prometheus Operator. Убедитесь, что настроен верхнеуровневый раздел serverTelemetry для получения дополнительной информации и необходимых значений конфигурации.

2. Блок injector

  • injector - значения, которые настраивают Agent Injector.

    • enabled (bool or string: "-") - установка параметра в значение true включает Agent Injector. Установка параметра в значение "-" задает значение global.enabled как значение по умолчанию.

    • replicas (int: 1) - количество реплик развертывания Injector.

    • port (int: 8080) - порт, который прослушивает Injector.

    • leaderElector - значения, которые настраивают выбор лидера для Injector.

      • enabled (bool: true) - установка параметра в значение true включает выбор лидера, чтобы только один Injector пытался создать TLS-сертификаты.

    • metrics - значения, которые настраивают метрики Injector.

      • enabled (bool: false) - установка параметра в значение true включает конечную точку метрик Node Exporter по пути /metrics.

    • externalVaultAddr (string: "") - внешний адрес сервера StarVault для использования Injector.

    • image - значения, которые настраивают образ vault-k8s для Injector.

      • registry (string: "docker.io") - реестр образов для образа vault-k8s.

      • repository (string: "hashicorp/vault-k8s") - репозиторий образа vault-k8s.

      • tag (string: "1.7.2") - тег образа vault-k8s.

      • pullPolicy (string: "IfNotPresent") - политика извлечения образа vault-k8s. Если тег имеет значение latest, установите значение Always.

    • agentImage - значения, которые настраивают образ StarVault Agent для внедряемых контейнеров.

      • registry (string: "quay.io") - реестр образов для образа агента.

      • repository (string: "") - репозиторий образа агента.

      • tag (string: "") - тег образа агента. По умолчанию используется appVersion чарта.

      • pullPolicy (string: "IfNotPresent") - политика извлечения образа агента. Если тег имеет значение latest, установите значение Always.

    • agentDefaults - значения по умолчанию для внедряемых контейнеров StarVault Agent.

      • cpuLimit (string: "500m") - лимит ЦП для контейнера агента.

      • cpuRequest (string: "250m") - запрос ЦП для контейнера агента.

      • memLimit (string: "128Mi") - лимит оперативной памяти для контейнера агента.

      • memRequest (string: "64Mi") - запрос оперативной памяти для контейнера агента.

      • template (string: "map") - тип шаблона по умолчанию для секретов, если не задан пользовательский шаблон. Возможные значения: json и map.

      • templateConfig - значения по умолчанию для блока template_config агента.

        • exitOnRetryFailure (bool: true) - установка параметра в значение true завершает работу агента при повторном сбое рендеринга шаблона.

        • staticSecretRenderInterval (string: "") - интервал рендеринга статических секретов.

    • livenessProbe - значения, которые настраивают проверку жизнеспособности для Injector.

      • failureThreshold (int: 2) - количество неудачных проверок, после которых Kubernetes прекращает попытки.

      • initialDelaySeconds (int: 5) - количество секунд после запуска контейнера до инициализации проверки.

      • periodSeconds (int: 2) - интервал (в секундах) между проверками.

      • successThreshold (int: 1) - минимальное количество успешных проверок после неудачной, чтобы проверка снова считалась успешной.

      • timeoutSeconds (int: 5) - количество секунд, после которых проверка считается неудачной.

    • readinessProbe - значения, которые настраивают проверку готовности для Injector.

      • failureThreshold (int: 2) - количество неудачных проверок, после которых Kubernetes прекращает попытки.

      • initialDelaySeconds (int: 5) - количество секунд после запуска контейнера до инициализации проверки.

      • periodSeconds (int: 2) - интервал (в секундах) между проверками.

      • successThreshold (int: 1) - минимальное количество успешных проверок после неудачной, чтобы проверка снова считалась успешной.

      • timeoutSeconds (int: 5) - количество секунд, после которых проверка считается неудачной.

    • startupProbe - значения, которые настраивают проверку запуска для Injector.

      • failureThreshold (int: 12) - количество неудачных проверок, после которых Kubernetes прекращает попытки.

      • initialDelaySeconds (int: 5) - количество секунд после запуска контейнера до инициализации проверки.

      • periodSeconds (int: 5) - интервал (в секундах) между проверками.

      • successThreshold (int: 1) - минимальное количество успешных проверок после неудачной, чтобы проверка снова считалась успешной.

      • timeoutSeconds (int: 5) - количество секунд, после которых проверка считается неудачной.

    • authPath (string: "auth/kubernetes") - путь монтирования метода аутентификации StarVault Kubernetes.

    • logLevel (string: "info") - уровень детализации логирования Injector. Поддерживаются следующие уровни: trace, debug, info, warn, error.

    • logFormat (string: "standard") - формат логирования Injector. Поддерживаются следующие форматы: standard, json.

    • revokeOnShutdown (bool: false) - установка параметра в значение true отзывает токены всех контейнеров StarVault Agent Sidecar при завершении их работы.

    • webhook - значения, которые настраивают MutatingWebhookConfiguration.

      • failurePolicy (string: "Ignore") - политика обработки ошибок вебхука. Чтобы заблокировать создание подов при недоступности вебхука, установите значение Fail.

      • matchPolicy (string: "Exact") - политика сопоставления для MutatingWebhookConfiguration.

      • timeoutSeconds (int: 30) - количество секунд до таймаута запроса вебхука.

      • namespaceSelector (dictionary: {}) - селектор для ограничения вебхука определенными пространствами имен.

      • objectSelector (string: "") - селектор для ограничения вебхука определенными метками объектов.

      • annotations (dictionary: {}) - дополнительные аннотации для вебхука.

    • failurePolicy (string: "Ignore") - устарело. Используйте webhook.failurePolicy.

    • namespaceSelector (dictionary: {}) - устарело. Используйте webhook.namespaceSelector.

    • objectSelector (dictionary: {}) - устарело. Используйте webhook.objectSelector.

    • webhookAnnotations (dictionary: {}) - устарело. Используйте webhook.annotations.

    • certs - значения, которые настраивают TLS-сертификаты для вебхука Injector.

      • secretName (string: null) - имя секрета с TLS-сертификатом и закрытым ключом для вебхука Injector. Если значение null, Injector использует автоматическое управление сертификатами.

      • caBundle (string: "") - PEM-сертификат центра сертификации (CA), подписавшего TLS-сертификат вебхука, в кодировке Base64.

      • certName (string: "tls.crt") - имя файла TLS-сертификата в секрете.

      • keyName (string: "tls.key") - имя файла закрытого ключа в секрете.

    • securityContext - значения, которые настраивают контекст безопасности для пода и контейнера Injector.

      • pod (dictionary: {}) - контекст безопасности для пода Injector.

      • container (dictionary: {}) - контекст безопасности для контейнера Injector.

    • resources (dictionary: {}) - запросы и лимиты ресурсов (ЦП, ОЗУ) для контейнера Injector.

    • extraEnvironmentVars (dictionary: {}) - дополнительные переменные окружения для развертывания Injector.

    • affinity (string: "") - настройки совместного существования (affinity) для подов Injector. Может быть задана как многострочная строка или YAML.

    • topologySpreadConstraints (array: []) - настройки топологии для подов Injector.

    • tolerations (array: []) - tolerations для подов Injector.

    • nodeSelector (dictionary: {}) - селектор узлов для назначения подов Injector.

    • priorityClassName (string: "") - класс приоритета для подов Injector.

    • annotations (dictionary: {}) - дополнительные аннотации для подов Injector.

    • extraLabels (dictionary: {}) - дополнительные метки для Injector.

    • hostNetwork (bool: false) - установка параметра в значение true запускает поды Injector на сетевом интерфейсе узла.

    • service - значения, которые настраивают сервис Injector.

      • annotations (dictionary: {}) - дополнительные аннотации для сервиса Injector.

      • extraLabels (dictionary: {}) - дополнительные метки для сервиса Injector.

    • serviceAccount - значения, которые настраивают служебную учетную запись Injector.

      • annotations (dictionary: {}) - дополнительные аннотации для служебной учетной записи Injector.

    • podDisruptionBudget (dictionary: {}) - политика в отношении допустимого количества неработающих подов Injector.

    • strategy (dictionary: {}) - стратегия обновления развертывания Injector.

3. Блок server

  • server - значения, которые настраивают запуск сервера StarVault в Kubernetes.

    • enabled (bool or string: "-") - установка параметра в значение true создаст сервер StarVault. Установка параметра в значение "-" задает значение global.enabled как значение по умолчанию.

    • image - значения, которые настраивают образ StarVault Docker.

      • repository (string: "oci://hub.orionsoft.ru/public/starvault") - имя образа Docker для контейнеров, в которых запущен StarVault.

      • tag (string: "1.5.0") - тег образа Docker для контейнеров, в которых запущен StarVault. При работе в боевой среде должен быть привязан к конкретной версии. В противном случае другие изменения, внесенные в чарт, могут непроизвольно привести к обновлению контроллера допуска

      • pullPolicy (string: "IfNotPresent") - политика извлечения для образов контейнеров. По умолчанию политика извлечения IfNotPresent - Kubelet пропускает шаг извлечения образа, если тот уже существует.

      • registry (string: "quay.io") - реестр образов для образа StarVault.

    • updateStrategyType (string: "OnDelete") - параметр задает тип стратегии обновления для StatefulSet.

    • podManagementPolicy (string: "OrderedReady") - параметр задает политику управления подами для StatefulSet. По умолчанию используется OrderedReady, при которой поды создаются и обновляются последовательно. Альтернативное значение Parallel позволяет создавать и обновлять все поды одновременно.

    • logLevel (string: "") - параметр задает уровень детализации для логирования сервера StarVault. Такая настройка переопределит значения, заданные в файле конфигурации StarVault. Поддерживаются следующие уровни журнала: trace, debug, info, warn, error.

    • logFormat (string: "") - параметр задает формат логирования сервера StarVault. Такая настройка переопределит значения, заданные в файле конфигурации StarVault. Поддерживаются следующие форматы журнала: standard, json.

    • resources (dictionary: {}) - запросы и лимиты ресурсов (ЦП, ОЗУ, пр.) для каждого контейнера на сервере. Это должен быть словарь на языке YAML для имеющегося в Kubernetes объекта resource. Если параметр не задан, то поды не будут запрашивать какой-то конкретный объем ресурсов, что ограничивает способность Kubernetes эффективно использовать вычислительные ресурсы. Настоятельно рекомендуем задать эти параметры.

      resources:
        requests:
          memory: '10Gi'
        limits:
          memory: '10Gi'
    • ingress - значения, которые настраивают сервисы Ingress для StarVault. При развертывании на OpenShift эти настройки ingress игнорируются. Используйте конфигурацию route, чтобы объявить StarVault на OpenShift.

      • enabled (bool: false) - установка параметра в значение true создаст сервис Ingress.

      • labels (dictionary: {}) - метки для сервиса Ingress.

      • annotations (dictionary: {}) - это значение задает дополнительные аннотации, которые нужно добавить к сервису Ingress. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

        annotations:
          kubernetes.io/ingress.class: nginx
          kubernetes.io/tls-acme: "true"
        # или
        annotations: |
          kubernetes.io/ingress.class: nginx
          kubernetes.io/tls-acme: "true"
        • ingressClassName (string: "") - укажите IngressClass, который следует использовать при внедрении Ingress

        • pathType (string: "Prefix") - тип пути для правил Ingress. Поддерживаются значения Prefix, Exact и ImplementationSpecific.

        • activeService (bool: true) - когда включен режим высокой доступности и используется регистрация в сервисе K8s, этот параметр настраивает сервис Ingress так, чтобы тот указывал на активный сервис StarVault.

        • extraPaths (array: []) - параметр задает дополнительные пути, которые добавляются в начало конфигурации хоста. Это полезно при работе с сервисами, в основе которых лежат аннотации.

          extraPaths:
            - path: /*
              backend:
                service:
                  name: ssl-redirect
                  port:
                    number: use-annotation
        • tls (array: []) - параметр настраивает ту часть в Ingress spec, которая относится к TLS. hosts - это список хостов, указанных в поле Common Name сертификата TLS. secretName - это имя Секрета, в котором содержатся необходимые файлы TLS, например, сертификаты и ключи.

          tls:
            - hosts:
                - sslexample.foo.com
                - sslexample.bar.com
              secretName: testsecret-tls
        • hosts - значения, которые задают правила хоста Ingress.

          • host (string: "chart-example.local"): имя хоста, который используется для Ingress.

          • paths (array: []): устарело. Лучше используйте server.ingress.extraPaths. Список путей, которые будут отправлены сервису StarVault. Нужно указать хотя бы один путь.

            paths:
              - /
              - /starvault
    • gateway - значения, которые настраивают Gateway API для StarVault.

      • tlsRoute - значения, которые настраивают TLSRoute для Gateway API.

        • enabled (bool: false) - установка параметра в значение true создает ресурс TLSRoute для Gateway API.

        • labels (dictionary: {}) - метки для ресурса TLSRoute.

        • annotations (dictionary: {}) - аннотации для ресурса TLSRoute.

        • hosts (array: []) - список имен хостов, которые будут использоваться в TLSRoute.

        • apiVersion (string: "gateway.networking.k8s.io/v1alpha3") - версия API для ресурса TLSRoute.

        • activeService (bool: true) - когда включен режим высокой доступности и используется регистрация в сервисе K8s, этот параметр настраивает TLSRoute так, чтобы тот указывал на активный сервис StarVault.

        • parentRefs (array: []) - список ссылок на родительские шлюзы (Gateway) для TLSRoute.

      • httpRoute - значения, которые настраивают HTTPRoute для Gateway API.

        • enabled (bool: false) - установка параметра в значение true создает ресурс HTTPRoute для Gateway API.

        • labels (dictionary: {}) - метки для ресурса HTTPRoute.

        • annotations (dictionary: {}) - аннотации для ресурса HTTPRoute.

        • hosts (array: []) - список имен хостов, которые будут использоваться в HTTPRoute.

        • apiVersion (string: "gateway.networking.k8s.io/v1") - версия API для ресурса HTTPRoute.

        • activeService (bool: true) - когда включен режим высокой доступности и используется регистрация в сервисе K8s, этот параметр настраивает HTTPRoute так, чтобы тот указывал на активный сервис StarVault.

        • parentRefs (array: []) - список ссылок на родительские шлюзы (Gateway) для HTTPRoute.

        • matches - правила сопоставления для HTTPRoute.

          • path (dictionary: {type: PathPrefix, value: /}) - настройки пути для сопоставления.

          • timeouts (dictionary: {}) - задержка по времени для HTTPRoute.

          • value (string: '/') – путь, с которым сопоставляется запрос для правила HTTPRoute

        • filters (array: []) - фильтры для HTTPRoute.

      • tlsPolicy - значения, которые настраивают BackendTLSPolicy для Gateway API.

        • enabled (bool: false) - установка параметра в значение true создает ресурс BackendTLSPolicy для Gateway API.

        • labels (dictionary: {}) - метки для ресурса BackendTLSPolicy.

        • annotations (dictionary: {}) - аннотации для ресурса BackendTLSPolicy.

        • apiVersion (string: "gateway.networking.k8s.io/v1") - версия API для ресурса BackendTLSPolicy.

        • activeService (bool: true) - когда включен режим высокой доступности и используется регистрация в сервисе K8s, этот параметр настраивает BackendTLSPolicy так, чтобы тот указывал на активный сервис StarVault.

        • targetRefs (array: []) - список ссылок на целевые объекты, к которым применяется политика. Если не задан, по умолчанию применяется к сервису StarVault.

        • validation (dictionary: {}) - настройки валидации для BackendTLSPolicy.

    • hostAliases (list: []) – список псевдонимов, которые добавляются в /etc/hosts внутри Pod.

    • route(map: {}) – параметры OpenShift Route для публикации сервиса.

      • enabled (bool: false) - установка параметра в значение true создаст маршрут Route для StarVault.

      • activeService (bool: true) - когда включен режим высокой доступности и используется регистрация в сервисе K8s, этот параметр настраивает маршрут так, чтобы тот указывал на активный сервис StarVault.

      • labels (dictionary: {}) - метки для Route

      • annotations (dictionary: {}) - аннотации для добавления к Route. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

      • host (string: "chart-example.local") - параметр задает имя хоста для Route.

      • tls (dictionary: {termination: passthrough}) - Файл конфигурации TLS будет передан напрямую в файл конфигурации TLS маршрута, который можно использовать для настройки других методов терминирования, с помощью которых TLS терминируется на маршрутизатор.

    • authDelegator - значения, которые настраивают объект Cluster Role Binding, привязанный к служебной учетной записи StarVault.

      • enabled (bool: true) - установка параметра в значение true привяжет объект Cluster Role Binding к служебной учетной записи StarVault. У объекта Cluster Role Binding есть необходимые права для того, чтобы StarVault мог использовать метод аутентификации Kubernetes.

    • extraInitContainers (list: []) – список дополнительных init‑контейнеров, которые запускаются до основного контейнера Pod.

      Пример
      extraInitContainers:
        - name: oauthapp
          image: alpine
          command: [sh, -c]
          args:
            - cd /tmp &&
              wget https://github.com/puppetlabs/vault-plugin-secrets-oauthapp/releases/download/v1.2.0/vault-plugin-secrets-oauthapp-v1.2.0-linux-amd64.tar.xz -O oauthapp.xz &&
              tar -xf oauthapp.xz &&
              mv vault-plugin-secrets-oauthapp-v1.2.0-linux-amd64 /usr/local/libexec/vault/oauthapp &&
              chmod +x /usr/local/libexec/vault/oauthapp
          volumeMounts:
            - name: plugins
              mountPath: /usr/local/libexec/vault
      • extraContainers (list: null) – список дополнительных sidecar‑контейнеров. Используется, когда к основному Pod нужно добавить вспомогательный контейнер, например для проксирования, логирования или экспорта метрик.

      • shareProcessNamespace (bool: false) – включает общее пространство процессов между StarVault и дополнительными контейнерами. Полезно, если вспомогательному контейнеру нужно отправлять сигнал основному процессу, например SIGHUP для перечитывания конфигурации.

      • extraArgs (string: "") – дополнительные аргументы командной строки сервера StarVault. Используется для передачи параметров запуска, которых нет в стандартной конфигурации.

      • extraPorts (list: []) – список дополнительных портов контейнера. Полезно, если нужно динамически добавить в StatefulSet еще один порт, например для мониторинга или служебного интерфейса.

    • readinessProbe - значения, которые настраивают проверку готовности для подов StarVault.

      • enabled (bool: true) - установка параметра в значение true применит проверку готовности к подам StarVault.

      • port (int: 8200) – номер порта, на котором выполняется проверка readinessProbe. Обычно это порт, на котором доступен сервис приложения.

      • failureThreshold (int: 2) - установка параметра в конкретное значение определяет, сколько неудачных проверок допускает Kubernetes.

      • initialDelaySeconds (int: 5) - установка параметра в конкретное значение определяет количество секунд после запуска контейнера и до инициализации проверки.

      • periodSeconds (int: 5) - установка параметра в конкретное значение определяет, через какие интервалы (в секундах) брать проверку.

      • successThreshold (int: 1) - установка параметра в конкретное значение определяет, через какое минимальное число удачных проверок, взятых после неудачной, проверка снова считается адекватной.

      • timeoutSeconds (int: 3) - установка параметра в конкретное значение определяет, через сколько секунд проверка считается неудачной.

    • livenessProbe - значения, которые настраивают проверку жизнеспособности для подов StarVault.

      • enabled (bool: false) - установка параметра в значение true применит проверку жизнеспособности к подам StarVault.

      • execCommand (array: []) - команда для выполнения в проверке жизнеспособности. Если параметр задан, используется проверка типа exec вместо HTTP/HTTPS.

      • path (string: "v1/sys/health?standbyok=true") - установка параметра в конкретное значение активирует проверки HTTP/HTTPS вместо используемой по умолчанию проверки exec. Схема http/https контролируется значением tlsDisable.

      • initialDelaySeconds (int: 60) - задает изначальное время задержки для проверки жизнеспособности при запуске контейнера.

      • failureThreshold (int: 2) - установка параметра в конкретное значение определяет, сколько неудачных проверок допускает Kubernetes.

      • periodSeconds (int: 5) - установка параметра в конкретное значение определяет, через какие интервалы (в секундах) брать проверку.

      • successThreshold (int: 1) - установка параметра в конкретное значение определяет, через какое минимальное число удачных проверок, взятых после неудачной, проверка снова считается адекватной.

      • timeoutSeconds (int: 3) - установка параметра в конкретное значение определяет, через сколько секунд проверка считается неудачной.

      • port (int: 8200) - установка параметра в конкретное значение переопределяет порт по умолчанию, в используемый для проверки жизнеспособности сервера.

        livenessProbe:
          enabled: true
          path: /v1/sys/health?standbyok=true
          initialDelaySeconds: 60
          failureThreshold: 2
          periodSeconds: 5
          successThreshold: 1
          timeoutSeconds: 3
          port: 8200
    • terminationGracePeriodSeconds (int: 10) - время в секундах, которое нужно поду для корректного завершения работы.

    • preStopSleepSeconds (int: 5) - используется, чтобы на шаге preStop задать время, через которое объект переходит в спящий режим.

    • postStart (array: []) - используется, чтобы определить, какие команды запускать после того, как под будет готов. Это можно использовать для автоматизации процессов, например, методов аутентификации при инициализации и начальном запуске.

      postStart:
        - /bin/sh
        - -c
        - /starvault/userconfig/myscript/run.sh
    • extraEnvironmentVars (dictionary: {}) - дополнительные переменные окружения для применения к серверу StarVault.

      extraEnvironmentVars:
        GOOGLE_REGION: global
        GOOGLE_PROJECT: myproject
        GOOGLE_APPLICATION_CREDENTIALS: /starvault/userconfig/myproject/myproject-creds.json
    • extraSecretEnvironmentVars (array: []) - дополнительные переменные окружения заполняющиеся из секрета и которые следует применить к серверу StarVault.

      • envName (string: required) - имя переменной окружения, которую нужно заполнить в контейнере StarVault.

      • secretName (string: required) - имя секрета Kubernetes, используемого для заполнения переменной окружения, заданной с помощью envName.

      • secretKey (string: required) - имя ключа, в котором находится запрашиваемое секретное значение в секрете Kubernetes.

        extraSecretEnvironmentVars:
          - envName: AWS_SECRET_ACCESS_KEY
            secretName: starvault
            secretKey: AWS_SECRET_ACCESS_KEY
    • extraVolumes (array: []) - устарело. Лучше используйте volumes. Список дополнительных томов для монтирования на серверы StarVault. Это полезно, когда нужно ввести дополнительные данные (например, сертификаты TLS), на которые другие конфигурации смогут ссылаться по знакомому пути. Значение - список объектов. Каждый объект поддерживает следующие ключи:

      • type (string: required) - тип тома, должен быть либо configMap, либо secret. С учетом регистра.

      • name (string: required) - имя тома configMap или secret, который будет монтироваться. Параметр также контролирует путь монтирования. По умолчанию том будет монтироваться по пути /starvault/userconfig/<имя>, если только не задано значение для параметра path.

      • path (string: /starvault/userconfigs) - имя пути, по которому монтируется том configMap или secret. Если значение параметра не задано, том будет монтироваться по пути /starvault/userconfig/<имя тома>.

      • defaultMode (string: "420") - режим по умолчанию для смонтированных файлов.

        extraVolumes:
          - type: 'secret'
            name: 'starvault-certs'
            path: '/etc/pki'
    • volumes (array: null) - список томов, доступных всем контейнерам. Параметр берет стандартные определения томов Kubernetes.

      volumes:
        - name: plugins
          emptyDir: {}
    • volumeMounts (array: null) - список доступных всем контейнерам точек монтирования томов. Параметр берет стандартные определения томов Kubernetes.

      volumeMounts:
        - mountPath: /usr/local/libexec/starvault
          name: plugins
          readOnly: true
    • affinity - это значение задает совместное существование (affinity) для подов сервера. Это должна быть либо многострочная цепочка символов, либо YAML, сопоставленный с полем affinity в PodSpec. По умолчанию допускается только один под на каждом узле, что минимизирует риск потери работоспособности кластера в случае отказа узла. Если нужно запустить больше подов на каждом узле (например, для тестирования на Minikube), установите этот параметр в значение null.

      affinity:  |
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
            matchLabels:
              app.kubernetes.io/name: {{ template "starvault.name" . }}
              app.kubernetes.io/instance: "{{ .Release.Name }}"
              component: server
            topologyKey: kubernetes.io/hostname
    • topologySpreadConstraints (array: []) - настройки топологии для подов сервера. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

    • tolerations (array: []) - это значение задает массивы Toleration, приемлемые при создании графика. Это должна быть либо многострочная цепочка символов, либо YAML, сопоставленный с массивом Toleration в PodSpec.

      tolerations: |
        - key: 'node.kubernetes.io/unreachable'
          operator: 'Exists'
          effect: 'NoExecute'
          tolerationSeconds: 6000
    • nodeSelector (dictionary: {}) - это значение задает дополнительные критерии отбора узлов, чтобы лучше контролировать место развертывания серверов StarVault. Значение параметра имеет формат либо многострочной цепочки символов, либо сопоставления YAML.

      nodeSelector: |
        disktype: ssd
    • networkPolicy - значения, которые задают политику StarVault Network Policy.

      • enabled (bool: false) - установка параметра в значение true активирует политику Network Policy для кластера StarVault.

      • egress (array: []) - это значение задает правила сетевой политики egress.

        egress:
          - to:
              - ipBlock:
                  cidr: 10.0.0.0/24
            ports:
              - protocol: TCP
                port: 8200
      • ingress (array: []) - это значение задает правила сетевой политики ingress.

        ingress:
          - from:
              - ipBlock:
                  cidr: 10.0.0.0/24
            ports:
              - protocol: TCP
                port: 8200
    • priorityClassName (string: "") - класс приоритета для подов сервера

    • extraLabels (dictionary: {}) - это значение задает дополнительные метки для подов сервера.

      extraLabels:
        'sample/label1': 'foo'
        'sample/label2': 'bar'
    • annotations (dictionary: {}) - это значение задает дополнительные аннотации для подов сервера. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

      annotations:
        "sample/annotation1": "foo"
        "sample/annotation2": "bar"
      # или
      annotations: |
        "sample/annotation1": "foo"
        "sample/annotation2": "bar"
    • configAnnotation (bool: false) - если значение true, аннотации конфигурации будут добавлены к поду сервера StarVault.

    • service - значения для настройки сервиса Kubernetes, созданного для StarVault. Эти параметры также используются для сервисов active и standby, когда включен режим ha.

      • enabled (bool: true) - установка параметра в значение true создаст сервис Kubernetes для StarVault.

      • active - значения, которые применяются только к сервису starvault-active.

        • enabled (bool: true) - установка параметра в значение true создаст сервис Kubernetes starvault-active для StarVault с выбором подов, которые маркируют себя как ведущие узлы кластера с помощью параметра starvault-active: true.

        • annotations (dictionary: {}) - дополнительные аннотации для сервиса starvault-active.

        • extraLabels (dictionary: {}) - дополнительные метки для сервиса starvault-active.

      • standby - значения, которые применяются только к сервису starvault-standby.

        • enabled (bool: true) - установка параметра в значение true создаст сервис Kubernetes starvault-standby для StarVault с выбором подов, которые маркируют себя как ведомые узлы кластера с помощью параметра starvault-active: false.

        • annotations (dictionary: {}) - дополнительные аннотации для сервиса starvault-standby.

        • extraLabels (dictionary: {}) - дополнительные метки для сервиса starvault-standby.

      • headless - значения, которые применяются только к headless-сервису starvault-internal.

        • annotations (dictionary: {}) - дополнительные аннотации для headless-сервиса starvault-internal.

      • ipFamilyPolicy (string: "") - политика семейства IP-адресов для сервиса. Возможные значения: SingleStack, PreferDualStack, RequireDualStack.

      • ipFamilies (array: []) - список семейств IP-адресов, которые будут использоваться сервисом. Возможные значения: IPv4 и IPv6.

      • publishNotReadyAddresses (bool: true) - если значение true, то не ждите, пока поды будут готовы, а сразу добавляйте их в таргеты сервиса. Не применяется для headless-сервиса, который используется для взаимодействия внутри кластера.

      • externalTrafficPolicy (string: Cluster) – политика обработки внешнего трафика для сервисов типа LoadBalancer и NodePort.

      • port (int: 8200) - порт, который прослушивается сервером StarVault внутри пода.

      • targetPort (int: 8200) - порт, который прослушивается сервисом.

      • extraPorts (array: []) - дополнительные порты для сервиса StarVault.

      • annotations (map: {}) – дополнительные аннотации для определения сервиса.

      • extraLabels (dictionary: {}) - дополнительные метки для сервиса StarVault.

    • dataStorage (object) – параметры создания PVC для хранения данных StarVault при использовании backend file или raft.

      • enabled (bool: true) – включает создание PVC для данных.

      • size (string: 10Gi) – размер создаваемого PVC.

      • mountPath (string: "/starvault/data") – путь, куда будет смонтирован PVC.

      • storageClass (string: null) – имя StorageClass. Если значение не задано, используется StorageClass по умолчанию.

      • accessMode (string: ReadWriteOnce) – режим доступа к PVC.

      • annotations (map: {}) – аннотации, которые будут добавлены к PVC.

      • labels (map: {}) – метки, которые будут добавлены к PVC.

    • persistentVolumeClaimRetentionPolicy (map: {}) – политика сохранения PersistentVolumeClaim для StatefulSet. Определяет, будут ли PVC сохраняться при удалении StatefulSet или при уменьшении числа реплик.

    • auditStorage (object) – параметры создания PVC для хранения audit‑данных StarVault.

      • enabled (bool: false) – включает создание PVC для audit‑хранилища.

      • size (string: 10Gi) – размер создаваемого PVC.

      • mountPath (string: "/starvault/audit") – путь, куда будет смонтирован PVC.

      • storageClass (string: null) – имя StorageClass. Если значение не задано, используется StorageClass по умолчанию.

      • accessMode (string: ReadWriteOnce) – режим доступа к PVC.

      • annotations (map: {}) – аннотации, которые будут добавлены к PVC.

      • labels (map: {}) – метки, которые будут добавлены к PVC.

    • dev (object) – параметры запуска StarVault в режиме разработки. Этот режим не требует дополнительной настройки, инициализации или управления состоянием; все данные теряются после перезапуска, поэтому его используют только для экспериментов.

      Никогда и ни при каких обстоятельствах не запускайте сервер из режима dev в боевой среде. Это небезопасно, и каждый перезапуск будет приводить к потере данных (так как они хранятся в оперативной памяти). Этот режим предназначен только для разработки и экспериментирования.

      • enabled (bool: false) – включает режим разработки.

      • devRootToken (string: "root") – задает значение корневого токена в режиме разработки.

    • standalone (object) – параметры запуска StarVault в автономном режиме. В этом режиме используется однорепликовое развертывание с локальным хранилищем данных в PVC.

      • enabled (string: "-") – включает автономный режим.

      • config (string) – конфигурация StarVault в формате HCL для автономного режима. В ней задаются параметры listener, storage и, при необходимости, дополнительные блоки, например seal и telemetry.

    • ha - параметр настраивает режим ha для сервера StarVault.

      • enabled (bool: false) - параметр включает режим ha для сервера StarVault. В этом режиме для хранения данных StarVault используется бэкенд хранения высокой доступности.

      • apiAddr: (string: "{}") - параметр задает конфигурацию адресов API для кластера StarVault. Если задана пустая строка, то используется IP-адрес пода.

      • clusterAddr (string: null) - задает конфигурацию cluster_addr для StarVault HA. Если значение равно 0, то по умолчанию https://$<HOSTNAME><template.starvault.fullname>-internal:8201.

      • raft - параметр настраивает режим встроенного хранилища raft для сервера StarVault.

        Для обновления helm на новую версию необходимо задать значение server.podManagementPolicy = Parallel.

        • enabled (bool: false) - параметр включает режим встроенного хранилища raft для сервера StarVault. Этот режим использует постоянные тома для хранения.

        • setNodeId (bool: false) - параметр присваивает имени пода значение, взятое из Node Raft ID.

          • config (string or object: "{}") - неформатированная строка для дополнительного конфигурирования HCL или JSON для серверов StarVault. Строка будет сохранена «как есть» в ConfigMap, читаемый серверами StarVault. Так можно добавлять дополнительные настройки, которые чарт не выдал напрямую. Объект будет записан как JSON.

      • replicas (int: 3) - количество подов, которое надо развернуть для создания высокодоступного кластера из серверов StarVault.

      • updatePartition (int: 0) - если задан параметр updatePartition, то все поды с порядковым номером, который больше или равен разделу (partition), будут обновлены, как только в контроллере StatefulSet обновится параметр .spec.template. Установка параметра в значение 0 отключает все обновления разделов.

      • config (string or object: "{}") - неформатированная строка для дополнительного конфигурирования HCL или JSON для серверов StarVault. Строка будет сохранена «как есть» в том ConfigMap, читаемый серверами StarVault. Так можно добавлять дополнительные настройки, которые чарт не выдал напрямую. Объект будет записан как JSON.

        config: |
          ui = true
          api_addr = "http://POD_IP:8200"
          listener "tcp" {
              tls_disable = 1
              address     = "0.0.0.0:8200"
          }
        
          storage "consul" {
              path = "starvault/"
              address = "HOST_IP:8500"
          }

        Также можно задать с помощью имеющегося в Helm флага --set (starvault-helm версии 0.1.0 и выше), используя следующий синтаксис:

        --set server.ha.config='{ listener "tcp" { address = "0.0.0.0:8200" }'
    • disruptionBudget - значения, которые задают политику в отношении допустимого количества неработающих подов (disruption budget policy).

      • enabled (bool: true) - активирует политику в отношении допустимого количества неработающих подов, чтобы ограничить количество подов, которые могут быть целенаправленно одновременно отключены.

      • maxUnavailable (int: null) - максимальное количество недоступных подов. По умолчанию это количество будет автоматически подсчитано, исходя из того, что значение параметра server.replicas равно (n/2)-1. Если нужно установить этот параметр в 0, в команду установки helm-чарта следует добавить флаг --set server.disruptionBudget.maxUnavailable=0, что вызвано ограничением в языке Helm-шаблонизации.

    • statefulSet - параметр задает настройки для StarVault Statefulset.

      • annotations (dictionary: {}) - это значение задает дополнительные аннотации, которые нужно добавить к StarVault statefulset. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

        annotations:
          kubernetes.io/my-statefulset: foobar
        # или
        annotations: |
          kubernetes.io/my-statefulset: foobar
    • serviceAccount - значения для настройки служебной учетной записи Kubernetes, созданной для StarVault.

      • create (bool: true): если значение true, создается служебная учетная запись, которую использует StarVault.

      • name (string: ""): имя служебной учетной записи, которая будет использоваться. Если значение этого параметра не задано, а параметр «create» установлен в значение true, то имя генерируется с использованием имени установки (по умолчанию это starvault).

      • createSecret (bool: false) - установка параметра в значение true создает Secret API-объект для хранения неистекающего токена служебной учетной записи. Параметр serviceAccount.create должен быть равен true. Начиная с Kubernetes v1.24.0 рекомендуется использовать кратковременные токены из TokenRequest API или проектируемые тома (projected volumes).

      • annotations (dictionary: {}) - это значение задает дополнительные аннотации для служебной учетной записи. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

        annotations:
          "sample/annotation1": "foo"
          "sample/annotation2": "bar"
        # или
        annotations: |
          "sample/annotation1": "foo"
          "sample/annotation2": "bar"
      • extraLabels (dictionary: {}) - это значение задает дополнительные метки для служебной учетной записи сервера StarVault.

        extraLabels:
          'sample/label1': 'foo'
          'sample/label2': 'bar'
      • serviceDiscovery - значения задают разрешения, которые нужны серверу StarVault, чтобы автоматически обнаруживать кластер StarVault и присоединяться к нему с помощью метаданных пода.

        • enabled (bool: true) - параметр включает или отключает привязку роли служебной учетной записи к разрешениям, которые нужны StarVault для настройки регистрации сервиса Kubernetes.

    • statefulSet (object) – параметры StatefulSet, используемого для запуска StarVault.

      • annotations (map: {}) – дополнительные аннотации для StatefulSet.

      • securityContext - параметр задает контексты безопасности для пода и контейнера

        • pod (dictionary: {}) - параметр задает securityContext для подов сервера на языке YAML либо в виде многострочной шаблонной цепочки символов в формате YAML.
          Если не задан и global.openshift=false, то по умолчанию берутся следующие значения:

          runAsNonRoot: true
          runAsGroup: {{ .Values.server.gid | default 1000 }}
          runAsUser: {{ .Values.server.uid | default 100 }}
          fsGroup: {{ .Values.server.gid | default 1000 }}

          Если не задан и global.openshift=true, то по умолчанию берутся пустые значения.

        • container (dictionary: {}) - параметр задает securityContext для контейнеров сервера на языке YAML либо в виде многострочной шаблонной цепочки символов в формате YAML.
          Если не задан и global.openshift=false, то по умолчанию берется значение:

          allowPrivilegeEscalation: false

          Если не задан и global.openshift=true, то по умолчанию берутся пустые значения.

    • hostNetwork (bool: false) - установка параметра в значение true запускает поды сервера StarVault на сетевом интерфейсе узла. При включении этого режима может потребоваться дополнительная настройка dnsPolicy.

4. Блок ui

  • ui значения, которые настраивают пользовательский интерфейс StarVault.

    • enabled (bool: false) - если значение = true, то пользовательский интерфейс будет включен. Пользовательский интерфейс будет включен только на серверах StarVault. Если параметр server.enabled установлен в значение false, то эта настройка ни на что не влияет. Чтобы так или иначе представить пользовательский интерфейс, следует задать параметр ui.service.

    • publishNotReadyAddresses (bool: true) - установка параметра в значение true маршрутизирует трафик на поды StarVault, которые еще не готовы (например, запечатаны или не инициализированы).

    • activeVaultPodOnly (bool: false) - если параметр установлен в значение true, сервис пользовательского интерфейса будет маршрутизировать трафик только на активный под в кластере StarVault HA.

    • serviceType (string: ClusterIP) - тип регистрируемого сервиса. По умолчанию это ClusterIP. Доступные типы сервисов приведены на веб-сайте Kubernetes.

    • serviceNodePort (int: null) - задает значение порта узла Node Port при использовании serviceType: NodePort на сервисе StarVault UI.

    • externalPort (int: 8200) - параметр задает внешний порт сервиса.

    • targetPort (int: 8200) - параметр задает целевой порт сервиса.

    • serviceIPFamilyPolicy (string: "") - политика семейства IP-адресов для сервиса. Используется в среде с двумя стеками (dual-stack). Возможные значения: SingleStack, PreferDualStack, RequireDualStack. Поддерживается только в Kubernetes версии 1.23.0 и выше.

    • serviceIPFamilies (array: []) - список семейств IP-адресов, которые будут использоваться сервисом. Возможные значения: IPv4 и IPv6. Используется в среде с двумя стеками (dual-stack).

    • externalTrafficPolicy (string: "Cluster") - параметр externalTrafficPolicy устанавливается в значение Cluster или Local, и он будет действителен только для типов сервисов LoadBalancer и NodePort.

    • annotations (dictionary: {}) - это значение задает дополнительные аннотации для сервиса UI. Это может быть либо YAML, либо многострочная шаблонная цепочка символов в формате YAML.

    • extraLabels (dictionary: {}) - это значение задает дополнительные метки для сервиса UI.

      annotations:
        "sample/annotation1": "foo"
        "sample/annotation2": "bar"
      # или
      annotations: |
        "sample/annotation1": "foo"
        "sample/annotation2": "bar"

5. Блок csi

  • csi - значения, которые настраивают CSI-провайдер StarVault для синхронизации секретов с Kubernetes.

    • enabled (bool: false) - установка параметра в значение true устанавливает DaemonSet starvault-csi-provider. Требуется отдельная установка secrets-store-csi-driver. После установки драйвера и провайдера можно монтировать секреты StarVault в тома, а также синхронизировать их в секреты Kubernetes.

    • image - значения, которые настраивают образ CSI-провайдера.

      • registry (string: "quay.io") - реестр образов для образа CSI-провайдера.

      • repository (string: "starvault/starvault-csi-provider") - репозиторий образа CSI-провайдера.

      • tag (string: "2.0.2") - тег образа CSI-провайдера.

      • pullPolicy (string: "IfNotPresent") - политика извлечения образа CSI-провайдера. Если тег имеет значение latest, установите значение Always.

    • volumes (array: []) - список томов, доступных всем контейнерам. Параметр обрабатывается через toYaml, а не через шаблонизацию, как extraVolumes. Предназначен для упрощения совместного использования томов между контейнерами.

    • volumeMounts (array: []) - список точек монтирования томов для основного контейнера сервера. Параметр обрабатывается через toYaml, а не через шаблонизацию, как extraVolumes.

    • resources (dictionary: {}) - запросы и лимиты ресурсов (ЦП, ОЗУ) для контейнера CSI-провайдера.

    • hmacSecretName (string: "") - переопределение имени секрета по умолчанию для HMAC-ключа CSI-провайдера, используемого для генерации версий секретов.

    • daemonSet - значения, которые настраивают DaemonSet для запуска провайдера.

      • updateStrategy - стратегия обновления DaemonSet.

        • type (string: "RollingUpdate") - тип стратегии обновления.

        • maxUnavailable (string: "") - максимальное количество недоступных подов при обновлении.

      • annotations (dictionary: {}) - дополнительные аннотации для DaemonSet. Может быть задано как YAML или многострочная шаблонная строка в формате YAML.

      • providersDir (string: "/etc/kubernetes/secrets-store-csi-providers") - путь к каталогу провайдера на узле (должен совпадать с путем CSI-провайдера).

      • kubeletRootDir (string: "/var/lib/kubelet") - корневой каталог Kubelet на узле.

      • endpoint (string: "/provider/starvault.sock") - путь к конечной точке провайдера.

      • extraLabels (dictionary: {}) - дополнительные метки для DaemonSet CSI-провайдера.

      • securityContext - контекст безопасности для шаблона пода и контейнера в DaemonSet CSI-провайдера.

        • pod (dictionary: {}) - контекст безопасности для пода.

        • container (dictionary: {}) - контекст безопасности для контейнера.

    • pod - значения, которые настраивают поды провайдера.

      • annotations (dictionary: {}) - дополнительные аннотации для подов провайдера. Может быть задано как YAML или многострочная шаблонная строка в формате YAML.

      • tolerations (array: []) - tolerations для подов провайдера.

      • nodeSelector (dictionary: {}) - селектор узлов для назначения подов провайдера.

      • affinity (dictionary: {}) - настройки совместного существования (affinity) для подов провайдера.

      • extraLabels (dictionary: {}) - дополнительные метки для подов провайдера.

    • agent - значения, которые настраивают образ StarVault Agent, используемый CSI-провайдером.

      • enabled (bool: true) - установка параметра в значение true включает использование агента.

      • extraArgs (array: []) - дополнительные аргументы командной строки для агента.

      • image - значения, которые настраивают образ агента.

        • registry (string: "quay.io") - реестр образов для образа агента.

        • repository (string: "starvault/starvault") - репозиторий образа агента.

        • tag (string: "") - тег образа агента. По умолчанию используется appVersion чарта.

        • pullPolicy (string: "IfNotPresent") - политика извлечения образа агента. Если тег имеет значение latest, установите значение Always.

      • logFormat (string: "standard") - формат логирования агента. Поддерживаются следующие форматы: standard, json.

      • logLevel (string: "info") - уровень детализации логирования агента. Поддерживаются следующие уровни: trace, debug, info, warn, error.

      • resources (dictionary: {}) - запросы и лимиты ресурсов (ЦП, ОЗУ) для контейнера агента.

    • priorityClassName (string: "") - класс приоритета для подов CSI-провайдера.

    • serviceAccount - значения, которые настраивают служебную учетную запись CSI-провайдера.

      • annotations (dictionary: {}) - дополнительные аннотации для служебной учетной записи. Может быть задано как YAML или многострочная шаблонная строка в формате YAML.

      • extraLabels (dictionary: {}) - дополнительные метки для служебной учетной записи CSI-провайдера.

    • readinessProbe - значения, которые настраивают проверку готовности для подов.

      • failureThreshold (int: 2) - количество неудачных проверок, после которых Kubernetes прекращает попытки.

      • initialDelaySeconds (int: 5) - количество секунд после запуска контейнера до инициализации проверки.

      • periodSeconds (int: 5) - интервал (в секундах) между проверками.

      • successThreshold (int: 1) - минимальное количество успешных проверок после неудачной, чтобы проверка снова считалась успешной.

      • timeoutSeconds (int: 3) - количество секунд, после которых проверка считается неудачной.

    • livenessProbe - значения, которые настраивают проверку жизнеспособности для подов.

      • failureThreshold (int: 2) - количество неудачных проверок, после которых Kubernetes прекращает попытки.

      • initialDelaySeconds (int: 5) - количество секунд после запуска контейнера до инициализации проверки.

      • periodSeconds (int: 5) - интервал (в секундах) между проверками.

      • successThreshold (int: 1) - минимальное количество успешных проверок после неудачной, чтобы проверка снова считалась успешной.

      • timeoutSeconds (int: 3) - количество секунд, после которых проверка считается неудачной.

    • debug (bool: false) - установка параметра в значение true включает отладочное логирование.

    • extraArgs (array: []) - дополнительные аргументы командной строки для starvault-csi-provider.

6. Блок serverTelemetry

  • serverTelemetry - значения для настройки метрик и телеметрии. Для включения этих функций задается строка конфигурации telemetry {} в конфигурации StarVault.

    В настоящий момент этот чарт не поддерживает аутентификацию на конечной точке метрик StarVault, поэтому в строку listener "tcp" {} в конфигурации StarVault нужно добавить следующий блок telemetry {}:

    listener "tcp" {
      tls_disable = 1
      address     = "0.0.0.0:8200"
    
      telemetry {
        unauthenticated_metrics_access = "true"
      }
    }

    Кроме того, верхнеуровневая строка конфигурации telemetry {} также должна быть включена в конфигурацию StarVault следующим образом:

    telemetry {
      prometheus_retention_time = "30s",
      disable_hostname = true
    }
    • serviceMonitor - значения, которые настраивают мониторинг сервера StarVault.

      • enabled (bool: false) - установка параметра в значение true активирует развертывание ServiceMonitor CustomResource на сервере StarVault. Оператор Prometheus должен быть установлен до того, как эта функция будет включена. В противном случае не получится установить чарт из-за отсутствия ресурса CustomResourceDefinitions, который предоставляет оператор.

      • selectors (dictionary: {}) - метки селектора для добавления к ServiceMonitor. Если не заданы, по умолчанию используется значение release: prometheus.

      • port (string: "") - порт, который Prometheus использует при сборе метрик. Если не задан, используется значение из вспомогательного шаблона starvault.scheme.

      • scheme (string: "") - схема, которую Prometheus использует при сборе метрик. Если не задана, используется значение из вспомогательного шаблона starvault.scheme.

      • interval (string: "30s") - интервал, через который Prometheus собирает метрики.

      • scrapeTimeout (string: "10s") - таймаут для процедур сбора с помощью Prometheus.

      • tlsConfig (dictionary: {}) - конфигурация TLS для сбора метрик с API StarVault.

      • authorization (dictionary: {}) - настройки авторизации для сбора метрик с API StarVault.

      • scrapeClass (string: "") - класс сбора, используемый ServiceMonitor.

    • prometheusRules - значения, которые задают правила Prometheus.

      • enabled (bool: false) - параметр развертывает пользовательский ресурс PrometheusRule для оповещений через AlertManager. Требуется надлежащим образом развернутый AlertManager.

      • selectors (dictionary: {}) - метки селектора для добавления к правилам Prometheus. Если не заданы, по умолчанию используется значение release: prometheus.

      • rules (array: []) - правила Prometheus, которые надо создать.

        Пример
        rules:
          - alert: starvault-HighResponseTime
            annotations:
              message: The response time of StarVault is over 500ms on average over the last 5 minutes.
            expr: starvault_core_handle_request{quantile="0.5", namespace="mynamespace"} > 500
            for: 5m
            labels:
              severity: warning
          - alert: starvault-HighResponseTime
            annotations:
              message: The response time of StarVault is over 1s on average over the last 5 minutes.
            expr: starvault_core_handle_request{quantile="0.5", namespace="mynamespace"} > 1000
            for: 5m
            labels:
              severity: critical