admission-policy-engine

Версия схемы: 1

  • settings
    объект
    • settings.denyVulnerableImages
      объект

      Настройки trivy-провайдера.

      Trivy-провайдер запрещает создание Pod/Deployment/StatefulSet/DaemonSet с образами, которые имеют уязвимости в пространствах имен с лейблом security.deckhouse.io/trivy-provider: "".

      Доступно только в enterprise edition.

      • settings.denyVulnerableImages.enabled
        булевый

        Включить trivy-провайдер.

        По умолчанию: false

      • settings.denyVulnerableImages.registrySecrets
        массив объектов

        Список дополнительных секретов приватных регистри.

        По умолчанию для загрузки образов для сканирования используется секрет deckhouse-registry.

        По умолчанию: []

        • settings.denyVulnerableImages.registrySecrets.name
          строка

          Обязательный параметр

        • settings.denyVulnerableImages.registrySecrets.namespace
          строка

          Обязательный параметр

      • settings.denyVulnerableImages.storageClass
        строка

        Имя StorageClass для использования trivy_provider.

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

        Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

        Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

        Если указать false, будет принудительно использоваться emptyDir.

        Примеры:

        storageClass: ceph-ssd
        
        storageClass: 'false'
        
    • settings.podSecurityStandards
      объект

      Настройки политик Pod Security Standards (PSS).

      • settings.podSecurityStandards.defaultPolicy
        строка

        Определяет политику Pod Security Standards по умолчанию для всех несистемных пространств имен:

        • Privileged — политика без ограничений. Данная политика допускает эскалацию привилегий;
        • Baseline — политика с минимальными ограничениями, ограничивающая использование эскалаций привилегий;
        • Restricted — политика с максимальными ограничениями, соотвествущая актуальным рекомендациям по безопасному запуску приложений в кластере.

        По умолчанию:

        • Baseline — при первичной установке Deckhouse версии v1.55 и выше;
        • Privileged — при первичной установке Deckhouse версии ниже v1.55 (обновление Deckhouse в кластере на версию v1.55 и выше не меняет политику по умолчанию на Baseline).

        Допустимые значения: Privileged, Baseline, Restricted

      • settings.podSecurityStandards.enforcementAction
        строка

        Действие, которое будет выполнено по результатам проверки ограничений:

        • Deny — запрет;
        • Dryrun — отсутствие действия. Применяется при отладке. Информацию о событии можно посмотреть в Grafana или консоли с помощью kubectl;
        • Warn — аналогично Dryrun, но дополнительно к информации о событии будет выведена информация о том, из-за какого ограничения (constraint) был бы запрет действия, если бы вместо Warn использовался Deny.

        По умолчанию: "Deny"

        Допустимые значения: Warn, Deny, Dryrun

      • settings.podSecurityStandards.policies
        объект

        Определяет дополнительные параметры политик

        • settings.podSecurityStandards.policies.hostPorts
          объект

          Настройки ограничения HostPort.

          • settings.podSecurityStandards.policies.hostPorts.knownRanges
            массив объектов

            Список диапазонов портов, которые будут разрешены в привязке hostPort.

            • settings.podSecurityStandards.policies.hostPorts.knownRanges.max
              целочисленный
            • settings.podSecurityStandards.policies.hostPorts.knownRanges.min
              целочисленный

cert-manager

Версия схемы: 1

  • settings
    объект
    • settings.cleanupOrphanSecrets
      булевый

      Удалять Secret с сертификатом автоматически, если соответствующий ресурс Certificate удален из кластера.

      По умолчанию: false

      Примеры:

      cleanupOrphanSecrets: true
      
      cleanupOrphanSecrets: false
      
    • settings.cloudDNSServiceAccount
      строка

      Service Account для Google Cloud из того же проекта с ролью Администратора DNS.

      Пример:

      cloudDNSServiceAccount: eyJzYSI6ICJhYmNkZWZnaEBzZXJ2aWNlYWNjb3VudC5jb20iLCAicHJvamVjdF9pZCI6ImFhYWFhIn0=
      
    • settings.cloudflareAPIToken
      строка

      API Tokens позволяют использовать ключи, привязанные к определенным DNS-зонам.

      Рекомендуется использовать API Tokens для более высокой безопасности, поскольку они имеют более строгие разрешения и могут быть легко отозваны.

      Способ проверки того, что домены, указанные в ресурсе Certificate, для которых заказывается сертификат, находятся под управлением cert-manager у DNS-провайдера Cloudflare. Проверка происходит путем добавления специальных TXT-записей для домена ACME DNS01 Challenge Provider.

      Пример:

      cloudflareAPIToken: token
      
    • settings.cloudflareEmail
      строка

      Почтовый ящик проекта, на который выдавались доступы для управления Cloudflare.

      Пример:

      cloudflareEmail: example@example.com
      
    • settings.cloudflareGlobalAPIKey
      строка

      Cloudflare Global API key для управления DNS-записями.

      Способ проверки того, что домены, указанные в ресурсе Certificate, для которых заказывается сертификат, находятся под управлением cert-manager у DNS-провайдера Cloudflare. Проверка происходит путем добавления специальных TXT-записей для домена ACME DNS01 Challenge Provider.

      Пример:

      cloudflareGlobalAPIKey: key
      
    • settings.digitalOceanCredentials
      строка

      Access Token от Digital Ocean API, который можно создать в разделе API.

      Пример:

      digitalOceanCredentials: creds
      
    • settings.disableLetsencrypt
      булевый

      Не создавать ClusterIssuer letsencrypt и letsencrypt-staging в кластере (если true).

      Примеры:

      disableLetsencrypt: true
      
      disableLetsencrypt: false
      
    • settings.email
      строка

      Почтовый ящик проекта, на который LetsEncrypt будет слать уведомления.

      Пример:

      email: example@example.com
      
    • settings.enableCAInjector
      булевый

      Включить CAInjector. Он необходим только для инъекции CA-сертификатов в ValidatingWebhookConfiguration, MutatingWebhookConfiguration, CustomResourceDefinition и APIService. Deckhouse не использует CAInjector, поэтому включать нужно только в том случае, если вы используете в своих сервисах пользовательские инъекции CA.

      По умолчанию: false

      Примеры:

      enableCAInjector: true
      
      enableCAInjector: false
      
    • settings.maxConcurrentChallenges
      целочисленный

      Максимальное количество одновременных Challenges в статусе Processing

      Допустимые значения: 0 <= X

      Пример:

      maxConcurrentChallenges: 25
      
    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      nodeSelector:
        has-gpu: 'true'
      
    • settings.route53AccessKeyID
      строка

      Access Key ID пользователя с необходимыми правами.

      Amazon Route53 IAM Policy для управления доменными записями домена.

      Пример:

      route53AccessKeyID: key_id
      
    • settings.route53SecretAccessKey
      строка

      Secret Access Key пользователя с необходимыми правами для управления доменными записями домена.

      Пример:

      route53SecretAccessKey: secret
      
    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      tolerations:
      - key: dedicated.deckhouse.io
        operator: Equal
        value: cert-manager
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

chrony

Версия схемы: 1

  • settings
    объект
    • settings.ntpServers
      массив строк

      Список NTP-серверов для синхронизации.

      По умолчанию: ["pool.ntp.org"]

      Примеры:

      ntpServers:
      - pool.ntp.org
      
      ntpServers:
      - pool.ntp.org
      - ntp.ubuntu.com
      - time.google.com
      

cilium-hubble

Версия схемы: 2

  • settings
    объект
    • settings.auth
      объект

      Опции, связанные с аутентификацией и авторизацией доступа к веб-интерфейсу Hubble.

      • settings.auth.allowedUserGroups
        массив строк

        Список групп, пользователям которых разрешен доступ к веб-интерфейсу Hubble.

        Используется, если включен модуль user-authn или задан параметр externalAuthentication.

      • settings.auth.externalAuthentication
        объект

        Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля Nginx auth_request.

        Внешняя аутентификация включается автоматически, если включен модуль user-authn.

        • settings.auth.externalAuthentication.authSignInURL
          строка

          URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).

          Пример:

          authSignInURL: https://example.com/dex/sign_in
          
        • settings.auth.externalAuthentication.authURL
          строка

          URL сервиса аутентификации.

          Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.

          Пример:

          authURL: https://example.com/dex/auth
          
      • settings.auth.whitelistSourceRanges
        массив строк

        Список адресов (CIDR), которым разрешен доступ к веб-интерфейсу Hubble.

        Пример:

        whitelistSourceRanges:
        - 1.1.1.1/32
        
    • settings.debugLogging
      булевый

      Включает отладочный уровень логирования для компонентов Hubble.

      По умолчанию: false

    • settings.https
      объект

      Тип используемого сертификата.

      При использовании этого параметра полностью переопределяются глобальные настройки global.modules.https.

      Примеры:

      https:
        mode: Disabled
      
      https:
        mode: OnlyInURI
      
      https:
        mode: CustomCertificate
        customCertificate:
          secretName: foobar
      
      https:
        mode: CertManager
        certManager:
          clusterIssuerName: letsencrypt
      
      • settings.https.certManager
        объект

        Настройки для certmanager.

        • settings.https.certManager.clusterIssuerName
          строка

          Тип ClusterIssuer’а, используемого для заказа SSL-сертификата (в данный момент доступны letsencrypt, letsencrypt-staging, selfsigned, но возможно определить свои).

          По умолчанию: "letsencrypt"

          Примеры:

          clusterIssuerName: letsencrypt
          
          clusterIssuerName: letsencrypt-staging
          
          clusterIssuerName: selfsigned
          
      • settings.https.customCertificate
        объект

        Настройки для использования пользовательского сертификата.

        • settings.https.customCertificate.secretName
          строка

          Имя Secret’а в пространстве имен d8-system, который будет использоваться для веб-интерфейса Hubble.

          Secret должен быть в формате kubernetes.io/tls.

      • settings.https.mode
        строка

        Режимы работы HTTPS:

        • CertManager — доступ по HTTPS с заказом сертификата согласно ClusterIssuer’у, заданному в параметре certManager.clusterIssuerName.
        • CustomCertificate — доступ по HTTPS с использованием сертификата из пространства имен d8-system.
        • Disabled — доступ только по HTTP.
        • OnlyInURI — доступ по HTTP, подразумевая, что перед веб-интерфейсом стоит внешний HTTPS-балансер, который терминирует HTTPS и все ссылки в user-authn будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

        По умолчанию: "CertManager"

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.ingressClass
      строка

      Класс Ingress-контроллера, который используется для Hubble.

      Опциональный параметр, по умолчанию используется глобальное значение modules.ingressClass.

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

cni-cilium

