External Secrets#

External Secrets - это инструмент, предназначенный для интеграции внешних систем управления секретами с кластером Kubernetes. Он позволяет безопасно извлекать секреты из сторонних хранилищ и автоматически создавать на их основе стандартные секреты в Kubernetes.

Основные задачи и возможности
  • Подключается к внешнему хранилищу, извлекает данные и создает или обновляет секреты Kubernetes, делая их доступными для приложений.

  • Секреты описываются в виде пользовательских ресурсов (SecretStore, ExternalSecret), что позволяет управлять ими через GitOps-процессы.

  • Поддерживает множество провайдеров, включая облака и локальные решения, обеспечивая унифицированный доступ к секретам.

  • Позволяет использовать зашифрованные значения (например, через SealedSecrets) и интегрируется с политиками безопасности.

  • Поддерживает преобразование формата секретов, выбор конкретных ключей, генерацию новых значений (например, паролей).

  • Полностью совместим с Argo CD, Flux и другими инструментами, позволяя централизованно управлять конфигурацией.

Примечание

External Secrets не является инструментом по умолчанию в компоненте Security. Его можно установить как инструмент (Tool) или явно включить в список spec.tools при установке компонента Security.

Настройка#

Создание service account#

  1. В настройке OpenBao создайте kubernetes auth.

  2. Создайте service account, чтобы External Secrets мог работать с OpenBao:

    export ESO_SA=external-secrets
    
    kubectl -n dapp-security exec -ti openbao-0 -- sh -lc "
    export BAO_ADDR=http://127.0.0.1:8200
    bao write auth/kubernetes/role/eso-sp01 \
      bound_service_account_names=$ESO_SA \
      bound_service_account_namespaces=dapp-security \
      policies=eso-sp01 \
      ttl=15m
    "
    

Создание SecretStore#

Создайте SecretStore для интеграции с OpenBao, если он находится в том же кластере, что и External Secrets:

apiVersion: external-secrets.io/v1
kind: SecretStore
metadata:
  name: openbao
  namespace: dapp-security
spec:
  provider:
    vault:
      server: "http://openbao.dapp-security.svc:8200"
      path: "kv"
      version: "v2"
      auth:
        kubernetes:
          mountPath: "kubernetes"
          role: "eso-sp01"
          serviceAccountRef:
            name: external-secrets

Также можно создать ClusterSecretStore на весь кластер, а не на отдельное пространство имен.

Создайте ClusterSecretStore для интеграции с OpenBao если он находится не в том же кластере, что и External Secrets:

apiVersion: external-secrets.io/v1
kind: SecretStore
metadata:
  name: openbao
  namespace: dapp-security
spec:
  provider:
    vault:
      server: "https://openbao...."
      path: "kv"
      version: "v2"
      auth:
        kubernetes:
          mountPath: "kubernetes"
          role: "eso-sp01"
          serviceAccountRef:
            name: external-secrets

В этом случае server будет удаленным - внешний адрес OpenBao, доступный через ingress OpenBao.

Создание ExternalSecret#

По примеру секрета, созданного с помощью инструмента OpenBao, создайте ExternalSecret:

apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
  name: demo-app-secret
  namespace: dapp-security
spec:
  refreshInterval: 1m
  secretStoreRef:
    name: openbao
    kind: SecretStore
  target:
    name: demo-app-secret
    creationPolicy: Owner
  data:
    - secretKey: username
      remoteRef:
        key: "sp-01/payments/api/db"
        property: "username"
    - secretKey: password
      remoteRef:
        key: "sp-01/payments/api/db"
        property: "password"

Пример приложения для чтения секретов#

Создайте приложение, которое читает секреты:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-app
  namespace: dapp-security
  labels:
    app: demo-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-app
  template:
    metadata:
      labels:
        app: demo-app
    spec:
      containers:
        - name: app
          image: busybox:1.36
          command: ["/bin/sh","-lc"]
          args:
            - |
              echo "Starting demo-app; will print credentials every 30s (DEMO ONLY)";
              while true; do
                echo "USERNAME=$DEMO_USERNAME PASSWORD=$DEMO_PASSWORD";
                sleep 30;
              done
          env:
            - name: DEMO_USERNAME
              valueFrom:
                secretKeyRef:
                  name: demo-app-secret
                  key: username
            - name: DEMO_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: demo-app-secret
                  key: password
