Gatekeeper#

Gatekeeper - это инструмент для управления политиками в Kubernetes, основанный на движке Open Policy Agent (OPA). Он позволяет централизованно управлять и применять политики безопасности и конфигурации на уровне всего кластера.

Основные задачи и возможности
  • Проверка запросов к API Kubernetes: Gatekeeper выступает в роли validating admission webhook, перехватывая запросы на создание или обновление ресурсов и проверяя их на соответствие заданным политикам.

  • Управление политиками через ограничения (Constraints): политики определяются с помощью Constraints — это правила, которые описывают, какие действия разрешены или запрещены при развертывании ресурсов в кластере.

  • Интеграция с Open Policy Agent (OPA): Gatekeeper использует OPA как движок для оценки политик, что позволяет писать гибкие и высокоэффективные правила на языке Rego.

  • Контроль соответствия (Compliance): позволяет не только блокировать нежелательные изменения, но и отслеживать состояние кластера в целом, выявляя отклонения от заданных политик.

  • Поддержка Kubernetes-нативного подхода: Gatekeeper является проектом, активно поддерживаемым сообществом Kubernetes, и предназначен для простой интеграции в экосистему Kubernetes.

  • Гибкость и расширяемость: поддерживает как стандартные политики, так и пользовательские, что делает его универсальным решением для обеспечения безопасности и соблюдения стандартов в кластере.

Примечание

Gatekeeper в стандартной версии DropApp является единственным инструментом в компоненте Security и устанавливается по умолчанию с установкой компонента. Также, по умолчанию DropApp предоставляет несколько встроенных, реализованных constraints, которые изначально выключены, но могу быть включены через инструмент Gatekeeper → spec.values

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

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

general – основные параметры#

Параметр

Описание

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

replicas

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

2

revisionHistoryLimit

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

10

auditInterval

Интервал между циклами аудита в секундах

60

metricsBackends

Бэкенды для метрик

- prometheus

auditMatchKindOnly

Активация аудита только по типу ресурсов

false

constraintViolationsLimit

Максимальное количество нарушений, логлируемых за один цикл аудита

20

auditFromCache

Выполнение аудита из кеша

false

disableAudit

Активация функции аудита

false

disableMutation

Активация «мутирующего» Webhook

false

disableValidatingWebhook

Активация валидирующего Webhook

false

validatingWebhookName

Имя конфигурации валидирующего Webhook

gatekeeper-validating-webhook-configuration

validatingWebhookTimeoutSeconds

Тайм-аут валидирующего Webhook в секундах

3

validatingWebhookFailurePolicy

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

Ignore

validatingWebhookAnnotations

Аннотации для валидирующего Webhook

{}

validatingWebhookExemptNamespacesLabels

Метки для исключения пространств имен из валидирующего Webhook

{}

validatingWebhookObjectSelector

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

{}

validatingWebhookMatchConditions

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

[]

validatingWebhookCheckIgnoreFailurePolicy

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

Fail

validatingWebhookCustomRules

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

{}

validatingWebhookSubResources

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

- pods/ephemeralcontainers
- pods/exec
- pods/log
- pods/eviction
- pods/portforward
- pods/proxy
- pods/attach
- pods/binding
- pods/resize
- deployments/scale
- replicasets/scale
- statefulsets/scale
- replicationcontrollers/scale
- services/proxy
- nodes/proxy
- services/status

validatingWebhookURL

URL-адрес валидирующего Webhook

~

validatingWebhookScope

Область видимости валидирующего Webhook

'*'

enableDeleteOperations

Активация операций удаления

false

enableConnectOperations

Активация операций подключения

false

enableExternalData

Активация поддержки внешних данных

true

enableGeneratorResourceExpansion

Активация расширения ресурсов генератора

true

enableTLSHealthcheck

Активация TLS-проверок работоспособности

false

maxServingThreads

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

-1

mutatingWebhookName

Имя конфигурации «мутирующего» Webhook

gatekeeper-mutating-webhook-configuration

mutatingWebhookFailurePolicy

Политика обработки сбоев «мутирующего» Webhook

Ignore

mutatingWebhookReinvocationPolicy

Политика повторного вызова «мутирующего» Webhook