Версия схемы: 1

  • settings
    объект
    • settings.bpfLBMode
      строка

      Режим работы балансировщика eBPF:

      • SNAT — трафик от клиента до пода (и обратно) проходит через NAT, соответственно теряется адрес отправителя.
      • DSR — трафик от клиента до пода проходит с сохранением адреса отправителя, а обратно - согласно правилам роутинга (минуя балансировщик). Этот режим экономит сетевой трафик, уменьшает задержки, но работает только для TCP трафика.
      • Hybrid — TCP трафик обрабатывается в режиме DSR, а UDP - в режиме SNAT.

      По умолчанию: "Hybrid"

      Допустимые значения: SNAT, Hybrid, DSR

    • settings.createNodeRoutes
      булевый

      Включает создание маршрутов к подам на других узлах.

      Все узлы должны находиться в одной сети L2.

    • settings.debugLogging
      булевый

      Включает отладочный уровень логирования для компонентов Cilium.

      По умолчанию: false

    • settings.labelsRegex
      массив строк

      Cilium создает идентификаторы безопасности основываясь на лейблах сущностей k8s, чем больше лейблов участвует в этом процессе - тем более детализированно можно настроить доступы. Но в кластерах больших объёмов излишняя детализация может создать большую нагрузку, и при помощи опции labelsRegex можно более явно указать - какие лейблы будут использоваться для политик безопасности, а какими следует пренебречь. Подробнее об уменьшении количества создаваемых identity можно прочитать в документации

      Каждый лейбл должен задаваться RegExp-выражением в формате YAML quoted string с экранированием спецсимволов.

      Пример:

      labelsRegex:
      - k8s:!app\.kubernetes\.io
      - k8s:io\.cilium\.k8s\.policy
      
    • settings.masqueradeMode
      строка

      Режим работы SNAT для трафика подов, исходящего из кластера.

      • BPF — использовать BPF. Базовый режим работы.

        В данном режиме сетевые запросы из подов не будут подвержены процедуре Source NAT, если IP-адрес назначения принадлежит podSubnetCIDR или InternalIP/ExternalIP любого из узлов кластера.

      • Netfilter — использовать Netfilter(iptables/nf_tables).

        В данном режиме сетевые запросы из подов не будут подвержены процедуре Source NAT, если IP-адрес назначения принадлежит podSubnetCIDR или InternalIP любого из узлов кластера.

      В режиме BPF, если на узле кластера указан ExternalIP, отличный от InternalIP, но этот IP-адрес не назначен на ни на один интерфейс, то он будет не доступен с соседних узлов из сети подов. Режим Netfilter позволяет обойти это ограничение. Однако при этом некоторые другие функции перестают работать, в частности EgressGateway.

      По умолчанию: "BPF"

      Допустимые значения: Netfilter, BPF

    • settings.policyAuditMode
      булевый

      Отключает влияние сетевых политик на трафик. Сетевые запросы, попавшие под запрет политик, просто логируются.

      По умолчанию: false

    • settings.resourcesManagement

      Настройки запросов (requests) и ограничений (limits) использования CPU и памяти подами агента cilium.

      Примеры:

      resourcesManagement:
        mode: VPA
        vpa:
          mode: Auto
          cpu:
            min: 50m
            max: 2
            limitRatio: 1.5
          memory:
            min: 256Mi
            max: 2Gi
            limitRatio: 1.5
      
      resourcesManagement:
        mode: Static
        static:
          requests:
            cpu: 55m
            memory: 256Mi
          limits:
            cpu: 2
            memory: 2Gi
      
      • settings.resourcesManagement.mode
        строка

        Режим управления ресурсами:

        • Static — классический, с помощью указания запросов/ограничений (requests/limits). Настраивается в секции параметров static;
        • VPA — с помощью VPA. Настраивается в секции параметров vpa.

        По умолчанию: "VPA"

        Допустимые значения: VPA, Static

      • settings.resourcesManagement.static
        объект

        Настройка управления ресурсами в режиме Static.

        • settings.resourcesManagement.static.limits
          объект

          Настройка ограничений (limits) использования CPU и памяти.

          • settings.resourcesManagement.static.limits.cpu

            Настройка ограничений использования CPU (CPU limits).

          • settings.resourcesManagement.static.limits.memory

            Настройка ограничений использования памяти (memory limits).

        • settings.resourcesManagement.static.requests
          объект

          Настройки запросов ресурсов (requests) подов.

          • settings.resourcesManagement.static.requests.cpu

            Настройка запроса CPU (CPU requests).

          • settings.resourcesManagement.static.requests.memory

            Настройка запроса памяти (memory requests).

      • settings.resourcesManagement.vpa
        объект

        Настройка управления ресурсами в режиме VPA.

        • settings.resourcesManagement.vpa.cpu
          объект

          Настройки VPA при работе с CPU.

          • settings.resourcesManagement.vpa.cpu.limitRatio
            число

            Коэффициент расчета ограничений использования CPU относительно запросов (limits/requests).

            Применяется для расчета начальных ограничений использования CPU для пода (CPU limits).

            Если параметр указан, то VPA, при пересчете запросов CPU (CPU requests) будет пересчитывать ограничения использования CPU (CPU limits) сохраняя указанное соотношение ограничений к запросам (limits/requests).

          • settings.resourcesManagement.vpa.cpu.max

            Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 4

          • settings.resourcesManagement.vpa.cpu.min

            Минимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 100m

        • settings.resourcesManagement.vpa.memory
          объект

          Настройка ограничений (limits) использования CPU и памяти.

          • settings.resourcesManagement.vpa.memory.limitRatio
            число

            Коэффициент расчета ограничений использования памяти относительно запросов (limits/requests).

            Применяется для расчета начальных ограничений использования памяти для пода (memory limits).

            Если параметр указан, то VPA, при пересчете запросов памяти (memory requests) будет пересчитывать ограничения использования памяти (memory limits) сохраняя указанное соотношение ограничений к запросам (limits/requests).

          • settings.resourcesManagement.vpa.memory.max

            Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 4Gi

          • settings.resourcesManagement.vpa.memory.min

            Минимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 128Mi

        • settings.resourcesManagement.vpa.mode
          строка

          Режим работы VPA.

          По умолчанию: "Initial"

          Допустимые значения: Initial, Auto

    • settings.svcSourceRangeCheck
      булевый

      Для сервисов с типом loadBalancer включает проверку source IP на его соответствие loadBalancer.sourceRanges. Проверка не производится, если доступ производится изнутри кластера или параметр sourceRanges пуст/не указан. Некоторые облачные провайдеры в своих реализациях loadBalancer поддерживают фильтрацию входящего трафика на основе параметра sourceRanges, в таком случае документация по cilium рекомендует отключать проверку svcSourceRangeCheck.

      Не включайте, если перед сервисами есть другой балансировщик или какие-либо виды SNAT.

      По умолчанию: false

    • settings.tunnelMode
      строка

      Режим работы туннеля.

      Внимание! После изменения параметра необходимо перезагрузить все узлы, иначе могут быть проблемы с доступностью подов.

      Внимание! Режим VXLAN не совместим со следующими режимами bpfLBMode: Hybrid, DSR. Если tunnelMode настроен на VXLAN, то bpfLBMode будет переопределён на SNAT автоматически.

      По умолчанию: "Disabled"

      Допустимые значения: Disabled, VXLAN

control-plane-manager

Версия схемы: 1

Пример:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: control-plane-manager
spec:
  version: 1
  enabled: true
  settings:
    apiserver:
      bindToWildcard: true
      certSANs:
      - bakery.infra
      - devs.infra
      loadBalancer: {}
  • settings
    объект
    • settings.apiserver
      объект

      Параметры kube-apiserver.

      • settings.apiserver.admissionPlugins
        массив строк

        Список включенных дополнительных admission-плагинов.

        Обратите внимание, что, помимо включенных по умолчанию в Kubernetes admission-плагинов, также всегда включены (без возможности отключения) следующие admission-плагины:

        • ExtendedResourceToleration;
        • PodNodeSelector;
        • PodTolerationRestriction;
        • EventRateLimit, который использует следующую конфигурацию:

          apiVersion: eventratelimit.admission.k8s.io/v1alpha1
          kind: Configuration
          limits:
          - type: Namespace
            qps: 50
            burst: 100
            cacheSize: 2000
          

        Admission-плагин PodNodeSelector не требует указания глобальной конфигурации, он использует только аннотации на пространстве имен (namespace’ах).

        Пример:

        admissionPlugins:
        - AlwaysPullImages
        - NamespaceAutoProvision
        
        • Элемент массива
          строка

          Допустимые значения: AlwaysPullImages, NamespaceAutoProvision, OwnerReferencesPermissionEnforcement, PodNodeSelector, PodTolerationRestriction

      • settings.apiserver.auditLog
        объект

        Параметры аудита.

        По умолчанию: {"output":"File"}

        • settings.apiserver.auditLog.output
          строка

          Обязательный параметр

          Тип потока для вывода журнала аудита.

          По умолчанию: "File"

          Допустимые значения: File, Stdout

          Пример:

          output: Stdout
          
        • settings.apiserver.auditLog.path
          строка

          Путь к директории. Действует только в случае output: "File".

          По умолчанию: "/var/log/kube-audit"

          Шаблон: ^[a-zA-Z0-9_/.-]+[a-zA-Z0-9_.-]$

      • settings.apiserver.auditPolicyEnabled
        булевый

        Применяет дополнительные политики аудита с конфигурацией из Secret’а kube-system/audit-policy.

        По умолчанию: false

      • settings.apiserver.authn
        объект

        Опциональные параметры аутентификации клиентов Kubernetes API.

        По умолчанию используются данные из ConfigMap, устанавливаемого модулем user-authn.

        • settings.apiserver.authn.oidcCA
          строка

          CA OIDC-провайдера.

        • settings.apiserver.authn.oidcIssuerAddress
          строка

          Сетевой адрес OIDC-провайдера.

          Примеры:

          oidcIssuerAddress: 1.2.3.4
          
          oidcIssuerAddress: ''
          
        • settings.apiserver.authn.oidcIssuerURL
          строка

          URL OIDC-провайдера.

          Пример:

          oidcIssuerURL: https://my-super-site.tech/
          
        • settings.apiserver.authn.webhookCA
          строка

          CA аутентификационного webhook’a.

        • settings.apiserver.authn.webhookCacheTTL
          строка

          Продолжительность кэширования ответов от аутентификационного webhook’a.

          Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.

          Шаблон: ^([0-9]+h)?([0-9]+m)?([0-9]+s)?$

          Пример:

          webhookCacheTTL: 5m
          
        • settings.apiserver.authn.webhookURL
          строка

          URL аутентификационного webhook’а.

          Пример:

          webhookURL: https://127.0.0.1:40443/
          
      • settings.apiserver.authz
        объект

        Параметры авторизации клиентов Kubernetes API.

        По умолчанию используются данные из ConfigMap, устанавливаемого модулем user-authz.

        • settings.apiserver.authz.webhookCA
          строка

          CA webhook’а авторизации.

        • settings.apiserver.authz.webhookURL
          строка

          URL webhook’а авторизации.

          Пример:

          webhookURL: https://127.0.0.1:40443/
          
      • settings.apiserver.basicAuditPolicyEnabled
        булевый

        Применяет базовые политики аудита Deckhouse.

        По умолчанию: true

      • settings.apiserver.bindToWildcard
        булевый

        Прослушивание на 0.0.0.0.

        По умолчанию API-сервер слушает на hostIP, который обычно соответствует Internal-адресу узла, но это зависит от типа кластера (Static или Cloud) и выбранной схемы размещения (layout).

        По умолчанию: false

      • settings.apiserver.certSANs
        массив строк

        Массив строк, список дополнительных SANs, с которыми будет сгенерирован сертификат API-сервера.

        Кроме переданного списка, всегда используется и следующий список:

        • kubernetes;
        • kubernetes.default;
        • kubernetes.default.svc;
        • kubernetes.default.svc.cluster.local;
        • Адрес API-сервера кластера;
        • 127.0.0.1;
        • DNS-имя хоста (hostname);
        • IP-адрес хоста.

        Пример:

        certSANs:
        - my-site.com
        - 192.168.67.76
        
        • Элемент массива
          строка

          Шаблон: ^[0-9a-zA-Z\.-]+$

      • settings.apiserver.encryptionEnabled
        булевый

        Включает режим encrypting secret data at rest.

        Генерирует Secret kube-system/d8-secret-encryption-key, содержащий ключ шифрования.

        Важно! Этот режим нельзя отключить!

        По умолчанию: false

      • settings.apiserver.loadBalancer
        объект

        Создание сервиса kube-system/d8-control-plane-apiserver с типом LoadBalancer.

        • settings.apiserver.loadBalancer.annotations
          объект

          Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.

          Внимание! Модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа LoadBalancer’а применяются только при создании сервиса, для обновления подобных параметров вам необходимо будет удалить и добавить параметр apiserver.loadBalancer.

        • settings.apiserver.loadBalancer.port
          целочисленный

          Внешний порт TCP-балансировщика.

          По умолчанию: 443

          Допустимые значения: 1 <= X <= 65534

        • settings.apiserver.loadBalancer.sourceRanges
          массив строк

          Список CIDR, которым разрешен доступ к API.

          Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

          • Элемент массива
            строка

            Шаблон: ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\/[0-9]+$

      • settings.apiserver.serviceAccount
        объект

        Настройки выпуска ServiceAccount’ов.

        Примеры:

        serviceAccount: {}
        
        serviceAccount:
          additionalAPIAudiences:
          - istio-ca
        
        • settings.apiserver.serviceAccount.additionalAPIAudiences
          массив строк

          Список дополнительных API audience’ов, которые следует добавить при создании токенов ServiceAccount.

          Audience по умолчанию, автоматически генерируются на основе шаблона https://kubernetes.default.svc.${clusterDomain}, например, https://kubernetes.default.svc.cluster.local. Аутентификатор токенов ServiceAccount проверяет, что токены, использованные с API, привязаны как минимум к одной из этих audiences.

          Этот вариант полезен при переходе от одного издателя API к другому.

        • settings.apiserver.serviceAccount.additionalAPIIssuers
          массив строк

          Список дополнительных издателей API токенов ServiceAccount, которые нужно включить при их создании.

          Эти издатели (iss) используются для проверки источника токенов, чтобы гарантировать, что они поступают от доверенных сущностей.

          Первый издатель автоматически генерируется по шаблону https://kubernetes.default.svc.${clusterDomain}, например, https://kubernetes.default.svc.cluster.local. Когда указано несколько издателей, то первый используется для генерации токенов, а все указанные издатели принимаются для валидации токенов.

          Этот вариант полезен при переходе от одного API издателя к другому.

        • settings.apiserver.serviceAccount.issuer
          строка

          Издатель ServiceAccount’ов. Это URL API-сервера. Значения этого поля используются как iss claim токена и для проверки JWT-токенов ServiceAccount.

          Обратите внимание, что все поды в кластере, использующие токены ServiceAccount, должны быть перезапущены при изменении этой опции.

          Пример:

          issuer: https://api.example.com
          
    • settings.etcd
      объект

      Параметры etcd.

      • settings.etcd.externalMembersNames
        массив строк

        Массив имен внешних etcd member’ов (эти member’ы не будут удаляться).

        Пример:

        externalMembersNames:
        - main-master-1
        - my-external-member
        
        • Элемент массива
          строка

          Шаблон: ^[0-9a-zA-Z\.-:\-\/]+$

      • settings.etcd.maxDbSize
        число

        quota-backend-bytes параметр. Deckhouse автоматически управляет quota-backend-bytes параметром. Если параметр maxDbSize установлен, Deckhouse будет использовать это значение для параметра quota-backend-bytes etcd.

        Минимальное значение: 512MB.

        Максимальное значение: 8GB.

        Экспериментальный. Может быть удален в будущем.

        Допустимые значения: 536870912 <= X <= 8589934592

    • settings.failedNodePodEvictionTimeoutSeconds
      целочисленный

      Количество секунд, по прошествии которых с узла в статусе Unreachable будут удалены поды.

      Важно! При изменении этого параметра потребуется перезапуск подов.

      По умолчанию: 300

    • settings.nodeMonitorGracePeriodSeconds
      целочисленный

      Число секунд, через которое узел перейдет в состояние Unreachable при потере с ним связи.

      По умолчанию: 40