---
apiVersion: v1
kind: Service
metadata:
  name: demo-app
  namespace: dapp-security
spec:
  selector:
    app: demo-app
  ports:
    - name: http
      port: 8080
      targetPort: 8080

В логах pod demo-app появятся прочитанные значения.

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

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

replicaCount - количество реплик основного контроллера#

Параметр

Описание

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

replicaCount

Количество реплик основного контроллера External Secrets Operator. При leader election может быть >1 для HA

1

bitwarden-sdk-server - настройки опционального bitwarden-sdk-server#

Параметр

Описание

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

bitwarden-sdk-server.enabled

Включает установку вспомогательного bitwarden-sdk-server (используется провайдерами/интеграциями, которым требуется Bitwarden SDK), если он предусмотрен чартом. Булевый флаг: установить компонент; не устанавливать компонент

false

bitwarden-sdk-server.namespaceOverride

Явно задает пространство имен для bitwarden-sdk-server, если требуется вынести его из пространства имен релиза

""

revisionHistoryLimit - лимит истории ReplicaSet для Deployment#

Параметр

Описание

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

revisionHistoryLimit

Количество ReplicaSet, сохраняемых в истории для Deployment. Уменьшение экономит Etcd и ускоряет очистку, увеличение облегчает откаты

10

image - настройки контейнерного образа External Secrets Operator#

Параметр

Описание

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

image.repository

Шаблон/строка полного имени контейнерного образа (включая registry/repository), который будет использован для соответствующего Deployment

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-external-secrets/external-secrets

image.pullPolicy

Политика скачивания образа Kubernetes (IfNotPresent/Always/Never) — влияет на поведение при обновлениях и на кластеры без доступа в интернет. Возможные значения: IfNotPresent, Always, Never

IfNotPresent

image.tag

Тег образа. Обычно фиксируется для воспроизводимости, либо наследуется от appVersion чарта

v0.20.4

image.flavour

Вариант (flavour) образа в рамках одного тега (например, distroless/ubi), если поставщик образов публикует такие сборки

""

installCRDs - управление установкой CRD через Helm#

Параметр

Описание

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

installCRDs

Управление Helm установкой/обновлением CRD. При GitOps может быть предпочтительнее устанавливать CRD отдельно, чтобы контролировать жизненный цикл

true

crds - детальная настройка создания CRD и конверсии#

Параметр

Описание

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

crds.createClusterExternalSecret

Создание ExternalSecret на уровне кластера при установке чарта. Выключайте, если CRD уже развернут централизованно или управляется другим релизом

true

crds.createClusterSecretStore

Создание SecretStore на уровне кластера при установке чарта. Выключайте, если CRD уже развернут централизованно или управляется другим релизом

true

crds.createClusterGenerator

Создание Generator на уровне кластера при установке чарта. Выключайте, если CRD уже развернут централизованно или управляется другим релизом

true

crds.createClusterPushSecret

Создание PushSecret на уровне кластера при установке чарта. Выключайте, если CRD уже развернут централизованно или управляется другим релизом

true

crds.createPushSecret

Создание PushSecret при установке чарта. Выключайте, если CRD уже развернут централизованно или управляется другим релизом

true

crds.annotations

Дополнительные аннотации, которые будут проставлены на CRD-объекты (например, для политики администрирования или инструментов безопасности)

{}

crds.conversion.enabled

Включает webhook-конверсию версий CRD. Обычно требуется при миграциях между версиями API; выключено, если v1alpha1 не поддерживается. Булевый флаг: включить конверсию; не использовать конверсию

false

imagePullSecrets - секреты для скачивания образов из приватного registry#

Параметр

Описание

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

imagePullSecrets

Список секретов типа docker-registry, которые будут добавлены в PodSpec для аутентификации при pull образов из приватного реестра

[]

nameOverride - переопределение имени релиза (name)#

Параметр

Описание

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

nameOverride

Переопределяет значение имени Helm-релиза (нужно для интеграции с существующими naming conventions)

""

fullnameOverride - переопределение полного имени ресурсов (fullname)#

Параметр

Описание

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

fullnameOverride

Переопределяет значение полного имени ресурсов Helm-релиза (нужно для интеграции с существующими naming conventions)