Never

mutatingWebhookAnnotations

Аннотации для «мутирующего» Webhook

{}

mutatingWebhookExemptNamespacesLabels

Метки для исключения пространств имен из «мутирующего» Webhook

{}

mutatingWebhookObjectSelector

Селектор объектов для «мутирующего» Webhook

{}

mutatingWebhookMatchConditions

Условия соответствия для «мутирующего» Webhook

[]

mutatingWebhookTimeoutSeconds

Тайм-аут «мутирующего» Webhook в секундах

1

mutatingWebhookCustomRules

Пользовательские правила для «мутирующего» Webhook

{}

mutatingWebhookSubResources

Подресурсы для «мутирующего» Webhook

- pods/ephemeralcontainers
- pods/exec
- pods/log
- pods/eviction
- pods/portforward
- pods/proxy
- pods/attach
- pods/binding
- deployments/scale
- replicasets/scale
- statefulsets/scale
- replicationcontrollers/scale
- services/proxy
- nodes/proxy
- services/status

mutatingWebhookURL

URL-адрес «мутирующего» Webhook

~

mutatingWebhookScope

Область видимости «мутирующего» Webhook

'*'

mutationAnnotations

Активация аннотаций мутаций

false

auditChunkSize

Размер чанка для аудита

500

logLevel

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

INFO

logDenies

Логирование отклоненных запросов

false

logMutations

Логирование мутаций

false

admissionEventsInvolvedNamespace

Добавление пространства имен в события admission

false

auditEventsInvolvedNamespace

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

false

resourceQuota

Активация поддержки ResourceQuota

true

externaldataProviderResponseCacheTTL

TTL кеша ответов провайдера внешних данных

3m

enableK8sNativeValidation

Активация нативной валидации Kubernetes

false

defaultCreateVAPBindingForConstraints

Создание привязки VAP для ограничений по умолчанию

false

defaultCreateVAPForTemplates

Создание VAP для шаблонов по умолчанию

false

syncVAPEnforcementScope

Синхронизация области применения VAP

false

commonAnnotations

Общие аннотации для всех ресурсов

{}

extraVolumeMounts

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

[]

extraVolumes

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

[]

podAnnotations

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

{}

auditPodAnnotations

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

{}

podLabels

Метки для pod

{}

podCountLimit

Максимальное количество pod

"100"

secretAnnotations

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

{}

enableRuntimeDefaultSeccompProfile

Включение Seccomp-профиля по умолчанию

true

exportBackend

Экспорт бэкенда

""

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

Параметр

Описание

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

image.repository

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

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

image.crdRepository

Репозиторий образа для CRD

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-gatekeeper/gatekeeper-crds'

image.release

Версия релиза

v3.23.0

image.pullPolicy

Параметры контейнерного образа

IfNotPresent

image.pullSecrets

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

[]

preInstall – настройки pre-install хуков#

Параметр

Описание

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

preInstall.crdRepository.image.repository

Репозиторий образа для CRD

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-gatekeeper/gatekeeper-crds'

preInstall.crdRepository.image.tag

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

v3.23.0

postUpgrade – настройки post-upgrade хуков#

Параметр

Описание

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

postUpgrade.labelNamespace.serviceAccount.name

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

gatekeeper-update-namespace-label-post-upgrade

postUpgrade.labelNamespace.serviceAccount.create

Создание ServiceAccount

true

postUpgrade.labelNamespace.enabled

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

false

postUpgrade.labelNamespace.image.repository

Репозиторий образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-gatekeeper/gatekeeper-crds'

postUpgrade.labelNamespace.image.tag

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

v3.23.0

postUpgrade.labelNamespace.image.pullPolicy

Политика загрузки образа

IfNotPresent

postUpgrade.labelNamespace.image.pullSecrets

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

[]

postUpgrade.labelNamespace.extraNamespaces

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

[]

postUpgrade.labelNamespace.podSecurity

Аннотации безопасности pod для пространств имен

- pod-security.kubernetes.io/audit=restricted
- pod-security.kubernetes.io/audit-version=latest
- pod-security.kubernetes.io/warn=restricted
- pod-security.kubernetes.io/warn-version=latest
- pod-security.kubernetes.io/enforce=restricted
- pod-security.kubernetes.io/enforce-version=v1.24