descheduler

extended-monitoring

Версия схемы: 2

  • settings
    объект
    • settings.certificates
      объект

      Настройки для мониторинга сертификатов в кластере Kubernetes.

      • settings.certificates.exporterEnabled
        булевый

        Включен ли certExporter.

        По умолчанию: false

    • settings.events
      объект

      Настройки для мониторинга event’ов в кластере Kubernetes.

      • settings.events.exporterEnabled
        булевый

        Включен ли eventsExporter.

        По умолчанию: false

      • settings.events.severityLevel
        строка

        Enables eventsExporter.

        По умолчанию: "OnlyWarnings"

        Допустимые значения: All, OnlyWarnings

    • settings.imageAvailability
      объект

      Настройки для мониторинга доступности образов в кластере.

      • settings.imageAvailability.exporterEnabled
        булевый

        Включен ли imageAvailabilityExporter.

        По умолчанию: true

      • settings.imageAvailability.forceCheckDisabledControllers
        массив строк

        Список контроллеров, которые необходимо проверять, даже если количество реплик подов равняется 0 или контроллер находится в статусе suspend (приостановленный).

        Укажите All, для проверки всех типов контроллеров.

        Пример:

        forceCheckDisabledControllers:
        - Deployment
        - StatefulSet
        
        • Элемент массива
          строка

          Допустимые значения: Deployment, StatefulSet, DaemonSet, CronJob, All

      • settings.imageAvailability.ignoredImages
        массив строк

        Список образов, для которых нужно пропустить проверку, например alpine:3.12 или quay.io/test/test:v1.1.

        Пример:

        ignoredImages:
        - alpine:3.10
        - alpine:3.2
        
      • settings.imageAvailability.mirrors
        массив объектов

        Список зеркал для container registry.

        Пример:

        mirrors:
        - original: docker.io
          mirror: mirror.gcr.io
        - original: internal-registry.com
          mirror: mirror.internal-registry.com
        
        • settings.imageAvailability.mirrors.mirror
          строка

          Обязательный параметр

        • settings.imageAvailability.mirrors.original
          строка

          Обязательный параметр

      • settings.imageAvailability.registry
        объект

        Настройки подключения к container registry.

        • settings.imageAvailability.registry.scheme
          строка

          Протокол доступа к container registry.

          По умолчанию: "HTTPS"

          Допустимые значения: HTTP, HTTPS

        • settings.imageAvailability.registry.tlsConfig
          объект

          Настройки подключения к container registry

          • settings.imageAvailability.registry.tlsConfig.ca
            строка

            Корневой сертификат, которым можно проверить сертификат container registry при работе по HTTPS (если registry использует самоподписанные SSL-сертификаты).

          • settings.imageAvailability.registry.tlsConfig.insecureSkipVerify
            булевый

            Пропускать ли валидацию TLS-сертификата для container registry.

            По умолчанию: false

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

global

Версия схемы: 2

  • settings
    объект
    • settings.defaultClusterStorageClass
      строка

      Имя StorageClass, который DKP определит как StorageClass используемый в кластере по умолчанию.

      DKP запрещает вручную добавлять или изменять default-аннотацию (storageclass.kubernetes.io/is-default-class='true') у StorageClass. Используйте параметр, чтобы определять или изменять StorageClass используемый в кластере по умолчанию.

      Если значение не указано, фактический StorageClass используемый в кластере по умолчанию будет определяться в следующем порядке:

      • StorageClass в кластере, имеющий default-аннотацию (storageclass.kubernetes.io/is-default-class='true');
      • Первый (по алфавиту) StorageClass из создаваемых модулем облачного провайдера (если какой-либо модуль облачного провайдера используется).

      По умолчанию: ""

    • settings.highAvailability
      булевый

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

      Если значение не указано, оно определяется автоматически как true для кластеров с более чем одним master-узлом. В остальных случаях значение определяется как false.

      Примеры:

      highAvailability: true
      
      highAvailability: false
      
    • settings.modules
      объект

      Общие параметры модулей Deckhouse.

      • settings.modules.https
        объект

        Способ реализации протокола HTTPS, используемый модулями Deckhouse.

        Примеры:

        https:
          certManager:
            clusterIssuerName: letsencrypt
          mode: CertManager
        
        https:
          mode: Disabled
        
        https:
          mode: OnlyInURI
        
        https:
          mode: CustomCertificate
          customCertificate:
            secretName: plainstring
        
        • settings.modules.https.certManager
          объект
          • settings.modules.https.certManager.clusterIssuerName
            строка

            Имя ClusterIssuer, используемого модулями Deckhouse.

            В модуле cert-manager доступны следующие ClusterIssuer: letsencrypt, letsencrypt-staging, selfsigned, clouddns, cloudflare, digitalocean, route53. Также вы можете использовать свой ClusterIssuer.

            По умолчанию: "letsencrypt"

        • settings.modules.https.customCertificate
          объект
          • settings.modules.https.customCertificate.secretName
            строка

            Имя Secret’а в пространстве имен d8-system, который будет использоваться модулями Deckhouse.

            Указанный Secret должен быть в формате kubernetes.io/tls.

            По умолчанию: "false"

        • settings.modules.https.mode
          строка

          Режим работы HTTPS:

          • CertManager — модули Deckhouse будут работать по HTTPS, самостоятельно заказывая сертификат с помощью ClusterIssuer, указанного в параметре certManager.clusterIssuerName;
          • CustomCertificate — модули Deckhouse будут работать по HTTPS, используя сертификат из пространства имен d8-system;
          • Disabled — модули Deckhouse будут работать только по HTTP (некоторые модули могут не работать, например user-authn);
          • OnlyInURI — модули Deckhouse будут работать по HTTP, подразумевая, что перед ними стоит внешний HTTPS-балансировщик, который терминирует HTTPS. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

          По умолчанию: "CertManager"

          Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

      • settings.modules.ingressClass
        строка

        Класс Ingress-контроллера (Ingress class), используемый для модулей Deckhouse.

        По умолчанию: "nginx"

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        Пример:

        ingressClass: nginx
        
      • settings.modules.placement
        объект

        Настройки, определяющие расположение компонентов модулей Deckhouse по умолчанию.

        • settings.modules.placement.customTolerationKeys
          массив строк

          Список ключей пользовательских toleration.

          Необходимо указывать, чтобы позволить планировщику размещать критически важные компоненты Deckhouse, такие как cni и csi, на выделенных узлах.

          Пример:

          customTolerationKeys:
          - dedicated.example.com
          - node-dedicated.example.com/master
          
      • settings.modules.publicDomainTemplate
        строка

        Шаблон DNS-имен c ключом %s в качестве динамической части строки.

        Модули Deckhouse используют этот шаблон при создании Ingress-ресурсов.

        Например, для шаблона %s.kube.company.my модуль prometheus создаст Ingress-ресурс на адрес grafana.kube.company.my для доступа к Grafana.

        Обратите внимание:

        • Нельзя использовать в кластере DNS-имена (создавать соответствующие Ingress-ресурсы), подпадающие под указанный шаблон. Это может вызвать пересечения с создаваемыми Deckhouse Ingress-ресурсами.
        • Домен, используемый в шаблоне, не должен совпадать с доменом, указанным в параметре clusterDomain. Например, если clusterDomain установлен в cluster.local (значение по умолчанию), то publicDomainTemplate не может быть %s.cluster.local.
        • Домен, используемый в шаблоне, не должен совпадать с доменом, указанным в параметре clusterDomain и внутренней сервисной зоне сети. Например, если clusterDomain установлен в cluster.local (по умолчанию), а сервисная зона сети — ru-central1.internal, то publicDomainTemplate не может быть %s.cluster.local или %s.ru-central1.internal.
        • Если параметр не указан, Ingress-ресурсы создаваться не будут.

        Шаблон: ^(%s([-a-z0-9]*[a-z0-9])?|[a-z0-9]([-a-z0-9]*)?%s([-a-z0-9]*)?[a-z0-9]|[a-z0-9]([-a-z0-9]*)?%s)(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        Примеры:

        publicDomainTemplate: "%s.kube.company.my"
        
        publicDomainTemplate: kube-%s.company.my
        
      • settings.modules.resourcesRequests
        объект

        Количество ресурсов (CPU и памяти), выделяемых для работы компонентов Deckhouse, работающих на каждом узле кластера (обычно это DaemonSet’ы, например cni-flannel, monitoring-ping).

        Подробнее про единицы измерения ресурсов.

        • settings.modules.resourcesRequests.controlPlane
          объект

          Количество ресурсов (CPU и памяти), выделяемых для компонентов control plane, работающих на каждом master-узле кластера. Не работает для not-managed-облаков (например, GKE).

          Пример:

          controlPlane:
            cpu: 1000m
            memory: 500M
          
          • settings.modules.resourcesRequests.controlPlane.cpu

            Количество CPU, выделяемых для компонентов control plane, работающих на каждом master-узле кластера.

          • settings.modules.resourcesRequests.controlPlane.memory
            строка

            Объем памяти, выделяемой для компонентов control plane, работающих на каждом master-узле кластера.

            Шаблон: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$

      • settings.modules.storageClass
        строка

        Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).

        • Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
        • Этот параметр имеет смысл использовать только в исключительных ситуациях.
        • Этот параметр применяется в процессе включения модуля.

        По умолчанию: ""

    • settings.storageClass
      Параметр устарел
      строка

      УСТАРЕВШИЙ. Теперь его значение задается в global.modules.storageClass.

      Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).

      • Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
      • Этот параметр имеет смысл использовать только в исключительных ситуациях.
      • Этот параметр применяется в процессе включения модуля.

      По умолчанию: ""

