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

Количество реплик pod инструмента

1

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

Параметр

Описание

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

bitwarden-sdk-server.enabled

Включает установку вспомогательного компонента Bitwarden SDK server, если он предусмотрен чартом; булевый флаг: установить компонент / не устанавливать компонент

false

bitwarden-sdk-server.namespaceOverride

Переопределение пространства имен вместо значения по умолчанию

""

revisionHistoryLimit – количество сохраняемых ресурсов для отката#

Параметр

Описание

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

revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

10

image – параметры контейнерного образа#

Параметр

Описание

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

image.repository

Шаблон полного имени контейнерного образа, включающий реестр и репозиторий

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

image.pullPolicy

Политика загрузки образа; возможные значения: IfNotPresent, Always, Never

IfNotPresent

image.tag

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

v0.20.4

image.flavour

Вариант образа в рамках одного тега, например distroless или ubi

""

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

Параметр

Описание

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

installCRDs

Управление установкой и обновлением CRD через Helm; при GitOps может быть предпочтительнее устанавливать CRD отдельно для контроля жизненного цикла

true

crds – настройки установки и обновления Custom Resource Definitions (CRD)#

Параметр

Описание

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

crds.createClusterExternalSecret

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

true

crds.createClusterSecretStore

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

true

crds.createClusterGenerator

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

true

crds.createClusterPushSecret

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

true

crds.createPushSecret

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

true

crds.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

crds.conversion.enabled

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

false

imagePullSecrets – Secret для загрузки образов#

Параметр

Описание

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

imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

nameOverride – переопределение имени чарта#

Параметр

Описание

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

nameOverride

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

""

fullnameOverride – полное переопределение имени чарта#

Параметр

Описание

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

fullnameOverride

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

""

namespaceOverride – переопределение пространства имен#

Параметр

Описание

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

namespaceOverride

Переопределение пространства имен вместо значения по умолчанию

""

commonLabels – общие метки для всех ресурсов#

Параметр

Описание

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

commonLabels

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

{}

leaderElect – настройка leader election для высокой доступности#

Параметр

Описание

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

leaderElect

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

false

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

Параметр

Описание

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

controllerClass

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

""

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

Параметр

Описание

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

extendedMetricLabels

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

false

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

Параметр

Описание

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

scopedNamespace

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

""

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

Параметр

Описание

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

scopedRBAC

При использовании scopedNamespace создает RBAC только внутри указанного пространства имен и отключает кластерные объекты, снижая область воздействия; булевый флаг: создавать 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

Обработка оператором ресурсов ClusterExternalSecret; при включении добавляет разрешения на обновление и патч пространств имен для обработки finalizer при удалении пространства имен, предотвращая гонку с ExternalSecret; выключайте, если функциональность не используется

true

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

Параметр

Описание

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

processClusterPushSecret

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

true

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

Параметр

Описание

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

processClusterStore

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

true

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

Параметр

Описание

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

processClusterGenerator

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

true

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

Параметр

Описание

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

processPushSecret

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

true

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

Параметр

Описание

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

createOperator

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

true

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

Параметр

Описание

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

enableHTTP2

Включает HTTP/2 для сервисов контроллеров, таких как метрики и Webhook

false

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

Параметр

Описание

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

concurrent

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

1

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

Параметр

Описание

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

log.level

Уровень логирования основного контроллера; возможные значения: debug, info, warn, error

info

log.timeEncoding

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

epoch

service – настройки Service#

Параметр

Описание

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

service.ipFamilyPolicy

Политика IP-семейства для Service в кластерах с поддержкой dual-stack

""

service.ipFamilies

Список IP-семейств, поддерживаемых Service

[]

serviceAccount – настройки сервисного аккаунта#

Параметр

Описание

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

serviceAccount.create

Создание отдельного ServiceAccount для оператора; выключайте, если ServiceAccount управляется отдельно; булевый флаг: создать ServiceAccount / использовать существующий

true

serviceAccount.automount

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

true

serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

serviceAccount.extraLabels

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

{}

serviceAccount.name

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

""

rbac – настройки RBAC (управление доступом на основе ролей)#

Параметр

Описание

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

rbac.create

Активация автоматического создания ресурсов RBAC

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

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

{}