postUpgrade.labelNamespace.extraAnnotations

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

{}

postUpgrade.labelNamespace.priorityClassName

Имя PriorityClass для pod

""

postUpgrade.affinity

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

{}

postUpgrade.tolerations

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

[]

postUpgrade.nodeSelector

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

kubernetes.io/os: linux

postUpgrade.resources

Запросы и ограничения ресурсов для контейнера

{}

postUpgrade.securityContext.allowPrivilegeEscalation

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

false

postUpgrade.securityContext.capabilities.drop

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

- ALL

postUpgrade.securityContext.readOnlyRootFilesystem

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

true

postUpgrade.securityContext.runAsGroup

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

999

postUpgrade.securityContext.runAsNonRoot

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

true

postUpgrade.securityContext.runAsUser

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

1000

postInstall – настройки post-install хуков#

Параметр

Описание

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

postInstall.labelNamespace.serviceAccount.name

Имя ServiceAccount

gatekeeper-update-namespace-label

postInstall.labelNamespace.serviceAccount.create

Создание ServiceAccount

true

postInstall.labelNamespace.enabled

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

false

postInstall.labelNamespace.extraRules

Дополнительные RBAC-правила

[]

postInstall.labelNamespace.image.repository

Репозиторий образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-gatekeeper/gatekeeper-crds'

postInstall.labelNamespace.image.tag

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

v3.23.0

postInstall.labelNamespace.image.pullPolicy

Политика загрузки образа

IfNotPresent

postInstall.labelNamespace.image.pullSecrets

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

[]

postInstall.labelNamespace.extraNamespaces

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

[]

postInstall.labelNamespace.podSecurity

Аннотации безопасности pod для пространств имен

- pod-security.kubernetes.io/audit=restricted
- pod-security.kubernetes.io/audit-version=latest
- pod-security.kubernetes.io/warn=restricted
- pod-security.kubernetes.io/warn-version=latest
- pod-security.kubernetes.io/enforce=restricted
- pod-security.kubernetes.io/enforce-version=v1.24

postInstall.labelNamespace.extraAnnotations

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

{}

postInstall.labelNamespace.priorityClassName

Имя PriorityClass для pod

""

postInstall.probeWebhook.enabled

Включение проверки Webhook после установки

false

postInstall.probeWebhook.image.registry

Реестр образа для проверки

~

postInstall.probeWebhook.image.repository

Репозиторий образа curl для проверки

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

postInstall.probeWebhook.image.tag

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

7.76.1

postInstall.probeWebhook.image.pullPolicy

Политика загрузки образа

IfNotPresent

postInstall.probeWebhook.image.pullSecrets

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

[]

postInstall.probeWebhook.waitTimeout

Время ожидания в секундах

60

postInstall.probeWebhook.httpTimeout

HTTP-тайм-аут в секундах

2

postInstall.probeWebhook.insecureHTTPS

Разрешение небезопасных HTTPS-соединений

false

postInstall.probeWebhook.priorityClassName

Имя PriorityClass для pod

""

postInstall.affinity

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

{}

postInstall.tolerations

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

[]

postInstall.nodeSelector

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

kubernetes.io/os: linux

postInstall.securityContext.allowPrivilegeEscalation

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

false

postInstall.securityContext.capabilities.drop

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

- ALL

postInstall.securityContext.readOnlyRootFilesystem

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

true

postInstall.securityContext.runAsGroup

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

999

postInstall.securityContext.runAsNonRoot

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

true

postInstall.securityContext.runAsUser

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

1000

preUninstall – настройки pre-uninstall хуков#

Параметр

Описание

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

preUninstall.deleteWebhookConfigurations.serviceAccount.name

Имя ServiceAccount

gatekeeper-delete-webhook-configs

preUninstall.deleteWebhookConfigurations.serviceAccount.create

Создание ServiceAccount

true

preUninstall.deleteWebhookConfigurations.extraRules

Дополнительные RBAC-правила

[]

preUninstall.deleteWebhookConfigurations.enabled