ingress-nginx

Версия схемы: 1

  • settings
    объект
    • settings.defaultControllerVersion

      Версия контроллера ingress-nginx, которая будет использоваться для всех контроллеров по умолчанию, если не был задан параметр controllerVersion в IngressNginxController CR.

      По умолчанию: 1.9

    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Пример:

      highAvailability: true
      

log-shipper

Версия схемы: 1

  • settings
    объект
    • settings.debug
      булевый

      Включить или выключить отладочные логи агента. По умолчанию: false.

      По умолчанию: false

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.resourcesRequests
      объект

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

      Если модуль vertical-pod-autoscaler выключен, максимальные значения становятся значениями по умолчанию.

      Примеры:

      resourcesRequests:
        mode: VPA
        vpa:
          mode: Auto
          cpu:
            min: 50m
            max: 2
          memory:
            min: 256Mi
            max: 2Gi
      
      resourcesRequests:
        mode: VPA
        vpa:
          mode: Initial
          cpu:
            min: 1
            max: 3000m
          memory:
            min: 1024
            max: 4096
      
      resourcesRequests:
        mode: Static
        static:
          cpu: 55m
          memory: 256Ki
      
      • settings.resourcesRequests.mode
        строка

        Обязательный параметр

        Режим управления запросами ресурсов (requests):

        • Static — классический, с помощью явного указания ограничения. Настраивается в секции параметров static;
        • VPA — с помощью VPA. Настраивается в секции параметров vpa.

        По умолчанию: "VPA"

        Допустимые значения: VPA, Static

      • settings.resourcesRequests.static
        объект

        Настройка управления ресурсами в режиме Static.

        • settings.resourcesRequests.static.cpu

          Обязательный параметр

          Настройка запроса CPU (CPU requests).

          По умолчанию: 50m

        • settings.resourcesRequests.static.memory

          Обязательный параметр

          Настройка запроса памяти (memory requests).

          По умолчанию: 64Mi

      • settings.resourcesRequests.vpa
        объект

        Настройка управления ресурсами в режиме VPA.

        • settings.resourcesRequests.vpa.cpu
          объект

          Обязательный параметр

          Настройки VPA при работе с CPU.

          • settings.resourcesRequests.vpa.cpu.max

            Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 500m

          • settings.resourcesRequests.vpa.cpu.min

            Минимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 50m

        • settings.resourcesRequests.vpa.memory
          объект

          Обязательный параметр

          Настройки VPA при работе с памятью.

          • settings.resourcesRequests.vpa.memory.max

            Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 2048Mi

          • settings.resourcesRequests.vpa.memory.min

            Минимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 64Mi

        • settings.resourcesRequests.vpa.mode
          строка

          Обязательный параметр

          Режим работы VPA.

          По умолчанию: "Initial"

          Допустимые значения: Initial, Auto

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

loki

Версия схемы: 1

  • settings
    объект
    • settings.diskSizeGigabytes
      целочисленный

      Размер диска для хранения логов или размер PVC при указании параметра storageClass.

      Вы должны самостоятельно указать необходимый размер диска для хранения логов за период, указанный в параметре retentionPeriodHours. Loki не может удалять старые данные автоматически при заполнении диска.

      Занятый объем автоматически мониторится с помощью модуля extended-monitoring

      Внимание. Если диск с данными Loki переполнится, приложение перестанет работать. Вам следует выбрать необходимый баланс между значениями параметров retentionPeriodHours и diskSizeGigabytes.

      По умолчанию: 2

    • settings.lokiConfig
      объект

      Опции Loki, доступные для изменения.

      Подробнее о настройки Loki читайте в документации Loki.

      Внимание! Ошибочные настройки могут привести к неработоспособности Loki.

      • settings.lokiConfig.grpcServerMaxConcurrentStreams
        целочисленный

        Ограничение на количество одновременных потоков для вызовов gRPC.

        По умолчанию: 100

      • settings.lokiConfig.grpcServerMaxRecvMsgSize
        целочисленный

        Ограничение на размер сообщения gRPC, которое может получить сервер, в байтах.

        По умолчанию: 104857600

      • settings.lokiConfig.grpcServerMaxSendMsgSize
        целочисленный

        Ограничение на размер сообщения gRPC, которое может отправить сервер, в байтах.

        По умолчанию: 4194304

      • settings.lokiConfig.ingestionBurstSizeMB
        число

        Общий лимит всплеска объема принимаемых логов. Например, максимальный размер запроса на запись.

        По умолчанию: 6

      • settings.lokiConfig.ingestionRateMB
        число

        Общий лимит скорости приема логов в мегабайтах в секунду.

        По умолчанию: 4

      • settings.lokiConfig.maxChunksPerQuery
        целочисленный

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

        По умолчанию: 2000000

      • settings.lokiConfig.maxEntriesLimitPerQuery
        целочисленный

        Максимальное количество записей, возвращаемых для одного запроса.

        По умолчанию: 5000

      • settings.lokiConfig.maxStreamsPerUser
        целочисленный

        Максимальное общее количество потоков логов для экземпляра Loki.

        Каждый поток логов имеет уникальный набор меток. Количество потоков равно количеству уникальных наборов меток. Например: {job="my-app", instance="kube-node-1", namespace="production", pod_name="backend-79dbf6fcb7-v5gs7", app="backend"}.

        Значение 0 отключает ограничение.

        По умолчанию: 0

      • settings.lokiConfig.perStreamRateLimit

        Максимальная скорость в байтах в секунду для одного потока. Может быть как числом, так и строкой с единицей измерения (KB, MB, GB).

        По умолчанию: 3MB

      • settings.lokiConfig.perStreamRateLimitBurst

        Максимальный размер всплеска объема логов для одного потока. Может быть как числом, так и строкой с единицей измерения (KB, MB, GB).

        По умолчанию: 15MB

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.resourcesManagement

      Настройки запросов (requests) и ограничений (limits) использования CPU и памяти подами Loki.

      Примеры:

      resourcesManagement:
        mode: VPA
        vpa:
          mode: Auto
          cpu:
            min: 50m
            max: 2
            limitRatio: 1.5
          memory:
            min: 256Mi
            max: 2Gi
            limitRatio: 1.5
      
      resourcesManagement:
        mode: Static
        static:
          requests:
            cpu: 55m
            memory: 256Mi
          limits:
            cpu: 2
            memory: 2Gi
      
      • settings.resourcesManagement.mode
        строка

        Режим управления ресурсами:

        • Static — классический, с помощью указания запросов/ограничений (requests/limits). Настраивается в секции параметров static;
        • VPA — с помощью VPA. Настраивается в секции параметров vpa.

        По умолчанию: "VPA"

        Допустимые значения: VPA, Static

      • settings.resourcesManagement.static
        объект

        Настройка управления ресурсами в режиме Static.

        • settings.resourcesManagement.static.limits
          объект

          Настройка ограничений (limits) использования CPU и памяти.

          • settings.resourcesManagement.static.limits.cpu

            Настройка ограничений использования CPU (CPU limits).

          • settings.resourcesManagement.static.limits.memory

            Настройка ограничений использования памяти (memory limits).

        • settings.resourcesManagement.static.requests
          объект

          Настройки запросов ресурсов (requests) подов.

          • settings.resourcesManagement.static.requests.cpu

            Настройка запроса CPU (CPU requests).

          • settings.resourcesManagement.static.requests.memory

            Настройка запроса памяти (memory requests).

      • settings.resourcesManagement.vpa
        объект

        Настройка управления ресурсами в режиме VPA.

        • settings.resourcesManagement.vpa.cpu
          объект

          Настройки VPA при работе с CPU.

          • settings.resourcesManagement.vpa.cpu.limitRatio
            число

            Коэффициент расчета ограничений использования CPU относительно запросов (limits/requests).

            Применяется для расчета начальных ограничений использования CPU для пода (CPU limits).

            Если параметр указан, то VPA, при пересчете запросов CPU (CPU requests) будет пересчитывать ограничения использования CPU (CPU limits) сохраняя указанное соотношение ограничений к запросам (limits/requests).

          • settings.resourcesManagement.vpa.cpu.max

            Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 2

          • settings.resourcesManagement.vpa.cpu.min

            Минимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 50m

        • settings.resourcesManagement.vpa.memory
          объект

          Настройки VPA при работе с памятью.

          • settings.resourcesManagement.vpa.memory.limitRatio
            число

            Коэффициент расчета ограничений использования памяти относительно запросов (limits/requests).

            Применяется для расчета начальных ограничений использования памяти для пода (memory limits).

            Если параметр указан, то VPA, при пересчете запросов памяти (memory requests) будет пересчитывать ограничения использования памяти (memory limits) сохраняя указанное соотношение ограничений к запросам (limits/requests).

          • settings.resourcesManagement.vpa.memory.max

            Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 2Gi

          • settings.resourcesManagement.vpa.memory.min

            Минимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 256Mi

        • settings.resourcesManagement.vpa.mode
          строка

          Режим работы VPA.

          По умолчанию: "Auto"

          Допустимые значения: Initial, Auto

    • settings.retentionPeriodHours
      целочисленный

      Сколько часов логи будут храниться, прежде чем будут удалены.

      По умолчанию: 168

    • settings.storageClass

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

      Если значение не указано, используется StorageClass существующей PVC Loki. Если PVC нет, будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

      Если указать false, будет принудительно использоваться emptyDir.

      Примеры:

      storageClass: false
      
      storageClass: default
      
    • settings.storeSystemLogs
      булевый

      Сохранять логи из пространства имен d8-* в loki.

      Для работы необходим включенный модуль log-shipper.

      По умолчанию: true

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