""

namespaceOverride - переопределение пространства имен для ресурсов чарта#

Параметр

Описание

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

namespaceOverride

Переопределяет значение пространства имен Helm-релиза (нужно для интеграции с существующими naming conventions)

""

commonLabels - дополнительные метки для всех ресурсов#

Параметр

Описание и возможные значения

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

commonLabels

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

{}

leaderElect - настройка leader election для HA#

Параметр

Описание

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

leaderElect

Включает leader election между репликами контроллера, чтобы активной была только одна реплика. Важно для безопасного масштабирования. Булевый флаг: использовать leader election; каждая реплика работает независимо

false

controllerClass - класс контроллера для фильтрации ресурсов#

Параметр

Описание

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

controllerClass

Идентификатор класса контроллера. Используется для фильтрации SecretStore/ExternalSecret по метке/полю класса, чтобы несколько операторов могли сосуществовать в одном кластере

""

extendedMetricLabels - расширенные метки метрик#

Параметр

Описание

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

extendedMetricLabels

Добавить рекомендуемые Kubernetes-аннотации как метки метрик Prometheus. Упрощает агрегацию/фильтрацию, но при этом увеличивает кардинальность. Булевый флаг: расширить метки; оставить минимальные метки

false

scopedNamespace - ограничение оператора одним пространством имен#

Параметр

Описание

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

scopedNamespace

Ограничивает область работы оператора одним пространством имен. Полезно для мульти-тенант сценариев и принципа наименьших привилегий

""

scopedRBAC - scoped RBAC при ограничении пространства имен#

Параметр

Описание

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

scopedRBAC

При scopedNamespace создает RBAC только внутри указанного пространства имен и отключает кластерные объекты (ClusterSecretStore/ClusterExternalSecret), снижая blast radius. Булевый флаг: создавать scoped RBAC; использовать кластерный RBAC

false

openshiftFinalizers - разрешения для работы с OpenShift finalizer#

Параметр

Описание

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

openshiftFinalizers

Добавлять в RBAC разрешения для работы с OpenShift finalizer

true

systemAuthDelegator - ClusterRole auth-delegator в RBAC#

Параметр

Описание

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

systemAuthDelegator

Добавлять ClusterRole system:auth-delegator в RBAC

false

processClusterExternalSecret - обработка ClusterExternalSecret#

Параметр

Описание

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

processClusterExternalSecret

Обработка оператором ресурса processClusterExternalSecret. Выключайте, если функционал не используется или делегирован другому инстансу

true

processClusterPushSecret - обработка ClusterPushSecret#

Параметр

Описание

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

processClusterPushSecret

Обработка оператором ресурса processClusterPushSecret. Выключайте, если функционал не используется или делегирован другому инстансу

true

processClusterStore - обработка ClusterSecretStore#

Параметр

Описание

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

processClusterStore

Обработка оператором ресурса processClusterStore. Выключайте, если функционал не используется или делегирован другому инстансу

true

processClusterGenerator - обработка ClusterGenerator#

Параметр

Описание

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

processClusterGenerator

Обработка оператором ресурса ClusterGenerator. Выключайте, если функционал не используется или делегирован другому инстансу

true

processPushSecret - обработка PushSecret#

Параметр

Описание

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

processPushSecret

Обработка оператором ресурса processPushSecret. Выключайте, если функционал не используется или делегирован другому инстансу

true

createOperator - создание Deployment оператора#

Параметр

Описание

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

createOperator

Создание Helm оператора Deployment. Если выключено, Deployment не будет создан - подходит для сценариев, где оператор разворачивается отдельно, а этот релиз управляет только CRD / доп. объектами

true

enableHTTP2 - включение HTTP/2 для сервисов контроллеров#

Параметр

Описание

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

enableHTTP2

Включает HTTP/2 для сервисов контроллеров (для метрик и вебхука)

false

concurrent - параллелизм reconcile#

Параметр

Описание

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

concurrent

Лимит параллельных reconcile-циклов ExternalSecret. Повышение увеличивает пропускную способность, но может нагружать API-сервер и провайдеров секретов

1

log - логирование оператора#

Параметр

Описание

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

log.level

Уровень логирования основного контроллера (debug/info/warn/error). Более подробные уровни упрощают диагностику, но увеличивают объем логов. Возможные значения: debug, info, warn, error