extraVolumes – дополнительные тома (Volume)#

Параметр

Описание

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

extraVolumes

Дополнительные тома (Volume) для pod

[]

extraObjects – дополнительные объекты Helm-чарта#

Параметр

Описание

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

extraObjects

Добавление дополнительных динамических объектов в Helm-чарте

[]

extraVolumeMounts – дополнительные точки монтирования томов#

Параметр

Описание

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

extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

extraInitContainers – дополнительные init-контейнеры#

Параметр

Описание

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

extraInitContainers

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

[]

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

Параметр

Описание

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

extraContainers

Список дополнительных sidecar-контейнеров в pod

[]

deploymentAnnotations – аннотации для Deployment#

Параметр

Описание

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

deploymentAnnotations

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

{}

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

Параметр

Описание

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

strategy

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

{}

podAnnotations – аннотации для pod#

Параметр

Описание

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

podAnnotations

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

{}

podLabels – метки для pod#

Параметр

Описание

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

podLabels

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

{}

podSecurityContext – параметры контекста безопасности pod#

Параметр

Описание

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

podSecurityContext.enabled

Включает применение контекста безопасности pod.
Пример конфигурации:

fsGroup: 2000

true

securityContext – параметры контекста безопасности контейнера#

Параметр

Описание

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

securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

securityContext.enabled

Включает применение контекста безопасности контейнера

true

securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

securityContext.runAsNonRoot

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

true

securityContext.runAsUser

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

1000

securityContext.seccompProfile.type

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

RuntimeDefault

resources – запросы и ограничения ресурсов контейнера#

Параметр

Описание

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

resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

requests:
  cpu: 10m
  memory: 32Mi

{}

serviceMonitor – параметры ServiceMonitor#

Параметр

Описание

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

serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

false

serviceMonitor.renderMode

Поведение чарта при отсутствии CRD ServiceMonitor.
Возможные значения: skipIfMissing, failIfMissing, alwaysRender

skipIfMissing

serviceMonitor.namespace

Пространство имен для создания ServiceMonitor

""

serviceMonitor.additionalLabels

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

{}

serviceMonitor.interval

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

30s

serviceMonitor.scrapeTimeout

Тайм-аут сбора метрик

25s

serviceMonitor.honorLabels

Сохраняет метки из собранных данных без префикса exported_

false

serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам.
Пример конфигурации:

- action: replace
  regex: (.*)
  replacement: $1
  sourceLabels:
    - exported_namespace
  targetLabel: namespace

[]

serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик.
Пример конфигурации:

- sourceLabels: [__meta_kubernetes_pod_node_name]
  separator: ;
  regex: ^(.*)$
  targetLabel: nodename
  replacement: $1
  action: replace

[]

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

Параметр

Описание

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

metrics.listen.port

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

8080

metrics.listen.secure.enabled

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

false

metrics.listen.secure.certDir

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

/etc/tls

metrics.listen.secure.certFile

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

/etc/tls/tls.crt

metrics.listen.secure.keyFile

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

/etc/tls/tls.key

metrics.service.enabled

Активация создания Service

false

metrics.service.port

Порт Service для сбора метрик

8080

metrics.service.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

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

Параметр

Описание

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

grafanaDashboard.enabled

Создание ConfigMap с дашбордом Grafana

false

grafanaDashboard.sidecarLabel

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

grafana_dashboard

grafanaDashboard.sidecarLabelValue

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

1

grafanaDashboard.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

grafanaDashboard.extraLabels

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

{}

livenessProbe – параметры проверки работоспособности#

Параметр

Описание

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

livenessProbe.enabled

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

false

livenessProbe.spec.address

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

""

livenessProbe.spec.timeoutSeconds

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

5

livenessProbe.spec.failureThreshold

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

5

livenessProbe.spec.periodSeconds

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

10

livenessProbe.spec.successThreshold

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

1

livenessProbe.spec.initialDelaySeconds

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

10

livenessProbe.spec.httpGet.port

Порт проверки работоспособности; значение 8082 активирует проверку

8082

livenessProbe.spec.httpGet.path

HTTP-путь для проверки работоспособности

/healthz

nodeSelector – селектор узлов для планирования pod#

Параметр

Описание

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

nodeSelector

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