metallb

Версия схемы: 2

Примеры:

bgpPeers:
- peer-address: 192.168.1.1
  peer-asn: 1111
  my-asn: 2222
  source-address: 192.168.1.2
  hold-time: 10s
  node-selector:
    matchLabels:
      node: test
addressPools:
- name: my-pool-bgp
  protocol: bgp
  addresses:
  - 192.168.100.1-192.168.100.10
  - 192.168.101.0/24
  bgp-advertisements:
  - aggregation-length: 32
    localpref: 100
    communities:
    - no-advertise
bgpCommunities:
  no-advertise: 65535:65282
speaker:
  nodeSelector:
    mylabel: speaker
addressPools:
- name: my-pool-l2
  protocol: layer2
  addresses:
  - 192.168.100.1-192.168.100.10
  - 192.168.101.0/24
speaker:
  nodeSelector:
    mylabel: speaker
  tolerations:
  - key: dedicated
    operator: Equal
    value: speaker
  • settings
    объект
    • settings.addressPools
      массив объектов

      Список диапазонов IP, которые будут выдаваться сервисам.

      Формат — массив, как у оригинального MetalLB.

      По умолчанию: []

      • settings.addressPools.addresses
        массив строк

        Список диапазонов, где диапазон — это либо подсеть с маской, либо диапазон значений с “-“ в качестве разделителя.

      • settings.addressPools.auto-assign
        булевый

        Флаг auto-assign используется для предотвращения автоматического выделения IP из пула.

        По умолчанию: true

      • settings.addressPools.avoid-buggy-ips
        булевый

        Запрещает использование адресов из пула, заканчивающихся на .0 и .255.

        По умолчанию: false

      • settings.addressPools.bgp-advertisements
        массив объектов

        Определяет BGP advertisements.

        • settings.addressPools.bgp-advertisements.aggregation-length
          целочисленный

          Опция aggregation-length позволяет «свернуть» префикс в более крупный.

          Работает для адресов IPv4.

          По умолчанию: 32

          Допустимые значения: 1 <= X

        • settings.addressPools.bgp-advertisements.communities
          массив строк

          BGP communities, связанные с анонсом. Каждый элемент — это ключ из параметра bgpCommunities.

          Пример:

          communities:
          - no-advertise
          
        • settings.addressPools.bgp-advertisements.localpref
          целочисленный

          Атрибут BGP LOCAL_PREF используется алгоритмом BGP best path.

          Путь с более высоким localpref предпочтительнее пути с более низким localpref.

      • settings.addressPools.name
        строка

        Имя пула, которое можно уточнять с помощью аннотации к сервису metallb.universe.tf/address-pool: <name>. Имя должно соответствовать RFC 1123: разделенные точками части в нижнем регистре, состоящие из букв и ‘-‘. Каждое имя должно начинаться и заканчиваться буквой алфавита.

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

      • settings.addressPools.protocol
        строка

        Технология публикации сервисов, которую должен реализовать speaker.

        Допустимые значения: bgp, layer2

    • settings.bgpCommunities
      объект

      Список BGP communities.

      Пример:

      bgpCommunities:
        no-advertise: 65535:65282
      
    • settings.bgpPeers
      массив объектов

      Список внешних BGP-роутеров, которые будут работать с этим модулем.

      Формат — массив, как у оригинального MetalLB.

      По умолчанию: []

      • settings.bgpPeers.hold-time
        строка или число

        Таймаут, после которого партнерский BGP-пир считается утерянным. Это значение делится на 3 и получается интервал для keep-alive.

        Рекомендуемое значение — 3s (keep-alive раз в секунду), протокол BGP не поддерживает меньшие значения. По умолчанию — 90s (keep-alive раз в 30 секунд).

        Шаблон: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$

      • settings.bgpPeers.my-asn
        целочисленный

        Обязательный параметр

        Номер автономной системы для кластера.

        Допустимые значения: 0 <= X <= 4294967295

      • settings.bgpPeers.node-selector
        объект

        Дополнительный псевдоселектор, который реализуется приложением speaker’а. Говорит о том, с каких узлов стоит устанавливать связь с внешними BGP-роутерами. Не путать с speaker.nodeSelector и nodeSelector.

        Опциональный параметр.

        Формат — matchLabels или matchExpressions.

        • settings.bgpPeers.node-selector.matchExpressions
          массив объектов
          • settings.bgpPeers.node-selector.matchExpressions.key
            строка
          • settings.bgpPeers.node-selector.matchExpressions.operator
            строка
          • settings.bgpPeers.node-selector.matchExpressions.values
            массив строк
        • settings.bgpPeers.node-selector.matchLabels
          объект
      • settings.bgpPeers.password
        строка

        Пароль для аутентификациии для роутеров, требующих TCP MD5 авторизованных сессий.

      • settings.bgpPeers.peer-address
        строка

        Обязательный параметр

        IP внешнего BGP-роутера.

        Шаблон: ^([0-9]{1,3}\.){3}[0-9]{1,3}$

      • settings.bgpPeers.peer-asn
        целочисленный

        Обязательный параметр

        Номер автономной системы на внешнем BGP-роутере.

        Допустимые значения: 0 <= X <= 4294967295

      • settings.bgpPeers.peer-port
        целочисленный

        Порт, к которому устанавливать сессию.

        По умолчанию: 179

        Допустимые значения: 0 <= X <= 16384

      • settings.bgpPeers.router-id
        строка

        ID BGP-роутера для анонса.

      • settings.bgpPeers.source-address
        строка

        IP-адрес для исходящих соединений.

        Шаблон: ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$

    • settings.loadBalancerClass
      строка

      Необязательное поле, описывающее класс LoadBalancer. Поле LoadBalancerClass следует использовать в режиме L2 LoadBalancer для указания MetalLoadBalancerClass, задающего параметры балансировщика для Service.

    • settings.nodeSelector
      объект

      Селектор узлов, на которых будет работать главный контроллер. Структура, аналогичная параметру spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.speaker
      объект

      Настройки компонента speaker, реализующего протокол публикации и направляющего на свой узел прикладной трафик сервисов.

      • settings.speaker.nodeSelector
        объект

        Обязательный параметр

        Селектор узлов, на которых будет работать DaemonSet speaker. Структура, аналогичная параметру spec.nodeSelector пода Kubernetes.

        Если значение не указано или указано false, будет использоваться автоматика.

      • settings.speaker.tolerations
        массив объектов

        Структура для DaemonSet speaker’а, аналогичная параметру spec.tolerations пода Kubernetes.

        Если значение не указано или указано false, будет использоваться автоматика.

        • settings.speaker.tolerations.effect
          строка
        • settings.speaker.tolerations.key
          строка
        • settings.speaker.tolerations.operator
          строка
        • settings.speaker.tolerations.tolerationSeconds
          целочисленный
        • settings.speaker.tolerations.value
          строка
    • settings.tolerations
      массив объектов

      Структура, аналогичная параметру spec.tolerations пода Kubernetes для главного контроллера.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

monitoring-custom

monitoring-deckhouse

monitoring-kubernetes

Версия схемы: 1

  • settings
    объект
    • settings.ebpfExporterEnabled
      булевый

      Флаг отключения ebpf_exporter для случаев, когда его работа создает проблемы в нормальной работе узлов.

      По умолчанию: true

      Пример:

      ebpfExporterEnabled: false
      
    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Примеры:

      highAvailability: true
      
      highAvailability: false
      
    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      nodeSelector:
        disktype: ssd
      
    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      tolerations:
      - key: key1
        operator: Equal
        value: value1
        effect: NoSchedule
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка
    • settings.vpa
      объект

      Настройки VPA для подов kube-state-metrics.

      Пример:

      vpa:
        kubeStateMetricsMaxCPU: 130m
        kubeStateMetricsMaxMemory: 115Mi
      
      • settings.vpa.kubeStateMetricsMaxCPU

        Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

        Примеры:

        kubeStateMetricsMaxCPU: 3
        
        kubeStateMetricsMaxCPU: 1000m
        
      • settings.vpa.kubeStateMetricsMaxMemory

        Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

        Пример:

        kubeStateMetricsMaxMemory: 3Mi
        

monitoring-kubernetes-control-plane

monitoring-ping

Версия схемы: 1

  • settings
    объект
    • settings.externalTargets
      массив объектов

      Список дополнительных хостов для мониторинга.

      Пример:

      - name: google-primary
        host: 8.8.8.8
      - name: yaru
        host: ya.ru
      - host: youtube.com
      
      • settings.externalTargets.host
        строка

        Обязательный параметр

        IP-адрес или host для мониторинга.

      • settings.externalTargets.name
        строка

        Название записи мониторинга.

multitenancy-manager

Версия схемы: 1

  • settings
    объект
    • settings.allowNamespacesWithoutProjects
      булевый

      Если эта опция выключена — запретите создавать пространства имен, которые не являются частью проекта.

      По умолчанию: true

    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Пример:

      highAvailability: true
      

operator-prometheus

Версия схемы: 1

  • settings
    объект
    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

prometheus

