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, которые изначально выключены, но могу быть включены через инструмент Gatekeeperspec.values

Встроенные Constraints в DropApp#

constraints:
  # Список разрешенных реестров образов
  K8sAllowedRepos:
    enabled: false
    repos:
      - '{{ .Values.global.image.registry }}'
  # Образы контейнеров должны быть указаны с sha256
  K8sImageDigests:
    enabled: false
    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"
  # Ограничение типов монтируемых томов
  K8sPSPVolumeTypes:
    enabled: false
    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-devops"
    volumes:
      - configMap
      - emptyDir
      - projected
      - secret
      - downwardAPI
      - persistentVolumeClaim
      - flexVolume #required for allowedFlexVolumes
  K8sContainerLimits:
    enabled: false
    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"
    parameters:
      cpu: "8"
      memory: "16Gi"
  ReadOnlyRootFileSystem:
    enabled: false
    namespaces:
      - default
      - applications

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

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

global - глобальные настройки для всех компонентов Gatekeeper#

Параметр

Описание

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

global.logStatsAudit

Включить логирование статистики аудита

true

global.logStatsAdmission

Включить логирование статистики admission webhook

true

global.replicas

Количество реплик для основных компонентов

2

global.revisionHistoryLimit

Лимит истории ревизий развертывания

10

global.auditInterval

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

60

global.metricsBackends

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

["prometheus"]

global.auditMatchKindOnly

Аудитировать только соответствующие типы ресурсов

false

global.constraintViolationsLimit

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

20

global.auditFromCache

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

false

global.disableAudit

Отключить функцию аудита

false

global.disableMutation

Отключить мутирующие webhook

false

global.disableValidatingWebhook

Отключить валидирующий webhook

false

global.validatingWebhookName

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

gatekeeper-validating-webhook-configuration

global.validatingWebhookTimeoutSeconds

Время ожидания валидирующего webhook

3

global.validatingWebhookFailurePolicy

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

Ignore

global.validatingWebhookAnnotations

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

{}

global.validatingWebhookExemptNamespacesLabels

Метки для исключения namespaces

{}

global.validatingWebhookObjectSelector

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

{}

global.validatingWebhookMatchConditions

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

[]

global.validatingWebhookCheckIgnoreFailurePolicy

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

Fail

global.validatingWebhookCustomRules

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

{}

global.validatingWebhookURL

URL для валидирующего webhook

null

global.enableDeleteOperations

Включить операции удаления

false

global.enableConnectOperations

Включить операции подключения

false

global.enableExternalData

Включить поддержку внешних данных

true

global.enableGeneratorResourceExpansion

Включить расширение ресурсов генератора

true

global.enableTLSHealthcheck

Включить TLS-проверки здоровья

false

global.maxServingThreads

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

-1

global.mutatingWebhookName

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

gatekeeper-mutating-webhook-configuration

global.mutatingWebhookFailurePolicy

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

Ignore

global.mutatingWebhookReinvocationPolicy

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

Never

global.mutatingWebhookAnnotations

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

{}

global.mutatingWebhookExemptNamespacesLabels

Метки для исключения namespaces

{}

global.mutatingWebhookObjectSelector

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

{}

global.mutatingWebhookMatchConditions

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

[]

global.mutatingWebhookTimeoutSeconds

Время ожидания мутирующего webhook

1

global.mutatingWebhookCustomRules

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

{}

global.mutatingWebhookURL

URL для мутирующего webhook

null

global.mutationAnnotations

Включить аннотации мутаций

false

global.auditChunkSize

Размер chunk для аудита

500

global.logLevel

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

INFO

global.logDenies

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

false

global.logMutations

Логировать мутации

false

global.admissionEventsInvolvedNamespace

События admission в соответствующем namespace

false

global.auditEventsInvolvedNamespace

События аудита в соответствующем namespace

false

global.resourceQuota

Включить поддержку квот ресурсов

true

global.externaldataProviderResponseCacheTTL

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

3m

global.enableK8sNativeValidation

Включить нативную валидацию Kubernetes

true

image - настройки образов контейнеров#

Параметр

Описание

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

image.repository

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