info

log.timeEncoding

Формат временных меток в логах (например, epoch/iso8601) для упрощения парсинга лог-агрегаторами и корреляции событий

epoch

service - настройки основного Service (в т.ч. dual-stack)#

Параметр

Описание

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

service.ipFamilyPolicy

Политика IP family для Service (SingleStack/PreferDualStack/RequireDualStack и др.), применима в кластерах dual-stack

""

service.ipFamilies

Порядок и набор IP family (IPv4/IPv6) для Service, влияет на выдачу ClusterIP и совместимость с dual-stack. Возможные значения: IPv4, IPv6

[]

serviceAccount - настройки оператора ServiceAccount#

Параметр

Описание

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

serviceAccount.create

Создание отдельного ServiceAccount для оператора. Выключайте, если ServiceAccount управляется отдельно (например, в рамках платформы). Булевый флаг: создать ServiceAccount; использовать существующий

true

serviceAccount.automount

Автомонтирование токена ServiceAccount в контейнеры pod. Отключение снижает риск утечки токена, но некоторые сценарии могут требовать токен. Булевый флаг: монтировать токен; не монтировать токен

true

serviceAccount.annotations

Дополнительные метаданные (аннотации) ServiceAccount для интеграции с IAM/политиками (например, IRSA, workload identity, аудит)

{}

serviceAccount.extraLabels

Дополнительные метаданные (метки) ServiceAccount для интеграции с IAM/политиками (например, IRSA, workload identity, аудит)

{}

serviceAccount.name

Имя существующего ServiceAccount (или явное имя создаваемого) для согласования права/политики с внешними процессами

""

rbac - настройки RBAC и агрегации прав#

Параметр

Описание

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

rbac.create

Создать RBAC-ресурсы (Role/ClusterRole и bindings), необходимые оператору. При выключении необходимо предоставить эквивалентные права вручную

true

rbac.servicebindings.create

Создать ClusterRole для чтения ресурсов ServiceBindings (если используется интеграция service binding), чтобы оператор мог извлекать нужные данные

true

rbac.aggregateToView

Агрегация права оператора в стандартный ClusterRole view, чтобы пользователи с view могли читать ресурсы External Secrets

true

rbac.aggregateToEdit

Агрегация права оператора в стандартный ClusterRole edit, упрощая делегирование управления External Secrets через Kubernetes RBAC

true

extraEnv - дополнительные переменные окружения#

Параметр

Описание

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

extraEnv

Дополнительные переменные окружения для контейнера. Используется для тонкой настройки поведения/провайдеров без модификации образа

[]

extraArgs - дополнительные аргументы контейнера#

Параметр

Описание и возможные значения

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

extraArgs

Дополнительные аргументы командной строки для контейнера external-secrets

{}

extraVolumes - дополнительные тома pod#

Параметр

Описание

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

extraVolumes

Дополнительные тома в спецификации pod (ConfigMap/Secret/emptyDir и др.) для предоставления файлов/сертификатов/конфигураций контейнеру

[]

extraObjects - дополнительные Kubernetes-объекты#

Параметр

Описание

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

extraObjects

Произвольные Kubernetes-объекты, которые Helm установит вместе с чартом (например, NetworkPolicy, PodMonitor, дополнительные RBAC)

[]

extraVolumeMounts - дополнительные volumeMounts#

Параметр

Описание

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

extraVolumeMounts

Дополнительные volumeMounts для подключения томов в контейнер (пути/режимы/readonly)

[]

extraInitContainers - дополнительные initContainers#

Параметр

Описание

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

extraInitContainers

Дополнительные initContainers, выполняемые до основного контейнера (например, подготовка файлов, ожидание зависимостей, миграции)

[]

extraContainers - дополнительные sidecar-контейнеры#

Параметр

Описание

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

extraContainers

Дополнительные контейнеры для pod external-secrets

[]

deploymentAnnotations - аннотации на Deployment#

Параметр

Описание

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

deploymentAnnotations

Аннотации для ресурса Deployment

{}

strategy - стратегия обновления Deployment#

Параметр

Описание

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

strategy

Стратегия обновления Deployment external-secrets

{}

podAnnotations - annotations на Pod#

Параметр

Описание

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

podAnnotations