Версия схемы: 2

  • settings
    объект
    • settings.auth
      объект

      Опции, связанные с аутентификацией или авторизацией в приложении.

      • settings.auth.allowedUserGroups
        массив строк

        Массив групп, пользователям которых позволен доступ в Grafana и Prometheus.

        Используется, если включен модуль user-authn или параметр externalAuthentication.

        Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.

      • settings.auth.externalAuthentication
        объект

        Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля NGINX auth_request.

        Внешняя аутентификация включается автоматически, если включен модуль user-authn.

        • settings.auth.externalAuthentication.authSignInURL
          строка

          URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).

          Пример:

          authSignInURL: https://example.com/dex/sign_in
          
        • settings.auth.externalAuthentication.authURL
          строка

          URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.

          Пример:

          authURL: https://example.com/dex/auth
          
      • settings.auth.satisfyAny
        булевый

        Разрешает пройти только одну из аутентификаций.

        В комбинации с опцией whitelistSourceRanges позволяет считать авторизованными всех пользователей из указанных сетей без ввода логина и пароля.

        По умолчанию: false

        Пример:

        satisfyAny: true
        
      • settings.auth.whitelistSourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешено проходить авторизацию в Grafana и Prometheus.

        Пример:

        whitelistSourceRanges:
        - 1.1.1.1/32
        
    • settings.externalLabels
      объект

      Набор внешних меток для маркировки метрик.

      Допускается использование значений переменных окружения контейнера config-reloader в качестве значений меток, например:

      • HOSTNAME/POD_NAME — содержит наименование пода (например, prometheus-main-0, prometheus-main-1 и т. д.);
      • SHARD — содержит номер шарда.

      Пример:

      externalLabels:
        prometheus_replica: "$(POD_NAME)"
        shard: "$(SHARD)"
        hostname: "$(HOSTNAME)"
      
    • settings.grafana
      объект

      Настройки для инсталляции Grafana.

      • settings.grafana.customPlugins
        массив строк

        Список дополнительных plug-in’ов для Grafana.

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

        Пример добавления plug-in’ов для возможности указания clickhouse в качестве datasource и панели flow-chart:

        grafana:
          customPlugins:
          - agenty-flowcharting-panel
          - vertamedia-clickhouse-datasource
        

        Вы также можете устанавливать плагины из других источников передав ссылку на zip-архив плагина в формате <url to plugin zip>;<plugin name>:

        grafana:
          customPlugins:
          - http://10.241.32.16:3000/netsage-bumpchart-panel-1.1.1.zip;netsage-bumpchart-panel
        

        Пример:

        customPlugins:
        - agenty-flowcharting-panel
        - vertamedia-clickhouse-datasource
        
      • settings.grafana.useDarkTheme
        булевый

        Использование по умолчанию пользовательской темной темы.

        По умолчанию: false

        Пример:

        useDarkTheme: true
        
    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Пример:

      highAvailability: true
      
    • settings.https
      объект

      Тип сертификата, используемого для Grafana/Prometheus.

      При использовании этого параметра полностью переопределяются глобальные настройки global.modules.https.

      Примеры:

      https:
        mode: CustomCertificate
        customCertificate:
          secretName: foobar
      
      https:
        mode: CertManager
        certManager:
          clusterIssuerName: letsencrypt
      
      • settings.https.certManager
        объект
        • settings.https.certManager.clusterIssuerName
          строка

          ClusterIssuer, используемый для Grafana/Prometheus.

          Доступны letsencrypt, letsencrypt-staging, selfsigned, но вы можете определить свои.

          По умолчанию: "letsencrypt"

      • settings.https.customCertificate
        объект
        • settings.https.customCertificate.secretName
          строка

          Имя Secret’а в namespace d8-system, который будет использоваться для Grafana/Prometheus.

          Secret должен быть в формате kubernetes.io/tls.

          По умолчанию: "false"

      • settings.https.mode
        строка

        Режим работы HTTPS:

        • Disabled — Grafana/Prometheus будут работать только по HTTP;
        • CertManager — Grafana/Prometheus будут работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре certManager.clusterIssuerName.
        • CustomCertificate — Grafana/Prometheus будут работать по HTTPS, используя сертификат из namespace d8-system.
        • OnlyInURI — Grafana/Prometheus будут работать по HTTP (подразумевая, что перед ними стоит внешний балансировщик, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

        По умолчанию: "Disabled"

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.ingressClass
      строка

      Класс Ingress-контроллера, который используется для Grafana/Prometheus.

      Опциональный параметр, по умолчанию используется глобальное значение modules.ingressClass.

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

      Пример:

      ingressClass: public
      
    • settings.longtermMaxDiskSizeGigabytes
      Параметр устарел
      целочисленный

      Устарел и будет удален. Ни на что не влияет. Максимальный размер в гигабайтах, до которого автоматически может ресайзиться диск Longterm Prometheus.

    • settings.longtermNodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      longtermNodeSelector:
        disktype: ssd
      
    • settings.longtermPodAntiAffinity
      строка

      Устанавливает конфигурацию podAntiAffinity для Prometheus longterm по отношению к Prometheus main.

      • Preferred — позволяет размещать Prometheus longterm на одном узле с Prometheus main, если нет возможности их разместить на разных узлах.
      • Required — не позволяет размещать Prometheus longterm на одном узле с Prometheus main ни при каких условиях.

      По умолчанию: "Preferred"

      Допустимые значения: Preferred, Required

    • settings.longtermRetentionDays
      целочисленный

      Сколько дней хранить данные в Longterm Prometheus. Если указать 0, Longterm Prometheus не будет запущен в кластере.

      По умолчанию: 1095

    • settings.longtermScrapeInterval
      строка

      Как часто Longterm Prometheus должен собирать себе «снимок» данных из основного Prometheus.

      По умолчанию: "5m"

    • settings.longtermStorageClass
      строка

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

      Если значение не указано, используется StorageClass существующей PVC Longterm Prometheus. Если PVC нет, будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

      Пример:

      longtermStorageClass: ceph-ssd
      
    • settings.longtermTolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      longtermTolerations:
      - key: key1
        operator: Equal
        value: value1
        effect: NoSchedule
      
      • settings.longtermTolerations.effect
        строка
      • settings.longtermTolerations.key
        строка
      • settings.longtermTolerations.operator
        строка
      • settings.longtermTolerations.tolerationSeconds
        целочисленный
      • settings.longtermTolerations.value
        строка
    • settings.mainMaxDiskSizeGigabytes
      Параметр устарел
      целочисленный

      Устарел и будет удален. Ни на что не влияет. Максимальный размер в гигабайтах, до которого автоматически может ресайзиться диск Prometheus.

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      nodeSelector:
        disktype: ssd
      
    • settings.retentionDays
      целочисленный

      Сколько дней хранить данные.

      По умолчанию: 15

    • settings.scrapeInterval
      строка

      Как часто Prometheus должен собирать метрики с target’ов.

      Evaluation Interval всегда равен scrapeInterval.

      По умолчанию: "30s"

      Шаблон: ^([\d]*y)?([\d]*w)?([\d]*d)?([\d]*h)?([\d]*m)?([\d]*s)?$

    • settings.storageClass
      строка

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

      Если не указано, используется StorageClass существующей PVC Prometheus. Если PVC нет, будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск Prometheus будет перезаказан, а все данные удалены.

      Внимание. При переносе Prometheus с локальным хранилищем на другие узлы, поды зависнут в состоянии Pending. В этом случае будет необходимо сохранить базу данных Prometheus, удалить старые PVC и перезапустить под вручную. Под локальным хранилищем подразумевается StorageClass, связанный не с сетевым хранилищем, а с локальным томом на узле (например, StorageClass, создаваемый модулем local-path-provisioner).

      Если указать false, будет принудительно использоваться emptyDir.

      Примеры:

      storageClass: ceph-ssd
      
      storageClass: 'false'
      
    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      tolerations:
      - key: key1
        operator: Equal
        value: value1
        effect: NoSchedule
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка
    • settings.vpa
      объект

      Настройки VPA для подов.

      По умолчанию: {"updateMode":"Initial"}

      Примеры:

      vpa:
        updateMode: Initial
        longtermMaxCPU: '1'
        longtermMaxMemory: 1500Mi
        maxCPU: 1000m
        maxMemory: 1500Mi
      
      vpa:
        updateMode: 'Off'
      
      • settings.vpa.longtermMaxCPU

        Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests) для подов Longterm Prometheus.

        Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук detect_vpa_max модуля.

        Пример:

        longtermMaxCPU: 0.1
        
      • settings.vpa.longtermMaxMemory

        Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests) для подов Longterm Prometheus.

        Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук detect_vpa_max модуля.

        Пример:

        longtermMaxMemory: 4Mi
        
      • settings.vpa.maxCPU

        Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests) для подов основного Prometheus.

        Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук detect_vpa_max модуля.

        Пример:

        maxCPU: '3'
        
      • settings.vpa.maxMemory

        Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests) для подов основного Prometheus..

        Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук detect_vpa_max модуля.

        Пример:

        maxMemory: 3Mi
        
      • settings.vpa.updateMode
        строка

        Режим работы VPA.

        По умолчанию: "Initial"

        Допустимые значения: Initial, Auto, Off

prometheus-metrics-adapter

sds-local-volume

Версия схемы: 2

  • settings
    объект
    • settings.dataNodes
      объект

      Настройки локальных томов csi на узлах с данными

      • settings.dataNodes.nodeSelector
        объект

        То же, что и в параметре spec.nodeSelector подов в Kubernetes.

        Если параметр опущен, локальный том csi будет размещен на всех узлах.

        Внимание! Изменение этого параметра не приводит к перераспределению данных. Если узел с данными больше не соответствует «nodeSelector», данные на этом узле станут недоступными.

        По умолчанию: {"kubernetes.io/os":"linux"}

    • settings.enableThinProvisioning
      булевый

      Allow thin LVM volumes usage

      По умолчанию: false

    • settings.logLevel
      строка

      Уровень логирования модуля.

      По умолчанию: "DEBUG"

      Допустимые значения: ERROR, WARN, INFO, DEBUG, TRACE

sds-node-configurator

Версия схемы: 2

  • settings
    объект
    • settings.disableDs
      булевый

      Выключить sds-node-configurator daemonset

      По умолчанию: false

    • settings.enableThinProvisioning
      булевый

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

      По умолчанию: false

    • settings.logLevel
      строка

      Уровень логирования для приложений модуля

      По умолчанию: "INFO"

      Допустимые значения: ERROR, WARN, INFO, DEBUG, TRACE

sds-replicated-volume

Версия схемы: 1

  • settings
    объект
    • settings.backup
      объект

      Module backup settings

      • settings.backup.enabled
        булевый

        Включение резервного копирования БД модуля

        По умолчанию: true

      • settings.backup.retentionCount
        целочисленный

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

        По умолчанию: 3

      • settings.backup.schedule
        строка

        Расписание резервного копирования

        По умолчанию: "0 3 * * *"

    • settings.dataNodes
      объект

      Настройки для узлов Linstor с данными

      • settings.dataNodes.nodeSelector
        объект

        Настройка аналогична spec.nodeSelector в Kubernetes.

        Если параметр не указан, поды для Linstor будут запущены на всех узлах.

        Внимание! При изменении этого параметра не происходит переразмещение данных. Если узел с данными перестанет соответствовать nodeSelector, данные на нем будут недоступны.

        По умолчанию: {"kubernetes.io/os":"linux"}

    • settings.drbdPortRange
      объект

      Settings for DRBD TCP ports

      • settings.drbdPortRange.maxPort
        целочисленный

        DRBD ports range end

        По умолчанию: 7999

      • settings.drbdPortRange.minPort
        целочисленный

        DRBD ports range start

        По умолчанию: 7000

    • settings.enableThinProvisioning
      булевый

      Allow thin LVM volumes usage

      По умолчанию: false

    • settings.logLevel
      строка

      Уровень логирования для приложений модуля

      По умолчанию: "INFO"

      Допустимые значения: ERROR, WARN, INFO, DEBUG, TRACE

    • settings.registryScheme
      строка

      Deprecated parameter. Remove it from ModuleConfig for Deckhouse with version greater than 1.57.

      По умолчанию: "https"

snapshot-controller

Версия схемы: 1

  • settings
    объект
    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Примеры:

      highAvailability: true
      
      highAvailability: false
      

upmeter