{}

tolerations – параметры Toleration для pod#

Параметр

Описание

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

tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

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

Параметр

Описание

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

topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам

[]

affinity – правила привязки (affinity и anti-affinity) pod к узлам#

Параметр

Описание

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

affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

priorityClassName – имя класса приоритета pod#

Параметр

Описание

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

priorityClassName

Имя PriorityClass для pod

""

podDisruptionBudget – ограничение одновременной недоступности pod#

Параметр

Описание

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

podDisruptionBudget.enabled

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

false

podDisruptionBudget.minAvailable

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

1

podDisruptionBudget.nameOverride

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

""

hostNetwork – использование сети хоста#

Параметр

Описание

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

hostNetwork

Активация запуска основного контроллера в сетевом пространстве хоста

false

webhook – настройка «мутирующего» и валидирующего вебхуков и сертификатов#

Параметр

Описание

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

webhook.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

webhook.create

Создание Deployment Webhook; при отключении необходимо также отключить crds.conversion.enabled, иначе API будет пытаться обратиться к отсутствующему эндпоинту Webhook

true

webhook.certCheckInterval

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

5m

webhook.lookaheadInterval

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

""

webhook.replicaCount

Количество реплик pod инструмента

1

webhook.log.level

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

info

webhook.log.timeEncoding

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

epoch

webhook.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

10

webhook.certDir

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

/tmp/certs

webhook.failurePolicy

Политика обработки сбоев для валидирующего Webhook

Fail

webhook.hostNetwork

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

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

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

v0.20.4

webhook.image.flavour

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

""

webhook.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

webhook.port

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

10250

webhook.serviceAccount.create

Создание ServiceAccount для Webhook

true

webhook.serviceAccount.automount

Автомонтирование токена ServiceAccount в контейнеры pod Webhook

true

webhook.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

webhook.serviceAccount.extraLabels

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

{}

webhook.serviceAccount.name

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

""

webhook.nodeSelector

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

{}

webhook.certManager.enabled

Использование Cert Manager для выпуска и продления сертификатов Webhook вместо встроенной генерации; чарт не устанавливает Cert Manager автоматически

false

webhook.certManager.addInjectorAnnotations

Автоматическое добавление аннотации cert-manager.io/inject-ca-from в Webhook и CRD при включенном CA Injector Cert Manager

true

webhook.certManager.cert.create

Создание ресурса Certificate в рамках чарта

true

webhook.certManager.cert.issuerRef.group

API-группа issuer для Certificate

cert-manager.io

webhook.certManager.cert.issuerRef.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

Количество предыдущих версий ресурса, сохраняемых для отката

0

webhook.certManager.cert.renewBefore

Период до истечения сертификата, за который Cert Manager должен выполнить обновление; должен быть больше, чем webhook.lookaheadInterval

""

webhook.certManager.cert.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

webhook.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

webhook.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам

[]

webhook.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

webhook.strategy

Стратегия обновления Deployment Webhook

{}

webhook.priorityClassName

Имя PriorityClass для pod

""

webhook.podDisruptionBudget.enabled

Создание PodDisruptionBudget для Webhook

false

webhook.podDisruptionBudget.minAvailable

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

1

webhook.podDisruptionBudget.nameOverride

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

""

webhook.metrics.listen.port

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

8080

webhook.metrics.service.enabled

Активация создания Service

false

webhook.metrics.service.port

Порт Service для сбора метрик Webhook

8080

webhook.metrics.service.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

webhook.readinessProbe.address

Адрес проверки готовности Webhook

""

webhook.readinessProbe.port

Порт проверки готовности Webhook для kubelet

8081

webhook.extraEnv

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

[]

webhook.extraArgs

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

{}

webhook.extraInitContainers

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

[]

webhook.extraVolumes

Дополнительные тома для pod Webhook

[]

webhook.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

webhook.secretAnnotations

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

{}

webhook.deploymentAnnotations

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

{}

webhook.podAnnotations

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

{}

webhook.podLabels

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

{}

webhook.podSecurityContext.enabled

Включает применение контекста безопасности pod для Webhook.
Пример конфигурации:

fsGroup: 2000

true

webhook.securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

webhook.securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

webhook.securityContext.enabled