Аннотации для pod external-secrets

{}

podLabels - метки на Pod#

Параметр

Описание

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

podLabels

Дополнительные метки для pod external-secrets

{}

podSecurityContext - контекст безопасности pod#

Параметр

Описание

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

podSecurityContext.enabled

Включает применение podSecurityContext для pod external-secrets

true

securityContext - контекст безопасности контейнера#

Параметр

Описание

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

securityContext.allowPrivilegeEscalation

Разрешать повышение привилегий в контейнере

false

securityContext.capabilities.drop

Список Linux capabilities, которые нужно удалить у контейнера

- ALL

securityContext.enabled

Включает применение container securityContext

true

securityContext.readOnlyRootFilesystem

Монтировать корневую файловую систему контейнера только для чтения

true

securityContext.runAsNonRoot

Запускать контейнер от непривилегированного пользователя

true

securityContext.runAsUser

UID пользователя, от имени которого запускается контейнер

1000

securityContext.seccompProfile.type

Тип seccomp-профиля для контейнера

RuntimeDefault

resources - requests/limits ресурсов#

Параметр

Описание

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

resources

Ресурсные requests и limits для контейнера external-secrets

{}

serviceMonitor - настройка ServiceMonitor для Prometheus Operator#

Параметр

Описание

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

serviceMonitor.enabled

Создавать ServiceMonitor для сбора метрик Prometheus

false

serviceMonitor.renderMode

Поведение chart при отсутствии CRD ServiceMonitor

skipIfMissing

serviceMonitor.namespace

Пространство имен, в котором нужно создать ServiceMonitor

""

serviceMonitor.additionalLabels

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

{}

serviceMonitor.interval

Интервал сбора метрик. Если не задан, используется глобальный интервал Prometheus

30s

serviceMonitor.scrapeTimeout

Время ожидания сбора метрик

25s

serviceMonitor.honorLabels

Сохранять метки из scraped-данных

false

serviceMonitor.metricRelabelings

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

[]

serviceMonitor.relabelings

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

[]

metrics - параметры экспонирования метрик#

Параметр

Описание

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

metrics.listen.port

Порт, на котором контейнер публикует метрики

8080

metrics.listen.secure.enabled

Включает защищенную TLS-публикацию метрик

false

metrics.listen.secure.certDir

Путь к каталогу с TLS-сертификатами для метрик

/etc/tls

metrics.listen.secure.certFile

Путь к TLS-сертификату для защищенного endpoint метрик

/etc/tls/tls.crt

metrics.listen.secure.keyFile

Путь к TLS-ключу для защищенного endpoint метрик

/etc/tls/tls.key

metrics.service.enabled

Создавать отдельный Service для сбора метрик сторонним инструментом мониторинга

false

metrics.service.port

Порт Service для scrape метрик

8080

metrics.service.annotations

Дополнительные аннотации для metrics Service

{}

grafanaDashboard - создание дашборда Grafana#

Параметр

Описание

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

grafanaDashboard.enabled

Создавать ConfigMap с дашбордом Grafana

false

grafanaDashboard.sidecarLabel

Label, по которому sidecar Grafana загружает дашборд

grafana_dashboard

grafanaDashboard.sidecarLabelValue

Значение метки, по которому sidecar Grafana загружает дашборд

1

grafanaDashboard.annotations

Аннотации для ConfigMap дашборда

{}

grafanaDashboard.extraLabels

Дополнительные метки для ConfigMap дашборда

{}

livenessProbe - проверка работоспособности pod#

Параметр

Описание

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

livenessProbe.enabled

Включает liveness probe для контейнера external-secrets

false

livenessProbe.spec.address

Адрес, используемый liveness probe

""

livenessProbe.spec.timeoutSeconds

Максимальное время ожидания ответа от liveness probe

5

livenessProbe.spec.failureThreshold

Количество последовательных неуспешных проверок до признания liveness probe failed

5

livenessProbe.spec.periodSeconds

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

10

livenessProbe.spec.successThreshold

Количество успешных проверок для признания liveness probe успешной

1

livenessProbe.spec.initialDelaySeconds

Задержка перед первой liveness probe после запуска контейнера

10

livenessProbe.spec.httpGet.port

Порт liveness probe; значение 8082 активирует probe

8082