Версия схемы: 3

  • settings
    объект
    • settings.auth
      объект

      Доступ к веб-интерфейсу.

      • settings.auth.status
        объект

        Обязательный параметр

        Настройки доступа к веб-интерфейсу.

        • settings.auth.status.allowedUserGroups
          массив строк

          Группы доступа к просмотру интерфейса приложения.

          • Используется, если включен модуль user-authn или параметр externalAuthentication.
          • Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
        • settings.auth.status.externalAuthentication
          объект

          Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля NGINX auth_request.

          Внешняя аутентификация включается автоматически, если включен модуль user-authn.

          • settings.auth.status.externalAuthentication.authSignInURL
            строка

            URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).

          • settings.auth.status.externalAuthentication.authURL
            строка

            URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.

        • settings.auth.status.whitelistSourceRanges
          массив строк

          Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.

          Пример:

          whitelistSourceRanges:
          - 1.1.1.1/32
          
      • settings.auth.webui
        объект

        Обязательный параметр

        Настройки доступа к веб-интерфейсу.

        • settings.auth.webui.allowedUserGroups
          массив строк

          Группы доступа к просмотру интерфейса приложения.

          • Используется, если включен модуль user-authn или параметр externalAuthentication.
          • Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
        • settings.auth.webui.externalAuthentication
          объект

          Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля NGINX auth_request.

          Внешняя аутентификация включается автоматически, если включен модуль user-authn.

          • settings.auth.webui.externalAuthentication.authSignInURL
            строка

            URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).

          • settings.auth.webui.externalAuthentication.authURL
            строка

            URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.

        • settings.auth.webui.password
          строка

          Password for http authorization of the admin user. It is generated automatically, but you can change it.

          This parameter is used if the externalAuthentication is not enabled.

        • settings.auth.webui.whitelistSourceRanges
          массив строк

          Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.

          Пример:

          whitelistSourceRanges:
          - 1.1.1.1/32
          
    • settings.disabledProbes
      массив строк

      Массив строк из названий групп или определенных проб из группы. Названия можно подсмотреть в веб-интерфейсе.

      Пример:

      disabledProbes:
        - "synthetic/api" # Отключить отдельную пробу.
        - "synthetic/"    # Отключить группу проб.
        - control-plane   # Или без /.
      

      По умолчанию: []

    • settings.https
      объект

      Тип сертификата, используемого для веб-приложений webui и status.

      При использовании этого параметра полностью переопределяются глобальные настройки global.modules.https.

      Примеры:

      https:
        mode: CustomCertificate
        customCertificate:
          secretName: foobar
      
      https:
        mode: CertManager
        certManager:
          clusterIssuerName: letsencrypt
      
      • settings.https.certManager
        объект
        • settings.https.certManager.clusterIssuerName
          строка

          ClusterIssuer, используемый для webui/status.

          Доступны letsencrypt, letsencrypt-staging, selfsigned, но вы можете определить свои.

          По умолчанию: "letsencrypt"

      • settings.https.customCertificate
        объект
        • settings.https.customCertificate.secretName
          строка

          Имя Secret’а в пространстве имен d8-system, который будет использоваться для webui/status.

          Secret должен быть в формате TLS.

          По умолчанию: "false"

      • settings.https.mode
        строка

        Режим работы HTTPS:

        • Disabled — webui/status будут работать только по HTTP;
        • CertManager — webui/status будут работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре certManager.clusterIssuerName;
        • CustomCertificate — webui/status будут работать по HTTPS, используя сертификат из namespace d8-system;
        • OnlyInURI — webui/status будет работать по HTTP (подразумевая, что перед ними стоит внешний балансировщик, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

        По умолчанию: "Disabled"

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.ingressClass
      строка

      Класс Ingress-контроллера, который используется для Upmeter.

      Опциональный параметр, по умолчанию используется глобальное значение modules.ingressClass

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      nodeSelector:
        disktype: ssd
      
    • settings.smokeMini
      объект

      Configuration of authentication for smoke-mini.

      • settings.smokeMini.auth
        объект

        Обязательный параметр

        Настройки доступа к веб-интерфейсу.

        • settings.smokeMini.auth.allowedUserGroups
          массив строк

          Группы доступа к просмотру интерфейса приложения.

          • Используется, если включен модуль user-authn или параметр externalAuthentication.
          • Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
        • settings.smokeMini.auth.externalAuthentication
          объект

          Параметры для подключения внешней аутентификации. Используется механизм NGINX Ingress external-auth, работающей на основе модуля NGINX auth_request.

          • settings.smokeMini.auth.externalAuthentication.authSignInURL
            строка

            URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).

          • settings.smokeMini.auth.externalAuthentication.authURL
            строка

            URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.

        • settings.smokeMini.auth.password
          строка

          Пароль для HTTP-авторизации для пользователя admin (генерируется автоматически, но можно менять)

          Используется, если не включен параметр externalAuthentication.

        • settings.smokeMini.auth.whitelistSourceRanges
          массив строк

          Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.

          Пример:

          whitelistSourceRanges:
          - 1.1.1.1/32
          
      • settings.smokeMini.https
        объект

        Тип сертификата, используемого для smoke-mini.

        При использовании этого параметра полностью переопределяются глобальные настройки global.modules.https.

        Примеры:

        https:
          mode: CustomCertificate
          customCertificate:
            secretName: foobar
        
        https:
          mode: CertManager
          certManager:
            clusterIssuerName: letsencrypt
        
        • settings.smokeMini.https.certManager
          объект
          • settings.smokeMini.https.certManager.clusterIssuerName
            строка

            ClusterIssuer, используемый для smoke-mini.

            Доступны letsencrypt, letsencrypt-staging, selfsigned, но вы можете определить свои.

            По умолчанию: "letsencrypt"

        • settings.smokeMini.https.customCertificate
          объект
          • settings.smokeMini.https.customCertificate.secretName
            строка

            Имя Secret’а в namespace d8-system, который будет использоваться для smoke-mini.

            Secret должен быть в формате TLS.

            По умолчанию: "false"

        • settings.smokeMini.https.mode
          строка

          Режим работы HTTPS:

          • Disabled — smoke-mini будут работать только по HTTP;
          • CertManager — smoke-mini будут работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре certManager.clusterIssuerName.
          • CustomCertificate — smoke-mini будут работать по HTTPS, используя сертификат из namespace d8-system.
          • OnlyInURI — smoke-mini будет работать по HTTP (подразумевая, что перед ними стоит внешний балансировщик, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

          По умолчанию: "Disabled"

          Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

      • settings.smokeMini.storageClass

        StorageClass для использования при проверке работоспособности дисков.

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

        Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

        Если указать false, будет принудительно использоваться emptyDir.

        Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

        Внимание. При переносе Upmeter с локальным хранилищем на другие узлы, поды зависнут в состоянии Pending. В этом случае будет необходимо сохранить базу данных Upmeter, удалить старые PVC и перезапустить под вручную. Под локальным хранилищем подразумевается StorageClass, связанный не с сетевым хранилищем, а с локальным томом на узле (например, StorageClass, создаваемый модулем local-path-provisioner).

        По умолчанию: false

        Примеры:

        storageClass: false
        
        storageClass: default
        
    • settings.smokeMiniDisabled
      булевый

      Выключение smokeMini. Также отключает группу “synthetic”.

      По умолчанию: false

    • settings.statusPageAuthDisabled
      булевый

      Выключение авторизации для status-домена.

      По умолчанию: false

    • settings.storageClass

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

      Если значение не указано, используется StorageClass существующей PVC. Если PVC нет, будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

      Если указать false, будет принудительно использоваться emptyDir.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

      Внимание. При переносе Upmeter с локальным хранилищем на другие узлы, поды зависнут в состоянии Pending. В этом случае будет необходимо сохранить базу данных Upmeter, удалить старые PVC и перезапустить под вручную. Под локальным хранилищем подразумевается StorageClass, связанный не с сетевым хранилищем, а с локальным томом на узле (например, StorageClass, создаваемый модулем local-path-provisioner).

      Примеры:

      storageClass: false
      
      storageClass: default
      
    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      tolerations:
      - key: key1
        operator: Equal
        value: value1
        effect: NoSchedule
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

user-authn

Версия схемы: 2

  • settings
    объект
    • settings.controlPlaneConfigurator
      объект

      Настройки параметров для модуля автоматической настройки kube-apiserver control-plane-manager.

      • settings.controlPlaneConfigurator.dexCAMode
        строка

        Способ определения CA, который будет использован при настройке kube-apiserver:

        • Custom — использовать CA, указанный в параметре dexCustomCA. Этот вариант уместен, например, если вы используете внешний HTTPS-балансировщик перед Ingress-контроллером и на этом балансировщике используется самоподписанный сертификат.
        • DoNotNeed — CA не требуется (например, при использовании публичного TLS-провайдера Let’s Encrypt или других).
        • FromIngressSecret — извлечь CA или сам сертификат из Secret’а, который используется в Ingress-ресурсе. Если вы используете самоподписанные сертификаты в Ingress-ресурсах — это ваш вариант.

        По умолчанию: "DoNotNeed"

        Допустимые значения: Custom, DoNotNeed, FromIngressSecret

      • settings.controlPlaneConfigurator.dexCustomCA
        строка

        CA, который будет использован в случае, если dexCAMode установлен в Custom.

      • settings.controlPlaneConfigurator.enabled
        булевый

        Использовать ли control-plane-manager для настройки OIDC в kube-apiserver.

        По умолчанию: true

    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Примеры:

      highAvailability: true
      
      highAvailability: false
      
    • settings.https
      объект

      Тип сертификата, используемого для Dex/kubeconfig-generator.

      При использовании этого параметра полностью переопределяются глобальные настройки global.modules.https.

      Примеры:

      https:
        mode: CustomCertificate
        customCertificate:
          secretName: foobar
      
      https:
        mode: CertManager
        certManager:
          clusterIssuerName: letsencrypt
      
      • settings.https.certManager
        объект
        • settings.https.certManager.clusterIssuerName
          строка

          ClusterIssuer, используемый для Dex/kubeconfig-generator.

          Доступны letsencrypt, letsencrypt-staging, selfsigned, но вы можете определить свои.

          По умолчанию: "letsencrypt"

      • settings.https.customCertificate
        объект
        • settings.https.customCertificate.secretName
          строка

          Имя Secret’а в namespace d8-system, который будет использоваться для Dex/kubeconfig-generator.

          Secret должен быть в формате kubernetes.io/tls.

          По умолчанию: "false"

      • settings.https.mode
        строка

        Режим работы HTTPS:

        • CertManager — Dex/kubeconfig-generator будет работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре certManager.clusterIssuerName;
        • CustomCertificate — Dex/kubeconfig-generator будет работать по HTTPS, используя сертификат из namespace d8-system;
        • Disabled — Dex/kubeconfig-generator будет работать только по HTTP;
        • OnlyInURI — Dex/kubeconfig-generator будет работать по HTTP (подразумевая, что перед ним стоит внешний балансировщик, который терминирует HTTPS-трафик) и все ссылки в user-authn будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

        По умолчанию: "Disabled"

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.idTokenTTL
      строка

      Время жизни ID-токена.

      Задается в виде строки с указанием часов, минут и секунд: 30m, 20s, 2h30m10s, 24h.

      По умолчанию: "10m"

      Шаблон: ^([0-9]+h)?([0-9]+m)?([0-9]+s)?$

    • settings.ingressClass
      строка

      Класс Ingress-контроллера, который используется для Dex/kubeconfig-generator.

      Опциональный параметр, по умолчанию используется глобальное значение modules.ingressClass.

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

    • settings.kubeconfigGenerator
      массив объектов

      Массив, в котором указываются дополнительные способы доступа к API-серверу.

      Параметр может быть полезен в случае, если вы хотите предоставить доступ к API-серверу не через Ingress, а другими способами (например, с bastion-хоста или через OpenVPN).

      • settings.kubeconfigGenerator.description
        строка

        Текстовое описание, содержащее информацию о том, чем этот метод аутентификации отличается от других.

      • settings.kubeconfigGenerator.id
        строка

        Обязательный параметр

        Имя способа доступа к API-серверу (без пробелов, маленькими буквами).

        Шаблон: ^[\@\.\:0-9a-z._-]+$

      • settings.kubeconfigGenerator.masterCA
        строка

        CA для доступа к API-серверу.

        Если данный параметр не указать, то будет автоматически использован Kubernetes CA.

        При публикации API-сервера через HTTP-прокси, который терминирует HTTPS-трафик, рекомендуется использовать самоподписанный сертификат, который нужно указать в параметре masterCA.

      • settings.kubeconfigGenerator.masterURI
        строка

        Обязательный параметр

        Если планируется использовать TCP-прокси, для адреса TCP-прокси должен быть сконфигурирован сертификат на стороне API-сервера. Например, в случае, если API-сервер доступен по трем адресам (192.168.0.10, 192.168.0.11 и 192.168.0.12), а ходить к API-серверу клиент будет через TCP-балансер (например, 192.168.0.15), необходимо перегенерировать сертификаты для API-серверов:

        • отредактировать kubeadm-config: kubectl -n kube-system edit configmap kubeadm-config, добавив в .apiServer.certSANs адрес 192.168.0.15;
        • сохранить получившийся конфиг: kubeadm config view > kubeadmconf.yaml;
        • удалить старые сертификаты API-сервера: mv /etc/kubernetes/pki/apiserver.* /tmp/;
        • перевыпустить новые сертификаты: kubeadm init phase certs apiserver --config=kubeadmconf.yaml;
        • перезапустить контейнер с API-сервером: docker ps -a | grep 'kube-apiserver' | grep -v pause| awk '{print $1}' | xargs docker restart;
        • повторить данное действие для всех master-узлов.
    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.publishAPI
      объект

      Настройки публикации API-сервера Kubernetes через Ingress для обеспечения его публичного доступа.

      • settings.publishAPI.addKubeconfigGeneratorEntry
        булевый

        Если указать false, будет удалена запись в kubeconfig-generator.

        По умолчанию: true

      • settings.publishAPI.enabled
        булевый

        Если указать true, в namespace d8-user-authn кластера будет создан Ingress-ресурс, который откроет публичный доступ к API-серверу.

        По умолчанию: false

      • settings.publishAPI.https
        объект

        Режим работы HTTPS для Ingress API-сервера.

        Примеры:

        https:
          mode: SelfSigned
        
        https:
          mode: Global
          global:
            kubeconfigGeneratorMasterCA: plainstring
        
        • settings.publishAPI.https.global
          объект

          Дополнительный параметр для режима Global.

          • settings.publishAPI.https.global.kubeconfigGeneratorMasterCA
            строка

            Если перед Ingress-контроллером есть внешний балансировщик, который терминирует HTTPS-трафик с использованием непубличного сертификата, укажите цепочку CA в этом параметре. Она будет добавлена в сгенерированные kubectl-конфиги.

            Если вы используете в кластере сертификаты, выдаваемые c помощью модуля cert-manager и Let’s Encrypt, следует в качестве значения установить пустую строку "".

            В качестве CA допускается указать непосредственно сертификат внешнего балансировщика. В таком случае нужно помнить, что обновление сертификата на балансировщике повредит ранее сгенерированные kubectl-конфиги.

        • settings.publishAPI.https.mode
          строка

          Режим выдачи сертификатов для данного Ingress-ресурса.

          В случае использования режима SelfSigned, для Ingress-ресурса будет выпущен сертификат подписанный CA.

          Получить выпущенный сертификат можно следующей командой: kubectl -n d8-user-authn get secrets kubernetes-api-ca-key-pair -oyaml.

          В случае использования режима Global будут применены политики из глобальной настройки global.modules.https.mode. То есть если в глобальной настройке стоит режим CertManager с ClusterIssuer letsencrypt, для Ingress-ресурса будет заказан сертификат Let’s Encrypt.

          По умолчанию: "SelfSigned"

          Допустимые значения: SelfSigned, Global

      • settings.publishAPI.ingressClass
        строка

        Ingress-класс, который будет использован для публикации API Kubernetes через Ingress.

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

      • settings.publishAPI.whitelistSourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешено подключение к API-серверу.

        • Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))?$

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      Пример:

      tolerations:
      - key: key1
        operator: Equal
        value: value1
        effect: NoSchedule
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