Включение удаления конфигураций Webhook перед удалением чарта

true

preUninstall.deleteWebhookConfigurations.image.repository

Репозиторий образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-gatekeeper/gatekeeper-crds'

preUninstall.deleteWebhookConfigurations.image.tag

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

v3.23.0

preUninstall.deleteWebhookConfigurations.image.pullPolicy

Политика загрузки образа

IfNotPresent

preUninstall.deleteWebhookConfigurations.image.pullSecrets

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

[]

preUninstall.deleteWebhookConfigurations.priorityClassName

Имя PriorityClass для pod

""

preUninstall.affinity

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

{}

preUninstall.tolerations

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

[]

preUninstall.nodeSelector

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

kubernetes.io/os: linux

preUninstall.resources

Запросы и ограничения ресурсов для контейнера

{}

preUninstall.securityContext.allowPrivilegeEscalation

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

false

preUninstall.securityContext.capabilities.drop

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

- ALL

preUninstall.securityContext.readOnlyRootFilesystem

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

true

preUninstall.securityContext.runAsGroup

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

999

preUninstall.securityContext.runAsNonRoot

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

true

preUninstall.securityContext.runAsUser

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

1000

controllerManager – настройки менеджера контроллера#

Параметр

Описание

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

controllerManager.serviceAccount.name

Имя ServiceAccount менеджера контроллера

gatekeeper-admin

controllerManager.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена ServiceAccount

true

controllerManager.containerName

Имя контейнера

manager

controllerManager.exemptNamespaces

Пространства имен, исключенные из проверки

[]

controllerManager.exemptNamespacePrefixes

Префиксы пространств имен, исключенные из проверки

[]

controllerManager.hostNetwork

Использование сети хоста

false

controllerManager.dnsPolicy

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

ClusterFirst

controllerManager.port

Порт Webhook-сервера

8443

controllerManager.metricsPort

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

8888

controllerManager.metrics.enabled

Включение метрик

true

controllerManager.healthPort

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

9090

controllerManager.readinessTimeout

Тайм-аут ожидания проверки готовности

1

controllerManager.livenessTimeout

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

1

controllerManager.priorityClassName

Имя PriorityClass для pod

system-cluster-critical

controllerManager.disableCertRotation

Активация ротации сертификатов

false

controllerManager.tlsMinVersion

Минимальная версия TLS

1.3

controllerManager.clientCertName

Имя клиентского сертификата

""

controllerManager.strategyType

Тип стратегии развертывания

RollingUpdate

controllerManager.strategyRollingUpdate

Настройки стратегии rolling update

{}

controllerManager.podLabels

Метки для pod менеджера контроллера

{}

controllerManager.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

Правила anti-affinity для pod

- podAffinityTerm:
    labelSelector:
      matchExpressions:
        - key: gatekeeper.sh/operation
          operator: In
          values:
            - webhook
    topologyKey: kubernetes.io/hostname
  weight: 100

controllerManager.topologySpreadConstraints

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

[]

controllerManager.tolerations

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

[]

controllerManager.nodeSelector

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

kubernetes.io/os: linux

controllerManager.resources

Запросы и ограничения ресурсов для контейнера

limits:
  cpu: 500m
  memory: 1024Mi
requests:
  cpu: 100m
  memory: 512Mi

controllerManager.securityContext.allowPrivilegeEscalation

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

false

controllerManager.securityContext.capabilities.drop

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

- ALL

controllerManager.securityContext.readOnlyRootFilesystem

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

true

controllerManager.securityContext.runAsGroup

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

10101

controllerManager.securityContext.runAsNonRoot

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

true

controllerManager.securityContext.runAsUser

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

10101

controllerManager.podSecurityContext.fsGroup

Идентификатор группы файловой системы для pod, назначаемый владельцем всех файлов и каталогов на подключенных томах

999

controllerManager.podSecurityContext.supplementalGroups

Дополнительные группы

- 999

controllerManager.extraRules

Дополнительные RBAC-правила

[]

controllerManager.networkPolicy.enabled

Включение NetworkPolicy

false

controllerManager.networkPolicy.ingress

Правила входящего трафика ingress
Пример конфигурации:

- from:
  - ipBlock:
      cidr: 0.0.0.0/0

[]

controllerManager.disableWebhookOperation

Активация операции Webhook

false

controllerManager.disableGenerateOperation

Активация операции генерации

true

audit – настройки компонента аудита#

Параметр

Описание

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

audit.exportConnection.path

Путь для экспорта соединений

/tmp/violations/topics

audit.exportConnection.maxAuditResults

Максимальное количество результатов аудита

3

audit.exportVolumeMount.path

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

/tmp/violations

audit.exportVolume.name

Имя Volume для экспорта

tmp-violations

audit.exportVolume.emptyDir

Пустой Volume для экспорта

{}

audit.exportSidecar.name

Имя sidecar-контейнера для экспорта

reader

audit.exportSidecar.image

Параметры контейнерного образа

ghcr.io/open-policy-agent/fake-reader:latest

audit.exportSidecar.imagePullPolicy

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

Always

audit.exportSidecar.securityContext.allowPrivilegeEscalation

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

false

audit.exportSidecar.securityContext.capabilities.drop

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

- ALL

audit.exportSidecar.securityContext.readOnlyRootFilesystem

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

true

audit.exportSidecar.securityContext.runAsGroup

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

999

audit.exportSidecar.securityContext.runAsNonRoot

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

true

audit.exportSidecar.securityContext.runAsUser

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

1000

audit.exportSidecar.securityContext.seccompProfile.type

Тип Seccomp-профиля

RuntimeDefault

audit.exportSidecar.volumeMounts

Точки монтирования Volume для sidecar-экспорта

- mountPath: /tmp/violations
  name: tmp-violations

audit.serviceAccount.name

Имя ServiceAccount аудита

gatekeeper-admin

audit.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена ServiceAccount

true

audit.containerName

Имя контейнера аудита

manager

audit.hostNetwork

Использование сети хоста

false

audit.dnsPolicy

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

ClusterFirst

audit.metricsPort

Порт для метрик аудита

8888

audit.metrics.enabled

Включение метрик аудита

true

audit.healthPort

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

9090

audit.readinessTimeout

Тайм-аут ожидания проверки готовности

1

audit.livenessTimeout

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

1

audit.priorityClassName

Имя PriorityClass для pod

system-cluster-critical

audit.disableCertRotation

Активация ротации сертификатов

false

audit.podLabels

Метки для pod аудита

{}

audit.affinity

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

{}

audit.tolerations

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

[]

audit.nodeSelector

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

kubernetes.io/os: linux

audit.resources

Запросы и ограничения ресурсов для контейнера

limits:
  cpu: 500m
  memory: 1024Mi
requests:
  cpu: 100m
  memory: 512Mi

audit.securityContext.allowPrivilegeEscalation

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

false

audit.securityContext.capabilities.drop

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

- ALL

audit.securityContext.readOnlyRootFilesystem

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

true

audit.securityContext.runAsGroup

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

10100

audit.securityContext.runAsNonRoot

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

true

audit.securityContext.runAsUser

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

10100

audit.podSecurityContext.fsGroup

Идентификатор группы файловой системы для pod, назначаемый владельцем всех файлов и каталогов на подключенных томах

999

audit.podSecurityContext.supplementalGroups

Дополнительные группы

- 999

audit.writeToRAMDisk

Запись данных на RAM-диск

false

audit.extraRules

Дополнительные RBAC-правила

[]

audit.disableGenerateOperation

Активация операции генерации

false

audit.disableAuditOperation

Активация операции аудита

false

audit.disableAuditSidecar

Активация sidecar-контейнера аудита

false

audit.disableStatusOperation

Активация операции статусов

false

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

Параметр

Описание

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

crds.affinity

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

{}

crds.tolerations

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

[]

crds.nodeSelector

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

kubernetes.io/os: linux

crds.resources

Запросы и ограничения ресурсов для контейнера

{}

crds.securityContext.allowPrivilegeEscalation

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

false

crds.securityContext.capabilities.drop

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

- ALL

crds.securityContext.readOnlyRootFilesystem

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

true

crds.securityContext.runAsGroup

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

65532

crds.securityContext.runAsNonRoot

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

true