livenessProbe.spec.httpGet.path

HTTP path для liveness probe

/healthz

nodeSelector - выбор узлов для размещения pod#

Параметр

Описание

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

nodeSelector

Узел селектора для размещения pod external-secrets

{}

tolerations - tolerations для размещения pod#

Параметр

Описание

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

tolerations

Список tolerations для размещения pod external-secrets на tainted-узлах

[]

topologySpreadConstraints - топологические ограничения распределения pod#

Параметр

Описание

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

topologySpreadConstraints

Список топологических ограничений распределения для pod external-secrets

[]

affinity - управление размещением pod#

Параметр

Описание

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

affinity

Affinity и anti-affinity правила для размещения pod external-secrets

{}

priorityClassName - класс приоритета для pod#

Параметр

Описание

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

priorityClassName

Имя PriorityClass, назначаемое pod external-secrets

""

podDisruptionBudget - настройки доступности pod при disruption#

Параметр

Описание

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

podDisruptionBudget.enabled

Создавать PodDisruptionBudget для ограничения добровольных прерываний pod

false

podDisruptionBudget.minAvailable

Минимальное количество pod, которое должно оставаться доступным

1

podDisruptionBudget.nameOverride

Переопределяет имя ресурса PodDisruptionBudget

""

hostNetwork - запуск на hostNetwork#

Параметр

Описание

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

hostNetwork

Запускать основной controller в сетевом пространстве хоста

false

webhook - настройка validating webhook и его сертификатов#

Параметр

Описание

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

webhook.annotations

Аннотации для validating webhook configuration

{}

webhook.create

Создавать deployment webhook; при отключении conversion webhook также должен быть отключен

true

webhook.certCheckInterval

Интервал проверки валидности сертификата webhook

5m

webhook.lookaheadInterval

Интервал предварительной проверки срока действия сертификата webhook

""

webhook.replicaCount

Количество реплик webhook deployment

1

webhook.log.level

Уровень логирования webhook

info

webhook.log.timeEncoding

Формат кодирования времени в логах webhook

epoch

webhook.revisionHistoryLimit

Количество исторических ReplicaSet для webhook deployment

10

webhook.certDir

Каталог, в который webhook монтирует сертификаты

/tmp/certs

webhook.failurePolicy

Значение failurePolicy для validating webhook

Fail

webhook.hostNetwork

Запускать webhook pod в сетевом пространстве хоста

false

webhook.image.repository

Репозиторий контейнерного образа webhook

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-external-secrets/external-secrets

webhook.image.pullPolicy

Политика загрузки контейнерного образа webhook

IfNotPresent

webhook.image.tag

Тег контейнерного образа webhook

v0.20.4

webhook.image.flavour

Вариант образа webhook

""

webhook.imagePullSecrets

Список секретов для загрузки образов webhook

[]

webhook.port

Порт, на котором слушает webhook

10250

webhook.serviceAccount.create

Создавать ServiceAccount для webhook

true

webhook.serviceAccount.automount

Автоматически монтировать токен ServiceAccount в контейнеры webhook

true

webhook.serviceAccount.annotations

Аннотации для ServiceAccount webhook

{}

webhook.serviceAccount.extraLabels

Дополнительные labels для ServiceAccount webhook

{}

webhook.serviceAccount.name

Имя ServiceAccount webhook; если не задано и создание включено, имя генерируется автоматически

""

webhook.nodeSelector

Узел селектора для размещения pod webhook

{}

webhook.certManager.enabled

Использовать cert-manager для выпуска и продления сертификатов webhook вместо встроенной генерации

false

webhook.certManager.addInjectorAnnotations

Автоматически добавлять cert-manager.io/inject-ca-from аннотацию в webhooks и CRD

true

webhook.certManager.cert.create

Создавать ресурс Certificate в рамках chart

true

webhook.certManager.cert.issuerRef.group

API group issuer для Certificate

cert-manager.io

webhook.certManager.cert.issuerRef.kind

Kind issuer для Certificate

Issuer

webhook.certManager.cert.issuerRef.name

Имя issuer для Certificate

my-issuer

webhook.certManager.cert.duration

Срок действия сертификата webhook, выдаваемого cert-manager

8760h

webhook.certManager.cert.revisionHistoryLimit

RevisionHistoryLimit для ресурса Certificate