user-authz

Версия схемы: 1

  • settings
    объект
    • settings.controlPlaneConfigurator
      объект

      Настройки параметров для модуля автоматической настройки kube-apiserver control-plane-manager.

      • settings.controlPlaneConfigurator.enabled
        булевый

        Передавать ли в control-plane-manager параметры для настройки authz-webhook (см. параметры control-plane-manager’а).

        При выключении этого параметра модуль control-plane-manager будет считать, что по умолчанию webhook-авторизация выключена, и, соответственно, если не будет дополнительных настроек, control-plane-manager будет стремиться вычеркнуть упоминания webhook-плагина из манифеста. Даже если вы настроите манифест вручную.

        По умолчанию: true

        Примеры:

        enabled: true
        
        enabled: false
        
    • settings.enableMultiTenancy
      булевый

      Включить авторизацию по namespace (режим multi-tenancy).

      Все настройки kube-apiserver, необходимые для работы авторизации по namespace, выполняются автоматически модулем control-plane-manager (подробнее).

      Доступно только в версии Enterprise Edition.

      По умолчанию: false

      Примеры:

      enableMultiTenancy: true
      
      enableMultiTenancy: false
      

vertical-pod-autoscaler

Версия схемы: 1

  • settings
    объект
    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

virtualization

Версия схемы: 1

  • settings
    объект
    • settings.dvcr
      объект

      Параметры, для настройки deckhouse virtualization container registry. Внутренний сервис для хранения и кеширования образов виртуальных машин.

      • settings.dvcr.storage
        объект

        Обязательный параметр

        Параметры для настройки хранилища.

        • settings.dvcr.storage.objectStorage
          объект

          Параметры для настройки объектного хранилища.

          • settings.dvcr.storage.objectStorage.s3
            объект

            Параметры для использования s3.

            • settings.dvcr.storage.objectStorage.s3.accessKey
              строка

              Обязательный параметр

              accessKey должен быть закодирован в base64. accessKey — это уникальный идентификатор, который идентифицирует вас как пользователя, имеющего доступ к S3.

              Шаблон: ^[A-Za-z0-9+/]*={0,2}$

              Пример:

              accessKey: YWNjZXNzS2V5Cg==
              
            • settings.dvcr.storage.objectStorage.s3.bucket
              строка

              Обязательный параметр

              Контейнер, в котором вы можете хранить свои файлы и объекты данных.

              Пример:

              bucket: dvcr
              
            • settings.dvcr.storage.objectStorage.s3.region
              строка

              Обязательный параметр

              Географическая зона.

              Примеры:

              region: us-east-2
              
              region: us-west-1
              
            • settings.dvcr.storage.objectStorage.s3.regionEndpoint
              строка

              Обязательный параметр

              Конечная точка для подключения к сервису S3.

              Шаблон: ^https?://[0-9a-zA-Z\.\-:@_]+$

              Пример:

              regionEndpoint: s3.example.com
              
            • settings.dvcr.storage.objectStorage.s3.secretKey
              строка

              Обязательный параметр

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

              Шаблон: ^[A-Za-z0-9+/]*={0,2}$

              Пример:

              secretKey: c2VjcmV0S2V5Cg==
              
          • settings.dvcr.storage.objectStorage.type
            строка

            What ObjectStorage to use as store for dvcr.

            Допустимые значения: S3

        • settings.dvcr.storage.persistentVolumeClaim
          объект

          Параметры для настройки PersistentVolumeClaim.

          • settings.dvcr.storage.persistentVolumeClaim.size
            строка

            Обязательный параметр

            Размер pvc.

            Пример:

            size: 10Gi
            
          • settings.dvcr.storage.persistentVolumeClaim.storageClassName
            строка

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

            Примеры:

            storageClassName: linstor
            
            storageClassName: nfs
            
        • settings.dvcr.storage.type
          строка

          Тип используемого хранилища.

          • persistentVolumeClaim — Использование pvc
          • objectStorage — Использование objectStorage

          Допустимые значения: PersistentVolumeClaim, ObjectStorage

    • settings.highAvailability
      булевый

      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.

      Примеры:

      highAvailability: true
      
      highAvailability: false
      
    • settings.https
      объект

      Тип используемого сертификата.

      Этот параметр задаёт особые настройки https для модуля, переопределяя глобальные настройки global.modules.https.

      Примеры:

      https:
        mode: Disabled
      
      https:
        mode: OnlyInURI
      
      https:
        mode: CustomCertificate
        customCertificate:
          secretName: foobar
      
      https:
        mode: CertManager
        certManager:
          clusterIssuerName: letsencrypt
      
      • settings.https.certManager
        объект

        Настройки для certmanager.

        • settings.https.certManager.clusterIssuerName
          строка

          Тип ClusterIssuer’а, используемого для заказа SSL-сертификата (в данный момент доступны letsencrypt, letsencrypt-staging, selfsigned, но возможно определить свои).

          По умолчанию: "letsencrypt"

          Примеры:

          clusterIssuerName: letsencrypt
          
          clusterIssuerName: letsencrypt-staging
          
          clusterIssuerName: selfsigned
          
      • settings.https.customCertificate
        объект

        Настройки для использования пользовательского сертификата.

        • settings.https.customCertificate.secretName
          строка

          Имя Secret’а в пространстве имён d8-system, который будет использоваться для web-интерфейса загрузки модуля CDI.

          Secret должен быть в формате kubernetes.io/tls.

      • settings.https.mode
        строка

        Режим работы HTTPS:

        • CertManager — доступ по HTTPS с заказом сертификата согласно ClusterIssuer’у, заданному в параметре certManager.clusterIssuerName.
        • CustomCertificate — доступ по HTTPS с использованием сертификата из пространства имён d8-system.
        • Disabled — доступ только по HTTP.
        • OnlyInURI — доступ по HTTP, подразумевая, что перед web-интерфейсом стоит внешний HTTPS-балансер, который терминирует HTTPS и все ссылки в user-authn будут генерироваться с HTTPS-схемой.

        По умолчанию: "CertManager"

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.ingressClass
      строка

      Класс Ingress-контроллера, который использоваться для загрузки образов. По умолчанию используется глобальное значение modules.ingressClass.

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

    • settings.logFormat
      строка

      Устанавливает формат логирования.

      Работает для следующих компонентов:

      • virtualization-controller

      Допустимые значения: text, json

    • settings.logLevel
      строка

      Устанавливает уровень логирования.

      Работает для следующих компонентов:

      • virtualization-api
      • virtualization-controller
      • kube-api-rewriter
      • vm-route-forge

      Допустимые значения: debug, info, warn, error

    • settings.virtualDisks
      объект

      Настройка класса хранения для виртуальных дисков.

      • settings.virtualDisks.allowedStorageClassSelector
        объект

        Селектор разрешенных классов хранения, используемых для виртуальных дисков.

        • settings.virtualDisks.allowedStorageClassSelector.matchNames
          массив строк

          Примеры:

          matchNames: sc-1
          
          matchNames: sc-2
          
      • settings.virtualDisks.defaultStorageClassName
        строка

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

    • settings.virtualImages
      объект

      Настройка класса хранения для виртуальных образов на PVC.

      • settings.virtualImages.allowedStorageClassSelector
        объект

        Селектор разрешенных классов хранения, которые можно использовать для виртуальных образов на PVC.

        • settings.virtualImages.allowedStorageClassSelector.matchNames
          массив строк

          Примеры:

          matchNames: sc-1
          
          matchNames: sc-2
          
      • settings.virtualImages.defaultStorageClassName
        строка

        Указывает имя класса хранения по умолчанию, который будет использоваться для виртуальных образов на PVC.

      • settings.virtualImages.storageClassName
        Параметр устарел
        строка

        Поскольку этот параметр был устаревшим, используйте параметр defaultStorageClassName.

    • settings.virtualMachineCIDRs
      массив строк

      Список подсетей используемых для выделения статических IP-адресов виртуальным машинам.

      Пример:

      virtualMachineCIDRs:
      - 10.10.10.0/24
      - 10.10.20.0/24