{{ .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

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

v3.18.2

image.pullPolicy

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

IfNotPresent

image.pullSecrets

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

[]

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

Тег образа для CRD

v3.18.2

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

Параметр

Описание

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

postUpgrade.labelNamespace.serviceAccount.name

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

gatekeeper-update-namespace-label-post-upgrade

postUpgrade.labelNamespace.serviceAccount.create

Создать сервисный аккаунт

true

postUpgrade.labelNamespace.enabled

Включить обновление меток namespaces

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.18.2

postUpgrade.labelNamespace.image.pullPolicy

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

IfNotPresent

postUpgrade.labelNamespace.image.pullSecrets

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

[]

postUpgrade.labelNamespace.extraNamespaces

Дополнительные namespaces

[]

postUpgrade.labelNamespace.podSecurity

Настройки безопасности под

["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

Класс приоритета pod

""

postUpgrade.labelNamespace.affinity

Настройки affinity

{}

postUpgrade.labelNamespace.tolerations

Tolerations для размещения pod

[]

postUpgrade.labelNamespace.nodeSelector

Селектор узлов

{kubernetes.io/os: linux}

postUpgrade.labelNamespace.resources

Ресурсные требования

{}

postUpgrade.labelNamespace.securityContext.allowPrivilegeEscalation

Разрешить эскалацию привилегий

false

postUpgrade.labelNamespace.securityContext.capabilities.drop

Сбрасываемые capabilities

["ALL"]

postUpgrade.labelNamespace.securityContext.readOnlyRootFilesystem

Файловая система только для чтения

true

postUpgrade.labelNamespace.securityContext.runAsGroup

ID группы для запуска

999

postUpgrade.labelNamespace.securityContext.runAsNonRoot

Запуск от имени не-root пользователя

true

postUpgrade.labelNamespace.securityContext.runAsUser

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

1000

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

Параметр

Описание

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

postInstall.labelNamespace.serviceAccount.name

Имя сервисного аккаунта

gatekeeper-update-namespace-label

postInstall.labelNamespace.serviceAccount.create

Создать сервисный аккаунт

true

postInstall.labelNamespace.enabled

Включить обновление меток namespaces

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.18.2

postInstall.labelNamespace.image.pullPolicy

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

IfNotPresent

postInstall.labelNamespace.image.pullSecrets

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

[]

postInstall.labelNamespace.extraNamespaces

Дополнительные namespaces

[]

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

Класс приоритета pod

""

probeWebhook - настройки проверки webhook#

Параметр

Описание

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

probeWebhook.enabled

Включить проверку webhook

false

probeWebhook.image.registry

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

~

probeWebhook.image.repository

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

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

probeWebhook.image.tag

Тег образа curl

7.76.1

probeWebhook.image.pullPolicy

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

IfNotPresent

probeWebhook.image.pullSecrets

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

[]

probeWebhook.waitTimeout

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

60

probeWebhook.httpTimeout

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

2

probeWebhook.insecureHTTPS

Разрешить небезопасные HTTPS соединения

false

probeWebhook.priorityClassName

Класс приоритета pod

""

probeWebhook.affinity

Настройки affinity

{}

probeWebhook.tolerations

Tolerations для размещения pod

[]

probeWebhook.nodeSelector

Селектор узлов

{kubernetes.io/os: linux}

probeWebhook.securityContext.allowPrivilegeEscalation

Разрешить эскалацию привилегий

false

probeWebhook.securityContext.capabilities.drop

Сбрасываемые capabilities

["ALL"]

probeWebhook.securityContext.readOnlyRootFilesystem

Файловая система только для чтения

true

probeWebhook.securityContext.runAsGroup

ID группы для запуска

999

probeWebhook.securityContext.runAsNonRoot

Запуск от имени не-root пользователя

true

probeWebhook.securityContext.runAsUser

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

1000

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

Параметр

Описание

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

preUninstall.deleteWebhookConfigurations.serviceAccount.name

Имя сервисного аккаунта

gatekeeper-delete-webhook-configs

preUninstall.deleteWebhookConfigurations.serviceAccount.create

Создать сервисный аккаунт

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.18.2

preUninstall.deleteWebhookConfigurations.image.pullPolicy

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

IfNotPresent

preUninstall.deleteWebhookConfigurations.image.pullSecrets

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

[]

preUninstall.deleteWebhookConfigurations.priorityClassName

Класс приоритета pod

""

preUninstall.deleteWebhookConfigurations.affinity

Настройки affinity

{}

preUninstall.deleteWebhookConfigurations.tolerations

Tolerations для размещения pod

[]

preUninstall.deleteWebhookConfigurations.nodeSelector

Селектор узлов

{kubernetes.io/os: linux}

preUninstall.deleteWebhookConfigurations.resources

Ресурсные требования

{}

preUninstall.deleteWebhookConfigurations.securityContext.allowPrivilegeEscalation

Разрешить эскалацию привилегий

false

preUninstall.deleteWebhookConfigurations.securityContext.capabilities.drop

Сбрасываемые capabilities

["ALL"]

preUninstall.deleteWebhookConfigurations.securityContext.readOnlyRootFilesystem

Файловая система только для чтения

true

preUninstall.deleteWebhookConfigurations.securityContext.runAsGroup

ID группы для запуска

999

preUninstall.deleteWebhookConfigurations.securityContext.runAsNonRoot

Запуск от имени не-root пользователя

true

preUninstall.deleteWebhookConfigurations.securityContext.runAsUser

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

1000

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

Параметр

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

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

podAnnotations

Аннотации для всех pod Gatekeeper

{}

auditPodAnnotations - аннотации для pod аудита#

Параметр

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

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

auditPodAnnotations

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

{}

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

Параметр

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

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

podLabels

Метки для всех pod Gatekeeper

{}

podCountLimit - лимит количества pod#

Параметр

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

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

podCountLimit

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

"100"

secretAnnotations - аннотации для секретов#

Параметр

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

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

secretAnnotations

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

{}

enableRuntimeDefaultSeccompProfile - профиль seccomp по умолчанию#

Параметр

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

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

enableRuntimeDefaultSeccompProfile

Включить профиль seccomp по умолчанию

true

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

Параметр

Описание

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

controllerManager.serviceAccount.name

Имя сервисного аккаунта менеджера контроллера

gatekeeper-admin

controllerManager.exemptNamespaces

Исключенные namespaces

[]

controllerManager.exemptNamespacePrefixes

Исключенные префиксы namespaces

[]

controllerManager.hostNetwork

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

false

controllerManager.dnsPolicy

Политика DNS

ClusterFirst

controllerManager.port

Порт webhook сервера

8443

controllerManager.metricsPort

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

8888

controllerManager.metrics.enabled

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

true

controllerManager.healthPort

Порт для проверок здоровья

9090

controllerManager.readinessTimeout

Время ожидания readiness проверок

1

controllerManager.livenessTimeout

Время ожидания liveness проверок

1

controllerManager.priorityClassName

Класс приоритета 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.podAffinityTerm.labelSelector.matchExpressions.key

Ключ для anti-affinity

gatekeeper.sh/operation

controllerManager.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator

Оператор для anti-affinity

In

controllerManager.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values

Значения для anti-affinity

["webhook"]

controllerManager.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey

Ключ топологии для anti-affinity

kubernetes.io/hostname

controllerManager.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight

Вес для anti-affinity

100

controllerManager.topologySpreadConstraints

Ограничения распределения топологии

[]

controllerManager.tolerations

Tolerations для размещения pod

[]

controllerManager.nodeSelector

Селектор узлов

{kubernetes.io/os: linux}

controllerManager.resources.limits.cpu

Лимит CPU

500m

controllerManager.resources.limits.memory

Лимит памяти

1024Mi

controllerManager.resources.requests.cpu

Запрос CPU

100m

controllerManager.resources.requests.memory

Запрос памяти

512Mi

controllerManager.securityContext.allowPrivilegeEscalation

Разрешить эскалацию привилегий

false

controllerManager.securityContext.capabilities.drop

Сбрасываемые capabilities

["ALL"]

controllerManager.securityContext.readOnlyRootFilesystem

Файловая система только для чтения

true

controllerManager.securityContext.runAsGroup

ID группы для запуска

10101

controllerManager.securityContext.runAsNonRoot

Запуск от имени не-root пользователя

true

controllerManager.securityContext.runAsUser

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

10101

controllerManager.podSecurityContext.fsGroup

Группа файловой системы

999

controllerManager.podSecurityContext.supplementalGroups

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

controllerManager.extraRules

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

[]

controllerManager.networkPolicy.enabled

Включить сетевые политики

false

controllerManager.networkPolicy.ingress

Правила входящего трафика

[]

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

Параметр

Описание

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

audit.serviceAccount.name

Имя сервисного аккаунта аудита

gatekeeper-admin

audit.hostNetwork

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

false

audit.dnsPolicy

Политика DNS

ClusterFirst

audit.metricsPort

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

8888

audit.metrics.enabled

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

true

audit.healthPort

Порт для проверок здоровья

9090

audit.readinessTimeout

Время ожидания readiness проверок

1

audit.livenessTimeout

Время ожидания liveness проверок

1

audit.priorityClassName

Класс приоритета pod

system-cluster-critical

audit.disableCertRotation

Отключить ротацию сертификатов

false

audit.podLabels

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

{}

audit.affinity

Настройки affinity

{}

audit.tolerations

Tolerations для размещения pod

[]

audit.nodeSelector

Селектор узлов

{kubernetes.io/os: linux}

audit.resources.limits.cpu

Лимит CPU

500m

audit.resources.limits.memory

Лимит памяти

1024Mi

audit.resources.requests.cpu

Запрос CPU

100m

audit.resources.requests.memory

Запрос памяти

512Mi

audit.securityContext.allowPrivilegeEscalation

Разрешить эскалацию привилегий

false

audit.securityContext.capabilities.drop

Сбрасываемые capabilities

["ALL"]

audit.securityContext.readOnlyRootFilesystem

Файловая система только для чтения

true

audit.securityContext.runAsGroup

ID группы для запуска

10100

audit.securityContext.runAsNonRoot

Запуск от имени не-root пользователя

true

audit.securityContext.runAsUser

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

10100

audit.podSecurityContext.fsGroup

Группа файловой системы

999

audit.podSecurityContext.supplementalGroups

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

audit.writeToRAMDisk

Записывать данные на RAM-диск

false

audit.extraRules

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

[]

crds - настройки Custom Resource Definitions#

Параметр

Описание

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

crds.affinity

Настройки affinity

{}

crds.tolerations

Tolerations для размещения pod

[]

crds.nodeSelector

Селектор узлов

{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

Запуск от имени не-root пользователя

true

crds.securityContext.runAsUser

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

65532

pdb - настройки Pod Disruption Budget#

Параметр

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

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

pdb.controllerManager.minAvailable

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

1

service - настройки сервисов#

Параметр

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

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

service

Настройки сервисов Kubernetes

{}

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

Параметр

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

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

disabledBuiltins

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

["{http.send}"]

psp - настройки Pod Security Policies#

Параметр

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

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

psp.enabled

Включить Pod Security Policies

false

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

Параметр

Описание

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

upgradeCRDs.serviceAccount.create

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

true

upgradeCRDs.serviceAccount.name

Имя сервисного аккаунта для обновления CRD

gatekeeper-admin-upgrade-crds

upgradeCRDs.enabled

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

true

upgradeCRDs.extraRules

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

[]

upgradeCRDs.priorityClassName

Класс приоритета pod

""

rbac - настройки RBAC#

Параметр

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

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

rbac.create

Создать RBAC ресурсы

true

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

Параметр

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

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

externalCertInjection.enabled

Включить внешнее внедрение сертификатов

false

externalCertInjection.secretName

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

gatekeeper-webhook-server-cert

serviceAccount - настройки сервисных аккаунтов#

Параметр

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

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

serviceAccount.gatekeeperAdmin.create

Создать сервисный аккаунт администратора Gatekeeper

true

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

Параметр

Описание

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

constraints.ReadOnlyRootFileSystem.namespaces

Namespaces для применения политики

["default", "applications"]

constraints.ReadOnlyRootFileSystem.enabled

Включить требование read-only корневой файловой системы

false

constraints.K8sPSPVolumeTypes.volumes

Разрешенные типы томов

["configMap", "emptyDir", "projected", "secret", "downwardAPI", "persistentVolumeClaim", "flexVolume"]

constraints.K8sPSPVolumeTypes.excludedNamespaces

Исключенные namespaces

["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-devops"]

constraints.K8sPSPVolumeTypes.enabled

Включить ограничение типов монтируемых томов

false

constraints.K8sImageDigests.excludedNamespaces

Исключенные namespaces

["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"]

constraints.K8sImageDigests.enabled

Включить требование SHA256 для образов контейнеров

false

constraints.K8sContainerLimits.parameters.memory

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

"16Gi"

constraints.K8sContainerLimits.parameters.cpu

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

"8"

constraints.K8sContainerLimits.excludedNamespaces

Исключенные namespaces

["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"]

constraints.K8sContainerLimits.enabled

Включить лимиты ресурсов контейнеров

false

constraints.K8sAllowedRepos.repos

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

[{{ .Values.global.image.registry }}]

constraints.K8sAllowedRepos.enabled

Включить политику разрешенных реестров образов

false