0

webhook.certManager.cert.renewBefore

Период до истечения сертификата, за который cert-manager должен выполнить обновление

""

webhook.certManager.cert.annotations

Дополнительные аннотации для Certificate

{}

webhook.tolerations

Список tolerations для pod webhook

[]

webhook.topologySpreadConstraints

Список topology spread constraints для pod webhook

[]

webhook.affinity

Affinity и anti-affinity правила для pod webhook

{}

webhook.strategy

Стратегия обновления webhook deployment

{}

webhook.priorityClassName

Имя PriorityClass для pod webhook

""

webhook.podDisruptionBudget.enabled

Создавать PodDisruptionBudget для webhook

false

webhook.podDisruptionBudget.minAvailable

Минимальное количество доступных pod webhook

1

webhook.podDisruptionBudget.nameOverride

Переопределяет имя PodDisruptionBudget webhook

""

webhook.metrics.listen.port

Порт, на котором webhook публикует собственные метрики

8080

webhook.metrics.service.enabled

Создавать Service для сбора метрик webhook

false

webhook.metrics.service.port

Порт Service для scrape метрик webhook

8080

webhook.metrics.service.annotations

Аннотации для metrics Service webhook

{}

webhook.readinessProbe.address

Адрес readiness probe webhook

""

webhook.readinessProbe.port

Порт readiness probe webhook для kubelet

8081

webhook.extraEnv

Дополнительные переменные окружения для контейнера webhook

[]

webhook.extraArgs

Дополнительные аргументы запуска для контейнера webhook

{}

webhook.extraInitContainers

Дополнительные initContainers для pod webhook

[]

webhook.extraVolumes

Дополнительные volumes для pod webhook

[]

webhook.extraVolumeMounts

Дополнительные volumeMounts для контейнера webhook

[]

webhook.secretAnnotations

Аннотации для Secret с TLS-материалами webhook

{}

webhook.deploymentAnnotations

Аннотации для Deployment webhook

{}

webhook.podAnnotations

Аннотации для pod webhook

{}

webhook.podLabels

Дополнительные labels для pod webhook

{}

webhook.podSecurityContext.enabled

Включает применение podSecurityContext для pod webhook

true

webhook.securityContext.allowPrivilegeEscalation

Разрешать повышение привилегий в контейнере webhook

false

webhook.securityContext.capabilities.drop

Список Linux capabilities, удаляемых у контейнера webhook

- ALL

webhook.securityContext.enabled

Включает применение container securityContext для webhook

true

webhook.securityContext.readOnlyRootFilesystem

Монтировать корневую файловую систему контейнера webhook только для чтения

true

webhook.securityContext.runAsNonRoot

Запускать контейнер webhook от непривилегированного пользователя

true

webhook.securityContext.runAsUser

UID пользователя контейнера webhook

1000

webhook.securityContext.seccompProfile.type

Тип seccomp-профиля контейнера webhook

RuntimeDefault

webhook.resources

Ресурсные requests и limits для контейнера webhook

{}

webhook.service.enabled

Управлять Service, через который доступен webhook

true

webhook.service.annotations

Аннотации для Service webhook

{}

webhook.service.labels

Labels для Service webhook

{}

webhook.service.type

Тип Service webhook

ClusterIP

webhook.service.loadBalancerIP

Выделенный IP-адрес для Service webhook типа LoadBalancer

""

certController - настройка контроллера сертификатов#

Параметр

Описание

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

certController.create

Создавать deployment certificate controller

true

certController.requeueInterval

Интервал повторной постановки reconcile для certificate controller

5m

certController.replicaCount

Количество реплик certificate controller

1

certController.log.level

Уровень логирования certificate controller

info

certController.log.timeEncoding

Формат кодирования времени в логах certificate controller

epoch

certController.revisionHistoryLimit

Количество исторических ReplicaSet для certificate controller

10

certController.image.repository

Репозиторий контейнерного образа certificate controller

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-external-secrets/external-secrets

certController.image.pullPolicy

Политика загрузки контейнерного образа certificate controller

IfNotPresent

certController.image.tag

Тег контейнерного образа certificate controller

v0.20.4

certController.image.flavour

Вариант образа certificate controller

""

certController.imagePullSecrets

Список секретов для загрузки образов certificate controller

[]