crds.securityContext.runAsUser

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

65532

pdb – настройки PodDisruptionBudget#

Параметр

Описание

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

pdb.controllerManager.minAvailable

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

1

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

Параметр

Описание

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

service

Настройки Service

{}

disabledBuiltins – отключенные встроенные функции OPA#

Параметр

Описание

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

disabledBuiltins

Список отключенных встроенных функций OPA

- '{http.send}'

upgradeCRDs – настройки обновления CRD#

Параметр

Описание

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

upgradeCRDs.serviceAccount.create

Создание ServiceAccount для обновления CRD

true

upgradeCRDs.serviceAccount.name

Имя ServiceAccount для обновления CRD

gatekeeper-admin-upgrade-crds

upgradeCRDs.enabled

Включение обновления CRD

true

upgradeCRDs.extraRules

Дополнительные RBAC-правила

[]

upgradeCRDs.priorityClassName

Имя PriorityClass для pod

""

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

Параметр

Описание

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

rbac.create

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

true

externalCertInjection – внешнее внедрение сертификатов#

Параметр

Описание

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

externalCertInjection.enabled

Активация внешнего внедрения сертификатов

false

externalCertInjection.secretName

Имя Secret с сертификатом

gatekeeper-webhook-server-cert

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

Параметр

Описание

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

serviceAccount.gatekeeperAdmin.create

Создание ServiceAccount администратора Gatekeeper

true

constraints – предустановленные политики безопасности#

Параметр

Описание

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

constraints.K8sAllowedRepos.enabled

Активация политики разрешенных реестров образов

false

constraints.K8sAllowedRepos.repos

Список разрешенных реестров образов

- '{{ .Values.global.image.registry }}'

constraints.K8sImageDigests.enabled

Активация требования указывать SHA256 для образов контейнеров

false

constraints.K8sImageDigests.excludedNamespaces

Исключенные пространства имен

- "kube-system"
- "dapp-logging"
- "dapp-system"
- "dapp-auth"
- "dapp-ui"
- "dapp-monitoring"
- "dapp-lb"
- "dapp-security"
- "dapp-alerting"
- "dapp-certs"
- "dapp-ingress"
- "dapp-storage"
- "dapp-gitops"
- "dapp-devops"
- "dapp-aiops"
- "dapp-ai-system"
- "dapp-ai-inference"
- "dapp-node-management"

constraints.K8sPSPVolumeTypes.enabled

Активация ограничения типов монтируемых Volume

false

constraints.K8sPSPVolumeTypes.excludedNamespaces

Исключенные пространства имен

- "kube-system"
- "dapp-logging"
- "dapp-system"
- "dapp-auth"
- "dapp-ui"
- "dapp-monitoring"
- "dapp-lb"
- "dapp-security"
- "dapp-alerting"
- "dapp-gitops"
- "dapp-devops"
- "dapp-certs"
- "dapp-ingress"
- "dapp-storage"
- "dapp-gitops"
- "dapp-aiops"
- "dapp-ai-system"
- "dapp-ai-inference"
- "dapp-node-management"

constraints.K8sPSPVolumeTypes.volumes

Разрешенные типы Volume

- configMap
- emptyDir
- projected
- secret
- downwardAPI
- persistentVolumeClaim
- flexVolume

constraints.K8sContainerLimits.enabled

Активация лимитов ресурсов контейнеров

false

constraints.K8sContainerLimits.excludedNamespaces

Исключенные пространства имен

- kube-system
- dapp-logging
- dapp-system
- dapp-auth
- dapp-ui
- dapp-monitoring
- dapp-lb
- dapp-security
- dapp-alerting
- dapp-certs
- dapp-ingress
- dapp-storage
- dapp-gitops
- dapp-devops
- dapp-aiops
- dapp-ai-system
- dapp-ai-inference
- dapp-node-management

constraints.K8sContainerLimits.parameters.cpu

Максимальный лимит CPU

"8"

constraints.K8sContainerLimits.parameters.memory

Максимальный лимит памяти

"16Gi"

constraints.ReadOnlyRootFileSystem.enabled

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

false

constraints.ReadOnlyRootFileSystem.namespaces

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

- default
- applications