Включает применение контекста безопасности контейнера для Webhook

true

webhook.securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

webhook.securityContext.runAsNonRoot

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

true

webhook.securityContext.runAsUser

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

1000

webhook.securityContext.seccompProfile.type

Тип Seccomp-профиля контейнера Webhook

RuntimeDefault

webhook.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

requests:
  cpu: 10m
  memory: 32Mi

{}

webhook.service.enabled

Активация создания Service

true

webhook.service.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

webhook.service.labels

Метки, добавляемые ко всем создаваемым ресурсам

{}

webhook.service.type

Тип Service

ClusterIP

webhook.service.loadBalancerIP

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

""

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

Параметр

Описание

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

certController.create

Создание Deployment контроллера сертификатов

true

certController.requeueInterval

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

5m

certController.replicaCount

Количество реплик pod инструмента

1

certController.log.level

Уровень логирования контроллера сертификатов

info

certController.log.timeEncoding

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

epoch

certController.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

10

certController.image.repository

Репозиторий контейнерного образа контроллера сертификатов

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

certController.image.pullPolicy

Политика загрузки контейнерного образа контроллера сертификатов

IfNotPresent

certController.image.tag

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

v0.20.4

certController.image.flavour

Вариант образа контроллера сертификатов

""

certController.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

certController.rbac.create

Активация автоматического создания ресурсов RBAC

true

certController.serviceAccount.create

Создание ServiceAccount для контроллера сертификатов

true

certController.serviceAccount.automount

Автомонтирование токена ServiceAccount в контейнеры контроллера сертификатов

true

certController.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

certController.serviceAccount.extraLabels

Дополнительные метки для ServiceAccount контроллера сертификатов

{}

certController.serviceAccount.name

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

""

certController.nodeSelector

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

{}

certController.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

certController.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам

[]

certController.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

certController.strategy

Стратегия обновления Deployment контроллера сертификатов

{}

certController.hostNetwork

Запуск контроллера сертификатов в сетевом пространстве хоста

false

certController.priorityClassName

Имя PriorityClass для pod

""

certController.podDisruptionBudget.enabled

Создание PodDisruptionBudget для контроллера сертификатов

false

certController.podDisruptionBudget.minAvailable

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

1

certController.podDisruptionBudget.nameOverride

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

""

certController.metrics.listen.port

Порт публикации метрик контроллера сертификатов

8080

certController.metrics.service.enabled

Активация создания Service

false

certController.metrics.service.port

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

8080

certController.metrics.service.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

certController.readinessProbe.address

Адрес проверки готовности контроллера сертификатов

""

certController.readinessProbe.port

Порт проверки готовности контроллера сертификатов для kubelet

8081

certController.startupProbe.enabled

Включает проверку запуска для контроллера сертификатов

false

certController.startupProbe.useReadinessProbePort

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

true

certController.startupProbe.port

Явно заданный порт проверки запуска

""

certController.extraEnv

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

[]

certController.extraArgs

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

{}

certController.extraInitContainers

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

[]

certController.extraVolumes

Дополнительные тома для pod контроллера сертификатов

[]

certController.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

certController.deploymentAnnotations

Аннотации для Deployment контроллера сертификатов

{}

certController.podAnnotations

Аннотации для pod контроллера сертификатов

{}

certController.podLabels

Дополнительные метки для pod контроллера сертификатов

{}

certController.podSecurityContext.enabled

Включает применение контекста безопасности pod для контроллера сертификатов.
Пример конфигурации:

fsGroup: 2000

true

certController.securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

certController.securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

certController.securityContext.enabled

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

true

certController.securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

certController.securityContext.runAsNonRoot

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

true

certController.securityContext.runAsUser

UID пользователя контейнера контроллера сертификатов

1000

certController.securityContext.seccompProfile.type

Тип Seccomp-профиля контейнера контроллера сертификатов

RuntimeDefault

certController.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

requests:
  cpu: 10m
  memory: 32Mi

{}

dnsPolicy – политика DNS для pod#

Параметр

Описание

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

dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

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

Параметр

Описание

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

dnsConfig

Пользовательская конфигурация DNS для pod

{}

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

Параметр

Описание

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

podSpecExtra

Дополнительные поля PodSpec для Deployment

{}