certController.rbac.create

Создавать RBAC-ресурсы для certificate controller

true

certController.serviceAccount.create

Создавать ServiceAccount для certificate controller

true

certController.serviceAccount.automount

Автоматически монтировать токен ServiceAccount в контейнеры certificate controller

true

certController.serviceAccount.annotations

Аннотации для ServiceAccount certificate controller

{}

certController.serviceAccount.extraLabels

Дополнительные labels для ServiceAccount certificate controller

{}

certController.serviceAccount.name

Имя ServiceAccount certificate controller; если не задано и создание включено, имя генерируется автоматически

""

certController.nodeSelector

Node selector для размещения pod certificate controller

{}

certController.tolerations

Список tolerations для pod certificate controller

[]

certController.topologySpreadConstraints

Список topology spread constraints для pod certificate controller

[]

certController.affinity

Affinity и anti-affinity правила для pod certificate controller

{}

certController.strategy

Стратегия обновления certificate controller deployment

{}

certController.hostNetwork

Запускать certificate controller в сетевом пространстве хоста

false

certController.priorityClassName

Имя PriorityClass для pod certificate controller

""

certController.podDisruptionBudget.enabled

Создавать PodDisruptionBudget для certificate controller

false

certController.podDisruptionBudget.minAvailable

Минимальное количество доступных pod certificate controller

1

certController.podDisruptionBudget.nameOverride

Переопределяет имя PodDisruptionBudget certificate controller

""

certController.metrics.listen.port

Порт публикации метрик certificate controller

8080

certController.metrics.service.enabled

Создавать Service для сбора метрик certificate controller

false

certController.metrics.service.port

Порт Service для scrape метрик certificate controller

8080

certController.metrics.service.annotations

Аннотации для metrics Service certificate controller

{}

certController.readinessProbe.address

Адрес readiness probe certificate controller

""

certController.readinessProbe.port

Порт readiness probe certificate controller для kubelet

8081

certController.startupProbe.enabled

Включает startup probe для certificate controller

false

certController.startupProbe.useReadinessProbePort

Использовать порт readiness probe для startup probe

true

certController.startupProbe.port

Явно заданный порт startup probe

""

certController.extraEnv

Дополнительные переменные окружения для контейнера certificate controller

[]

certController.extraArgs

Дополнительные аргументы запуска для контейнера certificate controller

{}

certController.extraInitContainers

Дополнительные initContainers для pod certificate controller

[]

certController.extraVolumes

Дополнительные volumes для pod certificate controller

[]

certController.extraVolumeMounts

Дополнительные volumeMounts для контейнера certificate controller

[]

certController.deploymentAnnotations

Аннотации для Deployment certificate controller

{}

certController.podAnnotations

Аннотации для pod certificate controller

{}

certController.podLabels

Дополнительные labels для pod certificate controller

{}

certController.podSecurityContext.enabled

Включает применение podSecurityContext для pod certificate controller

true

certController.securityContext.allowPrivilegeEscalation

Разрешать повышение привилегий в контейнере certificate controller

false

certController.securityContext.capabilities.drop

Список Linux capabilities, удаляемых у контейнера certificate controller

- ALL

certController.securityContext.enabled

Включает применение container securityContext для certificate controller

true

certController.securityContext.readOnlyRootFilesystem

Монтировать корневую файловую систему контейнера certificate controller только для чтения

true

certController.securityContext.runAsNonRoot

Запускать контейнер certificate controller от непривилегированного пользователя

true

certController.securityContext.runAsUser

UID пользователя контейнера certificate controller

1000

certController.securityContext.seccompProfile.type

Тип seccomp-профиля контейнера certificate controller

RuntimeDefault

certController.resources

Ресурсные requests и limits для контейнера certificate controller

{}

dnsPolicy - политика разрешения DNS для pod#

Параметр

Описание

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

dnsPolicy

DNS policy для deployment external-secrets

ClusterFirst

dnsConfig - дополнительная конфигурация DNS для pod#

Параметр

Описание

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

dnsConfig

Дополнительная DNS-конфигурация для deployment external-secrets

{}

podSpecExtra - дополнительные поля PodSpec#

Параметр

Описание

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

podSpecExtra

Дополнительные поля PodSpec, которые нужно добавить в deployment external-secrets

{}